SRM SC 'N' step workflow - Approver list wrong approver determined

Hi Team,
I am facing a repetetive issue for a SRM shopping cart N-step approval workflow.
Issue description:
1. The approver list populated in 'Subworkflow for n-Level Approval SC' step is incorrect.
2. The BADI for N-step determines correct approver (After running the BADI seperately)
3. The cost assignment (WBS) determined is correct, so no chance of incorrect approver.
Example:
As per WBS (say) E.008.01.02, the correct approver is 'A'.
The BADI when run separately gives 'A' as the approver - which is correct.
But, when the workflow is triggered and the approver list populated in the Sub-workflow step it gives approver as 'B'.
There is no link so as how this approver 'B' is determined.
I am unable to find the step where this BADI is populating this value (Code) and what could be the reason.
Appreciate your help as I am having a production emergency!
Many thanks.
Harsh Dave

Hi Vinoth,
The Task 14007989 deals after the approval list is populated.
If you observe the workflow log of a SC/PO, the step N-step workflow (sub-workflow) itself determines the approval list and then comes the step 'Determine Next Approver' - TS14007989.
I tried to where-used list and it just yielded two FM's - BBP_WFL_DIN_APPR_CONTAINER_GET & BBP_WFL_DIN_APPR_BY_RULE_GET.
But the 1st one is to get only approvers which are already determined in container & 2nd one checks for further approval required (Flag = 'X', see the FM interface).
This one doesn't help!
Thanks for your help, Let me know if you have any more findings on this!

Similar Messages

  • SRM 7 - Live Auction Workflow Approval

    Dear SRM gurus,
    How is the auction workflow approval configured using BRF?
    Thanks!

    Hello,
    SAP does not support approval for auction.
    You have to control create auction authorisations, Hope this solves your query.
    Thanks
    Ashutosh

  • N Step BADI Approval Workflow Error in SRM 7.0

    Hi,
    I have implemented SC  Workflow Approval based on line item(sequential approval). I implemented process controlled workflow for this using N step Badi. Necessasy configuration done for each level at schema. All steps are executed per line item and agents determined using N step Badi /SAPSRM/BD_WF_RESP_RESOLVER.
    Even in SC after the document is ordered, in approval overview tab i see the all level sequence with  approvers name for that  line item.
    But when approved by first approver, it doesnot move to the next level for approval and the SC is approved bypassing all approvers in the following levels.
    For example, if there four levels of approvals for one line item. as soon as the first approver approves the SC is approved and in SC Approval Overiew tab that contained four level of approval in it is now reset to one level with SC marked as appproved.
    Have anybody come across this error.
    Not able to figure out why it is happening so... need some expert advice.
    Thanks in Advance.

    Hi Masa .. thanks for your reply.
    Was on vacation so could not reply.
    I have below settings in SRM for SC
    Process Level definition should be like this.
    Level Eva.ID ; Resolver Task ID Decision Type
    100 L100 R100 40007953 Item-Based decision for Partial Doc.
    200 L200 R100 40007953 Item-Based decision for Partial Doc.
    300 L300 R100 40007953 Item-Based decision for Partial Doc.
    I have implemented /SAPSRM/BD_WF_RESP_RESOLVER for R100.
    for grouping we are using line item number ... so each line item is a group.
    Below are issues that i am facing now.
    For say 2 line item in a SC... with 3 level of approvals for each line item. I am not able to approve one line item in a sequence. For example: If for first line item, when I approve level one .. then the workitem doesnot move to 2nd approver's inbox for that line item. Now if second items (asssuming there are only 2 line items in SC) first approver has approved then i see all second level of approvers available for all line item.
    In short system waits for all one level approvers to approver for all line item and when all the line items are approved at one level then the workitems are available for seconds level of approval.
    Is this the standard behaviour?
    As per our requirement we wanted one line item shoudl follow the approveral sequence without being dependent on other items approval.

  • N step SC Approval Workflow - PCW

    Hi Experts,
    I'm new to SRM.
    We have requirment for N-Level Approvals Sequentially at item based for the SC .
    The Approval Level needs to be determined dynamically , by comparing the Total value of the SC with the Approval limit maintined in the Custom Table.The maximum Level of approval is 3.
    Example:
    Workitem Should be triggered Sequentially.
    If the SC has 2 line items .
    First Line item
    When the Ship-to address is maintained,the Total values of SC - 3000£  and the Line item Value is above threshold value.                              
    Workitem reaches Approver1 - Approved then                        
    Workitem reaches Approver2- Approved then
    Workitem reaches Approver3
    Second Line item
    When the Ship-to address is maintained,the Total values of SC - 3000£  and the Line item Value is below threshold value. 
    Workitem Shouldnot Trigger.
    Questions:
    Do i need to maintain 1 or 3 process level at Config?
    is it possible to check the Line item value at the Evaluation ID itself by copying the FM /SAPSRM/WF_BRF_0EXP000
    , if so how to to know the for which line item(item guid) the Process level is been called?
    There are three conditins to be checked for triggering the workitem
    1.Ship to party check
    2.Total value Sc check
    3 Line item value check
    Which conditions can be maintinaed in the Evaluation Id?
    Which conditions can be maintinaed in the BAdi?
    How to Achive the requirmeent.
    Please Let me know how to proceed.
    Thanks in Advance.
    Edited by: srmtech on Dec 19, 2011 11:31 AM

    Hi,
      I got your email..Please refer the below link and close this thread..
      N- step SC Approval Workflow
    Saravanan

  • 1-step SC approval  workflow - error awaiting approval

    Hi all,
    I am configuring 1-step SC approval  workflow but it gives me the status as 'awaiting approval' when i click on check status of SC and the 'Manager'[user] doesn't receive the mail. can someone help me on this?
    Regards,
    roopesh

    Hi Roopesh,
    *) activate SAPCONNECT (Transaction SICF)
    ) Transaction SCON - define node SMTP (specify mail server, port, codepage, internet as supported address, "" as address area
    *) define job for mail sending
    *) assure that all users have e-mail in their master record
    *) maintain domain using transaction SCOT.From menu -> Settings ->Default Domain. ( eg ibm.com )
    *) In the attribute of person in organization structure  FORWARD_WI should be 'X'
    *)Schedule a report RSWUWFMLEC to send E-mail notification for new work item
    this wil help
    smita

  • SRM SC Workflow: Runtime Actual Approval determination

    Hi all,
    I want to know who approved the SC in runtime within the BADI so that comparing his Approval Limit with the cost of SC I can decide whether to skip or go for next approval levels.
    Please help how to find it out. I have checked the history table but it contains a field "Type" whose possible values can only be either "changed" or "insert" and does not indicate "Approve" status for any agent....
    Please help,
    Thanks
    Sangharsh

    Hi Sangharsh,
    I believe that you are using workflow approval BAdI - BBP_WFL_APPROV_BADI.
    This BAdI is having a table called APPROVAL_TABLE, all the agents in this BADI will appear in your approval pre-view.
    You have to write a code in your BADI as follows -
    - Check Approval limit of the manager
    - If it is more than SC value, append APPROVAL_TABLE otherwise you can skip him.
    If you need more help, do let me know.
    Thanks and Regards
    Pras

  • Error in N step Workflow WS14000133

    Hi ,
    I implemented N-step workflow and BADI in SRM 5.5 SP07. It works good for approvals. If the cart is rejected by an approver, it comes back to the cart creator for editing. But when the creator deletes the cart, workflow errors out. I found that the task TS14907939 does not exist but is coded in one of the step in WS14900032 workflow. I checked Notes 989135 & 1029396 which are not relevant for our version.
    Please provide me with some suggestions to resolve the error in workflow.
    Thanks.
    Srini

    Hi
    <b>Please go through the SAP OSS Notes below -></b>
    Note 1029396 - WS14900032: Task TS14907939 is missing
    Note 989135 - Wrong languages in mail notifications
    This seems to work for you. Sure shot solution. )
    Do let me know.
    Regards
    - Atul

  • Workflow approval for sb

    I'm in the extended classic scenario. I need to check the workflow approval before of the sb saving. How table, objects contains this information?
    thanks
    Sabrina

    Hi
    What do you mean by sb ? Is it sc (Shopping cart or  something else ) ?
    Couple of ways to find the equired details.
    1) By SRM GUI logon, incase you know the shopping cart number, using BBP_PD  Transaction, you can get the complete Shopping approver details there itself.
    2) By SRM Web page, if you created a new shopping cart, in the Approver Preview section, just one level above the Order button, you can see the list of managers, who will be approving the shopping cart (With their details in 2 manner - graphical/ tabular details - like name, next level approver, etc )
    3) By using the Standard SRM Workflow function modules, incase you know the Shopping cart details,  you can get the approver list with their names, approving limit etc.                           
    <b>
    *-- get Approval preview - on the Shopping cart applet information - Standard SRM uses this function to get the Approval preview in the shopping cart
          CALL FUNCTION 'BBP_PDH_WFL_PARAM_APPLET_FILL2'</b>
    By creating a custom program, you can use the logic of fetching the approvers in advance, as done by SAP, you can get all the required details.
    Refer this link for details.
    <u>Re: where i can get Badi approvers..
    <b>Try BBP_WFL_APPROV_BADI using SE18 Transaction to determine SRM N-step level Approval Workflow</b>
    Regards
    - Atul

  • N-Step workflow for invoice

    1. Is there a way to implement n-step (more than 2 )approvals for invoices? Can I use the same BADI for n-step approval for shoupping cart?
    2. If a vendor is not on supplier portal is there a way send a offline RFQ and get the bid somehow in the system without having vendor being created in the system?

    Hi
    <b>Please go through this -></b>
    <u>It is possible to copy the standard workflow and make you custom workflow acordingly.You just have to copy standards workflow and all subworkflow under this as well.You have to take care of attributes of workflow in same way as standard workflow.</u>
    <u>Implementing a BADI - BBP_WFL_APPROV_BADI using SE18 Transaction is also feasible solution.</u>
    Invoice rejected in the invoice workflow.
    Re: Invoice Workflow : Dialog work item created
    Re: Sample Code needed for N-step approval SC BADI
    Re: Invoice BUS2205 Workflow
    Approval workflow is ambiguious- for Invoice WF
    <b>Please refer to these links as well.</b>
    <u>N-step Approval workflow</u>
    http://help.sap.com/saphelp_srm40/helpdata/en/17/40a86c773d6c41801d78af1a34b90f/content.htm
    <u>N-step Dynamic approval</u>
    http://help.sap.com/saphelp_srm50/helpdata/en/17/40a86c773d6c41801d78af1a34b90f/frameset.htm
    <u>SRM Business Workflow</u>
    http://help.sap.com/saphelp_srm50/helpdata/en/8b/4fa9585db211d2b404006094b92d37/frameset.htm
    <u>Dynamic Modification - Workflow</u>
    http://help.sap.com/saphelp_srm50/helpdata/en/84/dda441e79ead5fe10000000a1550b0/frameset.htm
    <u>Item-based Approval for Shopping carts</u>
    http://help.sap.com/saphelp_srm50/helpdata/en/a3/a6a34098022a54e10000000a1550b0/frameset.htm
    <u>Business Add-Ins</u>
    http://help.sap.com/saphelp_srm50/helpdata/en/bc/6129383d5ec70ce10000009b38f8cf/frameset.htm
    Do let me know incase you face any issues in Design / coding of this N-level Approval workflow.
    <u>For the 2 point, it is not sure. I don't think there is any way to send offline RFQ.</u>
    Hope this will help.
    Regards
    - Atul

  • About N-Step workflow

    Hi,
    We are developing the workflow for our SRM. We are using the N-Step workflow. Could anyone please let me know how the N-Step workflow works or any links to know this.
    And also I have to send the notifications for all the approvers determined in N-Step workflow BADI when an workitem has sent to his inbox as part of approval. Please tell me how can we handle the notifications and Deadlines for N-Step workflow.
    Is there any specific way or steps to follow for sending notification emails and sepecifying the deadlines.
    Thanks,
    Murali.

    for sending notification emails and sepecifying the deadlines
    pl check the follow
    http://help.sap.com/saphelp_srm50/helpdata/en/42/c8aaddd9cc6bb3e10000000a1553f6/content.htm
    BR
    Dinesh

  • SC Workflow: Runtime Actual Approval determination

    Hi all,
    I want to know who approved the Shopping Cart (SC) in runtime within the BADI so that comparing his Approval Limit with the cost of SC I can decide whether to skip or go for next approval levels.
    Please help how to find it out. I have checked the history table but it contains a field "Type" whose possible values can only be either "changed" or "insert" and does not indicate "Approve" status for any agent....
    Please help,
    Thanks
    Sangharsh

    Hi
    Try this BADI - BBP_WFL_APPROV_BADI.
    <u>BBP_WFL_APPROV_BADI</u> 
    Determin. Approv. for n-Level. Dynamic Approval WFL 
    You need to make a logic in your case.
    <u>Refer to the sample BADI logic.</u>
    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 is the 2nd example of the BADI implementation that includes
    * dynamic spending limit approval for PO
      INCLUDE <swfcntn01>.                  "Workflow
      DATA:
       ls_header                   TYPE bbp_pds_sc_header_d,
       ls_approver                 TYPE bbp_wfl_approval_table_badi,
       lv_approval_index           TYPE swh_numc10,
       lv_guid                     TYPE crmt_object_guid,
       lo_new_instance             TYPE swf_bor_object,
       lt_approval_agent_obj       TYPE TABLE OF swf_bor_object,
       ls_wa_agent_obj             TYPE swf_bor_object,
       lo_user                     TYPE swf_bor_object,
       ls_approval_agent           TYPE bbp_wfl_approval_table,
       lv_index                    TYPE syindex,
       lv_usr01_name               TYPE ad_namtext,
       lt_approval_init_agents     TYPE TABLE OF bbp_wfl_approval_table,
       ls_wa_approval_init_agents  TYPE bbp_wfl_approval_table,
       ls_wa_approval_history      TYPE bbps_wfl_history_line_badi.
    * Business objects type (local constants)
      CONSTANTS:
       c_po            TYPE crmt_subobject_category_db VALUE 'BUS2201',
       c_biddingdoc    TYPE crmt_subobject_category_db VALUE 'BUS2200',
       c_quotation     TYPE crmt_subobject_category_db VALUE 'BUS2202',
       c_grse          TYPE crmt_subobject_category_db VALUE 'BUS2203',
       c_invoice       TYPE crmt_subobject_category_db VALUE 'BUS2205',
       c_shop          TYPE crmt_subobject_category_db VALUE 'BUS2121',
       c_contract      TYPE crmt_subobject_category_db VALUE 'BUS2000113',
       c_salescontract TYPE crmt_subobject_category_db VALUE 'BUS2000114',
       c_avl           TYPE crmt_subobject_category_db VALUE 'BUS2206',
       c_invoicegrp    TYPE crmt_subobject_category_db VALUE 'BUS2207',
       c_vendor_obj    TYPE crmt_subobject_category_db VALUE 'BUS1006200'.
    *** workflow approval states
      CONSTANTS:
       c_wf_approved           TYPE  bbp_wfl_approvalstate VALUE '0',
       c_wf_rejected           TYPE  bbp_wfl_approvalstate VALUE '1',
       c_wf_not_instanced      TYPE  bbp_wfl_approvalstate VALUE '2',
       c_wf_changed            TYPE  bbp_wfl_approvalstate VALUE '3',
       c_wf_partialapproved    TYPE  bbp_wfl_approvalstate VALUE '4',
       c_wf_step_in_process    TYPE  bbp_wfl_approvalstate VALUE '5'.
      CLEAR: lt_approval_init_agents[], lt_approval_agent_obj[],
             ls_wa_agent_obj, ls_approval_agent, ls_wa_approval_init_agents,
             ls_wa_approval_history.
    * map input data to local data
    * map char32 to raw16
      MOVE guid TO lv_guid.
      CASE object_type.
    * ======================   shopping cart  =========================== *
        WHEN c_shop.
    *** get the details of the shopping cart
          CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
            EXPORTING
              i_guid      = lv_guid
              i_object_id = object_id
            IMPORTING
              e_header    = ls_header.
          IF ls_header-total_value < 490000000.
    *** 2 step approval
            CASE actual_approval_index.
              WHEN 0.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 1.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 2.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
              WHEN OTHERS.
                no_further_approval_needed = 'X'.
            ENDCASE.
          ELSE.
            CASE actual_approval_index.
    *** 3 step approval
              WHEN 0.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 1.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 2.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 3.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN OTHERS.
                no_further_approval_needed = 'X'.
            ENDCASE.
          ENDIF.
    * ======================  purchase order ============================= *
        WHEN c_po.
    *** 1) Evaluate the list of spending limit approvers from BOR attributes
          swf_create_object  lo_new_instance  object_type   guid.
          swf_get_property   lo_new_instance 'SLManagerUserList'
                                              lt_approval_agent_obj[].
          lv_index = 1.
          LOOP AT lt_approval_agent_obj INTO ls_wa_agent_obj.
            swf_get_property ls_wa_agent_obj 'User' lo_user.
            swf_get_property lo_user 'NameWithLeadingUS'
                                    ls_approval_agent-approval_agent.
            swf_get_property lo_user 'Name' lv_usr01_name.
            MOVE lv_usr01_name TO ls_approval_agent-name.
            ls_approval_agent-approval_index = lv_index.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = lv_index.
            ls_approval_agent-initial_agent =
                                 ls_approval_agent-approval_agent.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO lt_approval_init_agents.
            lv_index = lv_index + 1.
          ENDLOOP.
    *** 2) Evaluate the list of remaining approvers. The actual approver
    ***    belongs to the list as well.
          LOOP AT approval_history_table INTO
                       ls_wa_approval_history WHERE type <> 'I'.
            LOOP AT lt_approval_init_agents INTO
                                      ls_wa_approval_init_agents.
              IF ls_wa_approval_init_agents-approval_index LT
                        ls_wa_approval_history-approval_index.
                DELETE lt_approval_init_agents.
              ENDIF.
            ENDLOOP.
          ENDLOOP.
    * fill the import table
          CLEAR ls_wa_approval_init_agents.
          LOOP AT lt_approval_init_agents INTO
                                    ls_wa_approval_init_agents.
            CLEAR ls_wa_approval_history.
            MOVE-CORRESPONDING ls_wa_approval_init_agents TO
                                              ls_wa_approval_history.
            APPEND ls_wa_approval_history TO approval_table.
          ENDLOOP.
          IF approval_table[] IS INITIAL.
            no_further_approval_needed = 'X'.
          ENDIF.
    * ========================  contract ================================ *
        WHEN c_quotation.
          IF lv_index LT 2.
            ls_approval_agent-approval_description = '1st Approval'.
            ls_approval_agent-approval_index = 1.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = 1.
            ls_approval_agent-name = 'Hennes Kaempfer'.
            ls_approval_agent-approval_agent = 'USMANAGER4'.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO approval_table.
            ls_approval_agent-approval_index = 1.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = 1.
            ls_approval_agent-name = 'Paul Reiter'.
            ls_approval_agent-approval_agent = 'USMANAGER5'.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO approval_table.
            ls_approval_agent-approval_description = '2nd Approval'.
            ls_approval_agent-approval_index = 2.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = 2.
            ls_approval_agent-name = 'Dieter Mueller'.
            ls_approval_agent-approval_agent = 'USMANAGER33'.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO approval_table.
          ELSE.
            no_further_approval_needed = 'X'.
          ENDIF.
      ENDCASE.
    ENDMETHOD.
    Regards
    - Atul

  • BADI n-step SC approval - Approval Index and Data Change Problems

    Dear forum gurus,
    We are implementing SRM 5.0 (SRM SERVER 5.5 SP 9) in Extended classic. I am developing the BADI's to use the n-step SC approval workflow WS14000133.
    Our approval process is as follows:
    1. Cost Centre approver (based on CC with the largest value in the SC)
    2. Financial approver (based on the total value of the SC)
    I have done this now and it works as long as every step is approved!
    I have implemented the BADI 'BBP_WFL_EMPL_WI_BADI' - method 'CHECK_REQUESTER_WI' to send back any changes to the cost centre to the shopper to review. The standard also sends back total value changes to the shopper in the same way.
    My problem is that if the main CC or the total value of the SC are changed, the logic goes back to the shopper and then if the shopper 'Accepts changes', the logic skips the first apporver again and goes directly to the second (financial approver).
    I think there are 2 options:
    1. After the shopper accepts chnages, to restart the WF so a new WF template is generated. Then my logic will show the new CC and FI approvers again.
    2. I change my logic in the 'GET_REMAING_APPROVERS' method so the apporval index is not assumed to be 1 or 2 only. I guess I will have to work with logic to read the history and apporval index, but this seems very complex.
    Option 1 - I can't get this to work. After the shopper accepts changes I can't get the WF to restart in the 'BBP_WFL_SECUR_BADI'.
    Has anyone fixed this?
    Option 2 - The logic for checking apporval index and apporval history tables seems to me very complex. Has anyone done this and can they explain the logic to me if so? The problem here is that the sample code for this BADI assumes the approval indexis always 1 for the first step and 2 for the second step, but this is not the case!
    Thanks in advance,
    Best regards,
    Nick

    Hi,
    I feel setting the parameter BBP_WFL_SECURITY  for the Approver should do the trick.i.e. Restart the workflow adn the same approval process should be followed again.So plese adjust the value of this parameter for the Approver role in trascn PFCG.Also if you want to overwrite the settings of this paramtere(as maintained in PFCG),you can implement the BADI "BBP_WFL_SECUR_BADI".
    For  more info,refer  the foll links:
    http://help.sap.com/saphelp_srm50/helpdata/en/37/830b3b7e7ef74de10000000a114084/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/f7/a6a3415e34b05fe10000000a1550b0/frameset.htm
    BR,
    Disha.
    <b>Pls reward points for useful answers.</b>

  • WS14500044 - N-step workflow

    Hi guys,
    Can anyone tell me how to use this workflow?.
    Steps required.
    Thanks ...
    Points will be rewarded.
    Srininvasan K

    Srininvasan,
    You need to implement the BAdI to determine the approver.
    SPRO:  Supplier Relationship Management --> SRM Server --> Business Add-Ins (BAdIs) --> Determination of Approver for n-Step Dynamic Approval Workflow
    In particular, the GET_REMAING_APPROVERS of  BAdi defination BBP_WFL_APPROV_BADI.
    A few sample implementation are provided.
    SE18 to view the defination of the BAdi
    SE19 to implement the BAdi
    check out N-step BADI workflow
    Hope that helps.
    Naing Zaw-Tun

  • Workflow approval/reject buttons have dissapeared

    Hello
    I am using workflow task to approve or to reject the workflow assign task. I've just tried to reorder the workflow task fields by entering into "Workflow Task (Sharepoint 2013)" content type, and then entering into "Column order" there,
    and then I just reordered some fields inside. This caused the dissapearence of approve/reject buttons from workflow task approval form.
    Please help!
    Thanks

    I was having the same issue, though I don't know how I got there.  (I had "help" on the site.)
    I performed these steps to resolve the issue:
    Deleted the Workflow Tasks list.  
    Created a new workflow "Delete Me" for the sole purpose of creating the Workflow Tasks list again.  Publish the workflow.
    Went back to the original workflow and selected the new Workflow Tasks list and republished.  The buttons came back.  
    Then, I deleted the "Delete Me" workflow.
    Hoping this solution is valuable to someone else,

  • Single step workflow with multiple approvers (without using a group)

    Hi,
    is it possible to have a single step workflow with multiple approvers without using a group? This is for a contract document.
    i want to add a number of users based on particular logic. The approvers are random and do not belong to any particular group.
    DO let me know if it is possible or if any of you have done that.
    thanks in advance.
    regards,
    rubio

    Hi Rubio,
    I believe the behavior would be, if individual users are added as approvers then the system would require each approver to approve the document. However, if you use the user group, you could set the role so that it would be either ALL or ANY.
    Regards,
    Vikram

Maybe you are looking for