Skip to content

/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
).