PO状态为“处理中”的处理方法
EBS中经常会出现PO提交审批后状态为“处理中”的情况,此时PO创建人无法打开,审批人也无法打开,工作流等查看也无异常,可以使用一下SQL处理再进行审批:
--set serveroutput on size 100000
DECLARE
CURSOR POTORESET IS
SELECT WF_ITEM_TYPE,
WF_ITEM_KEY,
PO_HEADER_ID,
SEGMENT1,
REVISION_NUM,
TYPE_LOOKUP_CODE
FROM PO_HEADERS_ALL
WHERE SEGMENT1 = '14681' --'&po_number'
AND ORG_ID = 81--&ORG_ID
AND AUTHORIZATION_STATUS IN ('IN PROCESS', 'PRE-APPROVED')
AND NVL(CANCEL_FLAG, 'N') = 'N'
AND NVL(CLOSED_CODE, 'OPEN') != 'FINALLY_CLOSED';
CURSOR MAXSEQ(ID NUMBER,
SUBTYPE PO_ACTION_HISTORY.OBJECT_SUB_TYPE_CODE%TYPE) IS
SELECT NVL(MAX(SEQUENCE_NUM), 0)
FROM PO_ACTION_HISTORY
WHERE OBJECT_TYPE_CODE IN ('PO', 'PA')
AND OBJECT_SUB_TYPE_CODE = SUBTYPE
AND OBJECT_ID = ID
AND ACTION_CODE IS NULL;
CURSOR POACTION(ID NUMBER,
SUBTYPE PO_ACTION_HISTORY.OBJECT_SUB_TYPE_CODE%TYPE) IS
SELECT NVL(MAX(SEQUENCE_NUM), 0)
FROM PO_ACTION_HISTORY
WHERE OBJECT_TYPE_CODE IN ('PO', 'PA')
AND OBJECT_SUB_TYPE_CODE = SUBTYPE
AND OBJECT_ID = ID
AND ACTION_CODE = 'SUBMIT';
SUBMITSEQ PO_ACTION_HISTORY.SEQUENCE_NUM%TYPE;
NULLSEQ PO_ACTION_HISTORY.SEQUENCE_NUM%TYPE;
BEGIN
FOR POS IN POTORESET LOOP
DBMS_OUTPUT.PUT_LINE('Processing ' || POS.TYPE_LOOKUP_CODE ||
' PO Number: ' || POS.SEGMENT1);
DBMS_OUTPUT.PUT_LINE('......................................');
DBMS_OUTPUT.PUT_LINE('Closing Notifications...');
BEGIN
UPDATE WF_NOTIFICATIONS
SET STATUS = 'CANCELED'
WHERE NOTIFICATION_ID IN
(SELECT IAS.NOTIFICATION_ID
FROM WF_ITEM_ACTIVITY_STATUSES IAS, WF_NOTIFICATIONS NTF
WHERE IAS.ITEM_TYPE = POS.WF_ITEM_TYPE
AND IAS.ITEM_KEY = POS.WF_ITEM_KEY
AND NTF.NOTIFICATION_ID = IAS.NOTIFICATION_ID)
AND NVL(STATUS, 'OPEN') = 'OPEN';
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
DBMS_OUTPUT.PUT_LINE('Aborting Workflow...');
BEGIN
WF_ENGINE.ABORTPROCESS(POS.WF_ITEM_TYPE, POS.WF_ITEM_KEY);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
DBMS_OUTPUT.PUT_LINE('Updating PO Status...');
UPDATE PO_HEADERS_ALL
SET AUTHORIZATION_STATUS = DECODE(POS.REVISION_NUM,
0,
'INCOMPLETE',
'REQUIRES REAPPROVAL'),
WF_ITEM_TYPE = NULL,
WF_ITEM_KEY = NULL
WHERE PO_HEADER_ID = POS.PO_HEADER_ID;
OPEN MAXSEQ(POS.PO_HEADER_ID, POS.TYPE_LOOKUP_CODE);
FETCH MAXSEQ
INTO NULLSEQ;
CLOSE MAXSEQ;
OPEN POACTION(POS.PO_HEADER_ID, POS.TYPE_LOOKUP_CODE);
FETCH POACTION
INTO SUBMITSEQ;
CLOSE POACTION;
IF NULLSEQ > SUBMITSEQ THEN
DBMS_OUTPUT.PUT_LINE('Deleting PO Action History...');
DELETE FROM PO_ACTION_HISTORY
WHERE OBJECT_ID = POS.PO_HEADER_ID
AND OBJECT_TYPE_CODE IN ('PO', 'PA')
AND OBJECT_SUB_TYPE_CODE = POS.TYPE_LOOKUP_CODE
AND SEQUENCE_NUM >= SUBMITSEQ;
END IF;
DBMS_OUTPUT.PUT_LINE('Done Processing.');
DBMS_OUTPUT.PUT_LINE('................');
DBMS_OUTPUT.PUT_LINE('Please issue commit, if no errors found.');
END LOOP;
END;
PO状态为“处理中”的处理方法的更多相关文章
- Java线程状态及Thread类中的主要方法
要想实现多线程,就必须在主线程中创建新的线程对象. 不论什么线程一般具有5种状态,即创建,就绪,执行,堵塞,终止. 创建状态: 在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时 ...
- 为什么不能在init和dealloc函数中使用accessor方法
前言 为什么不要在init和dealloc方法中调用getter和setter:Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:"Don'tUse Accessor M ...
- GpsLocationProvider中的sendExtraCommand方法
Android系统源码中GpsLocationProvider类中包含sendExtraCommand方法,代码如下 @Override public boolean sendExtraCommand ...
- jquery 中一些 特殊方法 的特殊使用 一览表
cnblogs的页面, 一种是管理页面, 是随笔的列表 a full list of essays. 另一种是 首页. 要搜索文档的话, 就使用 "首页"的那种方式. 一个jque ...
- jquery中的clone()方法使用
clone([Even[,deepEven]]) 描述: 克隆匹配的DOM元素并且选中这些克隆的副本. 在想把DOM文档中元素的副本添加到其他位置时这个函数非常有用. 1:一个布尔值(true 或者 ...
- OpenStack安装部署管理中常见问题解决方法
一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...
- Web Api中实现Http方法(Put,Post,Delete)
在Web Api中实现Http方法(Put,Post,Delete) 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我 ...
- jQuery中的ready方法及实现按需加载css,js
模拟jQuery中的ready方法及实现按需加载css,js 一.ready函数的实现 经常用jQuery类库或其他类库中的ready方法,有时候想想它们到底是怎么实现的,但是看了一下jQuery中的 ...
- $.ajax()方法详解 jquery中的ajax方法
jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...
随机推荐
- C#初步接触
如同非常多刚開始学习的人一样,刚接触C#的时候,也是一头雾水,学习了好长时间,都搞不清楚一些基本名称是什么.什么是C#?什么是.net?什么是visual studio?它们之间有什么关系?以下我们就 ...
- javascript中对条件推断语句的优化
无论写什么程序,平时都会用到条件语句,如:if...else... switch这种语句,来达到对条件的推断. 以下看来一段代码: function abc(test){ if (test == 1) ...
- 第三章:挖掘SimpleSection.o
1.查看.o目标文件用objdump 命令, 参数“-h"就是把ELF文件的各个段的基本信息打印出来.也可以使用-X打印更多的信息. 段的属性,Size是段的长度,FIle off 是段开始 ...
- 解决aapt命令在Linux下无法运行的问题
新的一个项目,需要在Linux下执行aapt命令对apk文件进行处理 开发环境: MacBook-Pro:appSecuity zhang$ uname -a Darwin huijundeMacBo ...
- xcode中控件共有属性
Text,title 控件上的文字 backgroung 背景图片或颜色 alignment 布局(居中,..) mode显示模式(缩放,拉伸..) drawing 隐藏控件的可见性 alpha 透明 ...
- WindowsForm 计算器
计算器 可以分一下类 数字键 + - * / % =和撤销 归零C最简单 下面看一下计算器具体的代码 using System; using System.Collections. ...
- VS2013关于“当前不会命中断点源代码与原始版本不同”的BUG
文件明明没有动过,竟然一直给我这种提示! 解决方法:将出问题的文件用notepad打开,然后另存为Unicode编码,覆盖原来的文件. 网上另外有一种办法是:通过重新格式化出问题的源文件亦可以解决,即 ...
- mysql优化(1) 观察服务器周期性变化
先把nginx和memcached环境开启 /usr/local/nginx/sbin/nginx /usr/local/fastphp/sbin/php-fpm /usr/local/memcach ...
- vc++ internet
1.用VC开发ActiveX文档服务器 MFC 4.2不支持开发ActiveX容器,但支持ActiveX服务器.只要在使用MFC AppWizard生成应用程序框架时选择支持Active Docume ...
- action接收到来自jsp页面的请求时出现中文乱码问题处理方法
写JSP程序时,在Servlet中取请求参数时出现了乱码,当然,这种乱码问题再简单不过了.由于在JSP中使用了GBK作用页面的编码,那么提交的中文信息自然也会被按着GBK进行编码,为%xx格式的GBK ...