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
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:
,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..
Thank you...
ReplyDelete