Skip to content

/AWS1/IF_CRM=>CREATECOLLABORATION()

About CreateCollaboration

Creates a new collaboration.

Method Signature

METHODS /AWS1/IF_CRM~CREATECOLLABORATION
  IMPORTING
    !IT_MEMBERS TYPE /AWS1/CL_CRMMEMBERSPEC=>TT_MEMBERLIST OPTIONAL
    !IV_NAME TYPE /AWS1/CRMCOLLABORATIONNAME OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/CRMCOLLABORATIONDESC OPTIONAL
    !IT_CREATORMEMBERABILITIES TYPE /AWS1/CL_CRMMEMBERABILITIES_W=>TT_MEMBERABILITIES OPTIONAL
    !IO_CREATORMLMEMBERABILITIES TYPE REF TO /AWS1/CL_CRMMLMEMBERABILITIES OPTIONAL
    !IV_CREATORDISPLAYNAME TYPE /AWS1/CRMDISPLAYNAME OPTIONAL
    !IO_DATAENCRYPTIONMETADATA TYPE REF TO /AWS1/CL_CRMDATAENCMETADATA OPTIONAL
    !IV_QUERYLOGSTATUS TYPE /AWS1/CRMCOLLABORATIONQUERYL00 OPTIONAL
    !IV_JOBLOGSTATUS TYPE /AWS1/CRMCOLLABORATIONJOBLOG00 OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_CRMTAGMAP_W=>TT_TAGMAP OPTIONAL
    !IO_CREATORPAYMENTCONF TYPE REF TO /AWS1/CL_CRMPAYMENTCONF OPTIONAL
    !IV_ANALYTICSENGINE TYPE /AWS1/CRMANALYTICSENGINE OPTIONAL
    !IT_AUTOAPPDCHANGEREQTYPES TYPE /AWS1/CL_CRMAUTOAPPDCHANGETY00=>TT_AUTOAPPROVEDCHANGETYPELIST OPTIONAL
    !IT_ALLOWEDRESULTREGIONS TYPE /AWS1/CL_CRMALWDRESULTRGNS_W=>TT_ALLOWEDRESULTREGIONS OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_crmcrecollaboration01
  RAISING
    /AWS1/CX_CRMACCESSDENIEDEX
    /AWS1/CX_CRMINTERNALSERVEREX
    /AWS1/CX_CRMSERVICEQUOTAEXCDEX
    /AWS1/CX_CRMTHROTTLINGEX
    /AWS1/CX_CRMVALIDATIONEX
    /AWS1/CX_CRMCLIENTEXC
    /AWS1/CX_CRMSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

it_members TYPE /AWS1/CL_CRMMEMBERSPEC=>TT_MEMBERLIST TT_MEMBERLIST

A list of initial members, not including the creator. This list is immutable.

iv_name TYPE /AWS1/CRMCOLLABORATIONNAME /AWS1/CRMCOLLABORATIONNAME

The display name for a collaboration.

iv_description TYPE /AWS1/CRMCOLLABORATIONDESC /AWS1/CRMCOLLABORATIONDESC

A description of the collaboration provided by the collaboration owner.

it_creatormemberabilities TYPE /AWS1/CL_CRMMEMBERABILITIES_W=>TT_MEMBERABILITIES TT_MEMBERABILITIES

The abilities granted to the collaboration creator.

iv_creatordisplayname TYPE /AWS1/CRMDISPLAYNAME /AWS1/CRMDISPLAYNAME

The display name of the collaboration creator.

iv_querylogstatus TYPE /AWS1/CRMCOLLABORATIONQUERYL00 /AWS1/CRMCOLLABORATIONQUERYL00

An indicator as to whether query logging has been enabled or disabled for the collaboration.

When ENABLED, Clean Rooms logs details about queries run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is DISABLED.

Optional arguments:

io_creatormlmemberabilities TYPE REF TO /AWS1/CL_CRMMLMEMBERABILITIES /AWS1/CL_CRMMLMEMBERABILITIES

The ML abilities granted to the collaboration creator.

io_dataencryptionmetadata TYPE REF TO /AWS1/CL_CRMDATAENCMETADATA /AWS1/CL_CRMDATAENCMETADATA

The settings for client-side encryption with Cryptographic Computing for Clean Rooms.

iv_joblogstatus TYPE /AWS1/CRMCOLLABORATIONJOBLOG00 /AWS1/CRMCOLLABORATIONJOBLOG00

Specifies whether job logs are enabled for this collaboration.

When ENABLED, Clean Rooms logs details about jobs run within this collaboration; those logs can be viewed in Amazon CloudWatch Logs. The default value is DISABLED.

it_tags TYPE /AWS1/CL_CRMTAGMAP_W=>TT_TAGMAP TT_TAGMAP

An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.

io_creatorpaymentconf TYPE REF TO /AWS1/CL_CRMPAYMENTCONF /AWS1/CL_CRMPAYMENTCONF

The collaboration creator's payment responsibilities set by the collaboration creator.

If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.

iv_analyticsengine TYPE /AWS1/CRMANALYTICSENGINE /AWS1/CRMANALYTICSENGINE

The analytics engine.

After July 16, 2025, the CLEAN_ROOMS_SQL parameter will no longer be available.

it_autoappdchangereqtypes TYPE /AWS1/CL_CRMAUTOAPPDCHANGETY00=>TT_AUTOAPPROVEDCHANGETYPELIST TT_AUTOAPPROVEDCHANGETYPELIST

The types of change requests that are automatically approved for this collaboration.

it_allowedresultregions TYPE /AWS1/CL_CRMALWDRESULTRGNS_W=>TT_ALLOWEDRESULTREGIONS TT_ALLOWEDRESULTREGIONS

The Amazon Web Services Regions where collaboration query results can be stored. When specified, results can only be written to these Regions. This parameter enables you to meet your compliance and data governance requirements, and implement regional data governance policies.

RETURNING

oo_output TYPE REF TO /aws1/cl_crmcrecollaboration01 /AWS1/CL_CRMCRECOLLABORATION01

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->createcollaboration(
  io_creatormlmemberabilities = new /aws1/cl_crmmlmemberabilities(
    it_custommlmemberabilities = VALUE /aws1/cl_crmcustmlmemberabil00=>tt_custommlmemberabilities(
      ( new /aws1/cl_crmcustmlmemberabil00( |string| ) )
    )
  )
  io_creatorpaymentconf = new /aws1/cl_crmpaymentconf(
    io_jobcompute = new /aws1/cl_crmjobcomputepmntcfg( ABAP_TRUE )
    io_machinelearning = new /aws1/cl_crmmlpaymentconfig(
      io_modelinference = new /aws1/cl_crmmdelinferencepmn00( ABAP_TRUE )
      io_modeltraining = new /aws1/cl_crmmodeltrnpmntconfig( ABAP_TRUE )
    )
    io_querycompute = new /aws1/cl_crmquerycomputepmnt00( ABAP_TRUE )
  )
  io_dataencryptionmetadata = new /aws1/cl_crmdataencmetadata(
    iv_allowcleartext = ABAP_TRUE
    iv_allowduplicates = ABAP_TRUE
    iv_alwjoinsoncolumnswdiffe00 = ABAP_TRUE
    iv_preservenulls = ABAP_TRUE
  )
  it_allowedresultregions = VALUE /aws1/cl_crmalwdresultrgns_w=>tt_allowedresultregions(
    ( new /aws1/cl_crmalwdresultrgns_w( |string| ) )
  )
  it_autoappdchangereqtypes = VALUE /aws1/cl_crmautoappdchangety00=>tt_autoapprovedchangetypelist(
    ( new /aws1/cl_crmautoappdchangety00( |string| ) )
  )
  it_creatormemberabilities = VALUE /aws1/cl_crmmemberabilities_w=>tt_memberabilities(
    ( new /aws1/cl_crmmemberabilities_w( |string| ) )
  )
  it_members = VALUE /aws1/cl_crmmemberspec=>tt_memberlist(
    (
      new /aws1/cl_crmmemberspec(
        io_mlmemberabilities = new /aws1/cl_crmmlmemberabilities(
          it_custommlmemberabilities = VALUE /aws1/cl_crmcustmlmemberabil00=>tt_custommlmemberabilities(
            ( new /aws1/cl_crmcustmlmemberabil00( |string| ) )
          )
        )
        io_paymentconfiguration = new /aws1/cl_crmpaymentconf(
          io_jobcompute = new /aws1/cl_crmjobcomputepmntcfg( ABAP_TRUE )
          io_machinelearning = new /aws1/cl_crmmlpaymentconfig(
            io_modelinference = new /aws1/cl_crmmdelinferencepmn00( ABAP_TRUE )
            io_modeltraining = new /aws1/cl_crmmodeltrnpmntconfig( ABAP_TRUE )
          )
          io_querycompute = new /aws1/cl_crmquerycomputepmnt00( ABAP_TRUE )
        )
        it_memberabilities = VALUE /aws1/cl_crmmemberabilities_w=>tt_memberabilities(
          ( new /aws1/cl_crmmemberabilities_w( |string| ) )
        )
        iv_accountid = |string|
        iv_displayname = |string|
      )
    )
  )
  it_tags = VALUE /aws1/cl_crmtagmap_w=>tt_tagmap(
    (
      VALUE /aws1/cl_crmtagmap_w=>ts_tagmap_maprow(
        key = |string|
        value = new /aws1/cl_crmtagmap_w( |string| )
      )
    )
  )
  iv_analyticsengine = |string|
  iv_creatordisplayname = |string|
  iv_description = |string|
  iv_joblogstatus = |string|
  iv_name = |string|
  iv_querylogstatus = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_collaboration = lo_result->get_collaboration( ).
  IF lo_collaboration IS NOT INITIAL.
    lv_uuid = lo_collaboration->get_id( ).
    lv_collaborationarn = lo_collaboration->get_arn( ).
    lv_collaborationname = lo_collaboration->get_name( ).
    lv_collaborationdescriptio = lo_collaboration->get_description( ).
    lv_accountid = lo_collaboration->get_creatoraccountid( ).
    lv_displayname = lo_collaboration->get_creatordisplayname( ).
    lv_timestamp = lo_collaboration->get_createtime( ).
    lv_timestamp = lo_collaboration->get_updatetime( ).
    lv_memberstatus = lo_collaboration->get_memberstatus( ).
    lv_uuid = lo_collaboration->get_membershipid( ).
    lv_membershiparn = lo_collaboration->get_membershiparn( ).
    lo_dataencryptionmetadata = lo_collaboration->get_dataencryptionmetadata( ).
    IF lo_dataencryptionmetadata IS NOT INITIAL.
      lv_boolean = lo_dataencryptionmetadata->get_allowcleartext( ).
      lv_boolean = lo_dataencryptionmetadata->get_allowduplicates( ).
      lv_boolean = lo_dataencryptionmetadata->get_alwjoinsoncolumnswdiff00( ).
      lv_boolean = lo_dataencryptionmetadata->get_preservenulls( ).
    ENDIF.
    lv_collaborationquerylogst = lo_collaboration->get_querylogstatus( ).
    lv_collaborationjoblogstat = lo_collaboration->get_joblogstatus( ).
    lv_analyticsengine = lo_collaboration->get_analyticsengine( ).
    LOOP AT lo_collaboration->get_autoapprovedchangetypes( ) into lo_row.
      lo_row_1 = lo_row.
      IF lo_row_1 IS NOT INITIAL.
        lv_autoapprovedchangetype = lo_row_1->get_value( ).
      ENDIF.
    ENDLOOP.
    LOOP AT lo_collaboration->get_allowedresultregions( ) into lo_row_2.
      lo_row_3 = lo_row_2.
      IF lo_row_3 IS NOT INITIAL.
        lv_supporteds3region = lo_row_3->get_value( ).
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDIF.