10 Replies Latest reply on Mar 1, 2011 9:45 PM by Sandeep Gandhi, Consultant

    Buyer Setup & Approval Escalations


      Need your help on the below issue:

      Today many people who have Standard PO & Blanket Release approval also have the ability to approve a Blanket Purchase Agreement.
      As per our business policy, we are separating Blanket Release approval (Materials jobs only) & Blanket Purchase Agreement approval (Sourcing jobs only).
      The issue we are having is that the Materials teams are still trying to update & approve Blanket Purchase Agreements and Sourcing is trying to update & approve Blanket Releases.
      Because both groups are setup as a Buyer (required even to just view the PO form) Oracle allows updates to documents that there is not approval authority for and as a result the workflow automatically escalates through their supervisor chain - who also does not have approval athority which causes escalation straight to higher authority (Reference the example below)

      Are you aware of any way to prevent editing of Releases or BPA's by teams that do not have job authority to approve them? We need to determine a systematic way to prevent these from escalating to upper management because someone has made a modification that should not.


      Subject: FYI: No approver was found for Blanket Purchase Agreement 6000016796
      To               Strosin, Raphael
      Sent               19-JAN-2011 02:44:16
      ID               158036687

      No Approver was found for Blanket Purchase Agreement 6000016796.
      PO Amount:      EUR
      Supplier: AMITRONIC OY
      Supplier Site: LAHTI 101
      Last Approver: Strosin, Raphael
      Preparer: Oksanen, Sirpa

      Please, find the correct approver and re-submit document for approval.

      Purchase Order Lines

      Line     Item Number     Rev.     Item Description     UOM     Quantity     Unit Price     Line Amount
      1     72509     001     SEALING-EMI, TIIVISTE-EMI 8.9x2.8x4.75mm, L=38cm     Each          13.05     
      2     M1037086     000     SEALING-EMI, Fingerstock Gasket, slot mount, one finger 7.874x6.35mm     Each          .12     

      Approval Sequence

      Sequence     Who     Action     Date     Note
      7     Strosin, Raphael               
      6     Erneberg, Jan     Forward     19-JAN-2011     
      5     Vuola, Juhani     Forward     19-JAN-2011     
      4     Matikkala, Mikko     Forward     18-JAN-2011     
      3     Oksanen, Sirpa     Forward     18-JAN-2011     
      2     Oksanen, Sirpa     Submit     18-JAN-2011     
      1     Nadhan, Sendhil     Approve     20-JUL-2009     
      0     Nadhan, Sendhil     Submit     20-JUL-2009     

        • 1. Re: Buyer Setup & Approval Escalations
          Sandeep Gandhi, Consultant
          Why don't you create two responsibilities?
          Sourcing Buyer
          and Material Buyer

          And then write a personalization on the po form as follows
          context = sourcing buyer responsibility
          when-val-record trigger on po_lines block
          If the PO document type = Blanket Release, then in action, show error message and raise form trigger failure.

          And then you do a similar personalization for the Mateiral Buyer responsibility.

          Hope this helps,
          Sandeep Gandhi
          • 2. Re: Buyer Setup & Approval Escalations
            Splitting up the Responsbilities is one option but I'm concerned if that works because the PO form is needed for both the Std PO & BPA.. Is there any other option to do this without splitting up the responsibilities.

            • 3. Re: Buyer Setup & Approval Escalations
              Karthik Gopaluni
              Just like sandeep suggested if you don't want different resp try putting the form personalization with the job of person.

              i.e. Put a personalization on the PO Summary Screen to Disable the Open Button based on the context.
              • 4. Re: Buyer Setup & Approval Escalations
                Are you using 11i or R12..???? If R12, then check options availble under Buyer's work center.. In Buyer Work Center, Agreement basically refers to CPA or BPA, Orders refers to Standard Purchase order.

                You can achieve your requirement through below approach.

                1) By having multiple custom responsibilities created (as already mentioned by Karthik)
                2) By spiliting Approval assignment in the Purchasing setup. create 2 approval assignmnet for your 2 sets of users/buyers .. Any buyer can create a BPA/CPA/Std Po, but still you can restrict buyers through Approval assignmnet group. e.g. say 2 buyer groups of your organization, 1 group can create BPA, another group can create release only...

                Kind Regards,
                S.P DASH
                • 5. Re: Buyer Setup & Approval Escalations
                  Sandeep Gandhi, Consultant
                  SP Dash,
                  I think he has already created 2 approval groups - say BPAGroup and ReleaseGroup.
                  His problem is that person from BPAGroup has access to modify a release. When he/she does that, since he does not have the Authority to approve, the Release approval goes all the way to somebody high up in the company.

                  He wants to restrict the access to make changes so this does not happen.

                  user11303545, a responsibility based personalization will work even if two responsibilities use the same PO screen. The CONTEXT will take care of that. But if you have other concerns, you can certainly use Karthik's suggestion of creating one personalization and adding a check on the buyer's job/position.

                  Hope this helps,
                  Sandeep Gandhi

                  Edited by: Sandeep Gandhi, Independent Consultant on Feb 21, 2011 9:41 AM
                  1 person found this helpful
                  • 6. Re: Buyer Setup & Approval Escalations
                    Thanks All. I would like to go ahead with the personalization based on buyer's job/position. Can anyone let me know which field in the form captures the information related to person modifying the BPA. For e.g. Person A is Buyer on the BPA. Person B tries to make changes on the BPA but actually not authorised to do changes. How can i get the Person B related information (For e.g. Person B's person_id so that i can find the job associated to him & then approval groups & approval assignments)

                    • 7. Re: Buyer Setup & Approval Escalations
                      Karthik Gopaluni

                      You should be able to get the user_id, name, PER_ASSIGNMENT_ID etc from the block *$PROFILES$*. Use the this block object values in the trigger condition sql.
                      tables: fnd_user, perallassignmentsf to get job_id
                      P.SWe forgot to tell that the Folder Form and the PO form are different form names, so if you want to have both the summary PO and the PO forms in the same responsibility then you have to duplicate this personalization else remove either of the one and put the personalization on the other.

                      Edited by: Karthik Gopaluni on Feb 28, 2011 10:13 AM

                      Edited by: Karthik Gopaluni on Feb 28, 2011 10:14 AM
                      • 8. Re: Buyer Setup & Approval Escalations
                        Hi Karthik,

                        I'm not able to find per_assignment_id in $PROFILES$. So is there any other way i can find the job_id of the person making changes on the PO. I can link user name with the employee number but sometimes these values are different.

                        • 9. Re: Buyer Setup & Approval Escalations
                          Karthik Gopaluni
                          Did you login when you were checking the value? Are you setup as an Employee?

                          What do you mean by I can link user name with the employee number but sometimes these values are different. ?
                          • 10. Re: Buyer Setup & Approval Escalations
                            Sandeep Gandhi, Consultant
                            Try the following to get the position name and id.

                            SELECT d_position_id, position_id
                            FROM per_assignments_v7
                            WHERE person_id = (SELECT employee_id
                            FROM fnd_user
                            WHERE user_id = fnd_global.user_id)

                            Sandeep Gandhi