账户别名杂出事务处理

时间:2022-12-10 09:43:43

账户别名杂出事务处理

SELECT   mtl_material_transactions_s.nextval
            INTO   l_mtl_txn_itf_rec.transaction_interface_id
            FROM   dual;
        l_mtl_txn_itf_rec.transaction_header_id := l_mtl_txn_itf_rec.transaction_interface_id;
        l_mtl_txn_itf_rec.transaction_mode      :=   3 ;
        l_mtl_txn_itf_rec.process_flag          :=   1 ;
        l_mtl_txn_itf_rec.transaction_type_id   :=   31 ;
        l_mtl_txn_itf_rec.organization_id       := i.organization_id;
        l_mtl_txn_itf_rec.inventory_item_id     := i.inventory_item_id;   --l_mtl_txn_int_rec.inventory_item_id;
        l_mtl_txn_itf_rec.subinventory_code     := i.subinventory_code;   --l_mtl_txn_int_rec.subinventory_code;
        l_mtl_txn_itf_rec.locator_id            := i.locator_id;   --l_mtl_txn_int_rec.locator_id;
        l_mtl_txn_itf_rec.transaction_quantity  := i.onhand_quantity * - 1 ;   --l_mtl_txn_int_rec.transaction_quantity;
        l_mtl_txn_itf_rec.transaction_uom       := i.uom_code;   --l_mtl_txn_int_rec.uom_code;
        l_mtl_txn_itf_rec.transaction_date      := nvl(i.transaction_date,
                                                         SYSDATE );   --l_mtl_txn_int_rec.onhand_creation_date /*g_date*/
     
          /*l_mtl_txn_itf_rec.source_header_id      := null;--l_mtl_txn_itf_rec.transaction_header_id;
        l_mtl_txn_itf_rec.source_line_id        := null;--l_mtl_txn_itf_rec.transaction_header_id;
        l_mtl_txn_itf_rec.source_code           := null;--'cux_wms_mtl_txn_in';*/
     
        l_mtl_txn_itf_rec.transaction_source_id := i.disposition_id;   --l_mtl_txn_int_rec.transaction_source_id; -- 214 --账户别名 81: 12140  707: 12381  84: 1334
          -- Who Column
        l_mtl_txn_itf_rec.last_update_date  :=   SYSDATE ;
        l_mtl_txn_itf_rec.last_updated_by   := g_user_id;
        l_mtl_txn_itf_rec.creation_date     :=   SYSDATE ;
        l_mtl_txn_itf_rec.created_by        := g_user_id;
        l_mtl_txn_itf_rec.last_update_login := g_login_id;
     
        l_mtl_txn_itf_rec.source_code      := p_source_code;
        l_mtl_txn_itf_rec.source_header_id := p_source_line_id;
        l_mtl_txn_itf_rec.source_line_id   := p_source_line_id;
          INSERT   INTO   mtl_transactions_interface   VALUES   l_mtl_txn_itf_rec;
     
        l_mtl_txn_lot_rec.transaction_interface_id := l_mtl_txn_itf_rec.transaction_header_id;
        l_mtl_txn_lot_rec.lot_number               := i.lot_number;
        l_mtl_txn_lot_rec.transaction_quantity     := i.onhand_quantity;
        l_mtl_txn_lot_rec.last_update_date         :=   SYSDATE ;
        l_mtl_txn_lot_rec.last_updated_by          := g_user_id;
        l_mtl_txn_lot_rec.creation_date            :=   SYSDATE ;
        l_mtl_txn_lot_rec.created_by               := g_user_id;
        l_mtl_txn_lot_rec.last_update_login        := g_login_id;
          INSERT   INTO   mtl_transaction_lots_interface
          VALUES   l_mtl_txn_lot_rec;
     
          --杂出事务处理
        x_retval := inv_txn_manager_pub.process_transactions(p_api_version      =>   1 ,
                                                             p_init_msg_list    => fnd_api.g_true,
                                                             p_commit           => fnd_api.g_false,   --not commit
                                                             p_validation_level => fnd_api.g_valid_level_full,
                                                             x_return_status    => l_return_status,
                                                             x_msg_count        => l_msg_count,
                                                             x_msg_data         => l_msg_data,
                                                             x_trans_count      => x_trans_count,
                                                             p_table            =>   1 ,
                                                             p_header_id        => l_mtl_txn_itf_rec.transaction_interface_id);
      IF   x_retval <>   0   THEN
        SELECT   mti.error_explanation
          INTO   l_error_explanation
          FROM   mtl_transactions_interface mti
         WHERE   1   =   1
           AND   mti.transaction_interface_id =
              l_mtl_txn_itf_rec.transaction_interface_id
           AND   rownum =   1   ;
       x_msg_data :=   'Error in inv_txn_manager_pub.process_transactions:'   ||
                      'transaction header id: '   ||
                     l_mtl_txn_itf_rec.transaction_interface_id ||
                      ' . 杂出处理失败.'   || l_error_explanation;
        RAISE   transaction_error;
      END   IF   ;