ORACLE EBS 杂项出仓接口处理

Declare
  v_organization_id          Number := 85; --组织ID
  v_transaction_type_id      Number := 119; --事务类型ID:Data Conversion Out
  v_qty_x                    Number := -1; --出仓需负数
  v_user_id                  Number := 3551; --用户ID
  v_login_id                 Number := -1; --last_update_login
  v_source_code              Varchar2(20) := '批量处理'; --来源
  v_transaction_reference    Varchar2(30) := '批量打柴WP呆滞数据'; --参考
  v_end_date                 Date := to_date('2023/10/01', 'rrrr/mm/dd'); --呆滞期
  v_transaction_interface_id Number;
  v_transaction_source_id    Number;
  l_return_status            Varchar2(40);
  l_msg_count                Number;
  l_msg_data                 Varchar2(2000);
  l_trans_count              Number;
  l_request_id               Number;
Begin
  --获取事务来源ID
  Select DISPOSITION_ID
    Into v_transaction_source_id
    From MTL_GENERIC_DISPOSITIONS
   Where SEGMENT1 = '出仓' --事务来源
     And ORGANIZATION_ID = v_organization_id;
  --循环入接口处理
  For r1 In (Select a.INVENTORY_ITEM_ID,
                    v.concatenated_segments,
                    v.primary_uom_code,
                    a.SUBINVENTORY_CODE,
                    a.LOT_NUMBER,
                    v_qty_x * Sum(a.TRANSACTION_QUANTITY) qty
               From mtl_onhand_quantities_detail a, mtl_system_items_kfv v
              Where a.ORGANIZATION_ID = v_organization_id
                And a.SUBINVENTORY_CODE Like '%WP01'
                And a.ORGANIZATION_ID = v.ORGANIZATION_ID
                And a.INVENTORY_ITEM_ID = v.INVENTORY_ITEM_ID
                And v.segment2 != 'WI'
                And v.segment2 = 'ME'
                And a.DATE_RECEIVED < v_end_date
              Group By a.INVENTORY_ITEM_ID,
                       v.concatenated_segments,
                       v.primary_uom_code,
                       a.SUBINVENTORY_CODE,
                       a.LOT_NUMBER
              Order By a.INVENTORY_ITEM_ID) Loop
    If r1.qty <> 0 Then
      --取transaction_interface_id
      v_transaction_interface_id := Null;
      Begin
        Select mtl_material_transactions_s.nextval
          Into v_transaction_interface_id
          From dual;
      Exception
        When Others Then
          v_transaction_interface_id := Null;
      End;
      --处理lot no
      If r1.LOT_NUMBER Is Not Null Then
        Begin
          Insert Into mtl_transaction_lots_interface
            (transaction_interface_id,
             lot_number,
             transaction_quantity,
             primary_quantity,
             last_update_date,
             last_updated_by,
             creation_date,
             created_by,
             last_update_login)
          Values
            (v_transaction_interface_id,
             r1.LOT_NUMBER,
             r1.qty,
             r1.qty,
             Sysdate,
             v_user_id,
             Sysdate,
             v_user_id,
             v_login_id);
          Commit;
        Exception
          When Others Then
            dbms_output.put_line('数据插入批次处理接口失败:' || Sqlerrm);
        End;
      End If;
      Begin
        Insert Into mtl_transactions_interface
          (process_flag,
           organization_id,
           inventory_item_id,
           transaction_quantity,
           transaction_type_id,
           subinventory_code,
           locator_id,
           transaction_date,
           transaction_uom,
           transaction_interface_id,
           transaction_source_id,
           source_code,
           source_header_id,
           source_line_id,
           validation_required,
           lock_flag,
           transaction_mode,
           TRANSACTION_REFERENCE,
           last_update_date,
           last_updated_by,
           creation_date,
           created_by,
           last_update_login)
        Values
          (1, -- process_flag:'1' for ready, '2' for not ready,3:fails 
           v_organization_id,
           r1.inventory_item_id,
           r1.qty,
           v_transaction_type_id,
           r1.SUBINVENTORY_CODE,
           Null,
           Sysdate,
           r1.primary_uom_code,
           v_transaction_interface_id,
           v_transaction_source_id,
           v_source_code,
           -1,
           -1,
           1, -- validation_required
           2, -- lock_flag ('1' for locked, '2' or NULL for not locked 
           3, -- transaction_mode 3-background 2-immediate
           v_transaction_reference,
           Sysdate,
           v_user_id,
           Sysdate,
           v_user_id,
           v_login_id);
        Commit;
      Exception
        When Others Then
          dbms_output.put_line('数据插入事务处理接口失败:' || Sqlerrm);
      End;
    End If;
    --跑接口
    l_request_id := inv_txn_manager_pub.process_transactions(p_api_version      => 1,
                                                             p_init_msg_list    => fnd_api.g_false,
                                                             p_commit           => fnd_api.g_true,
                                                             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      => l_trans_count,
                                                             p_table            => 1,
                                                             p_header_id        => v_transaction_interface_id);
    Commit;
  End Loop;
End;
 

相关推荐

  1. C++ 杂项

    2024-03-29 06:30:02       27 阅读
  2. jmeter文件下载接口处理

    2024-03-29 06:30:02       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 06:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 06:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 06:30:02       82 阅读
  4. Python语言-面向对象

    2024-03-29 06:30:02       91 阅读

热门阅读

  1. LeetCode 面试经典150题 242.有效的字母异位词

    2024-03-29 06:30:02       41 阅读
  2. xgboost 和Scikit-learn 关系

    2024-03-29 06:30:02       40 阅读
  3. 常用开源机器学习库

    2024-03-29 06:30:02       48 阅读
  4. transformer中selfattention简单实现

    2024-03-29 06:30:02       42 阅读