您的位置:首页 > 其它

EBS采购订单接收

2017-09-06 20:51 218 查看
/*

begin

  fnd_global.apps_initialize(user_id      => 8162,

                             resp_id      => 50692,

                             resp_appl_id => 20003);

  mo_global.init('M');

end;

*/

/*

select pha.segment1,

       pha.po_header_id,

       pla.po_line_id,

       pla.item_id,

       pla.quantity,

       pla.unit_meas_lookup_code,

       pda.line_location_id,

       pda.lo

       pda.po_distribution_id

  from po_headers_all pha, po_lines_all pla, po_distributions_all pda

 where pha.org_id = 295

   and pha.created_by = 8162

   and pla.po_header_id = pha.po_header_id

   and pda.po_line_id = pla.po_line_id

 order by pha.segment1 desc;

 */

--采购订单接收--attention:注意修改接收数量和插入批次表的数量保持一致

--测试通过uat 20190906

declare

 

    l_api_name CONSTANT VARCHAR2(30) := 'rcv_txn_process';

    l_savepoint_name VARCHAR2(30) := NULL;

 

    rc                  NUMBER := 0;

    outcome             VARCHAR2(200) := NULL;

    message             VARCHAR2(200) := NULL;

    r_val1              VARCHAR2(200) := NULL;

    r_val2              VARCHAR2(200) := NULL;

    r_val3              VARCHAR2(200) := NULL;

    r_val4              VARCHAR2(200) := NULL;

    r_val5              VARCHAR2(200) := NULL;

    r_val6              VARCHAR2(200) := NULL;

    r_val7              VARCHAR2(200) := NULL;

    r_val8              VARCHAR2(200) := NULL;

    r_val9              VARCHAR2(200) := NULL;

    r_val10             VARCHAR2(200) := NULL;

    r_val11             VARCHAR2(200) := NULL;

    r_val12             VARCHAR2(200) := NULL;

    r_val13             VARCHAR2(200) := NULL;

    r_val14             VARCHAR2(200) := NULL;

    r_val15             VARCHAR2(200) := NULL;

    r_val16             VARCHAR2(200) := NULL;

    r_val17             VARCHAR2(200) := NULL;

    r_val18             VARCHAR2(200) := NULL;

    r_val19             VARCHAR2(200) := NULL;

    r_val20             VARCHAR2(200) := NULL;

    x_str               VARCHAR2(4000) := NULL;

    timeout             NUMBER;

    l_str1              fnd_new_messages.message_text%TYPE := NULL;

    l_header_iface_rec  po.rcv_headers_interface%ROWTYPE;

    l_rcv_txn_iface_rec po.rcv_transactions_interface%ROWTYPE;

    l_mtl_iface_lots_rec         mtl_transaction_lots_interface%ROWTYPE; --批次接口表

    l_mtl_txn_lots_rec           mtl_transaction_lots_temp%ROWTYPE;

    l_group_id          NUMBER;

 

  BEGIN

 

    

      IF l_group_id IS NULL THEN

        l_group_id := po.rcv_interface_groups_s.nextval;

      END IF;

      l_header_iface_rec.header_interface_id     := po.rcv_headers_interface_s.nextval;

      l_header_iface_rec.group_id                := l_group_id;

      l_header_iface_rec.org_id                  := 295;--rec_poh.org_id;

      l_header_iface_rec.processing_status_code  := 'PENDING';

      l_header_iface_rec.receipt_source_code     := 'VENDOR';

      l_header_iface_rec.transaction_type        := 'NEW';

      l_header_iface_rec.auto_transact_code      := 'DELIVER';

      l_header_iface_rec.vendor_id               := 326957;--rec_poh.vendor_id;

      l_header_iface_rec.vendor_site_id          := 598395;--rec_poh.vendor_site_id;

      l_header_iface_rec.expected_receipt_date   := SYSDATE;

      l_header_iface_rec.validation_flag         := 'Y';

      l_header_iface_rec.ship_to_org
4000
anization_id := 315;--rec_poh.inventory_organization_id;

      l_header_iface_rec.receipt_num             := NULL; --Automatic Number

    

      l_header_iface_rec.last_update_date  := SYSDATE;

      l_header_iface_rec.last_updated_by   := 8162;

      l_header_iface_rec.creation_date     := SYSDATE;

      l_header_iface_rec.created_by        := 8162;

      l_header_iface_rec.last_update_login := -1;

    

      INSERT INTO po.rcv_headers_interface VALUES l_header_iface_rec;

    

        l_rcv_txn_iface_rec                          := NULL;

        l_rcv_txn_iface_rec.interface_transaction_id := rcv_transactions_interface_s.nextval;

        l_rcv_txn_iface_rec.header_interface_id      := l_header_iface_rec.header_interface_id;

        l_rcv_txn_iface_rec.group_id                 := l_group_id;

        l_rcv_txn_iface_rec.org_id                   := 295;--rec_poh.org_id;

        l_rcv_txn_iface_rec.processing_status_code   := 'PENDING';

        l_rcv_txn_iface_rec.transaction_status_code  := 'PENDING';

        l_rcv_txn_iface_rec.processing_mode_code     := 'ONLINE';

        l_rcv_txn_iface_rec.validation_flag          := 'Y';

        l_rcv_txn_iface_rec.receipt_source_code      := 'VENDOR';

        l_rcv_txn_iface_rec.vendor_id                := 326957;--rec_poh.vendor_id;

        l_rcv_txn_iface_rec.vendor_site_id           := 598395;--rec_poh.vendor_site_id; --Optional      

        l_rcv_txn_iface_rec.source_document_code     := 'PO';

        l_rcv_txn_iface_rec.po_header_id             := 529302;--529294;--rec_po.po_header_id;

        l_rcv_txn_iface_rec.po_line_id               := 885818;--rec_po.po_line_id;

        l_rcv_txn_iface_rec.po_line_location_id      := 1030063;--1030055;--rec_po.line_location_id;

        l_rcv_txn_iface_rec.po_release_id            := NULL;

        l_rcv_txn_iface_rec.transaction_type         := 'RECEIVE';

        l_rcv_txn_iface_rec.auto_transact_code       := 'DELIVER';

        l_rcv_txn_iface_rec.destination_type_code    := 'EXPENSE'; --'RECEIVING';

       -- l_rcv_txn_iface_rec.item_description         := rec_po.item_description;

        l_rcv_txn_iface_rec.item_id         := 231102;--rec_po.item_description;

        l_rcv_txn_iface_rec.transaction_date         := sysdate;

        l_rcv_txn_iface_rec.quantity                 := 1.5;--rec_po.quantity;

        l_rcv_txn_iface_rec.unit_of_measure          := '千克';--rec_po.unit_meas_lookup_code; --Not Code      

        l_rcv_txn_iface_rec.to_organization_id       := 315;--rec_poh.inventory_organization_id;

        l_rcv_txn_iface_rec.ship_to_location_id      := 10888;--rec_po.ship_to_location_id;

        l_rcv_txn_iface_rec.deliver_to_location_id   := 10888;--rec_po.ship_to_location_id;

        l_rcv_txn_iface_rec.location_id              := 10888;--rec_po.ship_to_location_id;

        l_rcv_txn_iface_rec.subinventory               := 'MQ01'; --子库存

        l_rcv_txn_iface_rec.locator_id                 := 17995;--rec_line.locator_id; --货位        

        l_rcv_txn_iface_rec.interface_source_code    := 'WORK_PROGRESS';

        l_rcv_txn_iface_rec.interface_source_line_id := 9999;

        l_rcv_txn_iface_rec.attribute2               := 'N';

      

        l_rcv_txn_iface_rec.last_update_date       := SYSDATE;

        l_rcv_txn_iface_rec.last_updated_by        := 8162;

        l_rcv_txn_iface_rec.creation_date          := SYSDATE;

        l_rcv_txn_iface_rec.created_by             := 8162;

        l_rcv_txn_iface_rec.last_update_login      := -1;

        l_rcv_txn_iface_rec.program_application_id := 20003;

        l_rcv_txn_iface_rec.program_id             := -1;

        l_rcv_txn_iface_rec.program_update_date    := SYSDATE;

        l_rcv_txn_iface_rec.request_id             := 9999;

      

        INSERT INTO rcv_transactions_interface VALUES l_rcv_txn_iface_rec;

--插入批次接口表      

        l_mtl_txn_lots_rec := NULL;

        l_mtl_txn_lots_rec.transaction_temp_id    := l_rcv_txn_iface_rec.interface_transaction_id;

        l_mtl_txn_lots_rec.last_update_date       := SYSDATE;

        l_mtl_txn_lots_rec.last_updated_by        := 8162;

        l_mtl_txn_lots_rec.creation_date          := SYSDATE;

        l_mtl_txn_lots_rec.created_by             := 8162;

        l_mtl_txn_lots_rec.last_update_login      := -1;

        l_mtl_txn_lots_rec.transaction_quantity   := trunc(1.5

                                                          ,5);

        l_mtl_txn_lots_rec.primary_quantity       := trunc(1.5

                                                          ,5);

        l_mtl_txn_lots_rec.lot_number             := '2736-GT-GA01-1';--rec_line.lot_number;

        l_mtl_txn_lots_rec.group_header_id        := cux_pub_group_s.nextval;

        l_mtl_txn_lots_rec.lot_expiration_date    := NULL;

        l_mtl_txn_lots_rec.secondary_quantity     := NULL;

        l_mtl_txn_lots_rec.product_transaction_id := l_rcv_txn_iface_rec.interface_transaction_id;

        l_mtl_txn_lots_rec.product_code           := 'RCV';

                        

        INSERT INTO mtl_transaction_lots_temp

        VALUES l_mtl_txn_lots_rec;       

      

    IF l_group_id IS NOT NULL THEN

    

      COMMIT; -- Must commit before call synchronous transaction

      timeout :=10000;-- fnd_profile.value('INV_RPC_TIMEOUT');

    

      IF (timeout IS NULL) THEN

        timeout := 300;

      END IF;

    

      rc := fnd_transaction.synchronous(timeout,

                                        outcome,

                                        message,

                                        'PO',

                                        'RCVTPO',

                                        'ONLINE',

                                        l_group_id,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL,

                                        NULL);

      IF (rc = 0 AND (outcome NOT IN ('WARNING', 'ERROR'))) THEN

        dbms_output.put_line('01');--NULL;

      ELSE

        dbms_output.put_line('011');--NULL;null;

       dbms_output.put_line(outcome||':'||message);

      END IF; --added by liangjie.yuan 20140328 end

      IF (rc = 0 AND (outcome NOT IN ('WARNING', 'ERROR'))) THEN

        dbms_output.put_line('02');--NULL;

       -- NULL;

      ELSIF (rc = 1) THEN

      

        dbms_output.put_line('1');

      ELSIF (rc = 2) THEN

      

        dbms_output.put_line('2');

      ELSIF (rc = 3 OR (outcome IN ('WARNING', 'ERROR'))) THEN

      

        rc    := fnd_transaction.get_values(r_val1,

                                            r_val2,

                                            r_val3,

                                            r_val4,

                                            r_val5,

                                            r_val6,

                                            r_val7,

                                            r_val8,

                                            r_val9,

                                            r_val10,

                                            r_val11,

                                            r_val12,

                                            r_val13,

                                            r_val14,

                                            r_val15,

                                            r_val16,

                                            r_val17,

                                            r_val18,

                                            r_val19,

                                            r_val20);

        x_str := r_val1;

      

        IF (r_val2 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val2;

        END IF;

        IF (r_val3 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val3;

        END IF;

        IF (r_val4 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val4;

        END IF;

        IF (r_val5 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val5;

        END IF;

        IF (r_val6 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val6;

        END IF;

        IF (r_val7 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val7;

        END IF;

        IF (r_val8 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val8;

        END IF;

        IF (r_val9 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val9;

        END IF;

        IF (r_val10 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val10;

        END IF;

        IF (r_val11 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val11;

        END IF;

        IF (r_val12 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val12;

        END IF;

        IF (r_val13 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val13;

        END IF;

        IF (r_val14 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val14;

        END IF;

        IF (r_val15 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val15;

        END IF;

        IF (r_val16 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val16;

        END IF;

        IF (r_val17 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val17;

        END IF;

        IF (r_val18 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val18;

        END IF;

        IF (r_val19 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val19;

        END IF;

        IF (r_val20 IS NOT NULL) THEN

          x_str := x_str || chr(10) || r_val20;

        END IF;

      END IF;

    

    END IF;

    dbms_output.put_line('x_str='||x_str);

 

  EXCEPTION

    WHEN OTHERS THEN

      dbms_output.put_line('others');

  END rcv_txn_process;

 

/*  

select * from po.rcv_headers_interface rhi

  where rhi.created_by = 8162

  and rhi.vendor_id = 326957;

 

delete from po.rcv_headers_interface rhi

  where rhi.created_by = 8162

  and rhi.vendor_id = 326957;

 

    delete from po.rcv_transactions_interface rti

  where rti.created_by = 8162

  and rti.vendor_id = 326957;

 

  commit;

 

 

  */

 

/*  

select * from po.rcv_transactions_interface rti

  where rti.created_by = 8162

  and rti.vendor_id = 326957;

 

  delete from po.rcv_transactions_interface rti

  where rti.created_by = 8162

  and rti.vendor_id = 326957;

  */

 

/*  select * from mtl_transaction_lots_temp mtt

  where mtt.created_by =8162;*/

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: