Tuesday, 24 September 2019

PO Delete

**************** PO Delete ***********************

DECLARE
   lb_result        BOOLEAN;
   l_po_number      VARCHAR2 (100) :='5952001681';-- &po_number;
 
   CURSOR po_csr IS
      SELECT poh.po_header_id
           , poh.type_lookup_code
           , poh.segment1 po_number
        FROM po_headers_all poh 
       WHERE NVL (poh.closed_code, 'OPEN') = 'OPEN'
         AND poh.segment1 = l_po_number;
BEGIN
   FOR po_rec IN po_csr LOOP
       lb_result :=  po_headers_sv1.delete_po
                             ( x_po_header_id     => po_rec.po_header_id
                             , x_type_lookup_code => po_rec.type_lookup_code
                             , p_skip_validation  => 'Y' );

       IF lb_result = TRUE THEN
        --  DBMS_OUTPUT.PUT_LINE('PO Number Deleted '|| l_po_number);
        DBMS_OUTPUT.put_line ( 'Successfully Deleted the PO');
          COMMIT;
       ELSE
         -- DBMS_OUTPUT.PUT_LINE ('API Failed to delete the Purchase Order ' || l_po_number);
         DBMS_OUTPUT.put_line ( 'Failed to Delete the PO');
          ROLLBACK;
       END IF;
   END LOOP;
EXCEPTION
   WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE ('Unexpected Exception while deleting PO~' || l_po_number || '~' || SQLERRM);
      ROLLBACK;
END;

PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT ( Cancel PO Line )

#************** Cancel PO Line *****************#
DECLARE
 v_return_status   VARCHAR2 (10);
 v_msg_data        VARCHAR2(1000);
 v_po_header_id    NUMBER        := 2503180;
 v_doc_subtype     VARCHAR2(10)  := 'STANDARD';
 v_doc_type        VARCHAR2(10)  := 'PO';
 v_org_id          NUMBER        := 894;
 v_action          VARCHAR2(10)  := 'CANCEL';
 v_action_date     DATE          := SYSDATE;
 l_user_id NUMBER :=40231;
 l_resp_id NUMBER :=20707;
 l_appl_id NUMBER :=201;

  BEGIN

 fnd_global.apps_initialize(l_user_id, l_resp_id, l_appl_id);
MO_GLOBAL.INIT('PO');
mo_global.set_policy_context ('S',v_org_id);
 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    => 'OLD PURCHASE ORDER'
                                         ,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 LOOP
   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;

AIM Document List

AIM Document List Business Process Architecture (BP) BP.010 Define Business and Process Strategy BP.020 Catalog and Analyze P...