I used get exception :
Promised date change is not allowed at line level.
Need-by date change is not allowed at line level.
when i tried to update existing PO using API po_change_api1_s.update_po:
In this case you have Pass Shipment number as mandatory.Hence issue resolved.
I was using PO update API po_change_api1_s.update_po ,faced couple of challenges.
1.I was passing null to shipment number hence unable to update promise_date,need_by_date,hence shipment number is required when u want to update dates.
2.Was passing Launch approval flag as Y ,hence PO setup used to fire approval workflow for an approved PO.however requirement was not to change authorization status.
Then i changed tolerances(Purchasing user setup ->tolerance and routing) to max limit and re-ran.API did not hit approval workflow and status remained in approved.
1. As per oracle standard functionality, If you want to update the Promise/Need By Date, you have to pass the shipment number.
After changing the date, PO will get revision and authorization move to REQUIRE REAPPROVAL status.
2. As per oracle standard functionality, when you change the tolerance or any fields on Receiving control on PO Shipment, the authorization
status of PO will not get altered. It will remains intact.