:::info BTP平台有時候加載較慢,會有UI延遲,或是資料沒有即時更新的情況。如果有時候有些按鈕沒有出現,或是狀態沒有更新,重新整理後有可能就好了。 ::: # Set Up Integration Suite Trial https://developers.sap.com/tutorials/cp-starter-isuite-onboard-subscribe.html  :::warning **※有待補充** 建立帳號時的設定: | 欄位名稱 | 值 | |----------|--------------------------| | Provider | Amazon Web Services (AWS)| | Region | US East (VA) | 有段時間我的Integration Suite處於無法登入的狀態,推斷有可能是之前不小心將Space刪除掉的可能性,記得好像是在重新建立新的Space後,就可以用了。  遇過另外一種情況是,Subaccount裡面沒有Cloud Integration的服務,可以到Service MarketPlace重新Create:    雖然原理不太清楚,但Integration Suite確實因此恢復了 :D **※ 補充** BTP的Global account分成Trail(試用)與Enterprise(企業)帳號,在User權限上,Trail已經將大多數的可用權限打包在User設定上,但Enterprise會分成GlobalAccount用的User,以及SubAccount用的User(IAS);在Trail,只要透過Booster就可以啟用Integration Suite的全部功能,而Enterprise需要在有IAS的用戶開啟全部權限後,Integration Suite的功能才能全部啟用。 ::: ## Step 1. Enter your trial account 1. 建立一個SAP Global Account,登入[SAP BTP Cockpit](https://account.hana.ondemand.com/#/home/welcome) 2. 點擊"**Go To Your Trail Account**"  3. 點擊已經建立好的Subaccount,名稱為Trail。  :::info **補充:如何建立一個Subaccount?** 1. 點擊右上角的Create,選擇Subaccount。  2. 輸入Display Name、Region和Description,另外兩欄會自動輸入。然後按下Create。  3. 等它跑一下就完成了。  ::: ## Step 2. Subscribe to the service 1. 點擊左側的**Service -> Instances and Subscriptions**. 2. 點擊右上角"Create"後,輸入以下內容: | 欄位名稱 | 值 | |----------|--------------------------| | Service | Integration Suite| | Plan | trail | 3. 點擊左側欄位**Security > Users**,點擊進入**Default identity provider**,在右側的**Role Collections**,點擊三個圓點Icon後,選擇**Assign Role Collection**  4. 搜尋 Integration_Provisioner並勾選,然後按下 Assign Role Collection.  5. 回到**Service -> Instances and Subscriptions**,在Instance點擊Integration Suite,進入SAP Integration Suite平台,點擊**Add Capabilities**。  ## Step 3. Activate the capabilities 1. 勾選 **Build Integration Scenarios** 和 **Manage APIs capabilities**. 然後按下 Next. 2. 不用理會Cloud Integration,繼續按Next。 3. 勾選**Enable API Business Hub Enterprise**,然後按下Next。 4. 當出現這個畫面時,就代表完成了。  ## Step 4. Automatically assign roles and create service instances using Booster 1. 回到Global Account,選擇Booster 2. 搜尋Enable Integration Suite並點進去 3. 點擊右上角的Start 4. 第一頁系統應該會自動填入,點擊Next;第二頁勾選 **Design, Develop, and Operate Integration Scenarios** 和 **Design, Develop, and Manage APIs**,點擊Next。 5. 按下Finish,等待系統設定完畢。 6. 回到SAP Indegration Suite平台,確認新加載的服務。 # Design and Deploy Your First Integration Flow https://developers.sap.com/tutorials/cp-starter-integration-cpi-design-iflow.html ## Step 1. Create an integration package and integration flow 1. 在左側欄選擇Design > Integrations and APIs > Create,建立一個integration package,按照欄位填入以下內容後,按下Save。 | 欄位名稱 | 值 | |----------|--------------------------| | Name | Indegration Suite Trail Experience | | Technical Name | Name輸入時會自動填入 | | Short Description | Indegration Suite Trail Experience | 2. 選擇 Artifacts 的區塊,在Add的下拉清單選擇Integration Flow,輸入Flow的名稱後,按下OK,然後再按下右上角的Save即可保存。 :::info 雲端平台具有保護設計, 在執行修改前,通常要先確認有按下右上角的"Edit",否則有些動作會無法執行。 修改完後,記得要按下Save才會保存。 :::  3. 點開 integration flow,點擊右上角Edit進行編輯,並點選右下角"Restore"按鈕將參數列表展開。  ## Step 2. Connect sender channel with HTTPS adapter 將Sender的箭頭連接到Start,Adapter Type選擇"HTTPS"。在下方參數選項選擇"Connection"區塊,並填入對應的資料。 | Address | Authorization | User Role | | -------- | -------- | -------- | | /products/details | User Role | ESB Messaging.send | **最後,取消勾選CSRF。** :::info Address可以再需要進行辨識時,替換成其他自定義的字串,但開頭一定要是"/"。 ::: ## Step 3. Add JSON to XML converter 在上方的工具列選擇"Transformation"的圖示,選擇Converter、再選擇JSON to XML Converter,然後在Start與End之間的箭頭點一下,就建立了Json to XML的轉換器。  ## Step 4. Add and configure content modifier 在上方的工具列選擇"Transformation"的圖示,選擇Content Modifier,在Start與End之間的箭頭,JSON to XML Converter的右邊點擊建立。並在下方切換到Message Header,點擊右上角的Add並填入以下資訊: | Action | Name | Source Type | Source Value | Data Type | | -------- | -------- | --- | --- | -------- | | Create | productIdentifier | XPath | //productIdentifier | java.lang.String | ## Step 5. Add request reply step 在上方的工具列選擇"Call"的圖示,選擇"External Call",再選擇"Request Reply",在 Content Modifier 和 End 之間點擊建立。  ## Step 6. Connect request reply to receiver 將Receiver拉到下方,並將Request Reply的箭頭拉到Receiver,資料格式選擇OData -> OData V2。 下方切換到Connection欄位,在Address填入`https://refapp-espm-ui-cf.cfapps.eu10.hana.ondemand.com/espm-cloud-web/espm.svc`,這是一個電商服務的 URL,可以從中獲得產品詳細資訊。 然後,切換到Processing欄位,在Resource的右方點選Select。  第一步系統會自動幫你完成,點擊Step 2就好。  第二步要在Select Entity選取"Products",並勾選Select All Field後,點選下方的Step 3.  第三步設定Filter by,選擇ProductID,"Equals"、輸入`${header.productIdentifier}`,然後按下Finish。   **最後,記得點擊右上角的Save。** 現在,OData adapter已經配置成根據 HTTP 呼叫進行時,作為輸入發送的產品 ID 來獲取產品的詳細資訊。 ## Step 7. Deploy the integration flow 將Integration flow部屬到雲端上。點選右上角的Deploy,並選擇Yes。如果有出現這個畫面,那就是部屬成功了。  # Expose Integration Flow Endpoint as API and Test the Flow https://developers.sap.com/tutorials/cp-starter-isuite-api-management.html ## Step 1. Get endpoint of the integration flow 點擊旁邊的Nevigate to Manage Integration Content,然後複製endpoint。   ## Step 2. Define the API 1. 在左側欄位選取Setting -> APIs。點擊後會跑一段時間,一旦完成後,這個帳戶的Setting就不會再出現APIs的選項了。  然後選取Configure,點選API,並點擊右上角的Create建立新的API。填入以下資訊後,按下Create。  | Select | URL | Name | Title | API Base Path | | ------ | --- | ---- | ----- | ------------- | | URL | 將複製的Endnode貼上,並去掉`/details` | RequestProductDetails | Product Details API | /products | 2. 在上方選取切換到Resource介面,點擊Add,填入欄位資料並將POST以外的所有Operation全部清除,最後按下OK。 | Tag | Path Prefix | | -------- | -------- | | Product Details | /details |   3. 點擊右上角的Deploy,當Status顯示為Deployed後,就表示API部署完成了。  :::warning 記得切換到Edit狀態,否則會找不到Deploy的按鈕。完成後要記得按下Save,否則下一個步驟會找不到按鈕。 ::: 4. 點擊右上角的"Edit in API Manager",進入API的編輯介面,將第二個Payload改成productIdentifier,並加入一個example欄位,內容為HT-2000,最後按下Save。   :::warning example需要用手動輸入,才能選取名為example的keyword,否則變數有可能會不起作用。 ::: 5. 回到Configure -> APIs,進入RequestProductDetails,切換到Resource介面,將綠色的POST展開,點擊Try out並按下Execute。    如果出現401,那在"現階段"就沒有問題了。 :::warning 有時候可能因為瀏覽器問題,會出現405的錯誤訊息,目前當下找到的解決方案是用無痕模式重新登入BTP進行操作。 ::: ## Step 3. Copy credentials from service key 1. 回到SAP BTP Subaccount,選擇Services -> Instances and Subscriptions,在instance的區塊,點選Plan為integration flow的資料。  在Service Keys應該只有一筆資料,選擇View後,複製裡面的JSON檔。在之後我們會需要用到 **"clientid"、"clientsecret"和"tokenurl"**。   ## Step 4. Assign policy template 1. 左側選取Discover -> APIs,搜尋"Connect to SAP Business Technology Platform Services"並點進去。  2. 切換到Artifact欄位,點擊圖示選擇copy。   :::danger **※ 如果遇到無法copy的情況,如圖:**  請回到Configure -> APIs,選擇"Policy Templates",將Cloud_Platform_Connectivity刪除後,再回到 Discover -> APIs -> Connect to SAP Business Technology Platform Services 重新複製。  ::: 3. 回到Configure > APIs,進入RequestProductDetails,選擇Policies。  第一次使用時,要先點擊Policy Template,選擇"Apply",勾選Cloud_Platform_Connectivity後再點擊Apply。   4. 選擇Preflow,點擊getcredential的圖示。(從左往右數第二個,如果畫面太擠,可以將旁邊的側邊欄收合,圖示會自動分散。)  將前面複製的JSON檔裡面的"clientid"和"clientsecret"貼到對應的位置。  點擊getoauthtoken的圖示(從左往右數第四個),將前面複製的"tokenurl"貼在註解下方的`<URL>`標籤裡面。  完成後,點選右上角的Update,然後再點擊Save,最後點擊Click to Deploy。  :::success 🎁 [特殊手段](https://community.sap.com/t5/technology-q-a/execution-of-servicecallout-getoauthtoken-failed-reason-responsecode-401-is/qaq-p/12608331): 如果最後的`Step 5. Execute API`仍然會出現 Error 500,可以嘗試**在getoauthtoken裡面的"tokenurl"尾端,加上`?grant_type=client_credentials`**,然後按下Update,再按下Save,最後有出現Click to Deploy的話也按下去。 原理不清楚,總之成功了(笑)。 ::: ## Step 5. Execute API 回到Configure -> APIs,進入RequestProductDetails,切換到Resource介面,將綠色的POST展開,點擊Try out並按下Execute。 這時候應該不會再顯示401、404、405、500等錯誤訊息,如果出現200,就代表API可以順利運作了。 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up