--以下脚本于20171230在tony上成功实现

--费用类采购订单退货成功_20171230_只需要输入一个采购订单号即可

--初始化

/*
begin
  fnd_global.apps_initialize(user_id      => 1110,
                             resp_id      => 50597,
                             resp_appl_id => 20003);
  mo_global.init('M');
end;
*/

declare
  g_pkg_name CONSTANT VARCHAR2(30) := 'CUX_PO_WPR_HEADER_PUB';
  g_error_count       NUMBER := 0;
  g_unexp_error_count NUMBER := 0;
  g_created_by        NUMBER := fnd_global.user_id;
  g_last_updated_by   NUMBER := fnd_global.user_id;
  g_last_update_login NUMBER := fnd_global.login_id;
  g_prog_appl_id      NUMBER := fnd_global.prog_appl_id;
  g_prog_id           NUMBER := fnd_global.conc_program_id;

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

CURSOR csr_line_dis(p_po_num  varchar2) IS
    SELECT *
      FROM (SELECT h1.po_header_id,
                   h1.revision_num,
                   h2.po_line_id,
                   h3.line_location_id,
                   h4.po_distribution_id,
                   h2.unit_price,
                   h1.currency_code,
                   h1.vendor_id,
                   h1.vendor_site_id,
                   h1.org_id,
                   (select fsp.inventory_organization_id
                      from financials_system_params_all fsp
                     where fsp.org_id = h1.org_id) inventory_organization_id,
                   ----
                   t1.shipment_header_id,
                   t1.shipment_line_id,
                   t1.transaction_id AS transaction_id_deliver,
                   t1.parent_transaction_id AS transaction_id_receive,
                   t1.quantity -
                   (SELECT nvl(SUM(t2.quantity), 0)
                      FROM rcv_transactions t2
                     WHERE t2.parent_transaction_id =
                           t1.parent_transaction_id
                       AND t2.transaction_type = 'RETURN TO VENDOR') AS quantity,
                   t1.project_id,
                   t1.task_id,
                   h2.category_id,
                   ----
                   h3.ship_to_location_id,
                   h2.item_description,
                   h2.unit_meas_lookup_code
              FROM po_headers_all        h1,
                   po_lines_all          h2,
                   po_line_locations_all h3,
                   po_distributions_all  h4,
                   rcv_transactions      t1
             WHERE 1 = 1
                  ----
               AND t1.transaction_type = 'DELIVER'
                  ----and t1.interface_source_code = 'WORK_PROGRESS'
                  ----
               AND t1.po_header_id = h4.po_header_id
               AND t1.po_line_id = h4.po_line_id
               AND t1.po_line_location_id = h4.line_location_id
               AND t1.po_distribution_id = h4.po_distribution_id
                  ----
               AND h1.po_header_id = h2.po_header_id
               AND h1.po_header_id = h3.po_header_id
               AND h2.po_line_id = h3.po_line_id
               AND h4.po_header_id = h1.po_header_id
               AND h4.po_line_id = h2.po_line_id
               AND h4.line_location_id = h3.line_location_id
                  ----
                  -- AND    h1.po_header_id = p_po_header_id
               and h1.org_id = 82
               and h1.segment1 = p_po_num
               AND 1 = 1)
     ORDER BY quantity DESC;

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_rcv_txn_iface_rec po.rcv_transactions_interface%ROWTYPE;
  l_group_id          NUMBER;

l_line_qty_return NUMBER;
  l_line_qty_sum    NUMBER;

BEGIN

/*        FOR rec_header IN csr_header(p_project_id => p_project_id
  ,p_wpr_header_num => p_wpr_header_num) LOOP*/

IF l_group_id IS NULL THEN
    l_group_id := po.rcv_interface_groups_s.nextval;
  END IF;

--           FOR rec_line IN csr_line(p_wpr_header_id => rec_header.wpr_header_id) LOOP
  /*            
  l_line_qty_return := 0;
  l_line_qty_sum    := 0;*/

FOR rec_po IN csr_line_dis(p_po_num => '1021') LOOP
  
    /*                    IF rec_po.quantity + l_line_qty_sum <= rec_line.return_amount THEN
        l_line_qty_return := rec_po.quantity;
        l_line_qty_sum    := l_line_qty_sum + l_line_qty_return;
    ELSE
        l_line_qty_return := rec_line.return_amount - l_line_qty_sum;
        l_line_qty_sum    := l_line_qty_sum + l_line_qty_return;
    END IF;*/
  
    l_rcv_txn_iface_rec                          := NULL;
    l_rcv_txn_iface_rec.interface_transaction_id := rcv_transactions_interface_s.nextval;
    l_rcv_txn_iface_rec.group_id                 := l_group_id;
    l_rcv_txn_iface_rec.org_id                   := rec_po.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.vendor_id             := rec_po.vendor_id;
    l_rcv_txn_iface_rec.vendor_site_id        := rec_po.vendor_site_id;
    l_rcv_txn_iface_rec.source_document_code  := 'PO';
    l_rcv_txn_iface_rec.po_header_id          := rec_po.po_header_id;
    l_rcv_txn_iface_rec.po_line_id            := rec_po.po_line_id;
    l_rcv_txn_iface_rec.po_line_location_id   := rec_po.line_location_id;
    l_rcv_txn_iface_rec.po_distribution_id    := rec_po.po_distribution_id;
    l_rcv_txn_iface_rec.parent_transaction_id := rec_po.transaction_id_deliver;
    l_rcv_txn_iface_rec.shipment_header_id    := rec_po.shipment_header_id;
    l_rcv_txn_iface_rec.shipment_line_id      := rec_po.shipment_line_id;
  
    l_rcv_txn_iface_rec.category_id := rec_po.category_id;
  
    l_rcv_txn_iface_rec.transaction_type      := 'RETURN TO VENDOR';
    l_rcv_txn_iface_rec.destination_type_code := 'EXPENSE';
    l_rcv_txn_iface_rec.destination_context   := 'EXPENSE';
  
    l_rcv_txn_iface_rec.inspection_status_code := 'NOT INSPECTED';
    l_rcv_txn_iface_rec.item_description       := rec_po.item_description;
  
    l_rcv_txn_iface_rec.transaction_date := SYSDATE;
  
    l_rcv_txn_iface_rec.quantity                := rec_po.quantity;
    l_rcv_txn_iface_rec.primary_quantity        := rec_po.quantity;
    l_rcv_txn_iface_rec.uom_code                := rec_po.currency_code;
    l_rcv_txn_iface_rec.unit_of_measure         := rec_po.unit_meas_lookup_code;
    l_rcv_txn_iface_rec.primary_unit_of_measure := rec_po.unit_meas_lookup_code;
    l_rcv_txn_iface_rec.to_organization_id      := rec_po.inventory_organization_id;
    l_rcv_txn_iface_rec.receipt_source_code     := 'VENDOR';
    l_rcv_txn_iface_rec.from_organization_id    := rec_po.inventory_organization_id;
    l_rcv_txn_iface_rec.routing_header_id       := 3;
    l_rcv_txn_iface_rec.po_revision_num         := rec_po.revision_num;
  
    l_rcv_txn_iface_rec.po_unit_price          := rec_po.unit_price;
    l_rcv_txn_iface_rec.currency_code          := rec_po.currency_code;
    l_rcv_txn_iface_rec.deliver_to_location_id := rec_po.ship_to_location_id;
  
    /*                    l_rcv_txn_iface_rec.project_id := rec_po.project_id;
    l_rcv_txn_iface_rec.task_id    := rec_po.task_id;*/
  
    l_rcv_txn_iface_rec.last_update_date       := SYSDATE;
    l_rcv_txn_iface_rec.last_updated_by        := g_created_by;
    l_rcv_txn_iface_rec.creation_date          := SYSDATE;
    l_rcv_txn_iface_rec.created_by             := g_last_updated_by;
    l_rcv_txn_iface_rec.last_update_login      := g_last_update_login;
    l_rcv_txn_iface_rec.program_application_id := g_prog_appl_id;
    l_rcv_txn_iface_rec.program_id             := g_prog_id;
    l_rcv_txn_iface_rec.program_update_date    := SYSDATE;
    l_rcv_txn_iface_rec.request_id             := fnd_global.conc_request_id;
  
    l_rcv_txn_iface_rec.interface_source_code := 'PO_WPR';
    -- l_rcv_txn_iface_rec.interface_source_line_id := rec_line.wpr_line_id;
  
    INSERT INTO rcv_transactions_interface VALUES l_rcv_txn_iface_rec;
  
    IF l_line_qty_sum <> l_line_qty_sum THEN
      GOTO next_loop;
    END IF;
  
  END LOOP;
  <<next_loop>>
  NULL; --------不可少

--            END LOOP;
  --        END LOOP;
  IF l_group_id IS NOT NULL THEN
  
    COMMIT; -- Must commit before call synchronous transaction
    timeout := 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
      NULL;
    ELSE
      null;
    END IF;
    IF (rc = 0 AND (outcome NOT IN ('WARNING', 'ERROR'))) THEN
    
      NULL;
    ELSIF (rc = 1) THEN
    
      null;
    ELSIF (rc = 2) THEN
    
      null;
    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;

EXCEPTION

WHEN OTHERS THEN
    dbms_output.put_line('return');
END;

EBS开发_费用类采购订单退货相关推荐

  1. EBS开发_费用类采购订单接收

    --以下脚本于20171230在tony上成功实现 --费用类采购订单接受成功_20171230_只需要输入一个采购订单号即可 --初始化 /* begin   fnd_global.apps_ini ...

  2. EBS开发_费用类采购订单创建

    --以下代码于20171230在TONY环境中实现 --初始化 /* begin   fnd_global.apps_initialize(user_id      => 1110,       ...

  3. 费用型采购订单(科目分配类别=K)向成本中心计入费用

    文章目录 一.概述 二.费用型采购订单创建收货发票校验 2.1 创建费用型采购订单-ME21N 2.2 收货-MIGO 2.3 发票校验-MIRO 三.成本中心费用查询-S_ALR_8701361 3 ...

  4. SAP已发票校验采购订单退货 - 特殊业务

    采购业务过程中,偶尔出现外购物料质量问题或采购订单价格输入错误等原因,需要在系统中做收货的冲销. 外购物料退回给供应商在不同的业务场景中,可能出现的移动类型有102.122.162甚至是601等. 1 ...

  5. SAP中服务类采购订单的收货审批确认

    通过事务ML81N进行服务采购订单的确认,类型MIGO收货操作: 在事务中执行采购服务项目的审批确认动作: 如果仅尚未进行审批确认,观察采购订单历史,可以看到生成的单据: 完成服务确认审批(收货)后, ...

  6. SAP寄售采购订单退货

    在行业中处于强势地位的工厂往往会有供应商寄售的业务存在,某些时候还遇到供应商寄售的物料需要退货返回供应商处的需求,可以有几种做法 1.单纯使用一个移动类型减少K库存.可以使用562+K.502+K等等 ...

  7. 服务类采购订单 Service PO

    服务类采购的物料类型:DIEN,把服务建成物料号,也可以区别于物料,服务类采购需要建服务主数据 服务采购的一般过程: Determination of Requirements –> Creat ...

  8. Oracle EBS Interface/API(18) - 标准采购订单、PBA和一揽子发放等等审批API

    一.标准采购订单和PBA审批API: DECLARELv_Ret_Status VARCHAR2(30);Ln_Org_Id NUMBER := 101; --业务实体标识Ln_Preparer_Id ...

  9. EBS开发_创建AP付款

    --以下代码于20181002在Tony环境测试通过 /* BEGIN   --mo_global.init('SQLAP');   apps.fnd_global.apps_initialize(u ...

最新文章

  1. Your First Concordion.Net Project (Part 5)-Running Specs with Gallio
  2. 牛津-阿斯利康疫苗与出血性疾病风险轻微升高有关 |《自然-医学》论文
  3. django请求与响应(HttpRequest对象和HttpResponse对象)
  4. ie浏览器怎样查看html,查看IE浏览器历史记录的方法
  5. linux应用之----进程通信
  6. 《C++ Primer》7.3.2节练习
  7. 计算机网络(九)-物理层(补充)-傅里叶变换-信道复用
  8. linux rac节点主机不定时重启,双节点RAC各个节点主机频繁自动重启故障解决
  9. EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
  10. async spring 默认线程池_Spring定时任务高级使用篇
  11. 人工智能数学基础之概率论
  12. 与卿共赴鸿蒙是什么意思,经典的爱情诗句
  13. 详细教您如何把wav转换成mp3格式
  14. kindle 3之安装多看系统
  15. 短信群发助手调试笔记
  16. python调用按键精灵插件_Textobot-用交互式TB插件在iPhone上砸壳更美滋滋
  17. 【LeetCode】词典中最长的单词(附集合操作、lamda用法)
  18. 前端可视化项目全国疫情地图
  19. 百度CEO李彦宏为何这么拼
  20. 为什么Arduino UNO工作电压是5V,但是需要9V的电源适配器

热门文章

  1. 个人云盘kodexplorer安装
  2. Unity UGUI控件介绍
  3. IOS中使用SoundTouch库实现变声
  4. MySQL在存经纬度的数据库查询最近距离的应用
  5. 开源协议比较(BSD,Apache,GPL,LGPL,AGPL,MIT)
  6. Unity实现游戏场景的转换
  7. 区块链项目_趣链科技Hyperchain
  8. Excel VBA高效办公应用-第十七章-用户权限管理系统
  9. MorphCore-An Energy-Efficient Microarchitecture for High Performance ILP and High Throughput TLP
  10. jenkins构建python代码_Jenkins+Python完整版