View a markdown version of this page

AWS IoTejemplos de uso del SDK para SAP ABAP - AWSSDK para SAP ABAP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS IoTejemplos de uso del SDK para SAP ABAP

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar escenarios comunes mediante el uso del AWS SDK para SAP ABAP con. AWS IoT

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar AttachThingPrincipal.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. lo_iot->attachthingprincipal( iv_thingname = iv_thing_name iv_principal = iv_principal ). MESSAGE |Principal attached to IoT thing '{ iv_thing_name }'.| TYPE 'I'. CATCH /aws1/cx_iotresourcenotfoundex INTO DATA(lo_ex). MESSAGE |Resource not found when attaching principal to '{ iv_thing_name }'.| TYPE 'I'. RAISE EXCEPTION lo_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_svc_ex). MESSAGE lo_svc_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_svc_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte AttachThingPrincipalla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar CreateKeysAndCertificate.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. oo_result = lo_iot->createkeysandcertificate( iv_setasactive = abap_true ). MESSAGE |Certificate created: { oo_result->get_certificateid( ) }| TYPE 'I'. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte CreateKeysAndCertificatela referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar CreateThing.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. oo_result = lo_iot->creatething( iv_thingname = iv_thing_name ). MESSAGE |IoT thing created: { oo_result->get_thingname( ) } ARN: { oo_result->get_thingarn( ) }| TYPE 'I'. CATCH /aws1/cx_iotresrcalrdyexistsex. MESSAGE |IoT thing '{ iv_thing_name }' already exists.| TYPE 'I'. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte CreateThingla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar CreateTopicRule.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. " Build the SNS action that will receive messages matching the rule. DATA lo_sns_action TYPE REF TO /aws1/cl_iotsnsaction. CREATE OBJECT lo_sns_action EXPORTING iv_targetarn = iv_sns_action_arn iv_rolearn = iv_role_arn. DATA lo_action TYPE REF TO /aws1/cl_iotaction. CREATE OBJECT lo_action EXPORTING io_sns = lo_sns_action. DATA lt_actions TYPE /aws1/cl_iotaction=>tt_actionlist. APPEND lo_action TO lt_actions. " iv_topic = 'my/iot/topic' - The MQTT topic pattern to match DATA lo_payload TYPE REF TO /aws1/cl_iottopicrulepayload. CREATE OBJECT lo_payload EXPORTING iv_sql = |SELECT * FROM '{ iv_topic }'| it_actions = lt_actions. lo_iot->createtopicrule( iv_rulename = iv_rule_name io_topicrulepayload = lo_payload ). MESSAGE |IoT topic rule created: { iv_rule_name }| TYPE 'I'. CATCH /aws1/cx_iotresrcalrdyexistsex. MESSAGE |Topic rule '{ iv_rule_name }' already exists.| TYPE 'I'. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte CreateTopicRulela referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar DeleteCertificate.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. " Certificates must be deactivated before they can be deleted. lo_iot->updatecertificate( iv_certificateid = iv_certificate_id iv_newstatus = 'INACTIVE' ). lo_iot->deletecertificate( iv_certificateid = iv_certificate_id ). MESSAGE |Certificate deleted: { iv_certificate_id }| TYPE 'I'. CATCH /aws1/cx_iotresourcenotfoundex INTO DATA(lo_ex). MESSAGE |Certificate '{ iv_certificate_id }' not found.| TYPE 'I'. RAISE EXCEPTION lo_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_svc_ex). MESSAGE lo_svc_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_svc_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte DeleteCertificatela referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar DeleteThing.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. lo_iot->deletething( iv_thingname = iv_thing_name ). MESSAGE |IoT thing deleted: { iv_thing_name }| TYPE 'I'. CATCH /aws1/cx_iotresourcenotfoundex INTO DATA(lo_ex). MESSAGE |IoT thing '{ iv_thing_name }' not found.| TYPE 'I'. RAISE EXCEPTION lo_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_svc_ex). MESSAGE lo_svc_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_svc_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte DeleteThingla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar DeleteTopicRule.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. lo_iot->deletetopicrule( iv_rulename = iv_rule_name ). MESSAGE |IoT topic rule deleted: { iv_rule_name }| TYPE 'I'. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte DeleteTopicRulela referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar DescribeEndpoint.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). " iv_endpoint_type = 'iot:Data-ATS' - Endpoint type for data operations TRY. DATA(lo_result) = lo_iot->describeendpoint( iv_endpointtype = iv_endpoint_type ). ov_endpoint_address = lo_result->get_endpointaddress( ). MESSAGE |Endpoint address: { ov_endpoint_address }| TYPE 'I'. CATCH /aws1/cx_iotthrottlingex INTO DATA(lo_throttle_ex). MESSAGE 'Request throttled. Please try again later.' TYPE 'I'. RAISE EXCEPTION lo_throttle_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte DescribeEndpointla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar DetachThingPrincipal.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. lo_iot->detachthingprincipal( iv_thingname = iv_thing_name iv_principal = iv_principal ). MESSAGE |Principal detached from IoT thing '{ iv_thing_name }'.| TYPE 'I'. CATCH /aws1/cx_iotresourcenotfoundex INTO DATA(lo_ex). MESSAGE |Resource not found when detaching principal from '{ iv_thing_name }'.| TYPE 'I'. RAISE EXCEPTION lo_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_svc_ex). MESSAGE lo_svc_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_svc_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte DetachThingPrincipalla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar ListCertificates.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. " Collect all certificates by following the pagination marker. DATA lv_marker TYPE /aws1/iotmarker. DATA lv_count TYPE i. DO. oo_result = lo_iot->listcertificates( iv_marker = lv_marker ). lv_count = lv_count + lines( oo_result->get_certificates( ) ). lv_marker = oo_result->get_nextmarker( ). IF lv_marker IS INITIAL. EXIT. ENDIF. ENDDO. MESSAGE |Retrieved { lv_count } IoT certificates.| TYPE 'I'. CATCH /aws1/cx_iotthrottlingex INTO DATA(lo_throttle_ex). MESSAGE 'Request throttled. Please try again later.' TYPE 'I'. RAISE EXCEPTION lo_throttle_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte ListCertificatesla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar ListThings.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. " Collect all things by following the pagination token. DATA lv_nexttoken TYPE /aws1/iotnexttoken. DATA lv_count TYPE i. DO. oo_result = lo_iot->listthings( iv_nexttoken = lv_nexttoken ). lv_count = lv_count + lines( oo_result->get_things( ) ). lv_nexttoken = oo_result->get_nexttoken( ). IF lv_nexttoken IS INITIAL. EXIT. ENDIF. ENDDO. MESSAGE |Retrieved { lv_count } IoT things.| TYPE 'I'. CATCH /aws1/cx_iotthrottlingex INTO DATA(lo_throttle_ex). MESSAGE 'Request throttled. Please try again later.' TYPE 'I'. RAISE EXCEPTION lo_throttle_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte ListThingsla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar SearchIndex.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). " iv_query_string = 'thingName:MyThing*' - Fleet indexing query string TRY. oo_result = lo_iot->searchindex( iv_querystring = iv_query_string ). MESSAGE |Found { lines( oo_result->get_things( ) ) } IoT things matching query.| TYPE 'I'. CATCH /aws1/cx_iotindexnotreadyex INTO DATA(lo_idx_ex). MESSAGE 'Fleet indexing is not ready. Enable indexing with UpdateIndexingConfiguration first.' TYPE 'I'. RAISE EXCEPTION lo_idx_ex. CATCH /aws1/cx_iotthrottlingex INTO DATA(lo_throttle_ex). MESSAGE 'Request throttled. Please try again later.' TYPE 'I'. RAISE EXCEPTION lo_throttle_ex. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte SearchIndexla referencia sobre la API ABAP del AWS SDK para SAP.

En el siguiente ejemplo de código, se muestra cómo utilizar UpdateIndexingConfiguration.

SDK para SAP ABAP
nota

Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_iot) = /aws1/cl_iot_factory=>create( lo_session ). TRY. DATA lo_idx_conf TYPE REF TO /aws1/cl_iotthingindexingconf. CREATE OBJECT lo_idx_conf EXPORTING iv_thingindexingmode = 'REGISTRY'. lo_iot->updateindexingconfiguration( io_thingindexingconf = lo_idx_conf ). MESSAGE 'IoT thing indexing configuration updated to REGISTRY mode.' TYPE 'I'. CATCH /aws1/cx_rt_service_generic INTO DATA(lo_ex). MESSAGE lo_ex->get_text( ) TYPE 'I'. RAISE EXCEPTION lo_ex. ENDTRY.
  • Para obtener más información sobre la API, consulte UpdateIndexingConfigurationla referencia sobre la API ABAP del AWS SDK para SAP.