Tuesday, June 15, 2010
API for Cancelling the Purchase Order (PO) Document (PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT)
Below script will help you to cancel the Purchase order (PO) document through API PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT
This script was tested in R12.1.1
SET serveroutput ON;
DECLARE
v_return_status VARCHAR2 (10);
v_msg_data VARCHAR2(1000);
v_po_header_id NUMBER := 20000006;
v_doc_subtype VARCHAR2(10) := 'STANDARD';
v_doc_type VARCHAR2(10) := 'PO ';
v_org_id NUMBER; := 83;
v_action VARCHAR2(10) := 'CANCEL';
v_action_date DATE := SYSDATE;
FUNCTION set_context( i_user_name IN VARCHAR2
,i_resp_name IN VARCHAR2
,i_org_id IN NUMBER)
RETURN VARCHAR2
IS
BEGIN
NULL;
-- In order to reduce the content of the post I moved the implementation part of this function to another post and it is available here
END set_context;
BEGIN
v_context := set_context ('&user', '&responsibility', 2038);
IF v_context = 'F'
THEN
DBMS_OUTPUT.PUT_LINE ('Error while setting the context');
END IF;
MO_GLOBAL.INIT ('PO ');
--- context done ------------
DBMS_OUTPUT.PUT_LINE ('Calling API For Cancelling Documents');
PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT
( p_api_version => 1.0,
p_init_msg_list => fnd_api.g_true,
p_commit => fnd_api.g_false,
x_return_status => v_return_status,
p_doc_type => v_doc_type,
p_doc_subtype => v_doc_subtype,
p_doc_id => v_po_header_id,
p_doc_num => NULL,
p_release_id => NULL,
p_release_num => NULL,
p_doc_line_id => NULL,
p_doc_line_num => NULL,
p_doc_line_loc_id => NULL,
p_doc_shipment_num => NULL,
p_action => v_action,
p_action_date => v_action_date,
p_cancel_reason => NULL,
p_cancel_reqs_flag => 'N',
p_print_flag => NULL,
p_note_to_vendor => NULL,
p_use_gldate => NULL,
p_org_id => v_org_id
);
COMMIT;
DBMS_OUTPUT.PUT_LINE('The Return Status of the API : '|| v_return_status);
IF v_return_status = fnd_api.g_ret_sts_success THEN
COMMIT;
DBMS_OUTPUT.PUT_LINE ('Cancellation of PO is Sucessfull : '||v_po_header_id);
ELSE
DBMS_OUTPUT.PUT_LINE ('Cancellation of PO Failed ');
ROLLBACK;
FOR i IN 1 .. FND_MSG_PUB.COUNT_MSG
v_msg_data := FND_MSG_PUB.GET( p_msg_index => i, p_encoded => 'F');
DBMS_OUTPUT.PUT_LINE( i|| ') '|| v_msg_data);
END LOOP ;
END IF;
END;
Do you think this Article is useful?
Subscribe to:
Post Comments (Atom)
Disclaimer
The ideas, thoughts and concepts expressed here are my own. They, in no way reflect those of my employer or any other organization/client that I am associated. The articles presented doesn't imply to any particular organization or client and are meant only for knowledge Sharing purpose. The articles can't be reproduced or copied without the Owner's knowledge or permission.
0 Responses to “API for Cancelling the Purchase Order (PO) Document (PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT)”
Post a Comment