0% found this document useful (0 votes)
165 views2 pages

Log Message

This document shows an example of how to programmatically make changes to a purchase order document in Oracle Applications using the PO_DOCUMENT_UPDATE_GRP API. It creates change objects to modify line quantities, shipments, and distributions. The API is then called to execute the changes, returning any errors.

Uploaded by

AamirKhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
165 views2 pages

Log Message

This document shows an example of how to programmatically make changes to a purchase order document in Oracle Applications using the PO_DOCUMENT_UPDATE_GRP API. It creates change objects to modify line quantities, shipments, and distributions. The API is then called to execute the changes, returning any errors.

Uploaded by

AamirKhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

DECLARE

l_result NUMBER;
l_progress NUMBER;
l_errors PO_API_ERRORS_REC_TYPE;
l_chg PO_CHANGES_REC_TYPE;
l_shipment_changes PO_SHIPMENTS_REC_TYPE;
l_return_status VARCHAR2(30);

BEGIN

--to set org context in a R12 env


mo_global.set_policy_context ('S', &org_id);

-- Create an Object for Changes


-- po_changes_rec_type constructor takes either po_header_id OR
po_release_id to construct the object. In case of purchase order pass po_release_id
as NULL.

l_chg := po_changes_rec_type.Create_object(p_po_header_id => <header id>,


p_po_release_id => <release id>);

-- Add a Line Changes to the Change Object


l_chg.line_changes.add_change(p_po_line_id => <po line id>, p_quantity =>
<value>);

-- Add Shipment Changes to the Change Object


l_chg.shipment_changes.add_change(p_po_line_location_id => <line location
id>, p_quantity => <value>);

-- Add Distribution Level Changes


l_chg.distribution_changes.add_change(p_po_distribution_id => <po
distribution id>, p_quantity_ordered => <value>);

-- Now call the change api to execute the above changes


PO_DOCUMENT_UPDATE_GRP.UPDATE_DOCUMENT(p_api_version => 1.0,-- pass this as
1.0
p_init_msg_list => fnd_api.G_TRUE,--
pass this as TRUE
x_return_status =>
l_return_status,-- returns the result of execution
p_changes => l_chg,-- changes obj.
contains all changes intended to be made on document
p_run_submission_checks =>
fnd_api.G_FALSE,-- set to TRUE if want to perform submission check
p_launch_approvals_flag =>
fnd_api.G_FALSE, -- set to TRUE if want to launch approval work flow after making
the changes
p_buyer_id => NULL,-- buyer id
p_update_source => NULL, --
name of a source who is calling this API. In case of manual call can be passed as
NULL
p_override_date => NULL,
x_api_errors => l_errors,-- list of
errors if any occurred in execution
p_mass_update_releases => NULL);

IF l_errors IS NOT NULL THEN


FOR i IN 1.. l_errors.message_text.COUNT LOOP
dbms_output.Put_line(' Error is ' || l_errors.Message_text(i) || ' -
name' || l_errors.Message_name(i));
END LOOP;
END IF;

COMMIT;

EXCEPTION

WHEN OTHERS THEN


dbms_output.Put_line('error :' || sqlerrm);

END;

You might also like