SDK 용 를 사용한 Amazon Translate 예제 SAP ABAP - AWS SDK 코드 예제

AWS 문서 예제 리포지토리에서 더 많은 SDK GitHub AWS SDK 예제를 사용할 수 있습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SDK 용 를 사용한 Amazon Translate 예제 SAP ABAP

다음 코드 예제에서는 SAP ABAP Amazon Translate 에서 for 를 사용하여 작업을 수행하고 일반적인 시나리오를 AWS SDK 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

시나리오는 동일한 서비스 내에서 또는 다른 AWS 서비스와 결합된 상태에서 여러 함수를 호출하여 특정 태스크를 수행하는 방법을 보여주는 코드 예제입니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

작업

다음 코드 예시에서는 DescribeTextTranslationJob을 사용하는 방법을 보여 줍니다.

SDK 에 대한 SAP ABAP
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

"Gets the properties associated with an asynchronous batch translation job." "Includes properties such as name, ID, status, source and target languages, and input/output Amazon Simple Storage Service (Amazon S3) buckets." TRY. oo_result = lo_xl8->describetexttranslationjob( "oo_result is returned for testing purposes." EXPORTING iv_jobid = iv_jobid ). MESSAGE 'Job description retrieved.' TYPE 'I'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred. Retry your request.' TYPE 'E'. CATCH /aws1/cx_xl8resourcenotfoundex . MESSAGE 'The resource you are looking for has not been found.' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex. MESSAGE 'You have made too many requests within a short period of time.' TYPE 'E'. ENDTRY.

다음 코드 예시에서는 ListTextTranslationJobs을 사용하는 방법을 보여 줍니다.

SDK 에 대한 SAP ABAP
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

"Gets a list of the batch translation jobs that you have submitted." DATA lo_filter TYPE REF TO /aws1/cl_xl8textxlationjobfilt. "Create an ABAP object for filtering using jobname." CREATE OBJECT lo_filter EXPORTING iv_jobname = iv_jobname. TRY. oo_result = lo_xl8->listtexttranslationjobs( "oo_result is returned for testing purposes." EXPORTING io_filter = lo_filter ). MESSAGE 'Jobs retrieved.' TYPE 'I'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred. Retry your request.' TYPE 'E'. CATCH /aws1/cx_xl8invalidfilterex . MESSAGE 'The filter specified for the operation is not valid. Specify a different filter.' TYPE 'E'. CATCH /aws1/cx_xl8invalidrequestex . MESSAGE 'The request that you made is not valid.' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex. MESSAGE 'You have made too many requests within a short period of time.' TYPE 'E'. ENDTRY.

다음 코드 예시에서는 StartTextTranslationJob을 사용하는 방법을 보여 줍니다.

SDK 에 대한 SAP ABAP
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

"Starts an asynchronous batch translation job." "Use batch translation jobs to translate large volumes of text across multiple documents at once." DATA lo_inputdataconfig TYPE REF TO /aws1/cl_xl8inputdataconfig. DATA lo_outputdataconfig TYPE REF TO /aws1/cl_xl8outputdataconfig. DATA lt_targetlanguagecodes TYPE /aws1/cl_xl8tgtlanguagecodes00=>tt_targetlanguagecodestrlist. DATA lo_targetlanguagecodes TYPE REF TO /aws1/cl_xl8tgtlanguagecodes00. "Create an ABAP object for the input data config." CREATE OBJECT lo_inputdataconfig EXPORTING iv_s3uri = iv_input_data_s3uri iv_contenttype = iv_input_data_contenttype. "Create an ABAP object for the output data config." CREATE OBJECT lo_outputdataconfig EXPORTING iv_s3uri = iv_output_data_s3uri. "Create an internal table for target languages." CREATE OBJECT lo_targetlanguagecodes EXPORTING iv_value = iv_targetlanguagecode. INSERT lo_targetlanguagecodes INTO TABLE lt_targetlanguagecodes. TRY. oo_result = lo_xl8->starttexttranslationjob( "oo_result is returned for testing purposes." EXPORTING io_inputdataconfig = lo_inputdataconfig io_outputdataconfig = lo_outputdataconfig it_targetlanguagecodes = lt_targetlanguagecodes iv_dataaccessrolearn = iv_dataaccessrolearn iv_jobname = iv_jobname iv_sourcelanguagecode = iv_sourcelanguagecode ). MESSAGE 'Translation job started.' TYPE 'I'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred. Retry your request.' TYPE 'E'. CATCH /aws1/cx_xl8invparamvalueex . MESSAGE 'The value of the parameter is not valid.' TYPE 'E'. CATCH /aws1/cx_xl8invalidrequestex. MESSAGE 'The request that you made is not valid.' TYPE 'E'. CATCH /aws1/cx_xl8resourcenotfoundex . MESSAGE 'The resource you are looking for has not been found.' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex. MESSAGE 'You have made too many requests within a short period of time.' TYPE 'E'. CATCH /aws1/cx_xl8unsuppedlanguage00 . MESSAGE 'Amazon Translate does not support translation from the language of the source text into the requested target language.' TYPE 'E'. ENDTRY.

다음 코드 예시에서는 StopTextTranslationJob을 사용하는 방법을 보여 줍니다.

SDK 에 대한 SAP ABAP
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

"Stops an asynchronous batch translation job that is in progress." TRY. oo_result = lo_xl8->stoptexttranslationjob( "oo_result is returned for testing purposes." EXPORTING iv_jobid = iv_jobid ). MESSAGE 'Translation job stopped.' TYPE 'I'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred.' TYPE 'E'. CATCH /aws1/cx_xl8resourcenotfoundex . MESSAGE 'The resource you are looking for has not been found.' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex. MESSAGE 'You have made too many requests within a short period of time.' TYPE 'E'. ENDTRY.

다음 코드 예시에서는 TranslateText을 사용하는 방법을 보여 줍니다.

SDK 에 대한 SAP ABAP
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

"Translates input text from the source language to the target language." TRY. oo_result = lo_xl8->translatetext( "oo_result is returned for testing purposes." EXPORTING iv_text = iv_text iv_sourcelanguagecode = iv_sourcelanguagecode iv_targetlanguagecode = iv_targetlanguagecode ). MESSAGE 'Translation completed.' TYPE 'I'. CATCH /aws1/cx_xl8detectedlanguage00 . MESSAGE 'The confidence that Amazon Comprehend accurately detected the source language is low.' TYPE 'E'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred.' TYPE 'E'. CATCH /aws1/cx_xl8invalidrequestex . MESSAGE 'The request that you made is not valid.' TYPE 'E'. CATCH /aws1/cx_xl8resourcenotfoundex . MESSAGE 'The resource you are looking for has not been found.' TYPE 'E'. CATCH /aws1/cx_xl8serviceunavailex . MESSAGE 'The Amazon Translate service is temporarily unavailable.' TYPE 'E'. CATCH /aws1/cx_xl8textsizelmtexcdex . MESSAGE 'The size of the text you submitted exceeds the size limit. ' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex . MESSAGE 'You have made too many requests within a short period of time.' TYPE 'E'. CATCH /aws1/cx_xl8unsuppedlanguage00 . MESSAGE 'Amazon Translate does not support translation from the language of the source text into the requested target language. ' TYPE 'E'. ENDTRY.
  • API 자세한 내용은 TranslateTextAWS SDK SAP ABAP API 섹션을 참조하세요.

시나리오

다음 코드 예제에서는 다음과 같은 작업을 수행하는 방법을 보여줍니다.

  • 비동기식 배치 번역 작업을 시작합니다.

  • 비동기 작업이 완료될 때까지 기다립니다.

  • 비동기 작업에 대해 설명합니다.

SDK 에 대한 SAP ABAP
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

DATA lo_inputdataconfig TYPE REF TO /aws1/cl_xl8inputdataconfig. DATA lo_outputdataconfig TYPE REF TO /aws1/cl_xl8outputdataconfig. DATA lt_targetlanguagecodes TYPE /aws1/cl_xl8tgtlanguagecodes00=>tt_targetlanguagecodestrlist. DATA lo_targetlanguagecodes TYPE REF TO /aws1/cl_xl8tgtlanguagecodes00. "Create an ABAP object for the input data config." CREATE OBJECT lo_inputdataconfig EXPORTING iv_s3uri = iv_input_data_s3uri iv_contenttype = iv_input_data_contenttype. "Create an ABAP object for the output data config." CREATE OBJECT lo_outputdataconfig EXPORTING iv_s3uri = iv_output_data_s3uri. "Create an internal table for target languages." CREATE OBJECT lo_targetlanguagecodes EXPORTING iv_value = iv_targetlanguagecode. INSERT lo_targetlanguagecodes INTO TABLE lt_targetlanguagecodes. TRY. DATA(lo_translationjob_result) = lo_xl8->starttexttranslationjob( EXPORTING io_inputdataconfig = lo_inputdataconfig io_outputdataconfig = lo_outputdataconfig it_targetlanguagecodes = lt_targetlanguagecodes iv_dataaccessrolearn = iv_dataaccessrolearn iv_jobname = iv_jobname iv_sourcelanguagecode = iv_sourcelanguagecode ). MESSAGE 'Translation job started.' TYPE 'I'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred. Retry your request.' TYPE 'E'. CATCH /aws1/cx_xl8invparamvalueex . MESSAGE 'The value of the parameter is not valid.' TYPE 'E'. CATCH /aws1/cx_xl8invalidrequestex. MESSAGE 'The request that you made is not valid.' TYPE 'E'. CATCH /aws1/cx_xl8resourcenotfoundex . MESSAGE 'The resource you are looking for has not been found.' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex. MESSAGE 'You have made too many requests within a short period of time. ' TYPE 'E'. CATCH /aws1/cx_xl8unsuppedlanguage00 . MESSAGE 'Amazon Translate does not support translation from the language of the source text into the requested target language.' TYPE 'E'. ENDTRY. "Get the job ID." DATA(lv_jobid) = lo_translationjob_result->get_jobid( ). "Wait for translate job to complete." DATA(lo_des_translation_result) = lo_xl8->describetexttranslationjob( iv_jobid = lv_jobid ). WHILE lo_des_translation_result->get_textxlationjobproperties( )->get_jobstatus( ) <> 'COMPLETED'. IF sy-index = 30. EXIT. "Maximum 900 seconds." ENDIF. WAIT UP TO 30 SECONDS. lo_des_translation_result = lo_xl8->describetexttranslationjob( iv_jobid = lv_jobid ). ENDWHILE. TRY. oo_result = lo_xl8->describetexttranslationjob( "oo_result is returned for testing purposes." EXPORTING iv_jobid = lv_jobid ). MESSAGE 'Job description retrieved.' TYPE 'I'. CATCH /aws1/cx_xl8internalserverex . MESSAGE 'An internal server error occurred. Retry your request.' TYPE 'E'. CATCH /aws1/cx_xl8resourcenotfoundex . MESSAGE 'The resource you are looking for has not been found.' TYPE 'E'. CATCH /aws1/cx_xl8toomanyrequestsex. MESSAGE 'You have made too many requests within a short period of time.' TYPE 'E'. ENDTRY.