View a markdown version of this page

使用適用於 SAP ABAP 的 SDK 的 Amazon S3 控制範例 - AWS適用於 SAP ABAP 的 SDK

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

使用適用於 SAP ABAP 的 SDK 的 Amazon S3 控制範例

下列程式碼範例示範如何使用適用於 SAP ABAP 的 AWSSDK 搭配 Amazon S3 Control 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始碼的連結,您可在連結中找到如何設定和執行內容中程式碼的相關指示。

主題

動作

以下程式碼範例顯示如何使用 CreateJob

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " iv_manifest_arn = 'arn:aws:s3:::my-bucket/job-manifest.csv' " iv_manifest_etag = 'abc123def456' " iv_report_bucket = 'arn:aws:s3:::my-report-bucket' DATA(lo_result) = lo_s3c->createjob( iv_accountid = iv_account_id iv_rolearn = iv_role_arn iv_confirmationrequired = abap_true iv_priority = 10 iv_description = 'Batch job for tagging objects' io_operation = NEW /aws1/cl_s3cjoboperation( io_s3putobjecttagging = NEW /aws1/cl_s3cs3setobjecttagop( it_tagset = VALUE /aws1/cl_s3cs3tag=>tt_s3tagset( ( NEW /aws1/cl_s3cs3tag( iv_key = 'BatchTag' iv_value = 'BatchValue' ) ) ) ) ) io_manifest = NEW /aws1/cl_s3cjobmanifest( io_spec = NEW /aws1/cl_s3cjobmanifestspec( iv_format = 'S3BatchOperations_CSV_20180820' it_fields = VALUE /aws1/cl_s3cjobmanifestfield00=>tt_jobmanifestfieldlist( ( NEW /aws1/cl_s3cjobmanifestfield00( 'Bucket' ) ) ( NEW /aws1/cl_s3cjobmanifestfield00( 'Key' ) ) ) ) io_location = NEW /aws1/cl_s3cjobmanifestloc( iv_objectarn = iv_manifest_arn iv_etag = iv_manifest_etag ) ) io_report = NEW /aws1/cl_s3cjobreport( iv_bucket = iv_report_bucket iv_format = 'Report_CSV_20180820' iv_enabled = abap_true iv_prefix = 'batch-op-reports' iv_reportscope = 'AllTasks' ) ). ov_job_id = lo_result->get_jobid( ). MESSAGE |S3 Batch Operations job created: { ov_job_id }| TYPE 'I'. CATCH /aws1/cx_s3cbadrequestex INTO DATA(lo_ex_bad). MESSAGE lo_ex_bad->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_bad. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 CreateJob

以下程式碼範例顯示如何使用 DeleteJobTagging

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. lo_s3c->deletejobtagging( iv_accountid = iv_account_id iv_jobid = iv_job_id ). MESSAGE |Tags deleted from job { iv_job_id }| TYPE 'I'. CATCH /aws1/cx_s3cnotfoundexception INTO DATA(lo_ex_nf). MESSAGE lo_ex_nf->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_nf. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 DeleteJobTagging

以下程式碼範例顯示如何使用 DescribeJob

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_s3c->describejob( " oo_result is returned for testing purposes. iv_accountid = iv_account_id iv_jobid = iv_job_id ). DATA(lo_job) = oo_result->get_job( ). DATA(lv_status) = lo_job->get_status( ). DATA(lv_priority) = lo_job->get_priority( ). DATA(lo_progress) = lo_job->get_progresssummary( ). IF lo_progress IS NOT INITIAL. MESSAGE |Job { iv_job_id }: status={ lv_status }, priority={ lv_priority }, | && |total={ lo_progress->get_totalnumberoftasks( ) }, | && |succeeded={ lo_progress->get_numberoftaskssucceeded( ) }, | && |failed={ lo_progress->get_numberoftasksfailed( ) }| TYPE 'I'. ELSE. MESSAGE |Job { iv_job_id }: status={ lv_status }, priority={ lv_priority }| TYPE 'I'. ENDIF. CATCH /aws1/cx_s3cnotfoundexception INTO DATA(lo_ex_nf). MESSAGE lo_ex_nf->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_nf. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 DescribeJob

以下程式碼範例顯示如何使用 GetJobTagging

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_s3c->getjobtagging( " oo_result is returned for testing purposes. iv_accountid = iv_account_id iv_jobid = iv_job_id ). DATA(lt_tags) = oo_result->get_tags( ). MESSAGE |Retrieved { lines( lt_tags ) } tag(s) for job { iv_job_id }| TYPE 'I'. CATCH /aws1/cx_s3cnotfoundexception INTO DATA(lo_ex_nf). MESSAGE lo_ex_nf->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_nf. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 GetJobTagging

以下程式碼範例顯示如何使用 PutJobTagging

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. lo_s3c->putjobtagging( iv_accountid = iv_account_id iv_jobid = iv_job_id it_tags = VALUE /aws1/cl_s3cs3tag=>tt_s3tagset( ( NEW /aws1/cl_s3cs3tag( iv_key = 'Environment' iv_value = 'Development' ) ) ( NEW /aws1/cl_s3cs3tag( iv_key = 'Team' iv_value = 'DataProcessing' ) ) ) ). MESSAGE |Tags added to job { iv_job_id }| TYPE 'I'. CATCH /aws1/cx_s3cnotfoundexception INTO DATA(lo_ex_nf). MESSAGE lo_ex_nf->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_nf. CATCH /aws1/cx_s3ctoomanytagsex INTO DATA(lo_ex_tags). MESSAGE lo_ex_tags->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_tags. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 PutJobTagging

以下程式碼範例顯示如何使用 UpdateJobPriority

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_s3c->updatejobpriority( " oo_result is returned for testing purposes. iv_accountid = iv_account_id iv_jobid = iv_job_id iv_priority = 60 ). MESSAGE |Job { oo_result->get_jobid( ) } priority updated to { oo_result->get_priority( ) }| TYPE 'I'. CATCH /aws1/cx_s3cnotfoundexception INTO DATA(lo_ex_nf). MESSAGE lo_ex_nf->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_nf. CATCH /aws1/cx_s3cbadrequestex INTO DATA(lo_ex_bad). MESSAGE lo_ex_bad->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_bad. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 UpdateJobPriority

以下程式碼範例顯示如何使用 UpdateJobStatus

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " iv_requested_status = 'Cancelled' oo_result = lo_s3c->updatejobstatus( " oo_result is returned for testing purposes. iv_accountid = iv_account_id iv_jobid = iv_job_id iv_requestedjobstatus = iv_requested_status ). MESSAGE |Job { oo_result->get_jobid( ) } status updated to { oo_result->get_status( ) }| TYPE 'I'. CATCH /aws1/cx_s3cjobstatusexception INTO DATA(lo_ex_js). MESSAGE lo_ex_js->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_js. CATCH /aws1/cx_s3cnotfoundexception INTO DATA(lo_ex_nf). MESSAGE lo_ex_nf->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_nf. CATCH /aws1/cx_s3cclientexc INTO DATA(lo_ex_cli). MESSAGE lo_ex_cli->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_cli. CATCH /aws1/cx_s3cserverexc INTO DATA(lo_ex_srv). MESSAGE lo_ex_srv->get_text( ) TYPE 'I'. RAISE EXCEPTION TYPE /aws1/cx_rt_generic EXPORTING previous = lo_ex_srv. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWSSAP ABAP 的 SDK API 參考》中的 UpdateJobStatus