本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用 適用於 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 系統位於 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 或其他雲端上,請使用下列步驟建立使用秘密存取金鑰驗證的連線。
-
建立 IAM 使用者。如需詳細資訊,請參閱建立 IAM 使用者 (主控台)。
-
SapDemoSID
做為 IAM 使用者的名稱使用。 SID
是 SAP 系統的系統識別碼。
-
將SapDemoTranslate
角色指派給此使用者。
保留access_key
和secret_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 版本。
如需組態指示,請參閱下列索引標籤。
- SDK for SAP ABAP
-
執行/AWS1/IMG
交易以開啟適用於 SAP ABAP 的 SDK 實作指南。若要執行此交易,請/n/AWS1/IMG
在 SAP 系統的命令列中輸入,然後選擇 [輸入]。
完成下列組態。
-
前往技術先決條件。
-
轉到全局設置 → 配置方案。
-
轉到全局設置 → 技術設置。
-
轉到運行時設置 → 日誌和跟踪。
-
選取「新項目」。
-
跟踪級別:無跟踪。
-
最大傾印行數: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 for SAP ABAP - BTP edition
-
使用 SAP 認證存放區設定驗證。如需詳細資訊,請參閱使用 SAP 認證存放區。
在網頁瀏覽器中開啟 ABAP 環境,然後瀏覽至「自訂商務設定」應用程式。
步驟 5:授權 SAP 使用者
根據預設,SAP 使用者未獲授權使用 AWS 功能。必須使用 SAP 授權明確授權使用者。如需詳細資訊,請參閱下列索引標籤。
- SDK for SAP ABAP
-
建立 PFCG 角色
將 PFCG 角色指派給 SAP 使用者
任何已指派ZAWS_SDK_DEMO_TESTUSER
角色的使用者都將獲得授權,可以使用 AWS SDK 設定檔中設定的設定來使用 DEMO
SDK 功能。授權使用者也會承擔對應至該設定檔中TESTUSER
邏輯 IAM 角色的 IAM 角色。
- SDK for SAP ABAP - BTP edition
-
建立商務角色
-
在 Web 瀏覽器中開啟 ABAP 環境,然後瀏覽至「維護商務角色」應用程式。
-
選取「從範本建立」,然後輸入下列詳細資訊。
-
選取確定以查看商務角色的頁面。
-
在「一般角色詳細資料」標籤下,移至「存取類別」,並將「寫入」、「讀取」、「值說明」欄位設定為「受限
-
選取維護限制,然後展開左側導覽窗格中的「指派的限制類型」。更新「限制與值」區段中的下列欄位。
-
在「選擇 SDK 工作階段」下,選取「SDK 設定檔」旁邊的鉛筆圖示,然後導覽至「範圍」索引標籤。輸入DEMO
,然後選取「新增」。
-
在「選擇邏輯 IAM 角色」下,選取「邏輯 IAM 角色」旁邊的鉛筆圖示,然後導覽至「範圍」索引標籤。輸入TESTUSER
,然後選取「新增」。
選擇 SDK 配置文件旁邊的鉛筆圖標,然後導航到範圍選項卡。輸入DEMO
,然後選取「新增」
-
導覽回「商務角色」範本,然後開啟「商務使用者」標籤。選取新增以將新建立的商務角色指派給要測試 SDK 功能的 SAP 商務使用者。選取 Save (儲存)。
指派給已建立商務角色的任何商務使用者都將獲得授權,可使用 AWS SDK 功能搭配 DEMO
SDK 設定檔中所設定的設定。授權使用者也會承擔對應至該設定檔中TESTUSER
邏輯 IAM 角色的 IAM 角色。
步驟 6:撰寫程式碼
如需詳細資訊,請參閱下列索引標籤。
- SDK for SAP ABAP
-
添加以下代碼。
*&---------------------------------------------------------------------*
*& 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
-
-
右鍵單擊需要創建 ABAP 類的包,然後選擇新建 > ABAP 類。
-
輸入ZCL_DEMO_XL8_SIMPLE
類別名稱,然後加入類別說明。選取下一步。
-
建立或選擇傳輸要求。選取 [完成]。
添加以下代碼。
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 帳戶。