/AWS1/IF_APC=>STARTEXPERIMENTRUN()¶
About StartExperimentRun¶
Starts an experiment run for the specified experiment definition. An experiment run delivers treatments to the target audience and collects metrics. You can start multiple experiment runs from the same experiment definition.
Method Signature¶
METHODS /AWS1/IF_APC~STARTEXPERIMENTRUN
IMPORTING
!IV_APPLICATIONIDENTIFIER TYPE /AWS1/APCIDENTIFIER OPTIONAL
!IV_EXPERIMENTDEFINITIONID TYPE /AWS1/APCIDENTIFIER OPTIONAL
!IV_DESCRIPTION TYPE /AWS1/APCDESCRIPTION OPTIONAL
!IV_EXPOSUREPERCENTAGE TYPE /AWS1/RT_FLOAT_AS_STRING OPTIONAL
!IO_TREATMENTOVERRIDES TYPE REF TO /AWS1/CL_APCTREATMENTOVERRIDES OPTIONAL
!IT_TAGS TYPE /AWS1/CL_APCTAGMAP_W=>TT_TAGMAP OPTIONAL
!IO_DEPLOYMENTPARAMETERS TYPE REF TO /AWS1/CL_APCDEPLOYPARAMETERS OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_apcexperimentrun
RAISING
/AWS1/CX_APCBADREQUESTEX
/AWS1/CX_APCCONFLICTEXCEPTION
/AWS1/CX_APCINTERNALSERVEREX
/AWS1/CX_APCRESOURCENOTFOUNDEX
/AWS1/CX_APCCLIENTEXC
/AWS1/CX_APCSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_applicationidentifier TYPE /AWS1/APCIDENTIFIER /AWS1/APCIDENTIFIER¶
The application ID or name.
iv_experimentdefinitionid TYPE /AWS1/APCIDENTIFIER /AWS1/APCIDENTIFIER¶
The experiment definition ID or name.
Optional arguments:¶
iv_description TYPE /AWS1/APCDESCRIPTION /AWS1/APCDESCRIPTION¶
A description of this experiment run.
iv_exposurepercentage TYPE /AWS1/RT_FLOAT_AS_STRING /AWS1/RT_FLOAT_AS_STRING¶
The percentage of the target audience to expose to treatments. Set to 0 to validate the experiment before exposing production users.
io_treatmentoverrides TYPE REF TO /AWS1/CL_APCTREATMENTOVERRIDES /AWS1/CL_APCTREATMENTOVERRIDES¶
Treatment assignment overrides that assign specific entity IDs to treatments directly, bypassing random assignment.
it_tags TYPE /AWS1/CL_APCTAGMAP_W=>TT_TAGMAP TT_TAGMAP¶
The tags to assign to the experiment run.
io_deploymentparameters TYPE REF TO /AWS1/CL_APCDEPLOYPARAMETERS /AWS1/CL_APCDEPLOYPARAMETERS¶
Optional deployment parameters including a KMS key for encryption.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_apcexperimentrun /AWS1/CL_APCEXPERIMENTRUN¶
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->startexperimentrun(
io_deploymentparameters = new /aws1/cl_apcdeployparameters(
it_dynamicextensionparams = VALUE /aws1/cl_apcdynamicparammap_w=>tt_dynamicparametermap(
(
VALUE /aws1/cl_apcdynamicparammap_w=>ts_dynamicparametermap_maprow(
key = |string|
value = new /aws1/cl_apcdynamicparammap_w( |string| )
)
)
)
it_tags = VALUE /aws1/cl_apctagmap_w=>tt_tagmap(
(
VALUE /aws1/cl_apctagmap_w=>ts_tagmap_maprow(
key = |string|
value = new /aws1/cl_apctagmap_w( |string| )
)
)
)
)
io_treatmentoverrides = new /aws1/cl_apctreatmentoverrides(
it_inline = VALUE /aws1/cl_apctreatmentovrdmap_w=>tt_treatmentoverridemap(
(
VALUE /aws1/cl_apctreatmentovrdmap_w=>ts_treatmentoverridemap_maprow(
key = |string|
value = new /aws1/cl_apctreatmentovrdmap_w( |string| )
)
)
)
)
it_tags = VALUE /aws1/cl_apctagmap_w=>tt_tagmap(
(
VALUE /aws1/cl_apctagmap_w=>ts_tagmap_maprow(
key = |string|
value = new /aws1/cl_apctagmap_w( |string| )
)
)
)
iv_applicationidentifier = |string|
iv_description = |string|
iv_experimentdefinitionid = |string|
iv_exposurepercentage = |0.1|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_id = lo_result->get_applicationid( ).
lv_id = lo_result->get_experimentdefinitionid00( ).
lv_integer = lo_result->get_run( ).
lv_description = lo_result->get_description( ).
lv_experimentrunstatus = lo_result->get_status( ).
lv_nullablepercentage = lo_result->get_exposurepercentage( ).
lo_treatmentoverrides = lo_result->get_treatmentoverrides( ).
IF lo_treatmentoverrides IS NOT INITIAL.
LOOP AT lo_treatmentoverrides->get_inline( ) into ls_row.
lv_key = ls_row-key.
lo_value = ls_row-value.
IF lo_value IS NOT INITIAL.
lv_treatmentkey = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lo_experimentrunresult = lo_result->get_result( ).
IF lo_experimentrunresult IS NOT INITIAL.
lv_description = lo_experimentrunresult->get_executivesummary( ).
lv_description = lo_experimentrunresult->get_reasonstolaunch( ).
lv_description = lo_experimentrunresult->get_reasonsnottolaunch( ).
ENDIF.
lv_iso8601datetime = lo_result->get_startedat( ).
lv_iso8601datetime = lo_result->get_updatedat( ).
lv_iso8601datetime = lo_result->get_endedat( ).
lo_experimentdefinitionsna = lo_result->get_experimentdefnsnapshot( ).
IF lo_experimentdefinitionsna IS NOT INITIAL.
lv_id = lo_experimentdefinitionsna->get_applicationid( ).
lv_id = lo_experimentdefinitionsna->get_id( ).
lv_name = lo_experimentdefinitionsna->get_name( ).
lv_description = lo_experimentdefinitionsna->get_hypothesis( ).
lv_id = lo_experimentdefinitionsna->get_configurationprofileid( ).
lv_id = lo_experimentdefinitionsna->get_environmentid( ).
lv_flagkey = lo_experimentdefinitionsna->get_flagkey( ).
lv_rule = lo_experimentdefinitionsna->get_audiencerule( ).
lv_description = lo_experimentdefinitionsna->get_audiencedescription( ).
lv_description = lo_experimentdefinitionsna->get_launchcriteria( ).
LOOP AT lo_experimentdefinitionsna->get_treatments( ) into lo_row_1.
lo_row_2 = lo_row_1.
IF lo_row_2 IS NOT INITIAL.
lv_treatmentkey = lo_row_2->get_key( ).
lv_weight = lo_row_2->get_weight( ).
lv_description = lo_row_2->get_description( ).
lo_flagvalue = lo_row_2->get_flagvalue( ).
IF lo_flagvalue IS NOT INITIAL.
lv_boolean = lo_flagvalue->get_enabled( ).
LOOP AT lo_flagvalue->get_attributevalues( ) into ls_row_3.
lv_key_1 = ls_row_3-key.
lo_value_1 = ls_row_3-value.
IF lo_value_1 IS NOT INITIAL.
lv_attributestring = lo_value_1->get_stringvalue( ).
lv_double = lo_value_1->get_numbervalue( ).
lv_boolean = lo_value_1->get_booleanvalue( ).
LOOP AT lo_value_1->get_stringarray( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_attributestring = lo_row_5->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_value_1->get_numberarray( ) into lo_row_6.
lo_row_7 = lo_row_6.
IF lo_row_7 IS NOT INITIAL.
lv_double = lo_row_7->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
lo_treatment = lo_experimentdefinitionsna->get_control( ).
IF lo_treatment IS NOT INITIAL.
lv_treatmentkey = lo_treatment->get_key( ).
lv_weight = lo_treatment->get_weight( ).
lv_description = lo_treatment->get_description( ).
lo_flagvalue = lo_treatment->get_flagvalue( ).
IF lo_flagvalue IS NOT INITIAL.
lv_boolean = lo_flagvalue->get_enabled( ).
LOOP AT lo_flagvalue->get_attributevalues( ) into ls_row_3.
lv_key_1 = ls_row_3-key.
lo_value_1 = ls_row_3-value.
IF lo_value_1 IS NOT INITIAL.
lv_attributestring = lo_value_1->get_stringvalue( ).
lv_double = lo_value_1->get_numbervalue( ).
lv_boolean = lo_value_1->get_booleanvalue( ).
LOOP AT lo_value_1->get_stringarray( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_attributestring = lo_row_5->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_value_1->get_numberarray( ) into lo_row_6.
lo_row_7 = lo_row_6.
IF lo_row_7 IS NOT INITIAL.
lv_double = lo_row_7->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
To start an experiment run¶
The following StartExperimentRun example starts an experiment run with 50% audience exposure.
DATA(lo_result) = lo_client->startexperimentrun(
iv_applicationidentifier = |339ohji|
iv_experimentdefinitionid = |bsxyd7k|
iv_exposurepercentage = |50.0|
).