本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用適用於 SAP ABAP 的 SDK 的 Systems Manager 範例
下列程式碼範例示範如何使用適用於 SAP ABAP 的 AWS SDK 搭配 Systems Manager 來執行動作和實作常見案例。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。
每個範例均包含完整原始碼的連結,您可在連結中找到如何設定和執行內容中程式碼的相關指示。
主題
動作
以下程式碼範例顯示如何使用 CreateDocument。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. lo_ssm->createdocument( iv_name = iv_name iv_content = iv_content iv_documenttype = 'Command' ). MESSAGE 'Document created.' TYPE 'I'. CATCH /aws1/cx_ssmdocalreadyexists. MESSAGE 'Document already exists.' TYPE 'I'. CATCH /aws1/cx_ssminvaliddoccontent. MESSAGE 'Invalid document content.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 CreateDocument。
-
以下程式碼範例顯示如何使用 CreateMaintenanceWindow。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. oo_result = lo_ssm->createmaintenancewindow( iv_name = iv_name iv_schedule = iv_schedule iv_duration = iv_duration iv_cutoff = iv_cutoff iv_allowunassociatedtargets = iv_allow_unassociated_targets ). MESSAGE 'Maintenance window created.' TYPE 'I'. CATCH /aws1/cx_ssmresrclimitexcdex. MESSAGE 'Resource limit exceeded.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 CreateMaintenanceWindow。
-
以下程式碼範例顯示如何使用 CreateOpsItem。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. oo_result = lo_ssm->createopsitem( iv_title = iv_title iv_source = iv_source iv_category = iv_category iv_severity = iv_severity iv_description = iv_description ). MESSAGE 'OpsItem created.' TYPE 'I'. CATCH /aws1/cx_ssmopsitemlimitexcdex. MESSAGE 'You have exceeded your open OpsItem limit.' TYPE 'I'. CATCH /aws1/cx_ssmopsitemalrdyexex. MESSAGE 'OpsItem already exists.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 CreateOpsItem。
-
以下程式碼範例顯示如何使用 DeleteDocument。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. lo_ssm->deletedocument( iv_name = iv_name ). MESSAGE 'Document deleted.' TYPE 'I'. CATCH /aws1/cx_ssminvaliddocument. MESSAGE 'Invalid document.' TYPE 'I'. CATCH /aws1/cx_ssmassocdinstances. MESSAGE 'Document has associated instances.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DeleteDocument。
-
以下程式碼範例顯示如何使用 DeleteMaintenanceWindow。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. lo_ssm->deletemaintenancewindow( iv_windowid = iv_window_id ). MESSAGE 'Maintenance window deleted.' TYPE 'I'. CATCH /aws1/cx_ssminternalservererr. MESSAGE 'Internal server error occurred.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DeleteMaintenanceWindow。
-
以下程式碼範例顯示如何使用 DeleteOpsItem。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. lo_ssm->deleteopsitem( iv_opsitemid = iv_ops_item_id ). MESSAGE 'OpsItem deleted.' TYPE 'I'. CATCH /aws1/cx_ssmopsiteminvparamex. MESSAGE 'Invalid OpsItem parameter.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DeleteOpsItem。
-
以下程式碼範例顯示如何使用 DescribeDocument。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. DATA(lo_result) = lo_ssm->describedocument( iv_name = iv_name ). DATA(lo_document) = lo_result->get_document( ). IF lo_document IS BOUND. rv_status = lo_document->get_status( ). MESSAGE |Document status: { rv_status }| TYPE 'I'. ENDIF. CATCH /aws1/cx_ssminvaliddocument. MESSAGE 'Invalid document.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DescribeDocument。
-
以下程式碼範例顯示如何使用 DescribeOpsItems。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. " Create filter for OpsItem ID DATA(lt_filters) = VALUE /aws1/cl_ssmopsitemfilter=>tt_opsitemfilters( ( NEW /aws1/cl_ssmopsitemfilter( iv_key = 'OpsItemId' it_values = VALUE /aws1/cl_ssmopsitemfiltvals_w=>tt_opsitemfiltervalues( ( NEW /aws1/cl_ssmopsitemfiltvals_w( iv_value = iv_ops_item_id ) ) ) iv_operator = 'Equal' ) ) ). " Use paginator to get all results DATA(lo_paginator) = lo_ssm->get_paginator( ). DATA(lo_iterator) = lo_paginator->describeopsitems( it_opsitemfilters = lt_filters ). rv_found = abap_false. WHILE lo_iterator->has_next( ). DATA(lo_result) = CAST /aws1/cl_ssmdescropsitemsrsp( lo_iterator->get_next( ) ). LOOP AT lo_result->get_opsitemsummaries( ) INTO DATA(lo_item). DATA(lv_title) = lo_item->get_title( ). DATA(lv_status) = lo_item->get_status( ). MESSAGE |The OpsItem title is { lv_title } and the status is { lv_status }| TYPE 'I'. rv_found = abap_true. ENDLOOP. ENDWHILE. CATCH /aws1/cx_ssminternalservererr. MESSAGE 'Internal server error occurred.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DescribeOpsItems。
-
以下程式碼範例顯示如何使用 ListCommandInvocations。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. " Use paginator to get all results DATA(lo_paginator) = lo_ssm->get_paginator( ). DATA(lo_iterator) = lo_paginator->listcommandinvocations( iv_instanceid = iv_instance_id ). DATA lv_count TYPE i VALUE 0. WHILE lo_iterator->has_next( ). DATA(lo_result) = CAST /aws1/cl_ssmlistcmdinvcsresult( lo_iterator->get_next( ) ). LOOP AT lo_result->get_commandinvocations( ) INTO DATA(lo_invocation). lv_count = lv_count + 1. DATA(lv_requested_datetime) = lo_invocation->get_requesteddatetime( ). MESSAGE |Command invocation requested at: { lv_requested_datetime }| TYPE 'I'. ENDLOOP. ENDWHILE. MESSAGE |{ lv_count } command invocation(s) found for instance { iv_instance_id }.| TYPE 'I'. CATCH /aws1/cx_ssminvalidinstanceid. MESSAGE 'Invalid instance ID.' TYPE 'I'. CATCH /aws1/cx_ssminvalidcommandid. MESSAGE 'Invalid command ID.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 ListCommandInvocations。
-
以下程式碼範例顯示如何使用 SendCommand。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. DATA(lo_result) = lo_ssm->sendcommand( it_instanceids = it_instance_ids iv_documentname = iv_document_name iv_timeoutseconds = 3600 ). DATA(lo_command) = lo_result->get_command( ). IF lo_command IS BOUND. rv_command_id = lo_command->get_commandid( ). MESSAGE 'Command sent successfully.' TYPE 'I'. ENDIF. CATCH /aws1/cx_ssminvaliddocument. MESSAGE 'Invalid document.' TYPE 'I'. CATCH /aws1/cx_ssminvalidinstanceid. MESSAGE 'Invalid instance ID.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 SendCommand。
-
以下程式碼範例顯示如何使用 UpdateMaintenanceWindow。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. lo_ssm->updatemaintenancewindow( iv_windowid = iv_window_id iv_name = iv_name iv_enabled = iv_enabled iv_schedule = iv_schedule iv_duration = iv_duration iv_cutoff = iv_cutoff iv_allowunassociatedtargets = iv_allow_unassociated_targets ). MESSAGE 'Maintenance window updated.' TYPE 'I'. CATCH /aws1/cx_ssmdoesnotexistex. MESSAGE 'Maintenance window does not exist.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 UpdateMaintenanceWindow。
-
以下程式碼範例顯示如何使用 UpdateOpsItem。
- 適用於 SAP ABAP 的開發套件
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 TRY. lo_ssm->updateopsitem( iv_opsitemid = iv_ops_item_id iv_title = iv_title iv_description = iv_description iv_status = iv_status ). MESSAGE 'OpsItem updated.' TYPE 'I'. CATCH /aws1/cx_ssmopsitemnotfoundex. MESSAGE 'OpsItem not found.' TYPE 'I'. CATCH /aws1/cx_ssmopsiteminvparamex. MESSAGE 'Invalid OpsItem parameter.' TYPE 'I'. ENDTRY.-
如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 UpdateOpsItem。
-