Monday, June 5, 2023

Cannot update price since the Purchase Agreement doest not allow changes to the Purchase Order line price - Oracle Apps R12

Actual Behavior: While updating the Standard PO Line Unit Price using the Oracle API: PO_CHANGE_API1_S.UPDATE_PO , API returned a below error message:

"Cannot update price since the Purchase Agreement doest not allow changes to the Purchase Order line price."

Problematic Record details

Standard PO Num: 27578
        Line Num: 1
Item Num: A22909
Unit Price: 67.34

User was tyring to update new Unit Price as 70.21  -- at this step got an above error.

Analysis: Standard Purchase Order has linked with Blancket Purchase Agreement, and that BPA is the Global Purchase Agreement(GBPA). That's a reason API not allow to update PO Unit Price.

Query to check the Standard PO is linked or not with Global BPA:

        SELECT pha1.segment1 standard_po_num, pla1.line_num std_line_num
      ,pha2.segment1 GBPA_num, pla2.line_num gbpa_line_num, pha2.global_agreement_flag
FROM    po_headers_all pha1, po_lines_all pla1
      ,po_headers_all pha2, po_lines_all pla2
WHERE pha1.po_header_id = pla1.po_header_id
      AND pla1.from_header_id = pha2.po_header_id
      AND pla1.from_line_id   = pla2.po_line_id
      --
      AND pha1.segment1 = '27578'
      AND pla1.line_num = 1;

Solution: Oracle API has failed to update Standard PO Line level Unit Price because the value of "Allow_Price_Override_Flag" field of Global BPA line is N (No). So, need to update it as Y (Yes).

    We can do it through Purchase Order form: 

    Navigation: PO SuperUser  --> Purchase Orders --> Purchase Orders

        --> Query (F11) --> Enter Global BPA number --> Run (Ctrl + F11)

        --> Click on Price Reference tab --> Select Line --> Click on Allow Price Override check button. And save it



Note: If new and old Unit Price values are same then API will allow to update it.

Thank you..


1 comment:

Steps to get ZPL code output using Zebra viewer - Online

Introduction ZPL is a print language used by many label printers. A print language is a set of commands that can be used to draw elements li...