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

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

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

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

步驟 1:準備您的 AWS 帳戶

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

如果您的SAP系統在 AWS Cloud 上運行,那麼您將在 AWS 帳戶. AWS

IAMSAP使用者的角色

  • 按照《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統正在使用下列其中一項時:

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

      • 來自SAP認證存放區服務的認證 SAPBTP, ABAP 環境

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

    • Amazon EC2-當SAP系統在 Amazon 上EC2並且有實例配置文件時。

如需詳細資訊,請參閱IAM安全性的最佳做法

身分驗證

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

在 AWS 雲端

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

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

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

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

內部部署SAPBTP或其他雲端

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

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

  2. SapDemoSID作為使用者的名稱使IAM用。 SID是您系統的SAP系統 ID。

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

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

注意

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

步驟 2:安裝 SDK

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

SDK for SAP ABAP

匯入SDK以便在您的SAP系統中進行SAPABAP傳輸。您可以將傳輸匯入任何用戶端。如需詳細資訊,請參閱安裝SDK的 SAP ABAP.

SDK for SAP ABAP - BTP edition

使SDK用SAPABAP部署產品應用程式安裝BTP版本。如需詳細資訊,請參閱SDK安裝 SAP ABAP-BTP 版本

步驟 3:設定 SDK

在配置之前SDK,請確定您具有必要的授權。如需詳細資訊,請參閱SAP授權

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

SDK for SAP ABAP

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

完成下列組態。

  • 前往技術先決條件

  • 轉到全局設置配置方案

  • 轉到全局設置技術設置

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

    • 選取「新項目」。

      • 跟踪級別:無跟踪。

      • 最大傾印行數:100

      • OPT-在:enh 遙測:保持這個空白。

    • 選取 Save (儲存)。

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

    • 新案例下,選取DEFAULT

    • 選取確認案例變更

    • 接受提示。

內部部署系統的前提

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

的配置SSF步驟SAPABAP在/AWS1/IMG交易中說明。SDK

注意

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

SDK for SAP ABAP - BTP edition

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

完成下列組態。

步驟 4:功能設定

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

SDK for SAP ABAP

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

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

    • 選取「新項目」。

      • 配置文件DEMO

      • 說明:Demo profile.

      • 選取 Save (儲存)。

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

    • 選取「新項目」。

      • SID:您目前所在SAP系統的系統 ID。

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

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

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

      • 驗證方法:

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

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

          • 選取「設定認證」。

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

    • 停用IAM角色保持空白。

    • 選取 Save (儲存)。

  • 按一下「IAM角色對應」樹狀結構分支。

    • 選取「新項目」。

      • 輸入「序號」:010。

      • 輸入邏輯IAM角色:TESTUSER。

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

SDK for SAP ABAP - BTP edition

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

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

  • 轉到「SDK配置文件」

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

      • 配置文件DEMO

      • 說明:Demo profile.

  • 選取已建立項目旁邊的向右箭頭鍵,以導覽至 [驗證和設定] 索引標籤。

    選取「新項目」。

    • SID:您目前所在SAP系統的系統 ID。

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

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

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

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

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

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

    • 停用IAM角色保持空白。

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

    選取「新項目」。

    • 輸入「序號」:010。

    • 輸入邏輯IAM角色:TESTUSER。

    • 輸入IAM角色 ARN:輸入角色的 arn: aws:,該IAM角色包含在上一個步驟中建立的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

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

      • 訪問配置文件 AWSAPIs:DEMO

      • 邏輯IAM角色:TESTUSER

    • 選取 Save (儲存)。

    • 選取「產生」。

    • 選取 [返回]。

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

將PFCG角色指派給使SAP用者

任何具有指定ZAWS_SDK_DEMO_TESTUSER角色的使用者都將獲得授權,可以使用配置DEMOSDK文件中配置的設置的 AWS SDK功能。授權使用者也會擔任對IAM應至該設定檔中TESTUSER邏輯IAM角色的角色。

  • 執行交易SU01

    • 輸入要測試 AWS SDK功能之SAP使用者的使用者 ID。

    • 選取 [變更]。

    • 移至 [角色] 索引標籤,並將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 (儲存)。

指派給已建立商務角色的任何商務使用者都將獲得授權,可以使用在設定DEMOSDK檔中設定的設定的 AWS SDK功能。授權使用者也會擔任對IAM應至該設定檔中TESTUSER邏輯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.

如需如何撰寫使用的ABAP程式碼的詳細資訊SDK,請參閱使用 適用於 SAP ABAP 的 AWS SDK.

步驟 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 帳戶