1. 程式人生 > 其它 >使用 SAP WebIDE 將 SAP UI5 應用部署到 ABAP 系統時遇到的關於傳輸請求的錯誤

使用 SAP WebIDE 將 SAP UI5 應用部署到 ABAP 系統時遇到的關於傳輸請求的錯誤

有朋友遇到一個在 webide 裡部署 SAP UI5 應用到 ABAP Repository 裡時出錯的問題:

錯誤訊息:

Failed to get transports for the selected package. Request POST /webidedispatcher/destinations/LND500/sap/bc/adt/cts/transportchecks failed: Forbidden

分析思路

部署目標即儲存這個 SAP UI5 應用部署到 ABAP 系統上生成的 BSP 應用的開發包名稱為 ZFIORI_DEV, 錯誤訊息的字面意思是,無法取得往這個開發包裡寫入物件進行儲存時需要使用的傳輸請求(transport Request).

如果我們在 WebIDE 裡將 SAP UI5 應用部署到 ABAP 系統的 $tmp 包上,不需要傳輸請求;如果期望部署到 ABAP 系統後,還能將這個應用進一步傳輸到其他 ABAP 系統,則傳輸請求是必須的。

遇到這個問題,首先要明確自己的需求,到底是不是期望 SAP UI5 應用部署到 ABAP 系統上後需要繼續傳輸到其他系統。如果是,可以試著建立一個 ABAP 報表,看儲存到開發包 ZFIORI_DEV 時,是否會彈出要求指定傳輸請求的對話方塊。

如果想找到在哪一行程式碼丟擲的這個錯誤訊息,可以進入事物碼 SICF,

按照路徑 sap->bc->adt 找到 ICF 節點,雙擊,

找到這個節點的 handler class CL_ADT_WB_RES_APP, 然後在其 HANDLE_REQUEST 裡設定斷點,然後在 webide 裡觸發部署動作,檢視斷點是否會觸發(可能不會,因為在 WebIDE 裡觸發部署操作的使用者,和在 ABAP 系統裡實際執行部署操作的使用者,二者可能不是同一個使用者)

也可以參考這篇文章,Troubleshooting Deployment to an ABAP System from SAP Web IDE,裡面提到了一些 WebIDE 部署到 ABAP 系統時經常遇到的一些典型錯誤。

另外在 SAP 幫助文件 裡,也提到了 Destination 的 WebIDEUsage 這個欄位需要維護的正確值的列表和對應含義介紹。

比如本地通過名叫 LND500 的 Destination 進行部署,那麼這個 Destination 必須維護 dev_abap 這個值作為 WebIDEUsage 的內容。