Get started with Amazon Translate jobs using an AWS SDK - Amazon Translate

Get started with Amazon Translate jobs using an AWS SDK

The following code example shows how to:

  • Start an asynchronous batch translation job.

  • Wait for the asynchronous job to complete.

  • Describe the asynchronous job.

SAP ABAP
SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

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.

For a complete list of AWS SDK developer guides and code examples, see Using this service with an AWS SDK. This topic also includes information about getting started and details about previous SDK versions.