Friday, 26 August 2016

PO Requisition API

CREATE OR REPLACE PROCEDURE apps.xx_req_proc1
IS
   CURSOR hdr_cur
   IS
      SELECT *
        FROM po_req_hdr_stg
       WHERE primary_flag = 'N';

   CURSOR lne_cur
   IS
      SELECT *
        FROM po_req_lne_stg;

   CURSOR distr_cur
   IS
      SELECT *
        FROM po_req_distr_stg;

   l_int_req_ret_sts   VARCHAR2 (100);
   l_req_header_rec    po_create_requisition_sv.header_rec_type;
   l_req_line_tbl      po_create_requisition_sv.line_tbl_type;
   l_req_distr_rec     po_create_requisition_sv.dist_rec_type;
   l_msg_count         NUMBER;
   l_msg_data          VARCHAR2 (2000);
   l_user_id           NUMBER                                   := '1014707';
   l_resp_id           NUMBER                                   := '50578';
   l_resp_appl_id      NUMBER                                   := '201';
   i                   NUMBER                                   := 1;
BEGIN
   mo_global.set_policy_context ('S', 204);
   mo_global.init ('PO');
   -- INITIALIZE DEBUG INFO

   --    INITIALIZE ENVIRONMENT
   fnd_global.apps_initialize (l_user_id, l_resp_id, l_resp_appl_id);
   DBMS_OUTPUT.put_line ('Header Section Begins');

----Header
   FOR hdr_rec IN hdr_cur
   LOOP
      l_req_header_rec.org_id := hdr_rec.org_id;
      l_req_header_rec.requisition_header_id :=
                                             po_requisition_headers_s.NEXTVAL;
      l_req_header_rec.preparer_id := hdr_rec.preparer_id;
      l_req_header_rec.last_update_date := SYSDATE;
      l_req_header_rec.last_updated_by := 1014707;
      l_req_header_rec.segment1 := hdr_rec.segment1;
      l_req_header_rec.summary_flag := 'N';
      l_req_header_rec.enabled_flag := 'Y';
      l_req_header_rec.segment2 := hdr_rec.segment2;
      l_req_header_rec.segment3 := hdr_rec.segment3;
      l_req_header_rec.segment4 := hdr_rec.segment4;
      l_req_header_rec.segment5 := hdr_rec.segment5;
      l_req_header_rec.start_date_active := SYSDATE;
      l_req_header_rec.end_date_active := NULL;
      l_req_header_rec.last_update_login := 1014707;
      l_req_header_rec.creation_date := SYSDATE;
      l_req_header_rec.created_by := 1014707;
      l_req_header_rec.description := hdr_rec.description;
      l_req_header_rec.authorization_status := hdr_rec.authorization_status;
      l_req_header_rec.note_to_authorizer := hdr_rec.note_to_authorizer;
      l_req_header_rec.type_lookup_code := hdr_rec.type_lookup_code;
      l_req_header_rec.transferred_to_oe_flag := 'Y';
      l_req_header_rec.attribute_category := hdr_rec.attribute_category;
      l_req_header_rec.attribute1 := hdr_rec.attribute1;
      l_req_header_rec.attribute2 := hdr_rec.attribute2;
      l_req_header_rec.attribute3 := hdr_rec.attribute3;
      l_req_header_rec.attribute4 := hdr_rec.attribute4;
      l_req_header_rec.attribute5 := hdr_rec.attribute5;
      l_req_header_rec.attribute6 := hdr_rec.attribute6;
      l_req_header_rec.attribute7 := hdr_rec.attribute7;
      l_req_header_rec.attribute8 := hdr_rec.attribute8;
      l_req_header_rec.attribute9 := hdr_rec.attribute9;
      l_req_header_rec.attribute10 := hdr_rec.attribute10;
      l_req_header_rec.attribute11 := hdr_rec.attribute11;
      l_req_header_rec.attribute12 := hdr_rec.attribute12;
      l_req_header_rec.attribute13 := hdr_rec.attribute13;
      l_req_header_rec.attribute14 := hdr_rec.attribute14;
      l_req_header_rec.attribute15 := hdr_rec.attribute15;
      l_req_header_rec.government_context := hdr_rec.government_context;
      l_req_header_rec.closed_code := hdr_rec.closed_code;
      DBMS_OUTPUT.put_line ('Header Section Ends');

      FOR lne_tbl IN lne_cur
      LOOP
         DBMS_OUTPUT.put_line ('Line Section Begins');
         l_req_line_tbl (i).requisition_line_id :=
                                               po_requisition_lines_s.NEXTVAL;
--l_req_line_tbl(1).requisition_header_id:=po_requisition_headers_s.CURRVAL;
         l_req_line_tbl (i).line_num := lne_tbl.line_num;
         l_req_line_tbl (i).line_type_id := lne_tbl.line_type_id;
         l_req_line_tbl (i).category_id := lne_tbl.category_id;
         l_req_line_tbl (i).item_description := lne_tbl.item_description;
         l_req_line_tbl (i).unit_meas_lookup_code :=
                                                lne_tbl.unit_meas_lookup_code;
         l_req_line_tbl (i).unit_price := lne_tbl.unit_price;
         l_req_line_tbl (i).quantity := lne_tbl.quantity;
         l_req_line_tbl (i).deliver_to_location_id :=
                                               lne_tbl.deliver_to_location_id;
         l_req_line_tbl (i).to_person_id := lne_tbl.to_person_id;
         l_req_line_tbl (i).last_update_date := SYSDATE;
         l_req_line_tbl (i).last_updated_by := 1014707;
         l_req_line_tbl (i).source_type_code := lne_tbl.source_type_code;
         l_req_line_tbl (i).last_update_login := 1014707;
         l_req_line_tbl (i).creation_date := SYSDATE;
         l_req_line_tbl (i).created_by := 1014707;
         l_req_line_tbl (i).item_id := lne_tbl.item_id;
         l_req_line_tbl (i).item_revision := lne_tbl.item_revision;
         l_req_line_tbl (i).encumbered_flag := 'N';
         l_req_line_tbl (i).rfq_required_flag := 'N';
         l_req_line_tbl (i).need_by_date := lne_tbl.need_by_date;
         l_req_line_tbl (i).source_organization_id :=
                                               lne_tbl.source_organization_id;
         l_req_line_tbl (i).source_subinventory :=
                                                  lne_tbl.source_subinventory;
         l_req_line_tbl (i).destination_type_code :=
                                                lne_tbl.destination_type_code;
         l_req_line_tbl (i).destination_organization_id :=
                                          lne_tbl.destination_organization_id;
         l_req_line_tbl (i).destination_subinventory :=
                                             lne_tbl.destination_subinventory;
         l_req_line_tbl (i).line_location_id := lne_tbl.line_location_id;
         l_req_line_tbl (i).modified_by_agent_flag :=
                                               lne_tbl.modified_by_agent_flag;
         l_req_line_tbl (i).parent_req_line_id := lne_tbl.parent_req_line_id;
         l_req_line_tbl (i).justification := lne_tbl.justification;
         l_req_line_tbl (i).note_to_agent := lne_tbl.note_to_agent;
         l_req_line_tbl (i).note_to_receiver := lne_tbl.note_to_receiver;
         l_req_line_tbl (i).purchasing_agent_id :=
                                                  lne_tbl.purchasing_agent_id;
         l_req_line_tbl (i).document_type_code := lne_tbl.document_type_code;
         l_req_line_tbl (i).blanket_po_header_id :=
                                                 lne_tbl.blanket_po_header_id;
         l_req_line_tbl (i).blanket_po_line_num :=
                                                  lne_tbl.blanket_po_line_num;
         l_req_line_tbl (i).currency_code := lne_tbl.currency_code;
         l_req_line_tbl (i).rate_type := lne_tbl.rate_type;
         l_req_line_tbl (i).rate_date := lne_tbl.rate_date;
         l_req_line_tbl (i).rate := lne_tbl.rate;
         l_req_line_tbl (i).currency_unit_price :=
                                                  lne_tbl.currency_unit_price;
         l_req_line_tbl (i).suggested_vendor_name :=
                                                lne_tbl.suggested_vendor_name;
         l_req_line_tbl (i).suggested_vendor_location :=
                                            lne_tbl.suggested_vendor_location;
         l_req_line_tbl (i).suggested_vendor_contact :=
                                             lne_tbl.suggested_vendor_contact;
         l_req_line_tbl (i).suggested_vendor_phone :=
                                               lne_tbl.suggested_vendor_phone;
         l_req_line_tbl (i).suggested_vendor_product_code :=
                                        lne_tbl.suggested_vendor_product_code;
         l_req_line_tbl (i).un_number_id := lne_tbl.un_number_id;
         l_req_line_tbl (i).hazard_class_id := lne_tbl.hazard_class_id;
         l_req_line_tbl (i).must_use_sugg_vendor_flag :=
                                            lne_tbl.must_use_sugg_vendor_flag;
         l_req_line_tbl (i).reference_num := lne_tbl.reference_num;
--l_req_line_tbl(1).on_rfq_flag:=LNE_TBL.on_rfq_flag;
--l_req_line_tb(1).urgent_flag:=LNE_TBL.urgent_flag;
         l_req_line_tbl (i).cancel_flag := 'N';
         l_req_line_tbl (i).quantity_cancelled := lne_tbl.quantity_cancelled;
         l_req_line_tbl (i).cancel_date := lne_tbl.cancel_date;
         l_req_line_tbl (i).cancel_reason := lne_tbl.cancel_reason;
         l_req_line_tbl (i).closed_code := lne_tbl.closed_code;
         l_req_line_tbl (i).agent_return_note := lne_tbl.agent_return_note;
         l_req_line_tbl (i).changed_after_research_flag :=
                                          lne_tbl.changed_after_research_flag;
         l_req_line_tbl (i).vendor_id := lne_tbl.vendor_id;
         l_req_line_tbl (i).vendor_site_id := lne_tbl.vendor_site_id;
         l_req_line_tbl (i).vendor_contact_id := lne_tbl.vendor_contact_id;
         l_req_line_tbl (i).research_agent_id := lne_tbl.research_agent_id;
         l_req_line_tbl (i).wip_entity_id := lne_tbl.research_agent_id;
         l_req_line_tbl (i).wip_line_id := lne_tbl.wip_line_id;
         l_req_line_tbl (i).wip_repetitive_schedule_id :=
                                           lne_tbl.wip_repetitive_schedule_id;
         l_req_line_tbl (i).wip_operation_seq_num :=
                                                lne_tbl.wip_operation_seq_num;
         l_req_line_tbl (i).wip_resource_seq_num :=
                                                 lne_tbl.wip_resource_seq_num;
         l_req_line_tbl (i).attribute_category := lne_tbl.attribute_category;
         l_req_line_tbl (i).destination_context :=
                                                  lne_tbl.destination_context;
         l_req_line_tbl (i).inventory_source_context :=
                                             lne_tbl.inventory_source_context;
         l_req_line_tbl (i).vendor_source_context :=
                                                lne_tbl.vendor_source_context;
         l_req_line_tbl (i).attribute1 := lne_tbl.attribute1;
         l_req_line_tbl (i).attribute2 := lne_tbl.attribute2;
         l_req_line_tbl (i).attribute3 := lne_tbl.attribute3;
         l_req_line_tbl (i).attribute4 := lne_tbl.attribute4;
         l_req_line_tbl (i).attribute5 := lne_tbl.attribute5;
         l_req_line_tbl (i).attribute6 := lne_tbl.attribute6;
         l_req_line_tbl (i).attribute7 := lne_tbl.attribute7;
         l_req_line_tbl (i).attribute8 := lne_tbl.attribute8;
         l_req_line_tbl (i).attribute9 := lne_tbl.attribute9;
         l_req_line_tbl (i).attribute10 := lne_tbl.attribute10;
         l_req_line_tbl (i).attribute11 := lne_tbl.attribute11;
         l_req_line_tbl (i).attribute12 := lne_tbl.attribute12;
         l_req_line_tbl (i).attribute13 := lne_tbl.attribute13;
         l_req_line_tbl (i).attribute14 := lne_tbl.attribute14;
         l_req_line_tbl (i).attribute15 := lne_tbl.attribute15;
         l_req_line_tbl (i).bom_resource_id := lne_tbl.bom_resource_id;
--l_req_line_tbl(1).government_context:=LNE_TBL.government_context;
         l_req_line_tbl (i).closed_reason := lne_tbl.closed_reason;
         l_req_line_tbl (i).closed_date := lne_tbl.closed_date;
         l_req_line_tbl (i).transaction_reason_code :=
                                              lne_tbl.transaction_reason_code;
         l_req_line_tbl (i).quantity_received := lne_tbl.quantity_received;
         l_req_line_tbl (i).order_type_lookup_code :=
                                               lne_tbl.order_type_lookup_code;
         l_req_line_tbl (i).purchase_basis := lne_tbl.purchase_basis;
         l_req_line_tbl (i).matching_basis := lne_tbl.matching_basis;
         l_req_line_tbl (i).org_id := lne_tbl.org_id;
--l_req_line_tbl(1).tax_attribute_update_code:=LNE_TBL.tax_attribute_update_code;
         l_req_line_tbl (i).manufacturer_id := lne_tbl.manufacturer_id;
         l_req_line_tbl (i).manufacturer_name := lne_tbl.manufacturer_name;
         l_req_line_tbl (i).manufacturer_part_number :=
                                             lne_tbl.manufacturer_part_number;
         l_req_line_tbl (i).uom_code := lne_tbl.uom_code;
         DBMS_OUTPUT.put_line ('Line Section Ends');
         i := i + 1;
      END LOOP;

      FOR distr_rec IN distr_cur
      LOOP
         DBMS_OUTPUT.put_line ('Distribution Section Begins');
---distributions
         l_req_distr_rec.distribution_id := po_req_distributions_s.NEXTVAL;
         l_req_distr_rec.last_update_date := SYSDATE;
         l_req_distr_rec.last_updated_by := 1014707;
         l_req_distr_rec.requisition_line_id :=
                                               po_requisition_lines_s.CURRVAL;
         l_req_distr_rec.set_of_books_id := distr_rec.set_of_books_id;
         l_req_distr_rec.code_combination_id := distr_rec.code_combination_id;
         l_req_distr_rec.req_line_quantity := distr_rec.req_line_quantity;
         l_req_distr_rec.last_update_login := 1014707;
         l_req_distr_rec.creation_date := SYSDATE;
         l_req_distr_rec.created_by := 1014707;
         l_req_distr_rec.encumbered_flag := 'N';
         l_req_distr_rec.gl_encumbered_date := SYSDATE;
         l_req_distr_rec.gl_encumbered_period_name :=
                                          distr_rec.gl_encumbered_period_name;
         l_req_distr_rec.gl_cancelled_date := distr_rec.gl_cancelled_date;
         l_req_distr_rec.failed_funds_lookup_code :=
                                           distr_rec.failed_funds_lookup_code;
         l_req_distr_rec.encumbered_amount := distr_rec.encumbered_amount;
         l_req_distr_rec.budget_account_id := distr_rec.budget_account_id;
         l_req_distr_rec.accrual_account_id := distr_rec.accrual_account_id;
         l_req_distr_rec.variance_account_id := distr_rec.variance_account_id;
         l_req_distr_rec.prevent_encumbrance_flag := 'N';
         l_req_distr_rec.attribute_category := distr_rec.attribute_category;
         l_req_distr_rec.attribute1 := distr_rec.attribute1;
         l_req_distr_rec.attribute2 := distr_rec.attribute2;
         l_req_distr_rec.attribute3 := distr_rec.attribute3;
         l_req_distr_rec.attribute4 := distr_rec.attribute4;
         l_req_distr_rec.attribute5 := distr_rec.attribute5;
         l_req_distr_rec.attribute6 := distr_rec.attribute6;
         l_req_distr_rec.attribute7 := distr_rec.attribute7;
         l_req_distr_rec.attribute8 := distr_rec.attribute8;
         l_req_distr_rec.attribute9 := distr_rec.attribute9;
         l_req_distr_rec.attribute10 := distr_rec.attribute10;
         l_req_distr_rec.attribute11 := distr_rec.attribute11;
         l_req_distr_rec.attribute12 := distr_rec.attribute12;
         l_req_distr_rec.attribute13 := distr_rec.attribute13;
         l_req_distr_rec.attribute14 := distr_rec.attribute14;
         l_req_distr_rec.attribute15 := distr_rec.attribute15;
         l_req_distr_rec.government_context := distr_rec.government_context;
         l_req_distr_rec.project_id := distr_rec.project_id;
         l_req_distr_rec.task_id := distr_rec.task_id;
         l_req_distr_rec.expenditure_type := distr_rec.expenditure_type;
         l_req_distr_rec.expenditure_type :=
                                         distr_rec.project_accounting_context;
         l_req_distr_rec.expenditure_organization_id :=
                                        distr_rec.expenditure_organization_id;
         l_req_distr_rec.gl_closed_date := distr_rec.gl_closed_date;
         l_req_distr_rec.source_req_distribution_id :=
                                         distr_rec.source_req_distribution_id;
         l_req_distr_rec.project_accounting_context :=
                                         distr_rec.project_accounting_context;
         l_req_distr_rec.distribution_num := distr_rec.distribution_num;
         l_req_distr_rec.project_related_flag :=
                                               distr_rec.project_related_flag;
         l_req_distr_rec.expenditure_item_date :=
                                              distr_rec.expenditure_item_date;
         l_req_distr_rec.org_id := distr_rec.org_id;
         l_req_distr_rec.allocation_type := distr_rec.allocation_type;
         l_req_distr_rec.allocation_value := distr_rec.allocation_value;
         l_req_distr_rec.award_id := distr_rec.award_id;
         l_req_distr_rec.end_item_unit_number :=
                                               distr_rec.end_item_unit_number;
         l_req_distr_rec.recoverable_tax := distr_rec.recoverable_tax;
         l_req_distr_rec.nonrecoverable_tax := distr_rec.nonrecoverable_tax;
         l_req_distr_rec.recovery_rate := distr_rec.recovery_rate;
         l_req_distr_rec.tax_recovery_override_flag :=
                                         distr_rec.tax_recovery_override_flag;
         l_req_distr_rec.oke_contract_line_id :=
                                               distr_rec.oke_contract_line_id;
         l_req_distr_rec.oke_contract_deliverable_id :=
                                        distr_rec.oke_contract_deliverable_id;
         DBMS_OUTPUT.put_line ('Distribution Section Ends');
      END LOOP;

      DBMS_OUTPUT.put_line ('Before Process Req');
      po_create_requisition_sv.process_requisition
                                     (px_header_rec             => l_req_header_rec,
                                      px_line_table             => l_req_line_tbl,
                                      px_disribution_table      => l_req_distr_rec,
                                      x_return_status           => l_int_req_ret_sts,
                                      x_msg_count               => l_msg_count,
                                      x_msg_data                => l_msg_data
                                     );
      DBMS_OUTPUT.put_line ('After Process Req');

      IF l_int_req_ret_sts = fnd_api.g_ret_sts_success
      THEN
         DBMS_OUTPUT.put_line ('Success');
      END IF;

      DBMS_OUTPUT.put_line (l_msg_data);
   END LOOP;
END xx_req_proc1;
/

3 comments:

  1. Did you change the seeded package po_create_requisition_sv.process_requisition to include the "px_disribution_table" parameter? That is not in my 12.2.5 instance.. or did Oracle provide a path?

    ReplyDelete
  2. yes but we should not change i hv changes in my test system

    ReplyDelete