/AWS1/IF_APC=>UPDATEEXPERIMENTRUN()¶
About UpdateExperimentRun¶
Updates a running experiment. Use this operation to increase audience exposure, modify treatment assignment overrides, or update the description of an active experiment run. Audience exposure can only be increased, not decreased.
Method Signature¶
METHODS /AWS1/IF_APC~UPDATEEXPERIMENTRUN
IMPORTING
!IV_APPLICATIONIDENTIFIER TYPE /AWS1/APCIDENTIFIER OPTIONAL
!IV_EXPERIMENTDEFINITIONID TYPE /AWS1/APCIDENTIFIER OPTIONAL
!IV_RUN TYPE /AWS1/APCPOSITIVEINTEGER 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
!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.
iv_run TYPE /AWS1/APCPOSITIVEINTEGER /AWS1/APCPOSITIVEINTEGER¶
The run number to update.
Optional arguments:¶
iv_description TYPE /AWS1/APCDESCRIPTION /AWS1/APCDESCRIPTION¶
An updated description for the experiment run.
iv_exposurepercentage TYPE /AWS1/RT_FLOAT_AS_STRING /AWS1/RT_FLOAT_AS_STRING¶
The new exposure percentage. This value can only be increased from the current setting.
io_treatmentoverrides TYPE REF TO /AWS1/CL_APCTREATMENTOVERRIDES /AWS1/CL_APCTREATMENTOVERRIDES¶
Updated treatment assignment overrides.
io_deploymentparameters TYPE REF TO /AWS1/CL_APCDEPLOYPARAMETERS /AWS1/CL_APCDEPLOYPARAMETERS¶
Updated deployment parameters.
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->updateexperimentrun(
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| )
)
)
)
)
iv_applicationidentifier = |string|
iv_description = |string|
iv_experimentdefinitionid = |string|
iv_exposurepercentage = |0.1|
iv_run = 123
).
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 update an experiment run¶
The following UpdateExperimentRun example increases the exposure percentage of a running experiment.
DATA(lo_result) = lo_client->updateexperimentrun(
iv_applicationidentifier = |339ohji|
iv_experimentdefinitionid = |bsxyd7k|
iv_exposurepercentage = |75.0|
iv_run = 1
).