開始使用 適用於 SAP ABAP 的 AWS SDK - AWS 適用於 SAP 的 SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

開始使用 適用於 SAP ABAP 的 AWS SDK

本節說明如何開始使用 SDK。其中包括安裝 SDK、執行基本設定,以及建立 Hello World 程式碼範例的相關資訊,將片語從一種語言翻譯成另一種語言。如果您是 AWS SDK 的新手,建議您在沙箱環境中執行這些步驟。

步驟 1:準備您的 AWS 帳戶

若要開始使用適用於 SAP ABAP 的 SDK,您必須有一個作用中 AWS 帳戶 的。 AWS 帳戶 即使您的 SAP 系統是在內部部署、SAP 商業技術平台 (BTP) 或其他雲端供應商託管,您也需要一個。

如果您的 SAP 系統在 AWS 雲端上執行,您將會呼叫 AWS 帳戶. AWS

適用於 SAP 使用者的 IAM 角色

  • AWS Identity and Access Management 使用使用者指南中提供的指示建立 IAM 角色。如需詳細資訊,請參閱建立角色以將權限委派給 AWS 服務。請記下 IAM 角色的 Amazon 資源名稱 (ARN),以供日後使用。

  • 選取 Amazon EC2 做為使用案例。

  • SapDemoTranslate為角色的名稱使用。

  • TranslateReadOnly設定檔附加至角色。

  • 角色必須具有下列實體,才能讓 SAP 系統擔任該角色。將 "111122223333" 換成您的 AWS 帳戶號碼。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "AWS": "111122223333" } } ] }

    此範例顯示來自的任何主參與者都 AWS 帳戶 "111122223333"可以擔任該角色。這是一個廣泛的權限,適用於 proof-of-concept. 您可以使用較窄的主體來進行生產,例如下列範例。

    • 特定使用者 — 當 SAP 系統使用下列其中一項時:

      • 來自內部部署 SAP 系統的 SSF 加密認證

      • 來自 SAP BTP、ABAP 環境上 SAP 認證存放區服務的認證

    • 特定角色 — 當 SAP 系統位於 Amazon EC2 上且有執行個體設定檔時。

    • Amazon EC2 — 當 SAP 系統位於 Amazon EC2 上並且有實例配置文件時。

如需詳細資訊,請參閱 IAM 安全的最佳實務

身分驗證

驗證取決於 SAP 系統的託管位置。

在 AWS 雲端

確保執行 SAP 系統的 EC2 執行個體具有具有下列權限的執行個體設定檔。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/SapDemoTranslate" } ] }

新增您在上一個步驟中記下的 ARN。

此權限可讓您的 SAP 系統代表 ABAP 使用者擔任該SapDemoTranslate角色。

內部部署、SAP BTP 或其他雲端

如果您的 SAP 系統位於內部部署、SAP BTP 或其他雲端上,請使用下列步驟建立使用秘密存取金鑰驗證的連線。

  1. 建立 IAM 使用者。如需詳細資訊,請參閱建立 IAM 使用者 (主控台)

  2. SapDemoSID做為 IAM 使用者的名稱使用。 SID是 SAP 系統的系統識別碼。

  3. SapDemoTranslate角色指派給此使用者。

保留access_keysecret_access_key。您必須在 SAP 系統中配置這些認證。

注意

如果您的 SAP 系統位於內部部署、SAP BTP 或其他雲端上,您可以使用下列其中一個選項進行驗證。

步驟 2:安裝軟體開發套件

如需安裝說明,請參閱下列索引標籤。

SDK for SAP ABAP

在您的 SAP 系統中匯入適用於 SAP ABAP 傳輸的 SDK。您可以將傳輸匯入任何用戶端。如需詳細資訊,請參閱安裝適用於 SAP ABAP 的開發套件

SDK for SAP ABAP - BTP edition

使用部署產品應用程式安裝適用於 SAP ABAP 的 SDK-BTP 版本。如需詳細資訊,請參閱安裝適用於 SAP ABAP 的開發套件-BTP 版本。

步驟 3:設定 SDK

如需組態指示,請參閱下列索引標籤。

SDK for SAP ABAP

執行/AWS1/IMG交易以開啟適用於 SAP ABAP 的 SDK 實作指南。若要執行此交易,請/n/AWS1/IMG 在 SAP 系統的命令列中輸入,然後選擇 [輸入]。

完成下列組態。

  • 前往技術先決條件

    • 檢閱建議的設定檔參數和 SSL 憑證設定。

  • 轉到全局設置配置方案

    • 根據「全域」設定中的建議變更設定。

  • 轉到全局設置技術設置

    • 根據「全域」設定中的建議變更設定。

  • 轉到運行時設置日誌和跟踪

    • 選取「新項目」。

      • 跟踪級別:無跟踪。

      • 最大傾印行數:100

      • 選擇加入:enh 遙測:保持此空白。

    • 選取 Save (儲存)。

  • 轉到運行時設置活動方案

    • 新案例下,選取DEFAULT

    • 選取確認案例變更

    • 接受提示。

SDK for SAP ABAP - BTP edition

在網頁瀏覽器中開啟 ABAP 環境,然後瀏覽至「自訂商務設定」應用程式。

完成下列組態。

  • 轉到全局設置配置方案

    • 根據「全域」設定中的建議變更設定。

  • 轉到全局設置技術設置

    • 根據「全域」設定中的建議變更設定。

內部部署系統的前提

如果您的 SAP 系統在內部部署或其他雲端中執行,則認證必須儲存在 SAP 資料庫中。認證會使用 SAP SSF 加密,且需要設定的密碼編譯程式庫,例如 SAP。 CommonCryptoLib

為 SAP ABAP 的 SDK 配置 SSF 的步驟在交易中描述。/AWS1/IMG

注意

如果您的 SAP 系統在 Amazon EC2 上執行,則上述先決條件不適用。在 Amazon EC2 上執行的 SAP 系統會從 Amazon EC2 執行個體中繼資料擷取短期、自動輪換的登入資料。

步驟 4:功能設定

如需設定指示,請參閱下列索引標籤。

SDK for SAP ABAP

執行交易 /AWS1/IMG (/n/AWS1/IMG在命令列中輸入,然後選擇 Enter) 以開啟 AWS SDK 的實作指南。

  • 轉到應用程序配置SDK 配置文件。

    • 選取「新項目」。

      • 配置文件DEMO

      • 說明:Demo profile.

      • 選取 Save (儲存)。

  • 反白您建立的項目,然後按一下 [驗證和設定] 樹狀目錄分支。

    • 選取「新項目」。

      • SID:您目前所在 SAP 系統的系統識別碼。

      • 用戶端:您目前所在 SAP 系統的用戶端。

      • 案例 ID:您可以在其中找到由基礎管理員建立的 DEFAULT 案例的下拉式清單。

      • AWS 區域:輸入您要撥打電話的「 AWS 區域」。如果您的 SAP 系統正在執行中 AWS,請輸入其執行所在的「 AWS 區域」。

      • 驗證方法:

        • 如果您的 SAP 系統在 Amazon EC2 上執行,請透過中繼資料選取執行個體角色。

        • 如果您的 SAP 系統在內部部署或其他雲端中執行,請選取來自 SSF 儲存體的認證

          • 選取「設定認證」。

          • 輸入您在上一個步驟中建立的「存取金鑰 ID」和「秘密存取金鑰」。

    • 停用 IAM 角色保持空白。

    • 選取 Save (儲存)。

  • 按一下 IAM 角色對應樹狀分支。

    • 選取「新項目」。

      • 輸入「序號」:010。

      • 輸入邏輯 IAM 角色:測試使用者。

      • 輸入 IAM 角色 ARN:輸入 IAM 角色的 arn: aws:,該角色包含在上一個步驟中建立的TranslateReadOnly政策。

SDK for SAP ABAP - BTP edition

使用 SAP 認證存放區設定驗證。如需詳細資訊,請參閱使用 SAP 認證存放區

在網頁瀏覽器中開啟 ABAP 環境,然後瀏覽至「自訂商務設定」應用程式。

  • 轉到應用程序配置SDK 配置文件。

    • 選取「編輯」以建立新的設定檔。

      • 配置文件DEMO

      • 說明:Demo profile.

  • 選擇創建的條目旁邊的向右箭頭鍵,然後導航到身份驗證和設置選項卡。

    選取「新項目」。

    • SID:您目前所在 SAP 系統的系統識別碼。

    • 用戶端:您目前所在 SAP 系統的用戶端。

    • 案例 ID:您可以在其中找到由基礎管理員建立的 DEFAULT 案例的下拉式清單。

    • AWS 區域:輸入您要撥打電話的「 AWS 區域」。如果您的 SAP 系統正在執行中 AWS,請輸入其執行所在的「 AWS 區域」。

    • 驗證方法:從 SAP 認證存放區中選取認證

    • 輸入儲存在 SAP 認證存放區中之認證的命名空間和金鑰名稱

    • 輸入針對 SAP ABAP-BTP 版本與 SAP 認證存放區之 SDK 之間建立通訊而建立的「通訊安排」名稱。

    • 停用 IAM 角色保持空白。

    • 在建立的項目旁邊的箭頭鍵上按一下滑鼠右鍵,然後瀏覽至 IAM 角色對應索引標籤。

      選取「新項目」。

      • 輸入「序號」:010。

      • 輸入邏輯 IAM 角色:測試使用者。

      • 輸入 IAM 角色 ARN:輸入 IAM 角色的 arn: aws:,該角色包含在上一個步驟中建立的TranslateReadOnly政策。

步驟 5:授權 SAP 使用者

根據預設,SAP 使用者未獲授權使用 AWS 功能。必須使用 SAP 授權明確授權使用者。如需詳細資訊,請參閱下列索引標籤。

SDK for SAP ABAP

建立 PFCG 角色

  • 前往交易 PFCG

  • 輸入角色名稱,ZAWS_SDK_DEMO_TESTUSER然後選取建立單一角色

    • 說明:Role for demo AWS SDK functionality.

    • 移至「授權」標籤。

    • 選取「變更授權資料」並接受資訊快顯視窗。

    • 在「選擇範本」彈出式視窗中,選取「不要選取範本」

    • 從工具列中選取「手動新增」。

    • 新增下列授權物件:

      • /AWS1/LROL

      • /AWS1/SESS

    • 在授權樹狀結構中,輸入:

      • 用於存取 AWS API 的設定檔:DEMO

      • 邏輯 IAM 角色:TESTUSER

    • 選取 Save (儲存)。

    • 選取「產生」。

    • 選取 [返回]。

    • 選取 [儲存] 以儲存角色。

將 PFCG 角色指派給 SAP 使用者

任何已指派ZAWS_SDK_DEMO_TESTUSER角色的使用者都將獲得授權,可以使用 AWS SDK 設定檔中設定的設定來使用 DEMO SDK 功能。授權使用者也會承擔對應至該設定檔中TESTUSER邏輯 IAM 角色的 IAM 角色。

  • 執行交易SU01

    • 輸入將測試 AWS SDK 功能之 SAP 使用者的使用者識別碼。

    • 選取 [變更]。

    • 移至 [角色] 索引標籤,並將ZAWS_SDK_DEMO_TESTUSER角色指派給使用者。

    • 選取 Save (儲存)。

SDK for SAP ABAP - BTP edition

建立商務角色

  • 在 Web 瀏覽器中開啟 ABAP 環境,然後瀏覽至「維護商務角色」應用程式。

  • 選取「從範本建立」,然後輸入下列詳細資訊。

    • 模板-選擇/AWS1/RT_BTP_ENDUSER

    • 新商務角色 ID — 輸入 ID。

    • 新企業角色描述 — 輸入說明。

  • 選取確定以查看商務角色的頁面。

  • 在「一般角色詳細資料」標籤下,移至「存取類別」,並將「寫入」、「讀取」、「值說明」欄位設定為「受限

  • 選取維護限制,然後展開左側導覽窗格中的「指派的限制類型」。更新「限制與值」區段中的下列欄位。

    • 在「選擇 SDK 工作階段」下,選取「SDK 設定檔」旁邊的鉛筆圖示,然後導覽至「範圍」索引標籤。輸入DEMO,然後選取「新增」。

    • 在「選擇邏輯 IAM 角色」下,選取「邏輯 IAM 角色」旁邊的鉛筆圖示,然後導覽至「範圍」索引標籤。輸入TESTUSER,然後選取「新增」。

      選擇 SDK 配置文件旁邊的鉛筆圖標,然後導航到範圍選項卡。輸入DEMO,然後選取「新增

  • 導覽回「商務角色」範本,然後開啟「商務使用者」標籤。選取新以將新建立的商務角色指派給要測試 SDK 功能的 SAP 商務使用者。選取 Save (儲存)。

指派給已建立商務角色的任何商務使用者都將獲得授權,可使用 AWS SDK 功能搭配 DEMO SDK 設定檔中所設定的設定。授權使用者也會承擔對應至該設定檔中TESTUSER邏輯 IAM 角色的 IAM 角色。

步驟 6:撰寫程式碼

如需詳細資訊,請參閱下列索引標籤。

SDK for SAP ABAP
  1. 開啟的交易SE38

    • ZDEMO_TRANSLATE_HELLO_WORLD入程式名稱。

    • 選取 Create

    • 輸入AWS SDK Hello World In Any Language作為標題。

    • 類型:選擇可執行程序

    • 狀態:選擇「測試程式」。

    • 選取 Save (儲存)。

    • 將程式儲存為「本機物件」。

添加以下代碼

*&---------------------------------------------------------------------* *& Report  ZAWS1_DEMO_XL8_SIMPLE *& *&---------------------------------------------------------------------* *& A simple demo of language translation with AWS Translate *& *&---------------------------------------------------------------------* REPORT zaws1_demo_xl8_simple. START-OF-SELECTION.   PARAMETERS pv_text TYPE /aws1/xl8boundedlengthstring DEFAULT 'Hello, World' OBLIGATORY.   PARAMETERS pv_lang1 TYPE languageiso DEFAULT 'EN' OBLIGATORY.   PARAMETERS pv_lang2 TYPE languageiso DEFAULT 'ES' OBLIGATORY.   TRY.       DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ).       DATA(go_xl8)     = /aws1/cl_xl8_factory=>create( go_session ).       DATA(lo_output) = go_xl8->translatetext(            iv_text               = pv_text            iv_sourcelanguagecode = CONV /aws1/xl8languagecodestring( pv_lang1 )            iv_targetlanguagecode = CONV /aws1/xl8languagecodestring( pv_lang2 )       ).       WRITE: / 'Source Phrase: ', pv_text.       WRITE: / 'Target Phrase: ', lo_output->get_translatedtext( ).     CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang).       WRITE: / 'ERROR' COLOR COL_NEGATIVE,                'Cannot translate from',                lo_lang->sourcelanguagecode,                'to',                lo_lang->targetlanguagecode.     CATCH cx_root INTO DATA(lo_root).       WRITE: / 'ERROR' COLOR COL_NEGATIVE, lo_root->get_text( ).   ENDTRY.
SDK for SAP ABAP - BTP edition
  1. 右鍵單擊需要創建 ABAP 類的包,然後選擇建 > ABAP 類。

  2. 輸入ZCL_DEMO_XL8_SIMPLE類別名稱,然後加入類別說明。選取下一步

  3. 建立或選擇傳輸要求。選取 [完成]。

添加以下代碼

CLASS zcl_demo_xl8_simple DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_demo_xl8_simple IMPLEMENTATION. METHOD if_oo_adt_classrun~main. TRY. " input parameters DATA(pv_text) = |Hello, World|. DATA(pv_lang1) = |EN|. DATA(pv_lang2) = |ES|. DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ). DATA(go_xl8) = /aws1/cl_xl8_factory=>create( go_session ). DATA(lo_output) = go_xl8->translatetext( iv_text = pv_text iv_sourcelanguagecode = pv_lang1 iv_targetlanguagecode = pv_lang2 ). out->write( |Source Phrase: { pv_text }| ). out->write( |Target Phrase: { lo_output->get_translatedtext( ) }| ). CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang). out->write( |ERROR - Cannot translate from { lo_lang->sourcelanguagecode } to { lo_lang->targetlanguagecode }| ). CATCH cx_root INTO DATA(lo_root). out->write( |ERROR - { lo_root->get_text( ) }| ). ENDTRY. ENDMETHOD. ENDCLASS.

步驟 7:運行應用程序

如需詳細資訊,請參閱下列索引標籤。

SDK for SAP ABAP

在中執行應用程式SE38。如果成功,以下將是您的輸出。

Source Phrase: Hello, World Target Phrase: Hola, mundo

如果您缺少授權、組態或基礎必要條件,您可能會收到錯誤訊息。請參閱以下範例。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

如果您的 SAP 角色授權您使用 SDK 設定檔並將其對應到邏輯 IAM 角色,而您的 IAM 許可未設定讓 SAP 系統擔任 IAM 角色,則以下內容為您的輸出。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

在此情況下,請檢閱 IAM 角色、使用者或中定義的 IAM 許可和信任組態步驟 1:準備您的 AWS 帳戶

SDK for SAP ABAP - BTP edition

Eclipse > 行方式 > ABAP 應用程序(控制台)上運行應用程序。如果成功,以下將是您的輸出。

Source Phrase: Hello, World Target Phrase: Hola, mundo

如果您缺少授權、組態或基礎必要條件,您可能會收到錯誤訊息。請參閱以下範例。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

如果您的 SAP 角色授權您使用 SDK 設定檔並將其對應到邏輯 IAM 角色,而您的 IAM 許可未設定讓 SAP 系統擔任 IAM 角色,則以下內容為您的輸出。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

在此情況下,請檢閱 IAM 角色、使用者或中定義的 IAM 許可和信任組態步驟 1:準備您的 AWS 帳戶