Skip to content

/AWS1/IF_KFK=>CREATECHANNEL()

About CreateChannel

Creates a Channel that streams records from an Amazon MSK Express cluster topic to Amazon S3 or Apache Iceberg.

Method Signature

METHODS /AWS1/IF_KFK~CREATECHANNEL
  IMPORTING
    !IV_CHANNELNAME TYPE /AWS1/KFK__STRING OPTIONAL
    !IV_CLUSTERARN TYPE /AWS1/KFK__STRING OPTIONAL
    !IO_ENCRYPTIONCONFIGURATION TYPE REF TO /AWS1/CL_KFKENCRYPTIONCONF OPTIONAL
    !IO_ICEBERGDESTINATIONCONF TYPE REF TO /AWS1/CL_KFKICEBERGDSTCONF OPTIONAL
    !IO_S3DESTINATIONCONF TYPE REF TO /AWS1/CL_KFKS3DESTINATIONCONF OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_KFK__MAPOF__STRING_W=>TT___MAPOF__STRING OPTIONAL
    !IT_TOPICCONFIGURATIONLIST TYPE /AWS1/CL_KFKTOPICCONFIGURATION=>TT___LISTOFTOPICCONFIGURATION OPTIONAL
    !IO_LOGGINGINFO TYPE REF TO /AWS1/CL_KFKCHANNELLOGGINGINFO OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_kfkcreatechannelrsp
  RAISING
    /AWS1/CX_KFKBADREQUESTEX
    /AWS1/CX_KFKCONFLICTEXCEPTION
    /AWS1/CX_KFKFORBIDDENEXCEPTION
    /AWS1/CX_KFKINTERNALSERVERER00
    /AWS1/CX_KFKNOTFOUNDEXCEPTION
    /AWS1/CX_KFKSERVICEUNAVAILEX
    /AWS1/CX_KFKTOOMANYREQUESTSEX
    /AWS1/CX_KFKUNAUTHORIZEDEX
    /AWS1/CX_KFKCLIENTEXC
    /AWS1/CX_KFKSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_channelname TYPE /AWS1/KFK__STRING /AWS1/KFK__STRING

The name of the channel. Must be unique within the cluster.

iv_clusterarn TYPE /AWS1/KFK__STRING /AWS1/KFK__STRING

The Amazon Resource Name (ARN) that uniquely identifies the cluster.

it_topicconfigurationlist TYPE /AWS1/CL_KFKTOPICCONFIGURATION=>TT___LISTOFTOPICCONFIGURATION TT___LISTOFTOPICCONFIGURATION

The list of topic configurations for the channel. Currently exactly one topic must be specified.

Optional arguments:

io_encryptionconfiguration TYPE REF TO /AWS1/CL_KFKENCRYPTIONCONF /AWS1/CL_KFKENCRYPTIONCONF

The encryption configuration applied to the channel.

io_icebergdestinationconf TYPE REF TO /AWS1/CL_KFKICEBERGDSTCONF /AWS1/CL_KFKICEBERGDSTCONF

The Apache Iceberg destination for the channel. Mutually exclusive with s3DestinationConfiguration.

io_s3destinationconf TYPE REF TO /AWS1/CL_KFKS3DESTINATIONCONF /AWS1/CL_KFKS3DESTINATIONCONF

The Amazon S3 destination for the channel. Mutually exclusive with icebergDestinationConfiguration.

it_tags TYPE /AWS1/CL_KFK__MAPOF__STRING_W=>TT___MAPOF__STRING TT___MAPOF__STRING

The tags attached to the channel.

io_logginginfo TYPE REF TO /AWS1/CL_KFKCHANNELLOGGINGINFO /AWS1/CL_KFKCHANNELLOGGINGINFO

The destinations to which the channel publishes operational logs.

RETURNING

oo_output TYPE REF TO /aws1/cl_kfkcreatechannelrsp /AWS1/CL_KFKCREATECHANNELRSP

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->createchannel(
  io_encryptionconfiguration = new /aws1/cl_kfkencryptionconf( |string| )
  io_icebergdestinationconf = new /aws1/cl_kfkicebergdstconf(
    io_catalog = new /aws1/cl_kfkcatalog(
      iv_catalogarn = |string|
      iv_warehouselocation = |string|
    )
    io_deadletterqueues3 = new /aws1/cl_kfkdeadletterqueues3(
      iv_bucketarn = |string|
      iv_erroroutputprefix = |string|
      iv_expectedbucketowner = |string|
    )
    io_schemaevolution = new /aws1/cl_kfkschemaevolution( ABAP_TRUE )
    io_tablecreation = new /aws1/cl_kfktablecreation( ABAP_TRUE )
    it_destinationtablelist = VALUE /aws1/cl_kfkdestinationtable=>tt___listofdestinationtable(
      (
        new /aws1/cl_kfkdestinationtable(
          io_partitionspec = new /aws1/cl_kfkpartitionspec(
            it_sourcelist = VALUE /aws1/cl_kfkpartitionsource=>tt___listofpartitionsource(
              ( new /aws1/cl_kfkpartitionsource( |string| ) )
            )
            iv_partitionstrategy = |string|
          )
          iv_destinationdatabasename = |string|
          iv_destinationtablename = |string|
        )
      )
    )
    iv_appendonly = ABAP_TRUE
    iv_compressiontype = |string|
    iv_datafreshnessinseconds = 123
    iv_serviceexecutionrolearn = |string|
  )
  io_logginginfo = new /aws1/cl_kfkchannellogginginfo(
    io_cloudwatchlogs = new /aws1/cl_kfkcloudwatchlogs(
      iv_enabled = ABAP_TRUE
      iv_loggroup = |string|
    )
    io_firehose = new /aws1/cl_kfkfirehose(
      iv_deliverystream = |string|
      iv_enabled = ABAP_TRUE
    )
    io_s3 = new /aws1/cl_kfks3(
      iv_bucket = |string|
      iv_enabled = ABAP_TRUE
      iv_prefix = |string|
    )
  )
  io_s3destinationconf = new /aws1/cl_kfks3destinationconf(
    io_deadletterqueues3 = new /aws1/cl_kfkdeadletterqueues3(
      iv_bucketarn = |string|
      iv_erroroutputprefix = |string|
      iv_expectedbucketowner = |string|
    )
    io_storage = new /aws1/cl_kfks3storage(
      iv_bucketarn = |string|
      iv_compressiontype = |string|
      iv_expectedbucketowner = |string|
      iv_outputkeytemplate = |string|
      iv_outputprefix = |string|
      iv_storageclass = |string|
    )
    iv_datafreshnessinseconds = 123
    iv_serviceexecutionrolearn = |string|
  )
  it_tags = VALUE /aws1/cl_kfk__mapof__string_w=>tt___mapof__string(
    (
      VALUE /aws1/cl_kfk__mapof__string_w=>ts___mapof__string_maprow(
        key = |string|
        value = new /aws1/cl_kfk__mapof__string_w( |string| )
      )
    )
  )
  it_topicconfigurationlist = VALUE /aws1/cl_kfktopicconfiguration=>tt___listoftopicconfiguration(
    (
      new /aws1/cl_kfktopicconfiguration(
        io_recordconverter = new /aws1/cl_kfkrecordconverter( |string| )
        io_recordschema = new /aws1/cl_kfkrecordschema( |string| )
        iv_topicarn = |string|
      )
    )
  )
  iv_channelname = |string|
  iv_clusterarn = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv___string = lo_result->get_channelarn( ).
  lv___string = lo_result->get_clusteroperationarn( ).
ENDIF.