• 采购订单关闭之PL/SQL实现方法


    应客户需求,需要写个脚本,批量关闭Bonus Item类型的采购订单,在metalink上搜索到一些方法,但是都测试不通。原来需要将代码生成一个并发程序。下面是测试成功的代码。
    1.首先创建一个存储过程,然后在存储过程中调用PO_ACTIONS.CLOSE_PO
    2.注册一个存储过程类型的并发程序
    3.在application中测试结果。

    create or replace procedure xx_po_close

    (
     
     err_buff out 
    varchar2,
     
     retcode out 
    number,
     
     p_reason_desc 
    varchar2,
     
     p_po_from 
    varchar2,
     
     p_po_to 
    varchar2)

     
    as

        l_return_code 
    varchar2(2000);

        l_result boolean;

        
    cursor po_close_cur
        
        
    is
        
            
    select poh.segment1,
                   
                   poll.po_header_id,
                   
                   poll.po_line_id,
                   
                   poll.line_location_id
            
              
    from po_line_locations_all poll,
                   
                   po_headers_all poh,
                   
                   po_lines_all pol
            
             
    where poll.po_header_id = poh.po_header_id
                  
               
    and poll.po_line_id = pol.po_line_id
                  
               
    and pol.po_header_id = poh.po_header_id
                  
               
    and upper(poh.authorization_status) = 'APPROVED'
                  
               
    and upper(poll.closed_code) = 'CLOSED FOR RECEIVING'
                  
               
    and (pol.unit_price = 0 or
                   poh.quantity_billed 
    - poh.quantity >= 0)
                  
               
    and poh.segment1 between p_po_from and p_po_to;

    begin

        
    for po_close_rec in po_close_cur
        
        loop
        
            l_result :
    = po_actions.close_po(
                                            
                                            p_docid 
    => po_close_rec.po_header_id,
                                            
                                            p_doctyp 
    => 'PO',
                                            
                                            p_docsubtyp 
    => 'STANDARD',
                                            
                                            p_lineid 
    => po_close_rec.po_line_id,
                                            
                                            p_shipid 
    => po_close_rec.line_location_id,
                                            
                                            p_action 
    => 'CLOSE',
                                            
                                            p_reason 
    => p_reason_desc,
                                            
                                            p_calling_mode 
    => 'PO',
                                            
                                            p_conc_flag 
    => 'N',
                                            
                                            p_return_code 
    => l_return_code,
                                            
                                            p_auto_close 
    => 'N',
                                            
                                            p_action_date 
    => sysdate,
                                            
                                            p_origin_doc_id 
    => null);
        
            
    if l_result then
            
                fnd_file.put_line(fnd_file.output,
                                  po_close_rec.segment1 
    ' is Closed. ');
            
            
    else
            
                fnd_file.put_line(fnd_file.output,
                                  po_close_rec.segment1 
    ' is not Closed. ');
            
            
    end if;
        
        
    end loop;

    end;
  • 相关阅读:
    C# 拖放操作源码详解
    Dev系列控件之XtraCharts(一)
    DateEdit如果开启Vista模式并显示日期+时间模式
    DevXpress控件: 第二篇将绘图进行到底: Charter控件(附图)
    C#操作Word (1)Word对象模型
    文曲星猜数,纯粹乱写
    转 浩方原理初步分析
    生成变换方向矩阵
    关于嵌套类的调用更新问题
    所有前n位可以被n整除的9位数
  • 原文地址:https://www.cnblogs.com/keim/p/2372931.html
Copyright © 2020-2023  润新知