Oracle EBS PO调用API修改一揽子发放行需求日期或数量引发单价变更

背景:
        最近,客户的用户反映批量修改或拆分一揽子发放行的需求日期或承诺日期或数量时,自动修改该发放行的单价为对应PBA行的单价。
解决方法:
        通过实际数据分析、参考官方文档和数据测试得出如下:
        调用修改或拆分一揽子发放行API时,首先更新对应发运行表“PO_LINE_LOCATIONS_ALL”的字段“MANUAL_PRICE_CHANGE_FLAG”为Y,然后调用API,就不会再把发运行的单价默认更新为对应PBA行的单价了。
参考官方文档如下:

Only for Blanket Release shipments: Y if the user has manually entered a price overriding the Blanket Agreement price, N or null otherwise.

系统标准功能:如何使用得发运行表“PO_LINE_LOCATIONS_ALL”的字段“MANUAL_PRICE_CHANGE_FLAG”为呢?
1.设置PBA对应行允许修改单价:
path:PO->Purchase Orders->Purchase Orders
如下图PBA行页签Price Reference的"Allow Price Override"勾选,该PBA的发放行的单价就可以修改。
Oracle EBS PO调用API修改一揽子发放行需求日期或数量引发单价变更_第1张图片
2.修改Blanket Releases行的单价,参考如下图,只要用户手工修改单价保存以后,发运行字段MANUAL_PRICE_CHANGE_FLAG就标志为Y。注意:该发运自动开票生产AP Invoices的单价也是当前发运行的单价
Oracle EBS PO调用API修改一揽子发放行需求日期或数量引发单价变更_第2张图片
由于调用API修改发运行的数量、承诺日期和需求日期时,单价赋值为空,系统认为不修改单价。因为发运行表“PO_LINE_LOCATIONS_ALL”的字段“MANUAL_PRICE_CHANGE_FLAG”为空或N,所以系统会自动默认改为PBA行的单价。
参考:Oracle EBS Interface/API(19)-PO修改行或发运行的单价、数量、需求日期和承诺日期等等

你可能感兴趣的:(Oracle,EBS,Purchasing)