中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

發布時間:2021-12-30 17:51:19 來源:億速云 閱讀:141 作者:柒染 欄目:互聯網科技

這篇文章將為大家詳細講解有關SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

其中明確提到銷售云包含SAP Cloud for Customer(C4C),SAP Revenue Cloud和Callidus Cloud。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

有Partner詢問有沒有更詳細的步驟介紹,關于如何在第三方系統里調用SAP C4C暴露出的Restful API進行集成。本文就給出一個具體的例子,將SAP C4C銷售訂單的創建功能通過自定義的OData服務暴露出來,然后Partner可以根據項目需要選擇合適的編程語言(本文選擇JavaScript)來消費。

Jerry以前發布過一個視頻,演示了如何在SAP C4C里手動創建一個銷售訂單,步驟可以說簡單易懂。

https://v.qq.com/x/page/d0809f4tswl.html

現在我們通過OData的方式將銷售訂單的創建功能暴露出來,就能在第三方系統或者應用里完成C4C的訂單創建。

大家如果對SAP OData還不太了解,可以先讀一讀我這篇文章開頭的部分:

SAP OData編程指南

下面是詳細步驟。

登錄C4C系統,訪問工作中心Administrator,工作中心視圖OData Service Explorer,這里可以在SAP發布的標準OData服務和客戶自定義的OData服務之間切換。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

因為客戶自定義OData服務能夠允許客戶自行決定從哪一個Business Object的哪一些節點,選擇哪一些字段來生成OData模型,通過這種靈活的方式可以避免Business Object上客戶業務場景里不需要的字段出現在OData模型中。

點擊New按鈕新建一個OData服務:

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

給Work Center View字段指定一個用來做權限控制的視圖,只有分配了這個視圖的用戶才有權限訪問這個OData服務。

點擊Select Business Object從彈出對話框中選擇基于哪一個Business Object創建OData模型。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

下圖就是一個已經創建好并處于Active狀態的OData服務。左邊顯示的是CustomerQuote這個BO的Root節點的所有字段,每個字段都有一個可以勾選或取消的Select屬性,勾選則該BO字段會出現在右側的OData模型里。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

除了Root節點之外,BO的其他子節點上的字段當然也是可以出現在OData模型里的,比如我上圖右邊OData模型的子節點CustomerQuoteItem, CustomerQuoteParty和CustomerQuoteText等,就是分別從左邊BO的同名節點選中后自動帶到右邊的OData模型中去的。

理論上,完成基于BO模型進行OData模型的創建并激活后,這個OData服務就可以使用了,這體現了SAP C4C OData服務自定義框架的強大之處。然而我也收到了一些朋友從后臺給我提的一些問題,羅列如下。

問題1: 仍然以本文銷售訂單創建這一場景為例,假設我希望我創建的OData服務能夠允許消費者調用時指定External Reference的值,但是我找遍整個BO列表,也沒發現銷售訂單的BO上有叫這個名稱的字段啊?

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

Jerry答:External Reference是UI文本,不是BO字段的技術名稱。

給C4C系統在瀏覽器里的url添加參數debugMode=true, 然后刷新頁面,按住Ctrl鍵再單擊External Reference字段,

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

就能看到這個UI字段綁定到UI模型上哪一個字段了。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

在這個UI模型字段上再點擊Show Model,就能看到這個UI模型字段綁定到的BO字段名稱為BuyerID。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

所以我們在OData開發工具里,只需把BO字段BuyerID選中,移動到右邊的OData模型里即可。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

問題2:我想讓我的OData服務支持行項目數據的創建,比如指定產品ID,描述和購買數量等等。我怎么知道哪些BO節點上的字段需要添加到OData模型中去?

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

Jerry答:現在我們換一種方法,打開Cloud Application Studio的UI Designer,定位到銷售訂單創建頁面的UI模型COD_SALESORDER_QC, 找到Product ID字段,在它的Properties面板里即可看到這個Product ID字段綁定的BO字段的名稱和完整路徑:

Root-.ItemProposal-ProductUUID-content

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

因此我們需要將BO對應路徑下面的ProductUUID字段添加到OData模型中去。這里能觀察到ProductID的Create和Update是沒有勾選上的,而ProductUUID則支持Create和Update,這個行為和C4C銷售訂單行項目創建的標準實現有關——消費者需要提供待創建行項目包含的產品UUID,然后C4C會根據UUID到系統中查詢出對應的產品,顯示其ID到UI上。如果消費者在調用OData服務時,沒有指定ProductUUID,則行項目創建邏輯不會執行。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

OData模型創建好之后,在用編程語言消費之前,我們可以先用工具Postman(或者C4C自帶的測試工具)進行測試。

因為SAP C4C后臺對Cross-site request forgery(跨站請求偽造)這種攻擊采取的防御實現和SAP CRM,SAP S/4HANA一樣,采取的是CSRF token驗證機制,因此我們在調用OData服務進行銷售訂單創建時,需要將一個合法的CSRF token一并傳遞給C4C系統。

如何得到一個合法的CSRF token呢?在Postman里構造一個HTTP GET請求,頭部字段名為

x-csrf-token, 值為fetch:

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

發送這個HTTP GET請求,服務器端會生成一個CSRF token,通過HTTP響應結構頭部字段x-csrf-token返回給消費者:

sNwnYC9cV4xeGSYZmJ8Dtw==

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

下面我們再在Postman里新建一個HTTP Post請求,將之前通過HTTP GET拿到的CSRF token,以HTTP Post請求頭部字段的方式發送給C4C系統。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

關鍵在于HTTP Post請求的請求體。下圖高亮部分是我在HTTP Post請求里指定的創建銷售訂單的輸入數據:

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

在Postman里發送這個Post請求,幾秒鐘后得到C4C的響應,訂單創建成功,ID為9000000451:

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

為了方便大家對比,下面是我用Postman消費我創建的OData服務生成的銷售訂單在系統里的顯示。字段1~6對應的Postman輸入字段可以在前文找到。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

藍色區域高亮顯示的字段,我在Postman里構造的輸入里并沒有維護,而是通過SAP C4C系統的各種determination配置,自動決定出來的。最典型的有SAP老司機們天天打交道的Partner determination,Organization determination,Pricing determination等。

Postman里測試通過后,就可以寫代碼消費了。

如果想直接復制粘貼我下面列出的代碼,可以從我的github上獲得:

https://github.com/i042416/KnowlegeRepository/blob/master/ABAP/C4COData/create_SalesOrder.js

注意本代碼只用于演示目的,缺少健壯的出錯處理,不能直接用于生產環境中。

下面的代碼使用nodejs提供的request模塊向C4C請求CSRF token。注意第3行的url和第11行的Authorization頭部的值,我都是用的虛假值,請大家替換成自己實際使用的C4C url和認證信息。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

Token拿到之后,將其放入第41行構造的HTTP Post請求的頭部結構中,作為字段x-csrf-token的值。第47行發送該POST請求,C4C響應的數據存放于JavaScript變量data中。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

最后我通過簡單的console.log打印出創建成功的銷售訂單ID:

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

在命令行里用node執行這個js文件,會打印出從C4C獲取到的CSRF token,以及成功創建的訂單ID。

SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析

我們再回顧一下用SAP C/4HANA Sales Cloud中的C4C OData同外部系統做集成的三個主要步驟:

1. 在C4C的OData模型編輯頁面里,根據業務需要,從對應的BO節點里選擇合適的字段,添加到OData模型中。

2. 用Postman或者C4C自帶的OData測試工具對OData模型進行測試,確保其正常工作。

3. 根據項目需要選擇合適的編程語言消費OData服務。

關于SAP C/4HANA Sales Cloud使用OData服務和第三方系統集成的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴楚县| 铜川市| 兴山县| 徐水县| 大厂| 汝南县| 江西省| 融水| 陇川县| 同江市| 图木舒克市| 子长县| 阿拉善左旗| 平利县| 霍州市| 武穴市| 乐业县| 山西省| 鹰潭市| 宜阳县| 沈丘县| 鹿邑县| 德保县| 中江县| 兴业县| 兴安县| 盐边县| 偃师市| 栾城县| 台中市| 恩平市| 临清市| 长治市| 贞丰县| 温州市| 晋城| 沅陵县| 吕梁市| 安乡县| 石嘴山市| 伊川县|