Skip to content

/AWS1/IF_IOX=>STARTDEVICEDISCOVERY()

About StartDeviceDiscovery

This API is used to start device discovery for hub-connected and third-party-connected devices. The authentication material (install code) is passed as a message to the controller telling it to start the discovery.

Method Signature

METHODS /AWS1/IF_IOX~STARTDEVICEDISCOVERY
  IMPORTING
    !IV_DISCOVERYTYPE TYPE /AWS1/IOXDISCOVERYTYPE OPTIONAL
    !IT_CUSTOMPROTOCOLDETAIL TYPE /AWS1/CL_IOXCUSTPROTOCOLDET_W=>TT_CUSTOMPROTOCOLDETAIL OPTIONAL
    !IV_CONTROLLERIDENTIFIER TYPE /AWS1/IOXMANAGEDTHINGID OPTIONAL
    !IV_CONNECTORASSOCIATIONID TYPE /AWS1/IOXCNCTORASSOCIATIONID OPTIONAL
    !IV_ACCOUNTASSOCIATIONID TYPE /AWS1/IOXACCOUNTASSOCIATIONID OPTIONAL
    !IV_AUTHENTICATIONMATERIAL TYPE /AWS1/IOXDISCOVERYAUTHMATERI00 OPTIONAL
    !IV_AUTHNTCTNMATERIALTYPE TYPE /AWS1/IOXDISCOVERYAUTHMATERI01 OPTIONAL
    !IV_CLIENTTOKEN TYPE /AWS1/IOXCLIENTTOKEN OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_IOXTAGSMAP_W=>TT_TAGSMAP OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_ioxstrtdevdiscovery01
  RAISING
    /AWS1/CX_IOXACCESSDENIEDEX
    /AWS1/CX_IOXCONFLICTEXCEPTION
    /AWS1/CX_IOXINTERNALSERVEREX
    /AWS1/CX_IOXRESOURCENOTFOUNDEX
    /AWS1/CX_IOXSERVICEUNAVAILEX
    /AWS1/CX_IOXTHROTTLINGEX
    /AWS1/CX_IOXUNAUTHORIZEDEX
    /AWS1/CX_IOXVALIDATIONEX
    /AWS1/CX_IOXCLIENTEXC
    /AWS1/CX_IOXSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_discoverytype TYPE /AWS1/IOXDISCOVERYTYPE /AWS1/IOXDISCOVERYTYPE

The discovery type supporting the type of device to be discovered in the device discovery task request.

Optional arguments:

it_customprotocoldetail TYPE /AWS1/CL_IOXCUSTPROTOCOLDET_W=>TT_CUSTOMPROTOCOLDETAIL TT_CUSTOMPROTOCOLDETAIL

Additional protocol-specific details required for device discovery, which vary based on the discovery type.

For a DiscoveryType of CUSTOM, the string-to-string map must have a key value of Name set to a non-empty-string.

iv_controlleridentifier TYPE /AWS1/IOXMANAGEDTHINGID /AWS1/IOXMANAGEDTHINGID

The id of the end-user's IoT hub.

iv_connectorassociationid TYPE /AWS1/IOXCNCTORASSOCIATIONID /AWS1/IOXCNCTORASSOCIATIONID

The id of the connector association.

iv_accountassociationid TYPE /AWS1/IOXACCOUNTASSOCIATIONID /AWS1/IOXACCOUNTASSOCIATIONID

The identifier of the cloud-to-cloud account association to use for discovery of third-party devices.

iv_authenticationmaterial TYPE /AWS1/IOXDISCOVERYAUTHMATERI00 /AWS1/IOXDISCOVERYAUTHMATERI00

The authentication material required to start the local device discovery job request.

iv_authntctnmaterialtype TYPE /AWS1/IOXDISCOVERYAUTHMATERI01 /AWS1/IOXDISCOVERYAUTHMATERI01

The type of authentication material used for device discovery jobs.

iv_clienttoken TYPE /AWS1/IOXCLIENTTOKEN /AWS1/IOXCLIENTTOKEN

An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.

it_tags TYPE /AWS1/CL_IOXTAGSMAP_W=>TT_TAGSMAP TT_TAGSMAP

A set of key/value pairs that are used to manage the device discovery request.

RETURNING

oo_output TYPE REF TO /aws1/cl_ioxstrtdevdiscovery01 /AWS1/CL_IOXSTRTDEVDISCOVERY01

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->startdevicediscovery(
  it_customprotocoldetail = VALUE /aws1/cl_ioxcustprotocoldet_w=>tt_customprotocoldetail(
    (
      VALUE /aws1/cl_ioxcustprotocoldet_w=>ts_customprotocoldetail_maprow(
        key = |string|
        value = new /aws1/cl_ioxcustprotocoldet_w( |string| )
      )
    )
  )
  it_tags = VALUE /aws1/cl_ioxtagsmap_w=>tt_tagsmap(
    (
      VALUE /aws1/cl_ioxtagsmap_w=>ts_tagsmap_maprow(
        key = |string|
        value = new /aws1/cl_ioxtagsmap_w( |string| )
      )
    )
  )
  iv_accountassociationid = |string|
  iv_authenticationmaterial = |string|
  iv_authntctnmaterialtype = |string|
  iv_clienttoken = |string|
  iv_connectorassociationid = |string|
  iv_controlleridentifier = |string|
  iv_discoverytype = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_devicediscoveryid = lo_result->get_id( ).
  lv_discoverystartedat = lo_result->get_startedat( ).
ENDIF.