How to Implement N-Level Approval for Bid,Live Auction,PO,Contract ?

Hi Experts,
              I am new to SRM 5.0. My requirement is how to implement N-Level Approval for Bid, Auction, PO and Contract? Which steps should I follow for        N-Level Approval? Can any one send me sample code and name of BADI where I have to implement the code.
Abhijeet Panse

Hi
Please check for <b>BBP_WFL_APPROV_BADI</b> using SE18 transaction for relevant Code as well and standard SAP documentation.
Related sample code and other useful pointers ->
WS14500015 is not working for Multilevel approval
Re: SRM / Shipping cart
Re: N Step Approval BADI - BBP_WFL_APPROV_BADI
Re: N-step BADI workflow
http://help.sap.com/saphelp_srm50/helpdata/en/8b/4fa9585db211d2b404006094b92d37/content.htm
http://help.sap.com/saphelp_srm50/helpdata/en/2c/e68d406b305537e10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_srm50/helpdata/en/17/40a86c773d6c41801d78af1a34b90f/frameset.htm
Multiple Implementation For BBP_WFL_APPROV_BADI
Re: Help needed on N-Step Approval WFL for SC
Re: N-Step 14000109 workflow - Unable to identify Approvers
Do let me know.
Regards
- Atul

Similar Messages

  • N level-Approval for contract workflow (WS14000148) in SRM

    Hi SDN'rs
                  I want to activate N level-Approval for contract workflow (WS14000148) in SRM  
    When I am creating the contract in SRM I can see the approvers in the approval preview.
    But when I release the contract and look at the approval privew there are no approvers
    and the status of the contract is released.
    We are on SRM Server 5.5 and SP 07.
    Here what I did
    1. I implemented the BADI 'BBP_WFL_APPROV_BADI' using the sample implementation and populated the approvers.
    2. I activated events SAVED,CHANGEVERSIONSAVED for WS14000148 in OOCU transaction.
    3. I see event linkages for WS14000148 for both events SAVED,CHANGEVERSIONSAVED in SWE2 transaction.
    4. I assigned role SAP_EC_BBP_PURCHASER to for subworkflow N step for contract WS14000147.
        ( User who is creating contract has this role)
    5. Consistency check for WS14000148 is green and WS14000147 is yellow in SWUD
    6. Event simulation for BUS2000113 and events SAVED,CHANGEVERSIONSAVED shows WS14000148 successfully started.
    I see dump in ST22 with errors TSV_TNEW_PAGE_ALLOC_FAILED and SYSTEM_NO_SHM_MEMORY with WF-BATCH is this any thing to do with that?
    If any one know what are the steps I am missing please let me know.
    Thanks
    A S

    Hi
    Please refer to these OSS notes which might help.
    <u>Refer to following OSS Notes -></u>
    Note 735026 - Memory problems at BBP_GETLIST_INDEX_FILL
    Note 932836 - BBP_GETLIST_INDEX_FILL: Activation not possible
    879528 WS14000148: Send mail to initiator incorrect
    901200 WS14000148 dia wrk item despite NO_FURTHER_APPROVAL_NEEDED=X
    879873 BUS2000113: The Object_ID attribute may be empty
    903015 BAdI Workflows: Events and parallel steps
    901068 BAdI Workflows: Enhancement of Note 896556
    769458 Dynamic workflows: No adjustment after document change
    972757 Occurence of the SYSTEM_NO_SHM_MEMORY runtime error
    741864 FinBasis: Termination TSV_TNEW_PAGE_ALLOC_FAILED
    864473 Deactivating the shared memory when searching by prefix
    928642 Container factory: Shared memory dump update
    Refer to these links.
    <b>http://help.sap.com/saphelp_srm50/helpdata/en/2c/e68d406b305537e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/26/0f8b41ed891609e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/6b/eca441eea7ef0be10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/f7/a6a3415e34b05fe10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/6b/eca441eea7ef0be10000000a1550b0/frameset.htm
    </b>
    <u>Also raise an OSS message with SAP as well.</u>
    Regards
    - Atul

  • How to implement data level security

    How to implement data level security in BI Publihser?. I am using Obiee enterprise edition and bi publihser. My requirement is to show data based on User- Region relation ship.
    User A - belongs to Eastern Region
    User B - belongs to Southern Region
    so if user A logged in he should see only Eastern Region report. If user B logged in He should see only Southern region. I am using direct sql to my oralce database as data source.
    i appriciate your help

    I am using a common database username and password for jdbc connection. what i am looking is based the BI Publihser login, is there any way?
    say i have userregion table joined with fact. so that i can write a query to get the data
    select c1,c2,c3
    from userregion, fact
    where fact.region=userregion.region
    and userregion.user = BIPUBLIHSERUSER
    but my question is ithere any variable to tell who is logged in BI Publisher? Any server varaibles?
    Other related question is, In every report i want to show User name who is running the report. How can i get this?

  • Multiple level approval for overall PR release

    Hi all
    is there a template for multiple level approval for overall PR release  ?
    is there some alternative  if there is no template ?
    thanks in advance .
    Naval Bhatt

    Hi NB,
    there is no std template for multiple approvers for PR release.
    Create a copy of std template and implement ur logic to it.
    Aditya

  • The layout of approval for bid

    hi guru,
        Could u give me a screen snap about the approval for bid? I just want to know if the approver can compare the prices from different bidders. How the screen looks like.
        Thank you in advance.

    if i click on display all recording it fetching 40 records when i give the page limit 20 records if click on next page records it showing the error

  • Is it possible Line level approval for purchasing requisition in AME?

    hi
    is it possible Line level approval for purchasing requisition  in AME?
    so that send each line to separate approver ?

    If using AME, it should be possible. Check AME Guide for POs for details. Let me know if you run into issues.
    Thanks
    Shree

  • 2 level approval for workflow

    Hi all,
    I am supposed to make an EP workflow for 2 level approval for absences or leaves. I am using a copy of workflow WS12300111. I am able to get the single level of approval, but not the second level. When the request goes to the second approver ( which is the supervisor of first approvar), it shows the leave requests of the first approvar and when I check the workplace of the employee who applied for the leave, his leave has the status 'approved'.
    In other words, when the first supervisor or approvar approves the request, it gets approved and second approvar has no option to approve it again.  Please suggest what to do?
    In my tasks for approval, I am using the class - CL_PT_REQ_WF_ATTRIBS and the method APPROVE. Is that correct???
    Is there any other standard workflow which I can refer to?
    Thanks

    Dear Raja Sekhar,
    I create a sampel program with the following code in SE38 and put in the following code. However, it seem that it does not work and the status did not get updated.
    Do you know what is the problem?
    DATA:
    request TYPE REF TO if_pt_req_request,
    event   TYPE tim_req_xfer_event VALUE cl_pt_req_const=>C_REQTRANS_APPROVE,
    req_id  TYPE PTREQ_HEADER-REQUEST_ID value '48561480F033007EE1008000C0A8D282',
    status  type TIM_REQ_STATUS.
    CALL FUNCTION 'ENQUEUE_EPTREQ'
      EXPORTING
        mode_ptreq_header = 'E'
        request_id        = req_id
      EXCEPTIONS
        foreign_lock      = 1
        system_failure    = 2
        OTHERS            = 3.
    CALL METHOD ca_pt_req_header=>agent->get_request
      EXPORTING
        im_request_id = req_id
      IMPORTING
        ex_request    = request.
    CALL METHOD request->initiate_state_transition
      EXPORTING
        im_transfer_event    = event
       im_event      = event
       IM_RET_VALUE  = 0
      IMPORTING
        ex_new_status = status.
    CALL FUNCTION 'DEQUEUE_EPTREQ'
      EXPORTING
        request_id = req_id.
    Thanks
    Regards,
    Bryan

  • How to Implement the Search page for Workflow Notifications?

    Hi All,
    I want to implement the new Search page for Workflow Notifications. Search page containing Company, Paygroup, Source, Initiator, Supplier Name, From date & To date fields. These fields(Poplist & Calendar) are getting the values from different tables and these fields are not in WF_NOTIFICATIONS table only Initiator & dates are there. After selecting the values in all fields or one field based upon these values I want to display the all Workflow Notifications ( Those are satisfy the search criteria only not all ) in Advance Worklist Table RN in the Notifications page. Is it possible to create the Search page based upon the above scenario if Yes Let me know how to implement this search page for Workflow. Page was designed but how to get the sortlisted Notifications and how to pass these values to next page?
    Thanks in advance.
    Edited by: user635152 on Nov 13, 2008 10:53 AM

    Hi Guru,
    I crete the Search page having 5 poplists and select the values from dropdown list and click GO button it serch the records and displays that records in ResultsTable in same page.
    My case, Search page is running fine if I select the values and click GO button page is refreshed without errors but I am unable to displays the records in ResultsTable.
    What I am missing?
    My Select Stmt:
    SELECT * FROM      
    (select wn.nid notification_id
    ,ou.name company
              ,I.PAY_GROUP_LOOKUP_CODE paygroup
              ,'AP' source
              ,pf.full_name initiator
              ,pv.vendor_name supplier_name
              ,I.GL_DATE FROM_TO_DATE
    from ap_invoices_all i
    , po_vendors pv
         , hr_operating_units ou
         , per_all_people_f pf     
         , FND_USER FU
    , (SELECT trim(substr(substr(substr(WN.subject,(instr(WN.subject,'Invoice ') + 8),100),1,100),
    1,instr(substr(substr(WN.subject,(instr(WN.subject,'Invoice ') + 8),100),1,100),' for'))) inv_no
    ,notification_id nid
    FROM WF_NOTIFICATIONS WN
    WHERE WN.MESSAGE_TYPE = 'APINV'
    AND WN.STATUS NOT IN ('CANCELED','CLOSED')) wn
    where i.vendor_id = pv.vendor_id
    and i.invoice_num = wn.inv_no
    and i.WFAPPROVAL_STATUS = 'REQUIRED'
    and pv.vendor_name = nvl(:vendor_name,pv.vendor_name)
    and i.org_id = OU.organization_id
    AND OU.name like nvl(:company_name,name)
    and i.pay_group_lookup_code = nvl(:pay_group,i.pay_group_lookup_code)
    and exists (select ad.invoice_id
    from ap_invoice_distributions_all ad
    where ad.invoice_id = i.invoice_id
    and ad.accounting_date between nvl(:from_date,ad.accounting_date)
                                       and nvl(:to_date,ad.accounting_date))
    and 'AP' = nvl(:source,'AP')
         and i.created_by = fu.user_id
         AND fu.EMPLOYEE_ID = pf.person_id
         AND pf.full_name like nvl(:initiator, pf.full_name)
    UNION ALL
              select po_num.nid notification_id
              ,ou.name company
              ,ps.PAY_GROUP_LOOKUP_CODE paygroup
              ,'PO' source
              ,pf.full_name initiator
              ,pv.vendor_name supplier_name
              ,P.CREATION_DATE FROM_TO_DATE
         from po_headers_all p
         ,po_vendors pv
              ,po_vendor_sites_all ps
              ,hr_operating_units ou
              ,per_all_people_f pf
         ,(select trim(substr(wn.subject,24,instr(wn.subject,' for')-24)) po_no, notification_id nid
              FROM WF_NOTIFICATIONS WN
         WHERE WN.MESSAGE_TYPE = 'POAPPRV'
         AND WN.STATUS NOT IN ('CANCELED','CLOSED')
         and wn.subject like 'Standard Purchase Order%') po_num
         where p.SEGMENT1 = po_num.po_no
         and p.vendor_id = pv.vendor_id
         and p.org_id in(select organization_id
         from hr_operating_units
         where name like nvl(:company_name,name))
         and pv.vendor_name = nvl(:vendor_name,pv.vendor_name)
         and p.AUTHORIZATION_STATUS = 'IN PROCESS'
         and p.CANCEL_FLAG = 'N'
         and 'PO' = nvl(:source,'PO')
         and p.agent_id = pf.person_id
         and pf.full_name like nvl(:initiator, pf.full_name)
         and pv.vendor_id = ps.vendor_id
         and ps.org_id = ou.organization_id
         and ou.name like nvl(:company_name,name)
    and ps.PAY_GROUP_LOOKUP_CODE = nvl(:pay_group,ps.PAY_GROUP_LOOKUP_CODE)
         and trunc(p.creation_date) between nvl(:from_date,trunc(p.creation_date)) and nvl(:to_date,trunc(p.creation_date))
    In CO PFR Code:
    if (pageContext.getParameter("Go") != null)
    OAQueryUtils.checkSelectiveSearchCriteria(pageContext, webBean);
         String COMPANY = pageContext.getParameter("COMPANY");
    String PAYGROUP = pageContext.getParameter("PAYGROUP");
    String SOURCE = pageContext.getParameter("SOURCE");
    String INITIATOR = pageContext.getParameter("INITIATOR");
    String SUPPLIER_NAME = pageContext.getParameter("SUPPLIER_NAME");
    Boolean executeQuery = BooleanUtils.getBoolean(false);
    Serializable[] parameters = { COMPANY, PAYGROUP, SOURCE, INITIATOR, SUPPLIER_NAME, executeQuery};
    Class[] paramTypes = { String.class, String.class, String.class, String.class, String.class, Boolean.class };
    am.invokeMethod("initSearch", parameters, paramTypes);
    OAAdvancedTableBean table = (OAAdvancedTableBean)webBean.findChildRecursive("ResultsTable");
    table.queryData(pageContext, false);
    AM invoke Method():
    public void initSearch(String company,
    String paygroup,
    String source,
    String initiator,
    String supplier_name,
    Boolean executeQuery)
    WorklistFindVOImpl vo = getWorklistFindVO1();
    if (vo == null)
    MessageToken[] tokens = { new MessageToken("OBJECT_NAME", "WorklistFindVO1") };
    throw new OAException("AK", "FWK_TBX_OBJECT_NOT_FOUND", tokens);
    vo.initQuery(company, paygroup, source, initiator, supplier_name, executeQuery);
    VO Code:
    public void initQuery(String company,
    String paygroup,
    String source,
    String initiator,
    String supplier_name,
    Boolean executeQuery)
    StringBuffer whereClause = new StringBuffer(500);
    Vector parameters = new Vector(5);
    int clauseCount = 0;
    int bindCount = 0;
    setWhereClauseParams(null); // Always reset
    if ((company != null))
    String companyname = null;
    try
    companyname = new String(company);
    catch(Exception e) {}
    whereClause.append("COMPANY= :COMPANY");
    whereClause.append(++bindCount);
    parameters.addElement(company);
    clauseCount++;
    if ((paygroup != null) && (!("".equals(paygroup))))
    if (clauseCount > 0)
    whereClause.append(" AND ");
    whereClause.append("PAYGROUP = :PAYGROUP");
    whereClause.append(++bindCount);
    parameters.addElement(paygroup);
    clauseCount++;
    if ((source != null) && (!("".equals(source))))
    if (clauseCount > 0)
    whereClause.append(" AND ");
    whereClause.append("SOURCE = :SOURCE");
    whereClause.append(++bindCount);
    parameters.addElement(source);
    clauseCount++;
    if ((initiator != null) && (!("".equals(initiator))))
    if (clauseCount > 0)
    whereClause.append(" AND ");
    whereClause.append("INITIATOR = :INITIATOR");
    whereClause.append(++bindCount);
    parameters.addElement(initiator);
    clauseCount++;
    if ((supplier_name != null) && (!("".equals(supplier_name))))
    if (clauseCount > 0)
    whereClause.append(" AND ");
    whereClause.append("SUPPLIER_NAME = :SUPPLIER_NAME");
    whereClause.append(++bindCount);
    parameters.addElement(supplier_name);
    clauseCount++;
    setWhereClause(whereClause.toString());
    if (bindCount > 0)
    Object[] params = new Object[bindCount];
    parameters.copyInto(params);
    setWhereClauseParams(params);
    if ((executeQuery != null) && (executeQuery.booleanValue()))
    executeQuery();
    } // end initQuery()
    Please let me know what I did mistake in my code?
    I am unable to find it what I missing and there is no errors but no records displayed in Results Table.
    Please it's urgent.
    Thanks
    Nag.
    Edited by: user635152 on Nov 19, 2008 4:43 PM

  • How to do register-level programming for NI6025E when I want to acquire single scan incuding multiple input channels?

    How to do register-level programming for NI6025E when I want to acquire single scan incuding multiple input channels?

    Thanks, Alan, I think I indeed need to combine aiex1.cpp and aiex2.cpp. I made a change to Configure_Board of aiex1.cpp  as follows:
    //Call this function to configure board options.
    void Configure_Board(tSTC *theSTC,tESeries *board)
     //Clear configuration memory
     theSTC->Write_Strobe_0.writeRegister(0x0001);
     //Clear ADC FIFO
     theSTC->Write_Strobe_1.writeRegister(0x0001);
     //Writing to Config_Memory_High_Register for channel 1 settings
     board->ConfigFifoHigh.setChannel(0);
     board->ConfigFifoHigh.setBank(0);
     board->ConfigFifoHigh.setChannelType(board->ConfigFifoHigh.kChannelTypeRSE);
     board->ConfigFifoHigh.flush();
     //Writing to Config_Memory_Low_Register for following channel 1 settings
     board->ConfigFifoLow.setLastChannel(0);
     board->ConfigFifoLow.setGeneralTrigger(0);
     board->ConfigFifoLow.setGain(board->ConfigFifoLow.kGain001_0);
     board->ConfigFifoLow.setPolarity(board->ConfigFifoLow.kPolarityBipolar);
     board->ConfigFifoLow.setDither(0);
     board->ConfigFifoLow.flush();
     //Writing to Config_Memory_High_Register for following channel 0 settings
     board->ConfigFifoHigh.setChannel(1);
     board->ConfigFifoHigh.setBank(0);
     board->ConfigFifoHigh.setChannelType(board->ConfigFifoHigh.kChannelTypeRSE);//RSE mode
     board->ConfigFifoHigh.flush();
     //Writing to Config_Memory_Low_Register for following channel 0 settings
     board->ConfigFifoLow.setLastChannel(1);
     board->ConfigFifoLow.setGeneralTrigger(0);
     board->ConfigFifoLow.setGain(board->ConfigFifoLow.kGain001_0);
     board->ConfigFifoLow.setPolarity(board->ConfigFifoLow.kPolarityBipolar);//BIPOLAR
     board->ConfigFifoLow.setDither(0);
     board->ConfigFifoLow.flush(); 
     return;
     and a change to test(iBus *bus):
    do
      uStatus = theSTC->AI_Status_1.readRegister();
      if (!((uStatus & 0x1000) == 0x1000))
        uValue[i] = board->AIFifoData.readRegister();
       i++;
     } while(i<1);
     printf("Value %d is %6.2f\n",0,FindADDouble(uValue[0]));
     printf("Value %d is %6.2f\n",1,FindADDouble(uValue[1]));
    but it doesn't work, why?
    How shoud I do?

  • PURCHASING-How to change the next approver for the Purchase Requistion(PR)-

    Hi All,
    Could you please let me know how to change the next approver for the Purchase Requistion(PR) from User "X" to "Y", as Y was manager of "X" and 'X' left the organization. how can i acheive this? can you please let me know the process ?
    Thanks,

    Hi,
    You have not mentioned the version you are using (11i or R12).. Are you using iProcurement... ? Are you using positional or Employee-Supervisor hierarchy..?
    Your question : How to change the next approver for the Purchase Requistion(PR) from User "X" to "Y", as Y was manager of "X" and 'X' left the organization.
    Ans: You can achieve this through below workarounds
    - Through *"Mass Update of Requisitions" functionality* (Conc. request) you can update the Approver name from User "X" to "Y" for existing PRs.
    - Replacing the Supervisor name of the requestor/requisitioner in the HR record (assignment) from User "X" to "Y"..
    Hope it helps.
    Kind Regards,
    S.P DASH

  • How may implementations can we have for a BaDI?

    How may implementations can we have for a BaDI?

    if BADI check Multi-USE , then u can
    Multiple-Use Business Add-Ins
    You can differentiate between single-use and multiple use Business Add-Ins. The distinction is based on the procedure or event character of an enhancement. In the first case, the program waits for the enhancement to return something, usually a return code. A typical example could be a benefit calculation in HR. Depending on the implementation, alternative calculations can be executed. With multiple use add-ins, an event that may be of interest to other components is processed in program flow. Any number of components could use this event as a “hook” to hang their own additional actions on to.
    In addition to importing parameters, you can also use changing parameters for multiple-use Business Add-Ins. There is no sequence control for multiple-use implementations of BadIs. Therefore, using changing parameters can cause problems. There is no guarantee that implementations will not overwrite the results of previous implementations. Sequence control is technically impossible, since at the time of the definition the interface does not know which implementations there will be and which parameters will be changed by implementations. It is not possible to have a decision as to which implementation should be executed before which other (future) implementation.
    Example:
    In a particular application, you want to be able to continue processing indexes after another component has saved data (in other words, the system should allow you to use an add-in after saving). Since this point in time can be useful for different purposes, you can create an enhancement here that can be used by multiple subscribers.
    To create a multiple-use Business Add-In, proceed as follows:
           1.      Define an add-in and select the Multiple Use checkbox from the Administration tab.
           2.      Define an interface with the method OBJECT_SAVED'and the importing parameter OBJECTNAME.
    Calling your enhancement in the application program:
    program event.
    data exit_obj type ref to if_ex_event.
    call method cl_exithandler =>get_instance
         changing instance = exit.
    form save_object using obj_name type c.
    update …
    call method exit_obj->object_saved
         exporting objectname = obj_name.
    endform.
    For the caller it is irrelevant whether (and how many) subscribers use the event as a starting point for further actions. The active implementations are called in the adapter method.
    more in http://help.sap.com/saphelp_nw04/helpdata/en/ee/a1d548892b11d295d60000e82de14a/content.htm
    Regards
    Prabhu

  • How to create Process level configuration for RFx N-step approval in SRM7.0

    Hello experts,
    Can any body guide me to create the Process schema for N-level approval in RFx.
    My requirement is based on RFx target value, Document type N some custom fields like (Mode of Tendering).
    For this purpose, we are going to maintain one custom table with the above said fields like If the value falls under $1000 with the Tender mode as '101' N the Document type as 'BID' then need to go for 2 level approval like that.........
    Appreciate your quick reply.
    Regards,
    Krishna Prasad M.

    You can just add the process levels one by one and change the agent (approver)
    I realized this as the following:
    For BUS2200
    Process Schema: 9EV_RFQ_00S (Returns the constant : 9C_BUS2200_EX01)
    In 9C_BUS2200_EX01
    There is only two levels in the standard, one is the manager approval , the other is the auto-approval.
    I added one after the first one , and change the "Resp. Resolver Name" to "RR_MANAGER_OF_MANAGER".
    Wish it helpful.
    Regards,
    WuLin.

  • How to implement row level security?

    Hi all,
    There is a database which is for 3 companies to use it and how to use row level security to make sure that they can only manipluate their own data? For example, "employee" table, for each company they just can see their own employees information. How to use dynamic view to do it?
    Many Thanks
    Amy

    Here are two options to achieve what you want.
    A. You can do this by coding, that's if you are ready to. Are you? If yes then try the steps below:
    1. create a security codes table. Say for example
    001 - company a
    002 - company b
    2. create a security table that will list all users and which company they should have access to. You can also implement this by roles.
    3. alter all tables in the application schema to add a security code column. This will be a foreign key reference to table created in 1 above.
    4. update all data in the tables according to which company they belong to.
    5. write a procedure or package that does a validity check whenever a user requests for data. This procedure/package determines which company data the user has access/rights to.
    With this, you should be able to achieve what you want if you do not want to spend on VPD and FGAC. The problem comes where there are users who would have cross access to data from both companies. In this regard, then you have to modify your security table a little bit to handle this.
    B. This option i will admit is not so clean. You can also achieve this by two different views for every table in the application schema. And on each of these views, create a private synonym for every user. For illustration purposes:
    Table name = Employee.
    Create a view employee_a on employee
    create a view employee_b on employee
    Let's say you have users x and y. X has access to employees of company a and y has access to employees of company b. You can now create private synonyms for each of these users as follows:
    create synonym employee on employee_a in x schema.
    create synonym employee on employee_b on y schema.
    This i have not tried but believe should work.
    Hope one of these options serve your purpose.

  • Determining second level approver for travel expense claim workflow

    Hi Experts...
    In Travel Expense claim workflow,we are using two level Approval.The employee has to enter his data for expense claim through ESS..Then expense claim is submitted and sent via workflow to the Travel department. Travel Dept verifies the expenses against the bill and approves the claim by selecting the next level approver and attaching the scanned copies of the bill.
    I made copy from the standard workflow WS20000040.
    How can i select the next level appover in first level approval step???
    Is there any FM or BAPI or BADI???
    Please help me ...
    Thanks in Advance
    Regards,
    Hemalatha.

    Hi Hemalatha,
    I have small tricky workaround to find out the second level of approver.The Standard Rule available can reused again by passing manager's Position.i.e
    After first level completed , store manager position in container variable and pass it to the same task rule so the task is sent to the manager's approver .
    Message me if needed more details.
    **Award Points if useful

  • How to implement a parallel approval?

    Hi, all.
    My process has a parallel approval, but I have no idea how to implement it.
    I have a task which has to be approved by three different managers parallelly.
    If all of them approve the task, then the task will keep going, otherwise the task fails.
    Besides I also have to monitor which manager doesn`t make a decision yet.
    Can any have the same requirement with mine?

    Hi Louis,
               I think this document do provide some steps for creating parallel blocks approval type.Hoping this might resolve or act as help in the query you are facing.Link : [parallel|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8269bdb8-0701-0010-4692-c3349106ec66].
    Have a best day ahead.

Maybe you are looking for

  • When I type in a keyword for a batch it does not take the first time. I always have to repeat the word?

    When I type in a keyword for a batch of Photos it will not take. It only takes the second time i enter the keyword?

  • Display of chinese character in AL11

    Hi, When viewing the file in application server with some chinese character the font display appears to be different.Is there any solution to avoid the different display of character when asian character appears in the application server. Regards, Ma

  • How to Resend the sales documetn from CRM

    Dear frds, I have a Sales Document replicated from CRM to R3. And in R3 the document has been deleted manually by the user. But it was accidentally. Now is there anyway to resend the same document from CRM to R3? I tried saving it again so that it ge

  • Variables used within timeline

    If I create a variable at Frame 1 of the timeline. Say: var i:Number; I use i as a for loop counter several times in the code in frame 1. Eventually the execution proceeds to frame 2, 3, 4 etc. Then somewhere down the timeline code says goandplay at

  • CC Menu bar panel and app status issues

    After my iMac 27" late 2009 had to be force restarted after an unrelated crash the Adobe CC app shows that none of my apps are installed, even though I have Photoshop, Illustrator, Muse Lightroom and Indesign installed and running correctly. Lathough