应客户需求,需要写个脚本,批量关闭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;

oracle ebs 采购订单关闭之PL/SQL实现方法的更多相关文章

  1. Oracle 11g oracle客户端(32位)PL/SQL develepment的安装配置

    Oracle 11g+oracle客户端(32位)+PL/SQL develepment的安装配置 之前一直想学Oracle,可是就是安装配置Oracle一直未成功,让人很苦恼,特别是什么监听器什么的 ...

  2. 不安装 oracle的客户,就可以使用pl/sql访问远程oracle 数据库的方法

    免安装Oracle客户端使用PL/SQL连接Oracle      大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Oracl ...

  3. PL/SQL异常处理方法

    PL/SQL异常处理方法   1:什么是异常处理: PL/SQL提供一个功能去处理异常,在PL/SQL块中叫做异常处理,使用异常处理我们能够测试代码和避免异常退出. PL/SQL异常信息包含三个部分: ...

  4. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql

    select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1       采购订单号, appf.full_name   ...

  5. Oracle EBS 采购 接收入库 接口开发

    http://blog.itpub.net/25164132/viewspace-746657/ 接收入库是项目中会经常碰到的开发,这类开发一般来说比较简单,但是接收入库在Oracle中其实涉及到很多 ...

  6. oracle学习笔记(十七) PL/SQL高级应用

    PL/SQL高级应用 动态SQL 在PL/SQL中,不能直接执行DDL(create,alter,drop),得使用动态SQL,当然,除了DDL,动态SQL也可以执行DML(select,insert ...

  7. Windows 64位 安装Oracle instantclient 官方绿色版和PL/SQL Developer 总结

    原文: http://blog.csdn.net/kimsoft/article/details/8751267 操作系统:Windows 7 64位旗舰 要求,安装PL/SQL Developer用 ...

  8. [Oracle]Sqlplus连接成功,但pl/sql连接不成功,提示“ora-12145:无法解析指定的连接标识符”

    Oracle客户端安装成功后,使用Net Manager配置成功,测试服务成功.使用Sqlplus连接成功.但使用pl/sql developer连接总是提示“ora-12145:无法解析指定的连接标 ...

  9. 64位Win7安装+32位Oracle + PL/SQL 解决方法

    软件景象:64位win7.32位Oracle 10g. PL/SQL 9.0.4.1644 媒介:以前开辟用的都是32位体系,忽然换到64位上,安装景象真的有点麻烦了,尤其对于PL/SQL只支撑32位 ...

随机推荐

  1. JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置

    前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...

  2. ios项目生成ipa文件方法

    做这些的前提是你配置好了所有的证书,如果还没先去配置证书吧. 1.打开需要生成ipa的ios项目.2.在运行按钮的后面选择ios Device3.点击Product 按钮,选择第五个Archive4. ...

  3. 玩转HTML5移动页面

    (1) 动画雪碧图涉及的动画十分多,用的元素也十分多,请务必使用雪碧图(Sprite)!网上的工具有一些可以帮助你生成雪碧图的工具,例如CssGaga,GoPng等等,自动化构建工具Grunt和Gul ...

  4. 监控mysql主从同步状态脚本

    监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...

  5. Linux系统产生随机数的3种方法

    Linux系统产生随机数的3种方法 方法一:生成8位随机数 [root@localhost ~]# echo "$RANDOM$(date +%N%t)" | md5sum | c ...

  6. iOS:集成环信EaseMobSDK单聊功能

    当然在集成环信之前需要一些准备操作: 1.首先注册环信开发者账号,直接进入环信官网注册即可:http://www.easemob.com 2.按照文档一步一步将需要的文件全部拖入工程中:http:// ...

  7. Linux命令行–走进shell

    在现代Linux系统上,当Linux系统启动时它会创建几个虚拟控制台.虚拟控制台是运行在Linux系统内存中的一个终端会话.大部分Linux发行版会启动7个(有时更多)虚拟控制台.通常按下Ctrl+A ...

  8. Html语言基础

    接触html有一段时间了,对html做简单的总结. 1.HTML基础标签 <p>这是段落</p> 浏览器中效果: 这是段落 -------------------------- ...

  9. Speed-BI 云平台视频观看频道

    数据分析的关键,首先是要有数据进行透视分析.大家一般在使用EXCEL透视表进行数据分析时,会通过某个系统,导出类似视频中的数据底稿,然后在此基础上进行各种维度的变换与指标的改变.奥威思必得也有一个类似 ...

  10. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...