/AWS1/IF_DZN=>CREATERULE()¶
About CreateRule¶
Creates a rule in Amazon DataZone. A rule is a formal agreement that enforces specific requirements across user workflows (e.g., publishing assets to the catalog, requesting subscriptions, creating projects) within the Amazon DataZone data portal. These rules help maintain consistency, ensure compliance, and uphold governance standards in data management processes. For instance, a metadata enforcement rule can specify the required information for creating a subscription request or publishing a data asset to the catalog, ensuring alignment with organizational standards.
Method Signature¶
METHODS /AWS1/IF_DZN~CREATERULE
IMPORTING
!IV_DOMAINIDENTIFIER TYPE /AWS1/DZNDOMAINID OPTIONAL
!IV_NAME TYPE /AWS1/DZNRULENAME OPTIONAL
!IO_TARGET TYPE REF TO /AWS1/CL_DZNRULETARGET OPTIONAL
!IV_ACTION TYPE /AWS1/DZNRULEACTION OPTIONAL
!IO_SCOPE TYPE REF TO /AWS1/CL_DZNRULESCOPE OPTIONAL
!IO_DETAIL TYPE REF TO /AWS1/CL_DZNRULEDETAIL OPTIONAL
!IV_DESCRIPTION TYPE /AWS1/DZNDESCRIPTION OPTIONAL
!IV_CLIENTTOKEN TYPE /AWS1/DZNCLIENTTOKEN OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_dzncreateruleoutput
RAISING
/AWS1/CX_DZNACCESSDENIEDEX
/AWS1/CX_DZNTHROTTLINGEX
/AWS1/CX_DZNUNAUTHORIZEDEX
/AWS1/CX_DZNCONFLICTEXCEPTION
/AWS1/CX_DZNINTERNALSERVEREX
/AWS1/CX_DZNRESOURCENOTFOUNDEX
/AWS1/CX_DZNSERVICEQUOTAEXCDEX
/AWS1/CX_DZNVALIDATIONEX
/AWS1/CX_DZNCLIENTEXC
/AWS1/CX_DZNSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_domainidentifier TYPE /AWS1/DZNDOMAINID /AWS1/DZNDOMAINID¶
The ID of the domain where the rule is created.
iv_name TYPE /AWS1/DZNRULENAME /AWS1/DZNRULENAME¶
The name of the rule.
io_target TYPE REF TO /AWS1/CL_DZNRULETARGET /AWS1/CL_DZNRULETARGET¶
The target of the rule.
iv_action TYPE /AWS1/DZNRULEACTION /AWS1/DZNRULEACTION¶
The action of the rule.
io_scope TYPE REF TO /AWS1/CL_DZNRULESCOPE /AWS1/CL_DZNRULESCOPE¶
The scope of the rule.
io_detail TYPE REF TO /AWS1/CL_DZNRULEDETAIL /AWS1/CL_DZNRULEDETAIL¶
The detail of the rule.
Optional arguments:¶
iv_description TYPE /AWS1/DZNDESCRIPTION /AWS1/DZNDESCRIPTION¶
The description of the rule.
iv_clienttoken TYPE /AWS1/DZNCLIENTTOKEN /AWS1/DZNCLIENTTOKEN¶
A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_dzncreateruleoutput /AWS1/CL_DZNCREATERULEOUTPUT¶
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->createrule(
io_detail = new /aws1/cl_dznruledetail(
io_metformenforcementdetail = new /aws1/cl_dznmetformenforceme00(
it_requiredmetadataforms = VALUE /aws1/cl_dznmetformreference=>tt_requiredmetadataformlist(
(
new /aws1/cl_dznmetformreference(
iv_typeidentifier = |string|
iv_typerevision = |string|
)
)
)
)
)
io_scope = new /aws1/cl_dznrulescope(
io_assettype = new /aws1/cl_dznassettypesforrule(
it_specificassettypes = VALUE /aws1/cl_dznruleasttypelist_w=>tt_ruleassettypelist(
( new /aws1/cl_dznruleasttypelist_w( |string| ) )
)
iv_selectionmode = |string|
)
io_project = new /aws1/cl_dznprojectsforrule(
it_specificprojects = VALUE /aws1/cl_dznruleprojectidlst_w=>tt_ruleprojectidentifierlist(
( new /aws1/cl_dznruleprojectidlst_w( |string| ) )
)
iv_selectionmode = |string|
)
iv_dataproduct = ABAP_TRUE
)
io_target = new /aws1/cl_dznruletarget(
io_domainunittarget = new /aws1/cl_dzndomainunittarget(
iv_domainunitid = |string|
iv_includechilddomainunits = ABAP_TRUE
)
)
iv_action = |string|
iv_clienttoken = |string|
iv_description = |string|
iv_domainidentifier = |string|
iv_name = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_ruleid = lo_result->get_identifier( ).
lv_rulename = lo_result->get_name( ).
lv_ruletype = lo_result->get_ruletype( ).
lo_ruletarget = lo_result->get_target( ).
IF lo_ruletarget IS NOT INITIAL.
lo_domainunittarget = lo_ruletarget->get_domainunittarget( ).
IF lo_domainunittarget IS NOT INITIAL.
lv_domainunitid = lo_domainunittarget->get_domainunitid( ).
lv_boolean = lo_domainunittarget->get_includechilddomainunits( ).
ENDIF.
ENDIF.
lv_ruleaction = lo_result->get_action( ).
lo_rulescope = lo_result->get_scope( ).
IF lo_rulescope IS NOT INITIAL.
lo_assettypesforrule = lo_rulescope->get_assettype( ).
IF lo_assettypesforrule IS NOT INITIAL.
lv_rulescopeselectionmode = lo_assettypesforrule->get_selectionmode( ).
LOOP AT lo_assettypesforrule->get_specificassettypes( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_assettypeidentifier = lo_row_1->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_boolean = lo_rulescope->get_dataproduct( ).
lo_projectsforrule = lo_rulescope->get_project( ).
IF lo_projectsforrule IS NOT INITIAL.
lv_rulescopeselectionmode = lo_projectsforrule->get_selectionmode( ).
LOOP AT lo_projectsforrule->get_specificprojects( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_projectid = lo_row_3->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
lo_ruledetail = lo_result->get_detail( ).
IF lo_ruledetail IS NOT INITIAL.
lo_metadataformenforcement = lo_ruledetail->get_metformenforcementdetail( ).
IF lo_metadataformenforcement IS NOT INITIAL.
LOOP AT lo_metadataformenforcement->get_requiredmetadataforms( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_formtypeidentifier = lo_row_5->get_typeidentifier( ).
lv_revision = lo_row_5->get_typerevision( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
lv_ruletargettype = lo_result->get_targettype( ).
lv_description = lo_result->get_description( ).
lv_createdat = lo_result->get_createdat( ).
lv_createdby = lo_result->get_createdby( ).
ENDIF.