本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用 適用於 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統正在使用下列其中一項時:
-
特定角色 — 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或其他雲端上,請使用下列步驟建立使用秘密存取金鑰驗證的連線。
-
建立 IAM 使用者。如需詳細資訊,請參閱建立IAM使用者 (主控台)。
-
SapDemoSID
作為使用者的名稱使IAM用。 SID
是您系統的SAP系統 ID。
-
將SapDemoTranslate
角色指派給此使用者。
保留access_key
和secret_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 版本。
在配置之前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 for SAP ABAP - BTP edition
-
使用SAP認證存放區設定驗證。如需詳細資訊,請參閱使用SAP認證存放區。
在網頁瀏覽器中開啟您的ABAP環境,然後瀏覽至「自訂商務組態」應用程式。
步驟 5:授權SAP使用者
SAP根據預設,使用者未獲授權使用 AWS 功能。必須使用授權明確SAP授權使用者。如需詳細資訊,請參閱下列索引標籤。
- SDK for SAP ABAP
-
建立PFCG角色
將PFCG角色指派給使SAP用者
任何具有指定ZAWS_SDK_DEMO_TESTUSER
角色的使用者都將獲得授權,可以使用配置DEMO
SDK文件中配置的設置的 AWS SDK功能。授權使用者也會擔任對IAM應至該設定檔中TESTUSER
邏輯IAM角色的角色。
- SDK for SAP ABAP - BTP edition
-
建立商務角色
-
在 Web 瀏覽器中開啟您的ABAP環境,然後導覽至維護商務角色應用程式。
-
選取「從範本建立」,然後輸入下列詳細資訊。
-
選取確定以查看商務角色的頁面。
-
在「一般角色詳細資料」標籤下,移至「存取類別」,並將「寫入」、「讀取」、「值說明」欄位設定為「受限
-
選取維護限制,然後展開左側導覽窗格中的「指派的限制類型」。更新「限制與值」區段中的下列欄位。
-
在「選擇SDK工作階段」下,選取「SDK設定檔」旁邊的鉛筆圖示,然後導覽至「範圍」標籤。輸入DEMO
,然後選取「新增」。
-
在「選擇邏輯IAM角色」下,選取「邏輯IAM角色」旁邊的鉛筆圖示,然後瀏覽至「範圍」索引標籤。輸入TESTUSER
,然後選取「新增」。
選擇旁邊的鉛筆圖標SDK簡介,然後導航到範圍選項卡。輸入DEMO
,然後選取「新增」
-
導覽回「商務角色」範本,然後開啟「商務使用者」標籤。選取新增以將新建立的商務角色指派給將測試SDK功能的SAP商業使用者。選取 Save (儲存)。
指派給已建立商務角色的任何商務使用者都將獲得授權,可以使用在設定DEMO
SDK檔中設定的設定的 AWS SDK功能。授權使用者也會擔任對IAM應至該設定檔中TESTUSER
邏輯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.
如需如何撰寫使用的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 帳戶。