Oracle EBS 采购订单更新API

注意 更新采购订单行上字段,除了弹性域字段,会默认升版本

     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 => 
, p_po_release_id => ); -- Add a Line Changes to the Change Object l_chg.line_changes.add_change(p_po_line_id => , p_quantity => ); -- Add Shipment Changes to the Change Object l_chg.shipment_changes.add_change(p_po_line_location_id => , p_quantity => ); -- Add Distribution Level Changes l_chg.distribution_changes.add_change(p_po_distribution_id => , p_quantity_ordered => ); -- 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;

 

你可能感兴趣的:(PO)