WS14500015 in SRM5

Hi All,
I need to some help clarifying how WS14500015 in SRM5 works. I need to be able to setup different approval categories that are based on either the shopping cart item material groups or account assignments.
For example, all shopping cart items charged to cost centers will be assigned to one approval category while items charged to something like a maintenance order are assigned to a different approval category. Then depending on the value of each category have the ability for N-step approval steps
The available documentation on WS14500015 states that you can define different approval categories but what’s not clear is that can each category have N-step approval steps.
If I can’t setup the BADI BBP_WFL_APPROV_BADI method GET_REMAINING_APPROVERS code, I’ll need to add program logic to the shopping cart to limit what can be ordered via the shopping cart at any one time.
Regards,
Jerry Martinek

Hi Jerry,
In BADI BBP_WFL_APPROV_BADI you can have GUID_ID for a shopping cart. Using this guid id you can read all details ( including account assignments etc) using function module BBP_PD_SC_GETDETAIL. Then you will have to add your logic to set up different approval categories.
Hope this will help.
Regards.
Pras

Similar Messages

  • WS14500015 is not working for Multilevel approval

    We are trying to Implement the Workflow Template Ws14500015. We have implemented the BADI BBP_WFL_APPROVE_BADI. The workflow works perfectly for 1st level approval. We have checked that the ApproverList Container element gets pouplated with 3 levels of approval when 1 st level approver has not approved it. But as soon as the first level approver approves it this container element is updated with one entry. Please review the code I am attaching. Any help will be highly appreciated.
    METHOD if_ex_bbp_wfl_approv_badi~get_remaing_approvers .
    Interface parameters:
    OBJECT_ID                  TYPE  CRMT_OBJECT_ID                "Import
    OBJECT_TYPE                TYPE  CRMT_SUBOBJECT_CATEGORY       "Import
    GUID                       TYPE  BBP_GUID_32                   "Import
    ACTUAL_APPROVAL_INDEX      TYPE  SWH_NUMC10                    "Import
    APPROVAL_HISTORY_TABLE     TYPE  BBP_WFL_APPROVAL_HISTORY_BADI "Import
    ITEM_APPROVAL_HISTORY_TABLE TYPE BBPT_WFL_ITEM_APPROVAL_BADI   "Import
    APPROVAL_TABLE             TYPE  BBPT_WFL_APPROVAL_TABLE_BADI  "Export
    ITEM_APPROVAL_TABLE        TYPE  BBPT_WFL_ITEM_APPROVAL_BADI   "Export
    NO_FURTHER_APPROVAL_NEEDED TYPE  BOOLEAN                       "Export
    ITEM_APPROVAL_OBJ          TYPE  BBPT_WFL_ITEM_APPROVAL_OBJ  "Changing
    This a default implementation that gives idea about of how line item
    approval should work as well to find the number of approval required
    and to find the approvers.
    Global data---------------------------------------------------------*
    TYPES---------------------------------------------------------------*
      TYPES : ty_item_info    TYPE STANDARD TABLE OF /fir/rmm0bgst001.
                  "to have the necessary values of custom table .
    DATA----------------------------------------------------------------*
      DATA : it_item_info TYPE ty_item_info,"to store the approval values.
             wa_item_info TYPE /fir/rmm0bgst001. " work area for item_info.
      DATA : v_value_per_cctr TYPE bbp_value, " contain value per account
                                              " type in line item of SC
             v_value_per      TYPE bbp_value. " value for v_value_per_cctr
                                              " in USD
      DATA : v_apprv_value    TYPE bbp_value. " amount of first level.
      DATA:  v_call_value1    TYPE bbp_wfl_app_property,"have cost_ctr,
                              "asset_no or order_no value.
             v_co_code        TYPE bbp_wfl_app_property," have company code
             v_plant_value    TYPE bbp_wfl_app_property," have plant value
             v_account_type   TYPE bbp_wfl_app_criterion ," Account type
                              " ie COST_CTR, ASSET_NO or ORDER_NO.
             v_comp_code      TYPE bbp_wfl_app_criterion ,"COMP_CODE
             v_plant          TYPE bbp_wfl_app_criterion ," PLANT
             v_acc_desc       TYPE bbp_step_description ." approval desc.
    WORKAREA------------------------------------------------------------*
      DATA:  wa_header         TYPE bbp_pds_sc_header_d, " header of line
                                                         " item
    tables and work area.
             it_item           TYPE TABLE OF bbp_pds_sc_item_d,
                                            " line item details
             wa_item           TYPE bbp_pds_sc_item_d,
                                            " have one line item detail.
    accounting structures
             it_account        TYPE TABLE OF bbp_pds_acc,
                                            " account details
             wa_account        TYPE bbp_pds_acc .
                                            " one account details.
      DATA: v_req TYPE bbp_wfl_app_criterion. " for creator.
    CONSTANTS-----------------------------------------------------------*
    Business objects
      CONSTANTS:
       c_po            TYPE crmt_subobject_category_db VALUE 'BUS2201',
       c_shop          TYPE crmt_subobject_category_db VALUE 'BUS2121',
       c_contract      TYPE crmt_subobject_category_db VALUE 'BUS2000113'.
    Approval Criteria and properties used
      CONSTANTS:
        c_cost_centre  TYPE bbp_wfl_app_criterion  VALUE 'COST_CTR',
        c_order_no     TYPE bbp_wfl_app_criterion  VALUE 'ORDER_NO',
        c_asset_no     TYPE bbp_wfl_app_criterion  VALUE 'ASSET_NO',
        c_comp_code    TYPE bbp_wfl_app_criterion  VALUE 'COMP_CODE',
        c_plant        TYPE bbp_wfl_app_criterion  VALUE 'PLANT',
        c_cc_desc      TYPE bbp_step_description   VALUE
                                                 'Cost center approval',
        c_io_desc      TYPE bbp_step_description   VALUE
                                                 'Order type approval',
        c_as_desc      TYPE bbp_step_description   VALUE
                                                 'Asset Num approval',
        c_usd          TYPE char3 VALUE 'USD',
        c_m            TYPE char1 VALUE 'M',
        c_x            TYPE char1 VALUE 'X',
        c_apprv_times  TYPE char1 VALUE 3,
        c_1            TYPE char2 VALUE '1',
        c_as           TYPE BBP_ACC_CAT VALUE 'AS',
        c_or           TYPE BBP_ACC_CAT VALUE 'OR',
        c_cc           TYPE BBP_ACC_CAT VALUE 'CC',
        c_us           TYPE char2       VALUE 'US'.
    Case when the object type bus212...---------------------------------*
      CASE object_type.
        WHEN c_shop.
    -----------   shopping cart --------------------------------------- *
          IF NOT approval_table[] IS INITIAL.
            approval_history_table[] = approval_table[].
            item_approval_history_table[] = item_approval_table[].
            REFRESH  : approval_table, item_approval_table,
                    item_approval_obj   .
          ENDIF.
          REFRESH : it_item,it_account.
        Get the details of the shopping cart
          CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
            EXPORTING
              i_object_id = object_id
            IMPORTING
              e_header    = wa_header
            TABLES
              e_item      = it_item
              e_account   = it_account.
        Proceed if it_item is not initial.
          IF NOT it_item IS INITIAL AND NOT it_account IS INITIAL.
    *read the lt_item for plant
            READ TABLE it_item INTO wa_item INDEX 1.
    CHANGE FOR REQEUSTOR.
            CONCATENATE c_us wa_item-created_by INTO v_req.
          now read the table with wa_item-be_plant.
            SELECT *
              FROM /fir/rmm0bgst001
              INTO TABLE it_item_info
              WHERE zplant = wa_item-be_plant.
            SORT it_item BY guid .
            SORT it_account BY p_guid .
            IF actual_approval_index LE c_apprv_times AND
               actual_approval_index GE c_1.
          looping at it_item is done to fetch the approver for every
          line item
              CLEAR: wa_item, wa_account.
              LOOP AT it_item INTO wa_item WHERE del_ind IS INITIAL.
                LOOP AT it_account  INTO wa_account
                  WHERE p_guid = wa_item-guid.
    to calculate the amount before calling the funciton module for
    approval table.value respective to account type
                  v_value_per_cctr =
                  wa_account-distr_perc * wa_item-value / 100.
    read the table respective to account type and for level 1 approval
    such that if the value is less than zvalue then no approval required.
                  CLEAR: wa_item_info.
                  CASE wa_account-acc_cat .
                    WHEN c_or.
                       READ TABLE it_item_info INTO wa_item_info
                        WITH KEY zlevel = c_1   " 1
                       zorder_no = wa_account-order_no
                       zplant    = wa_item-be_plant.
                    WHEN c_as.
                       READ TABLE it_item_info INTO wa_item_info
                        WITH KEY zlevel = c_1   " 1
                       zasset_no = wa_account-asset_no
                       zplant    = wa_item-be_plant.
                    WHEN c_cc.
                       READ TABLE it_item_info INTO wa_item_info
                        WITH KEY zlevel = c_1     " 1
                       zcost_ctr = wa_account-cost_ctr
                       zplant    = wa_item-be_plant.
                  ENDCASE.
                  IF sy-subrc = 0.
                    v_apprv_value = wa_item_info-zvalue.
                  ENDIF.
                now convert the amount to local currency ie usd
                  CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
                    EXPORTING
                    CLIENT                  = SY-MANDT
                      date                    = sy-datum
                      foreign_amount          = v_value_per_cctr
                      foreign_currency        = wa_item-currency
                      local_currency          = c_usd
                     type_of_rate            = c_m
                     read_tcurr              = c_x
                   IMPORTING
                     local_amount            = v_value_per
                   EXCEPTIONS
                     no_rate_found           = 1
                     overflow                = 2
                     no_factors_found        = 3
                     no_spread_found         = 4
                     derived_2_times         = 5
                     OTHERS                  = 6
                  IF v_value_per GE v_apprv_value AND sy-subrc = 0.
    To Find out Account id of what type ie cost center/IO/Asset.
                    IF wa_account-acc_cat eq c_cc.
                      v_call_value1 = wa_account-cost_ctr.
                      v_account_type = c_cost_centre.
                      v_acc_desc  = c_cc_desc. "'Cost center approval'.
                    ELSEIF wa_account-acc_cat eq c_or.
                      v_call_value1 = wa_account-order_no.
                      v_account_type = c_order_no.
                      v_acc_desc  = c_io_desc. "'Internal Order approval'.
                    ELSE.
                   IF NOT wa_account-asset_no IS INITIAL.
                      v_call_value1 = wa_account-asset_no.
                      v_account_type = c_asset_no..
                      v_acc_desc  = c_as_desc. "'Asset Number approval'.
                   ENDIF.
                    ENDIF.
                  Defining the PLANT and plant value.
                    v_plant = c_plant.
                    v_plant_value = wa_item-be_plant.
                  defining the COMPNAY CODE and company value.
                    v_comp_code = c_comp_code.
                    v_co_code   = wa_item-be_co_code.
                  Calling the Custom function to find the approvers.
                    CALL FUNCTION '/FIR/RP2P0BGS_ITEM_APPRV_GET'
                      EXPORTING
                        sc_guid                    = wa_header-guid
                        item_guid                  = wa_item-guid
                        approval_description       = v_acc_desc
                        hide_items_not_responsible = c_x "'X'
    each cost center approver should see only items he is responsible
                        criterion1                 = v_account_type
                        criterion2                 = v_comp_code
                        criterion3                 = v_plant
                        value1                     = v_call_value1
                        value2                     = v_co_code
                        value3                     = v_plant_value
                        approval_index           = actual_approval_index
                      TABLES
                        it_item_info               = it_item_info
                      CHANGING
                        approval_table             = approval_table
                        item_approval_table        = item_approval_table
                        item_approval_obj          = item_approval_obj.
                  ENDIF." end if if value per cost center is more than
                  " level one price.
                  CLEAR wa_account.
                ENDLOOP. " end of loop of account.
                CLEAR:  wa_account,wa_item, wa_item_info.
              ENDLOOP. " end of loop at item
    CHANGE FOR REQUESTOR.----
              DELETE approval_table WHERE approval_agent = v_req.
              IF approval_table IS INITIAL.
                no_further_approval_needed = c_x. " 'X'.
              ENDIF.
            ELSE. " end of if actual_approval_index le 3.
            this BADI-implementation defines 3 steps
              no_further_approval_needed = c_x. "'X'.
            ENDIF.
          ENDIF. " end of if the it_item is not initial.
      ENDCASE. "end of case if bus type is 2121
    ENDMETHOD.
    Function Module
    FUNCTION /fir/rp2p0bgs_item_apprv_get .
    ""Local Interface:
    *"  IMPORTING
    *"     REFERENCE(SC_GUID) TYPE  BBP_GUID OPTIONAL
    *"     REFERENCE(ITEM_GUID) TYPE  BBP_GUID OPTIONAL
    *"     REFERENCE(APPROVAL_DESCRIPTION) TYPE  BBP_STEP_DESCRIPTION
    *"       OPTIONAL
    *"     REFERENCE(HIDE_ITEMS_NOT_RESPONSIBLE) TYPE  BOOLEAN OPTIONAL
    *"     REFERENCE(CRITERION1) TYPE  BBP_WFL_APP_CRITERION OPTIONAL
    *"     REFERENCE(CRITERION2) TYPE  BBP_WFL_APP_CRITERION DEFAULT ''
    *"     REFERENCE(CRITERION3) TYPE  BBP_WFL_APP_CRITERION DEFAULT ''
    *"     REFERENCE(VALUE1) TYPE  BBP_WFL_APP_PROPERTY DEFAULT ''
    *"     REFERENCE(VALUE2) TYPE  BBP_WFL_APP_PROPERTY DEFAULT ''
    *"     REFERENCE(VALUE3) TYPE  BBP_WFL_APP_PROPERTY DEFAULT ''
    *"     REFERENCE(APPROVAL_INDEX) TYPE  SWH_NUMC10 OPTIONAL
    *"  TABLES
    *"      IT_ITEM_INFO STRUCTURE  /FIR/RMM0BGST001
    *"  CHANGING
    *"     REFERENCE(APPROVAL_TABLE) TYPE  BBPT_WFL_APPROVAL_TABLE_BADI
    *"     REFERENCE(ITEM_APPROVAL_TABLE) TYPE  BBPT_WFL_ITEM_APPROVAL_BADI
    *"     REFERENCE(ITEM_APPROVAL_OBJ) TYPE  BBPT_WFL_ITEM_APPROVAL_OBJ
    *"       OPTIONAL
    Local data-----------------------------------------------------------*
      TYPES: ty_option TYPE STANDARD TABLE OF rfc_db_opt,
             ty_fields TYPE STANDARD TABLE OF rfc_db_fld,
             ty_data   TYPE STANDARD TABLE OF tab512.
      DATA:
        wa_approval_table      TYPE bbp_wfl_approval_table_badi,
        wa_item_approval_table TYPE bbps_wfl_item_approval,
        wa_approval_def        TYPE /fir/rmm0bgst001.
      DATA:
        v_app_obj_guid           TYPE bbp_guid_32,
        v_is_new_approval_object TYPE boolean.
      DATA : it_update_tab   TYPE STANDARD TABLE OF /fir/rmm0bgst001,
             it_approval_def TYPE STANDARD TABLE OF /fir/rmm0bgst001,
             wa_update_tab   TYPE /fir/rmm0bgst001.
      DATA : it_actor_tab    TYPE STANDARD TABLE OF swhactor,
             wa_actor_tab    TYPE swhactor,
             it_ac_container TYPE STANDARD TABLE OF swcont,
             wa_ac_container TYPE swcont.
      DATA : it_options TYPE ty_option,
             it_fields  TYPE ty_fields,
             it_data    TYPE ty_data.
      DATA : wa_options TYPE  rfc_db_opt,
             wa_fields  TYPE  rfc_db_fld,
             wa_data    TYPE  tab512.
      DATA : v_apprv_io TYPE aufuser2,
             v_apprv_cc TYPE verak.
      DATA : v_cost_ctr  TYPE  bbp_wfl_app_property ,
             v_order_no  TYPE  bbp_wfl_app_property ,
             v_asset_no  TYPE  bbp_wfl_app_property ,
             v_as_value  TYPE  bbp_wfl_app_property .
      DATA : v_query_table   TYPE dd02l-tabname.
      DATA : v_apprv_count   TYPE char1 VALUE '0'.
    to find the number of lines in the table it_update_tab.
      DATA : v_lines TYPE i.
      DATA : v_app_ind TYPE swh_numc10 VALUE '0'.
      DATA : v_destination   TYPE char10,
             v_system        TYPE sysysid,
             v_mandt         TYPE symandt.
    Constants-----------------------------------------------------------*
      CONSTANTS:
        c_clnt          TYPE char4 VALUE 'CLNT',
        c_agent_is_user TYPE otype VALUE 'US',
        c_x             TYPE char1 VALUE 'X',
        c_cost_centre   TYPE bbp_wfl_app_criterion  VALUE 'COST_CTR',
        c_order_no      TYPE bbp_wfl_app_criterion  VALUE 'ORDER_NO',
        c_asset_no      TYPE bbp_wfl_app_criterion  VALUE 'ASSET_NO',
        c_csks          TYPE char4 VALUE 'CSKS',
        c_anlz          TYPE char4 VALUE 'ANLZ',
        c_coas          TYPE char4 VALUE 'COAS',
        c_verak         TYPE char5 VALUE 'VERAK',
        c_user2         TYPE char5 VALUE 'USER2',
        c_kostl         TYPE char5 VALUE 'KOSTL',
        c_aufnr         TYPE char5 VALUE 'AUFNR',
        c_bukrs         TYPE char5 VALUE 'BUKRS',
        c_anln1         TYPE char5 VALUE 'ANLN1',
        c_c             TYPE char1 VALUE 'C',
        c_and           TYPE char3 VALUE 'AND',
        c_eq            TYPE char1 VALUE '=',
        c_org_object    TYPE swc_elem VALUE 'ORG_OBJECT',
        c_deli          TYPE char1 VALUE '|',
        c_l12           TYPE ddleng VALUE '000012',
        c_off0          TYPE doffset VALUE '000000',
        c_l10           TYPE ddleng VALUE '000010',
        c_l20           TYPE ddleng VALUE '000020',
        c_l04           TYPE ddleng VALUE '000004',
        c_ind01         TYPE swc_index VALUE '000001',
        c_el06          TYPE swc_length VALUE '006',
        c_tab_name      TYPE tabname  VALUE '/fir/rmm0bgst001',
        c_r10           TYPE sysysid VALUE 'R10',
        c_r15           TYPE sysysid VALUE 'R15',
        c_r20           TYPE sysysid VALUE 'R20',
        c_r40           TYPE sysysid VALUE 'R40',
        c_e10           TYPE sysysid VALUE 'E10',
        c_e15           TYPE sysysid VALUE 'E15',
        c_e20           TYPE sysysid VALUE 'E20',
        c_e40           TYPE sysysid VALUE 'E40',
        c_121           TYPE symandt VALUE '121',
        c_300           TYPE symandt VALUE '300',
        c_100           TYPE symandt VALUE '100',
        c_120           TYPE symandt VALUE '120',
    begin of change for generic entry 06-06-2007----
        c_cc            TYPE kostl   VALUE 'CC',
        c_as            TYPE anln1   VALUE 'AS',
        c_or            TYPE aufnr   VALUE 'OR'.
    end of change for generic entry 06-06-2007----
    -perpare the system and client for RFC----
      CASE sy-sysid .
        WHEN c_r10.                                             "' R10'.
          IF sy-mandt = c_120.                                  " '120'.
            CONCATENATE c_e10 c_clnt c_121 INTO v_destination.
          ENDIF.
        WHEN c_r15.                                             " 'R15'.
          IF sy-mandt = c_120.                                  " '120'.
            CONCATENATE c_e15 c_clnt c_300 INTO v_destination.
          ENDIF.
        WHEN c_r20.                                             " 'R20'.
          IF sy-mandt = c_300.                                  " '300'.
            CONCATENATE c_e20 c_clnt c_300 INTO v_destination.
          ENDIF.
        WHEN c_r40.                                             " 'R40'.
          IF sy-mandt = c_100.                                  " '100'.
            CONCATENATE c_e40 c_clnt c_100 INTO v_destination.
          ENDIF.
      ENDCASE.
    Comment on logic ---------------------------------------------------*
    First find the right approval object the item belongs to.
    All items of an approval object are approved together in
    this approval step, and therefore only one workitem is
    created for this items.
      CALL FUNCTION 'BBP_WFL_DIN_APP_OBJ_GET'
        EXPORTING
          sc_guid                 = sc_guid
          criterion1              = criterion1
          value1                  = value1
       IMPORTING
    If 2 items of the same shopping cart have the same
    values for the criterias, this function returns the
    same (!!!) approval object guid
         approval_obj_guid       = v_app_obj_guid
        TABLES
         item_app_obj            = item_approval_obj
    Check what type of account is ie Order no/Internal order/ASSET.
    if the account type is asset_no then responsible cost center is
    found.
      CLEAR: it_update_tab, wa_update_tab.
      CASE criterion1 .
        WHEN c_asset_no.    " 'ASSET_NO'.
          v_asset_no = value1.
          CONCATENATE c_anln1 c_eq value1 " 'ANLN1' '=' value1
            c_and c_bukrs c_eq value2 INTO wa_options-text
            SEPARATED BY space.
          APPEND wa_options TO it_options.
          wa_fields-fieldname = c_anln1.                        " 'ANLN1'.
          wa_fields-length    = c_l12.                          " '000012'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.      " 'C'.
          APPEND wa_fields TO it_fields.
          wa_fields-fieldname = c_kostl.  " 'KOSTL'.
          wa_fields-length    = c_l10.                          " '000010'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.      " 'C'.
          APPEND wa_fields TO it_fields.
          wa_fields-fieldname = c_bukrs.  " 'BUKRS'.
          wa_fields-length    = c_l04.                          " '000004'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.      " 'C'.
          APPEND wa_fields TO it_fields.
          CALL FUNCTION 'RFC_READ_TABLE' DESTINATION v_destination
            EXPORTING
              query_table          = c_anlz  " 'ANLZ'
              delimiter            = c_deli  " '|'
            TABLES
              OPTIONS              = it_options
              fields               = it_fields
              data                 = it_data
            EXCEPTIONS
              table_not_available  = 1
              table_without_data   = 2
              option_not_valid     = 3
              field_not_valid      = 4
              not_authorized       = 5
              data_buffer_exceeded = 6
              OTHERS               = 7.
          IF sy-subrc = 0.
          as it_data table contains only one record
          so no sorting required.
            READ TABLE it_data INTO wa_data INDEX 1.
            v_as_value = wa_data-wa+13(10).
          ENDIF.
        at the end of this if asset is passed its responsible
        cost is obtained and is placed in value1 field.
          CLEAR : wa_data , wa_options , wa_fields .
          REFRESH: it_data , it_options , it_fields .
          v_cost_ctr = v_as_value.
          CONCATENATE c_kostl c_eq v_cost_ctr INTO wa_options-text
          SEPARATED BY space.
          APPEND wa_options TO it_options.
          CLEAR: wa_fields.
          wa_fields-fieldname = c_verak.   " 'VERAK'.
          wa_fields-length    = c_l20.                          " '000020'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.        " 'C'.
          APPEND wa_fields TO it_fields.
          CLEAR: wa_fields.
          wa_fields-fieldname = c_kostl.    " 'KOSTL'.
          wa_fields-length    = c_l10.                          " '000010'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.        " 'C'.
          APPEND wa_fields TO it_fields.
          v_query_table = c_csks. " 'CSKS'.
        set the initial value of v_asset_no by value1.
          CLEAR: v_cost_ctr .
          v_asset_no = value1.
        WHEN c_cost_centre . " 'COST_CTR' or 'ASSET_NO'.
          v_cost_ctr = value1.
          CONCATENATE c_kostl c_eq v_cost_ctr INTO wa_options-text
          SEPARATED BY space.
          APPEND wa_options TO it_options.
          CLEAR: wa_fields.
          wa_fields-fieldname = c_verak.   " 'VERAK'.
          wa_fields-length    = c_l20.                          " '000020'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.        " 'C'.
          APPEND wa_fields TO it_fields.
          CLEAR: wa_fields.
          wa_fields-fieldname = c_kostl.    " 'KOSTL'.
          wa_fields-length    = c_l10.                          " '000010'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.        " 'C'.
          APPEND wa_fields TO it_fields.
          v_query_table = c_csks. " 'CSKS'.
        WHEN c_order_no.    " 'ORDER_NO'.
          v_order_no = value1.
          CONCATENATE c_aufnr c_eq value1 INTO wa_options-text
          SEPARATED BY space.
          APPEND wa_options TO it_options.
          CLEAR: wa_fields.
          wa_fields-fieldname = c_user2.                        " 'USER2'.
          wa_fields-length    = c_l20.                          " '000020'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.      " 'C'.
          APPEND wa_fields TO it_fields.
          CLEAR: wa_fields.
          wa_fields-fieldname = c_aufnr.   " 'AUFNR'.
          wa_fields-length    = c_l12.                          " '000012'.
          wa_fields-offset    = c_off0.                         " '000000'.
          wa_fields-type      = c_c.        " 'C'.
          APPEND wa_fields TO it_fields.
          v_query_table = c_coas. " 'COAS'.
      ENDCASE.
      LOOP AT it_item_info INTO wa_update_tab
        WHERE
              zplant    = value3       AND
              zcost_ctr = v_cost_ctr AND
              zorder_no = v_order_no AND
              zasset_no = v_asset_no.
        APPEND wa_update_tab TO it_update_tab .
      ENDLOOP.
    -begin of change for generic entry 06-06-2007----
    it_update_tab may or may not contain the value as the per the data
    maintainted. if initial then only generic value is maintained and the
    the record need to be appended.
    so the record which need to be appended shud be appended to
    it_update_tab appropiatly with the amt of generic entry.
      CLEAR : wa_update_tab.
      CASE criterion1 .
        WHEN c_asset_no.
          READ TABLE it_item_info INTO wa_update_tab WITH KEY
          zplant = value3
          zasset_no = c_as."'AS'
          IF sy-subrc = 0.
            wa_update_tab-zasset_no = v_asset_no .
            wa_update_tab-zlevel    = 1.
            APPEND wa_update_tab TO it_update_tab.
          ENDIF.
        WHEN c_cost_centre.
          READ TABLE it_item_info INTO wa_update_tab WITH KEY
          zplant = value3
          zcost_ctr = c_cc."'CC'
          IF sy-subrc = 0.
            wa_update_tab-zcost_ctr = v_cost_ctr .
            wa_update_tab-zlevel    = 1.
            APPEND wa_update_tab TO it_update_tab.
          ENDIF.
        WHEN c_order_no.
          READ TABLE it_item_info INTO wa_update_tab WITH KEY
          zplant = value3
          zorder_no = c_or."'OR'
          IF sy-subrc = 0.
            wa_update_tab-zorder_no = v_order_no .
            wa_update_tab-zlevel    = 1.
            APPEND wa_update_tab TO it_update_tab.
          ENDIF.
      ENDCASE.
    end of change for generic entry 06-06-2007----
    RFC to read table for finding the person responsible for the
    cost center / order ie approver.
      CALL FUNCTION 'RFC_READ_TABLE' DESTINATION v_destination
        EXPORTING
          query_table          = v_query_table
          delimiter            = c_deli   "'|'
        TABLES
          OPTIONS              = it_options
          fields               = it_fields
          data                 = it_data
        EXCEPTIONS
          table_not_available  = 1
          table_without_data   = 2
          option_not_valid     = 3
          field_not_valid      = 4
          not_authorized       = 5
          data_buffer_exceeded = 6
          OTHERS               = 7.
      IF sy-subrc = 0.
        CLEAR :wa_approval_def.
        READ TABLE it_data INTO wa_data INDEX 1.
        IF v_query_table = c_csks.    " 'CSKS'.
          v_apprv_cc = wa_data-wa+0(20).
          wa_approval_def-zapprover = v_apprv_cc.
        ELSE.
          v_apprv_io = wa_data-wa+0(20).
          wa_approval_def-zapprover = v_apprv_io.
        ENDIF.
      ENDIF.
      find the number of record in the update table.
      DESCRIBE TABLE it_update_tab LINES v_lines.
      The updation of table runs only for the number of records
      avaiable in the  update table ie v_lines.
      DO v_lines TIMES.        " begin of do to approval index times.
         CLEAR: it_approval_def.
        v_apprv_count = v_apprv_count + 1.
        wa_approval_def-zlevel    = v_apprv_count .
      if the count is more than one then next level of approver
      is found using the rfc call swx_get_manager and stored as per.
        IF v_apprv_count > 1.
          v_apprv_count = v_apprv_count - 1.
          READ TABLE it_update_tab INTO wa_update_tab
               WITH KEY zlevel = v_apprv_count .
          IF sy-subrc = 0 .
    NOW FOR FINDING THE SECOND LEVEL OF APPROVER
    1ST LEVEL OF APPROVER IS FOUND USING ABOVE READ.
    THE FIRST LEVEL OF APPROVER IS USED TO FIND THE SECOND
    LEVEL OF APPROVER USING THE SWX_GET_MANAGER.
    PREPARE THE TABLES FOR SWX_GET_MANAGER
            REFRESH : it_ac_container.
            wa_ac_container-element = c_org_object. " 'ORG_OBJECT'.
            wa_ac_container-tab_index = c_ind01.                " '000001'.
            wa_ac_container-elemlength = c_el06.                " '006'.
            wa_ac_container-type       = c_c.   " 'C'.
            CONCATENATE c_agent_is_user wa_update_tab-zapprover
            INTO wa_ac_container-value .
            APPEND wa_ac_container TO it_ac_container.
            CALL FUNCTION 'SWX_GET_MANAGER' DESTINATION v_destination
              TABLES
                actor_tab    = it_actor_tab
                ac_container = it_ac_container
              EXCEPTIONS
                nobody_found = 1
                OTHERS       = 2.
            IF sy-subrc = 0.
              READ TABLE it_actor_tab INTO wa_actor_tab WITH KEY
                   otype = c_agent_is_user.
              wa_approval_def-zapprover = wa_actor_tab-objid.
            ENDIF.
          ENDIF.
          v_apprv_count = v_apprv_count + 1.
        ENDIF.
      before updating populate the table it_approval_def
      it_update_tab is read based on next v_apprv_count and
      updates the approver and its value.
        READ TABLE it_update_tab INTO wa_update_tab
               WITH KEY zlevel = v_apprv_count .
        IF sy-subrc = 0.
          wa_approval_def-zplant = wa_update_tab-zplant.
          wa_approval_def-zcost_ctr = wa_update_tab-zcost_ctr.
          wa_approval_def-zorder_no = wa_update_tab-zorder_no.
          wa_approval_def-zasset_no = wa_update_tab-zasset_no.
          wa_approval_def-zvalue = wa_update_tab-zvalue.
          APPEND wa_approval_def TO it_approval_def.
    modify the table it_update_tab so that along with the custom
    database table the table in use in this function module ie
    it_update_tab also remain updated.
    benefit is that if the modify to dtab fails. the process works fine.
          MODIFY it_update_tab FROM wa_approval_def
                   TRANSPORTING zapprover
                   WHERE zlevel = wa_approval_def-zlevel AND
                         zvalue = wa_approval_def-zvalue.
      now enqueue the table for modification.
          CALL FUNCTION 'ENQUEUE_E_TABLE'
            EXPORTING
              tabname        = c_tab_name       " '/fir/rmm0bgst001'
            EXCEPTIONS
              foreign_lock   = 1
              system_failure = 2
              OTHERS         = 3.
          now modify the table, for updation of approver.
          IF sy-subrc = 0.
            MODIFY /fir/rmm0bgst001 FROM wa_approval_def.
            if sy-subrc goes 0 commit work is called.
            also the it_update_tab need to be updated.
            IF sy-subrc = 0.
              COMMIT WORK.
            ENDIF.
          ENDIF.
      now dequeue the table after the updation.
          CALL FUNCTION 'DEQUEUE_E_TABLE'
            EXPORTING
              tabname = c_tab_name.     " '/fir/rmm0bgst001'.
        ENDIF.
        once all done clear the work areas.
        CLEAR : wa_approval_def-zlevel , wa_approval_def-zapprover.
      ENDDO.                               " END OF DO STATEMENT.
      SORT it_approval_def BY zlevel ASCENDING.
    as per the logic for the different level of approval.
    for second level of approval only records above 2 should be
    present in the apprval table.
    so for approval index = 2 delete the first record ie for zlevel  = 1.
    and for approval index = 3 delete first two records ie zlevel = 1 and
    zlevel = 2. thus only one approval of zlevel 3 is left in the table
    which is used to update the approval table.
      IF approval_index = 2 .
        DELETE it_approval_def INDEX 1.
      ELSEIF approval_index = 3.
        DELETE it_approval_def INDEX 1.
        DELETE it_approval_def INDEX 1.
      ELSEIF approval_index GT 3.
        REFRESH : it_approval_def .
      ENDIF.
    for above 3 as approval index there shud be no enteries in the table.
    so the table is refreshed and thus the approval table will not
    contain anything.
    approval_index is assigned to a varaiable
      v_app_ind = approval_index.
    v_app_ind is incremented for every next record so that approver is
    assigned to next approval index.
    beign of change 28th may 2007----
    clear : v_app_ind .
    v_app_ind = v_app_ind + 1.
      LOOP AT it_approval_def INTO wa_approval_def.
        wa_approval_table-approval_index       = v_app_ind.
        CONCATENATE c_agent_is_user wa_approval_def-zapprover
        INTO wa_approval_table-approval_agent.
        wa_approval_table-approval_description = approval_description.
        wa_approval_table-approval_object_guid = v_app_obj_guid.
        wa_approval_table-hide_items_not_responsible =
                                hide_items_not_responsible.
        APPEND wa_approval_table TO approval_table.
        v_app_ind = v_app_ind + 1 .
        CLEAR: wa_approval_def.
      ENDLOOP.
      sort the approval table so that approvers come in sequence.
      SORT approval_table BY approval_index.
    ENDIF.
    fill item table (which items belongs to which approval object)
      wa_item_approval_table-approval_object_guid = v_app_obj_guid.
      wa_item_approval_table-approval_item_guid   = item_guid.
      APPEND wa_item_approval_table TO item_approval_table.
      CLEAR :wa_item_approval_table,wa_approval_table,it_update_tab.
    ENDFUNCTION.
    Thanks
    Arghadip
    [email protected]

    Hi,
    You have to debug the entire system behaviour , the approval process using the second approver.
    As first step , please check the security level of the second approver. Restart of workflow is based on the security level of the approver.
    you can find the parameter for security level in the personalization tab of the user .
    there is one function module  which determines wether the workflow should be restarted (or) not.
    i do not remember the exact name of the function module.
    1)start transaction se37
    2)enter bbpwflrestart*.
    3) system will return a number of function modules , of them one function module determines wether to restart the workflow (or) not.
    Please check what does the above function module return for the user and the shopping cart , there will be one parameter 'restart' which triggers the start

  • Custom fields not display in SRM5.5 Basic Data Frame

    Hello Everybody,
          I am working on SRM5.5 Server which i have to add two custom fields in Basic Data Frame..
         No field is display in basic data frame After I added those fields in INCL_EEW_PD_ITEM_CSF_SC and INCL_EEW_PD_ITEM_CSF.
        I added these fields by help of 672960 OSS notes..
       Add also when i execute the program BBP_DYNPROS_GENERATE where I entered the program name as SAPLBBP_PDH_CUF and execute but non of them is working fine..
      Is there anything else do i need to display custom fields in basic data frame??
    I have one more question..
      When you logon through SAPGUI and goto BBPSC01 t.code where you see lots of fields in basic data frame such as unloading point and all.. But those all fields does not display when you logon through WebURL..
      I checked is there any BAdi such CUF or Screenvarient or some Badi has been actived but non of the Badi has been implemented..
      To display all the fields which are display in GUI Mode also should display in URL..
      To bring this functionality , What do i need to do?
      I appreciate if you answer these questions..
    Thanks,
    John.

    Hi Disha,
    We are trying to add custom fields to the Shopping Cart Header. We are using SRM 5.0. We added the fields to the structures "INCL_EEW_PD_HEADER_CSF_SC" & "INCL_EEW_PD_HEADER_CSF".  We are able to see the custom fields. But the issue is , we are able to see the custom fields in the Shopping Cart one step shop scenario. Whereas when we run the wizard which is a 3 step scenario, we are not able to see the custom fields.
    Technically speaking, the custom fields are visible for the ITS BBPSC01 & BBPSC03 , where as these custom fields are not visible for the ITS BBPSC02.
    Please let me know, if we need to append the fields to some other structure to be able to see them in the Shopping cart wizard also.
    I will be gald to provide any kind of info.
    Thanks in advance...

  • Open_Data_Set Error with SRM5.0 Install

    am installing a SRM5.0 system and keep getting the following error in Phase 24 of 39:
    From dev_rfc.trc file
    ERROR file opened at 20060620 100238 Central Daylig, SAP-REL 700,0,47 RFC-VER 3 814520 MT-SL
    T:4760 ======>      File "/usr/sap/trans/tmp/RDDGENMC.SRP" is not open                             
    T:4760 <* RfcReceive [5] : returns 3:RFC_SYS_EXCEPTION
    T:4760 <* RfcCallReceive [5] : returns 3:RFC_SYS_EXCEPTION
    From the Log file from SAPINST
    ERROR 2006-06-20 11:17:52
    FRF-00007  Unable to open RFC connection.
    ERROR 2006-06-20 11:17:52
    FCO-00011  The step runRADDBDIF with step key |NW_Onehost|ind|ind|ind|ind|0|0|NW_Doublestack_OneHost|ind|ind|ind|ind|3|0|NW_CI_Instance|ind|ind|ind|ind|16|0|NW_CI_Instance_ABAP_Reports|ind|ind|ind|ind|1|0|runRADDBDIF was executed with status ERROR .
    When I look in the IFS, I can see the files RDDGENMC.<sid> for our other SAP systems but not the one for SRP. I look in SM21 in the system and it had the Open_data_set error dump. I found an SM59 entry called SRP that had been setup and the connection works ok.
    I also manually created the file RDDGENMC.SRP but it still did not like it.
    Thanks for any help,
    Chris

    Hello Chris,
    In the SM21 dump check for the user id which is facing the dump issue. You can also find this information in ST22. Afterwards trying to assign the authorization object s_dataset to the user with values as "*" in the all the 3 fields of the object. Please let us know if this solved your issue.
    Regards.
    Ruchit

  • Problem about replicate the vendor master from R/3 to SRM5.0

    Hi guys,
    I have vendor in R/3 backend system.And the vendor data has been customized.We have added some customize fields to the table LFA1 which is not exist in the standard R3 system.
    Now,
    I want to replicate all vendor information to SRM5.0 include these customized fields.I have tried t-cd: BBPGETVD&BBPUPDVD.But it only copy the standard fields.
    Then I searched the web and found some information said that at SRM side I should use eewb to make extension for vendor in SRM and create instance for the BAdI:BBP_GET_VMDATA_CF and do some coding in the method GET_DATA & UPDATE_DATA.
    At the R/3 side I should create a instance for the BAdI:BBP_MAP_VMDATA_CF and do some coding in the method MAP_DATA.
    So at the SRM side I used eewb and it generated some function:
    ZZSER_BUPA_DTL_ADD
    ZZSER_BUPA_DTL_CHANGE
    ZZSER_BUPA_DTL_REMOVE
    ZZSER_BUPA_GET
    And I created a instance for the BAdI:BBP_GET_VMDATA_CF.
    At the R/3 side I created a instance for the BAdI:BBP_MAP_VMDATA_CF.
    My problem is
    1.I don't how to use those functions(generated by eewb) in the method GET_DATA & UPDATE_DATA.
    2.I don't know what should I do to the method MAP_DATA(R/3 side)
    3.When will these instance be called?It seems that the t-cd BBPGETVD &BBPUPDVD won't find the BAdI's instance(I didn't find any code such as cl_exithandler=>get_instance in the programe BBP_VENDOR_GET_DATA which is for t-cd BBPGETVD&BBPUPDVD)
    4.If there is a solution to the problem 1-3 and all has been done, then from where should the import parameter IT_LFA1(in R/3's BAdi BBP_MAP_VMDATA_CF) get its value?
    Can anyone who are familiar with these BAdI help me? Thanks in advance.

    Hi
    <u>Which R/3 and SRM versions are you using ?</u>
    <b>Vendor Master Extension in SRM</b>
    <u>Vendor Master Extension in SRM</u>
    <b>Look for the OSS Note for more details.</b>
    Note 675800 - Business partner enhancement SRM on maintenance screen
    <u>Please See this thread for creating customer fields in BBPMAININT Transaction.</u>
    Re: Adding new fields in VEndor master data in EBP
    Do let me know.
    Regards
    - Atul

  • CLEAN_REQREQ_UP  SRM5.5 - Question re field entry

    Hi
    Within SRM5.5 for clean_reqreq_up, in the classic scenario,  does the logical system field require an entry ie the backend system or should it be left blank ?
    The reason for the question is that if a held LOCAL PO is deleted,  the end users check status does not show this when the clean program is run with the backend logical system input, but if left blank, the status does show in the check status graphical view.
    We have always run clean program with the backend system in on versions 2.0c, 3.5 and 5.5 and we had no issues, but after a few support packs, this is now a minor problem.
    OSS message was raised, but it seems that we may not now need a logical system in the field.
    Can anyone advise on how the job is recommended to be set for the logical system.
    Thanks

    yes. i schedule this job for every 3 minutes .
    if you have more than one backend system it is definetly required.
    even you can create a variant and mention logical system if you want.
    Muthu

  • How to Report on transactions performed in SRM_MDM catalog (SRM5 MDM2)

    What is the recommended way to do reporting for transactions performed INSIDE SRM_MDM catalog ( SRM5,  MDM2.0)
    Users inside SRM_MDM catalog can search for and select Product ABC and u201Ccompareu201D between 2 or more suppliers.
    Where do I get reporting (Data Manager , syndicator?)
    Is it possible to get reporting of the shopping cart (MDM catalog).  I choose Supplier X at price $12 vs Supplier Y at price $11 for product ABC. Were trying to find out how many times users choose a higher price for  a product instead of a lower price for the same product.
    By the time i transfer the Cart to SRM the selection has already been made and i cannot report on it...
    Option use BI to run report in MDM catalog..?
    cheers
    alex
    Edited by: Alex Waiyaki on Aug 11, 2010 5:24 PM

    Hi Alex.
    This was a really a good initiative of bringing this topic into this forum.Integrating SRM-MDM Catalog to BI for reporting purposes.
    But this functionality is not offered as a standard. Also SAP has to come up with such innovations in the future.
    I can think of some workaround to achieve your functionality(but not 100%)
    You can achieve this by using Shopping List* functionality provided in the SRM-MDM Catalog.
    You can create your own shopping list and before you transfer items to SRM, you can push those data to Shopping List, so that
    you can have an entry of items which you are transferring to SRM. So now you can integrate MDM and BI to bring up an analytical report based on the item which is transferred using Catalog.
    One usecase which is missing here is "How many times a person is shopping the same item" which couldn't be achieved from SRM-MDM Catalog and MDM side. But could achieve it from SRM end. You can write this logic in the BADI when the data is transferred back to SRM.
    Hope it give you a some idea.
    *Shopping List = Favourites
    Thanks
    Bala

  • WS14500015 - changes in second approval level

    Hi all,
    I'm fine tuning our two step item level approval workflow based on the WS14500015 standard flow. I've come across a problem which seems to be quite commonly discussed here, but I've also gotten the feeling that it may result in a catch-22 situation.
    Scenario:
    We're using a custom model, in which approvers are fetched based on the criteria for the items in the basket from a table and are assigned approval objects. Second level approval is based on product category, where approvers are assigned approval objects only if they are found for the particular category.
    The issue arises when the second level approver alters the cart above the limits of the manager who approved in the initial level. We would like this to trigger a new chain of approvals, in which the manager responsible for the new value (or cost center) has to process the new cart from step 1, but as of now the cart is automatically approved following acceptance from the initial agent.
    In general, it would be best to just not let the second level approver alter the items since he or she is not really authorized to do so, but I can't see a way of controlling this, since we can't restrict the customer from using the same manager as first and second level approver (in cases where alteration rights based on security level is concerned).
    I've debugged the code, and confirmed that the objects are updated as expected, but the cart is still completely approved after a second level change.
    Is it in scope to allow interlevel cart changes? Can I use the BBP_WFL_SECUR_BADI to change security level according to current approval step?
    I would greatly appreciate a small summary of what is possible and what is not possible regarding this general scenario, and the recommended approach (if such exists).
    Many thanks in advance!

    as in all own implementations you should copy the sap workflow to an own one, like Siddharth proposed. I didn't try this, i never needed second level approval so take what i say with a grain of salt.  Copy the task that deals with the approval (the one showed in the UWL of the first manager) for the next approval (second manager). It should be then inserted in the workflow after the first approval. Between the original approval task and the second one you should insert a step where you call your own abap class to set the new processor of the workflow - copy the one used by SAP in the first approver task and remove what you don't need, modify the stuff that you could use.
    You might be able to get the approval in the approval application using the BADI proposed by Siddharth but I am not sure using that BADI will create a UWL entry for the second approver.
    @SAP: a propos the class used for workflow task methods--> stop creating final classes !

  • Vendor Root in SRM5.0

    Hi,
    In case of multiple company codes in single backend logical system.
    What strategy should be adopted for creation of vendor root in case of SRM5.0 ?
    Any suggestions..
    regards,
    Rahul Mandale

    Hi
    <u>Please go through these links -></u>
    Re: Do we need to have Multiple Vendor Roots in PPOCV_BBP for Multiple back end
    Roles for vendor's creation
    Restrict The addition of new Vendor in SRM
    Re: Vendor Replication
    One SRM (Ver 5.0) and two R/3 systems as back-end in extended classic
    vendor replication in srm 5.0
    Vendor and Users Migration in SRM 5.0
    Re: Replication of Vendor master from SRM to backend.
    Re: SRM 5.0 - Assign user to multiple purchasing groups?
    Re: How to assign purchasing organization to a vendor using the GUI interfa
    Mapping R/3 vendor to existing vendor in SRM
    Root Org  Vs Vendor group
    Regards
    - Atul

  • Using WF WS14000133 and WS14500015 in same approval process

    Dear WF-Experts,
    we want to use the WF WS14000133 and WS14500015 in same approval process in BAdi "Determination of Approver for n-Step Dynamic Approval Workflow".
    For Example:
    - Shopping cart with 3 items and total value 1000,. EUR
    - first approval step financial for complete shopping cart cause total value
    - second approval step for item 1 and 3 cause cost center
    - not seperate approval for position 2
    - third and final approval step for complete shopping cart cause total value
    Thank you for your support
    Best regards
    Heinz-Georg

    For one approval process you can use only one workflow. But as you want some steps for the complete shopping cart and others on line item, use the line item approval. If you want to do the approval on "header" level just make sure all the items get the same approval object guid. That way all the items are assigned to the same approver and in that way you have a "header" approval.
    I used this for a similar requirement and it works fine.
    Regards,
    Martin

  • URGENT: Doubts in SRM5.0

    hi sir,
             i have some doubts in srm5.0 back end settings as shown below...
    1) what is VMC& how to activate VMC in SM52?
    2) what happend if i change the LOGICAL System for my naming convention in RFC destination?
    3) why should we maintain the local RFC within the SRM OWN server for what purpose? EVEN i having a SRM server.
    4) is it RFC user is a dialog user?
    5) I want to know the T.CODES for each &every menupath. pls tell me the path for that.
    my kind request to all can anyone send me solutions as written above questions URGENTLY.my id is      <b> [email protected]</b>
    WITH REGARDS TO ALL

    Hi
    1. For VMC check the link http://help.sap.com/saphelp_nw04s/helpdata/en/a9/26ae3c95164695accbf2483a14281e/frameset.htm
    2. Logical system name should be same as RFC destination (recommended by SAP), one reason may be, because for posting of IDocs in the system which will require same naming convention for LS name and RFC destination.
    3. I think, The local RFC is for creating the follow-on documents for SC in SRM system.
    4. RFC user may be a dialog or a system/communication user. For search helps you can RFC as dialog uer and for other data transfers thru RFC, it should be made as communication/system user.
    5. For Tcodes you can look at TSTC table. One alternative to find T-codes for an activity is (only some will work): SPRO - Menu options - Additional Information - Additional Information - Display Key - attributes.
    Rgds
    Reddy

  • Email notification to approvers WS14500015

    Hi all,
    I'm on SRM 5.0 SRM_SERVER 550 SAPKIBKT12, we've configured WS14500015, this is working fine, I need to notify to approvers the responsability of each work item, which are the steps to have this functionality? please provide me where exactly step by step need to be configured or developed
    Regards,
    José Luis D

    Hi Muthu
    I have SC Approve Shopping Cart-AP Approver and all options selected: Rejection, Approval, Changes and Deletion of Application Object I execute report RSWUWFML or RSWUWFMLEC and the result is:
    A Total of 1 Work Items Scanned.
    No Work Items Found that Needed Forwarding.
    What I missing?
    Regards,
    José Luis

  • SRM5.0 Ext.Class.Szen: Pos from old SC is copied with link to Backend PR

    Hello all,
    i have following problem in SRM5.0 Ext.Class.Szen. Does any one face simular issue and have any solution proposal?
    An external request (Purchase requisition) from  R / 3 is transferred to SRM and a SC is created and is visible in Sourcing Cockpit, then this SC is converted to PO (ECS) and transferred to the R / 3.  So far is everything is fine.
    But when a Position from this SC is copied manually using "Old Purchase Orders and Templates" the position in the new SC is copied along with the link to previous R / 3 Purchase requisition, which in turn tries to update the existing PO rather than creating a new one. Is it the standard behaviour of SRM?  Can this be restricted?
    Thannks & Regards,
    PM

    Hi PM
    sorry to disturb you.
    you can not see PR scs in Old purchase order templates ?
    since just buyer creates a PO from the cockpit and this cart was created by SM59 userid .
    so those carts mayy not available for you right..
    br
    muthu

  • WS14500015 - n-step WF, item based

    Hi Guys,
    I'm developing an item based approval WF for my customer (WS14500015), using the BAdI BBP_WFL_APPR_WORKFLOW, Method GET_REMAINING_APPROVERS.
    I have the situation, that a SC (BUS2121) is created with two items, the approver list looks as follows:
                                           Itm1    Itm2
    Appr1    EMPLOYEE_3      x         x
    Appr2    MANAGER_1        x
    Appr3    MANAGER_3        x         x
    When the approval process comes two MANAGER_1 I expect that he only sees the item he is responsible for and not both. At least this is what the indicator 'HIDE_ITEMS_NOT_RESPONSIBLE' implies.
    In my LT_APPROVER table I have 5 entries, they all point to the right approval object ID.
    Does anyone have a clue what is missing or which additional indicator needs to be set?
    Kind regards,
    Thomas

    hi,
    I dont think this is possible with the Header level approval workflow!You may need to think abt the item level approval workflow to distinguish between the items to be sent to the different approvers.
    BR,
    Disha.

  • SRM5.0 Cookbook

    Hi SRM Experts,
    I'm looking for the SRM5.0 Cookbook. Can anyone please send the cookbook to me on my e-mail [email protected]
    Thanks in advance!
    Best regards,
    Peter

    Hi Disha,
    Can u please forward that to me too.  your help will be highly appricated and i will reward full points for ur help.
    My mail id is [email protected]
    Thanking you,
    lokesh kumar

Maybe you are looking for

  • List all UME actions of all Roles

    HI all,          I need to list all the UME actions associated to all roles. I couldn't find any API suitable for this requirement. Can some one help me on this. ?  Thanks,

  • MIRO Invoice document number range to be assigned based on company code

    Hello all, We have different company codes in single client and we want each company code have diffrent set of Invoice document number. and seprate number range assignment i.e internal or external But SAP standard support Invoice document number assi

  • Adobe Access Protection on iOS devices?

    I am having an issue in terms of Adobe Access not supported in iOS. I have been developing a custom player along with a bunch of other back end Adobe Technologies only to find out now that protection is not available in iOS. DRMManager.isSupported re

  • Move Web Gallery

    I maintain two copies of aperture one on my MBP local hard drive and one on a remote HD. I export projects I've made while traveling, off of my local HD to the remote HD to leave room on the MBP. I made a Web Gallery on the local and unlike the proje

  • Problems Syncing Files to Blackberry Device

    I got a Blackberry 9800 Torch today. I've downloaded the Blackberry Desktop Software program for my Mac, and I managed to put 20 songs onto the Blackberry, but when I've tried to add more since then, I keep getting a message which states "This BlackB