Reading Workitem / Workflow Container

Tags: ABAP, Workflow

Simple value as string

Definition

    CLASS-METHODS read_single_container_value
      IMPORTING
        i_name         TYPE clike
        i_workitem_id  TYPE sww_wiid
      RETURNING
        VALUE(r_valueTYPE string.

Implementation

  METHOD read_single_container_value.
    DATA:
      wf_cont TYPE STANDARD TABLE OF swr_cont.

    CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'
      EXPORTING
        workitem_id      i_workitem_id
        user             CONV syuname'WF-BATCH' )
      TABLES
        simple_container wf_cont.

    LOOP AT wf_cont INTO DATA(valueWHERE element CONV swc_elemi_name .
      r_value value.
      EXIT.
    ENDLOOP.

  ENDMETHOD.

Value of container element (value, work area, internal table)

Type of the result must be known by the caller. 

Definition

    CLASS-METHODS:
      read_container_value
        IMPORTING
          i_workitem_id TYPE sww_wiid
          i_name   TYPE swfdname
        EXPORTING
          e_value       TYPE any.

Implementation

  METHOD read_container_value.
    DATA:
      wi_handle    TYPE REF TO if_swf_run_wim_internal,
      wf_container TYPE REF TO if_swf_cnt_container.

    TRY.
        wi_handle cl_swf_run_wim_factory=>find_by_wiidim_wiid i_workitem_id ).
        wf_container wi_handle->get_wi_container).

        CALL METHOD wf_container->if_swf_ifs_parameter_container~get
          EXPORTING
            name  i_name
          IMPORTING
            value e_value.

      CATCH cx_root.
"Noooooooo
    ENDTRY.
  ENDMETHOD.

Method is for single access, no reuse of wi_handle or wf_container.