zoukankan      html  css  js  c++  java
  • OM订单登记不了的处理办法

    问题的产生:

    1、缺少了一些字段内容, 例如:订单头录入时缺少了收货地点,销售员,销售业绩等,导致订单行中缺少相关内容。有时虽然回到订单头补充了相关内容,但行的内容是没有变化的,因此同样检查订单行中是否有同样的内容;

    2、如果在订单头中忘记了销售员,会导致销售业绩没有,需要人工去维护。

    3、有时维护了所有内容,但仍然无法登记,是因为工作流的已进入登记订单(BOOK_ORDER)这一环节过程中,但工作流步骤的目前状态为空不正确系统不能自动返回到登记合格(BOOK_Eligible)这环节去的,这时需要工作流管理员(sysadmin登录)进行维护,具体是:

     1)工作流管理员->状态监控程序 

    输入项目关键字(header_id) 和 工作流责任人 找到工作流,在“活动历史”页签,点进去[登记订单:人工],点[登记-合格],点加速(expedite)钮,retry 后,再看status 页,确认现在的状态     是已通知 (NOTIFIED),

     2)  然后操作员可以回到在form 界面中点[登记订单],然后一般可以登记成功.


    (注:如果打开了订单工具栏中的调试选项,则可以查看/tmp下的产生的dbg文件,查看执行的调试log信息。调试是检查错误的好办法)

    请参考过程oe_order_book_util.Complete_Book_Eligible 仔细研读;

    /*--CURSOR book_eligible IS
        SELECT
    'Y'
       
    FROM WF_ITEM_ACTIVITY_STATUSES WIAS
            , WF_PROCESS_ACTIVITIES WPA
        WHERE WIAS.item_type =
    'OEOH'
         
    AND WIAS.item_key = &l_itemkey      -- 订单头ID
         
    AND WIAS.activity_status = 'NOTIFIED'
         
    AND WPA.activity_name = 'BOOK_ELIGIBLE'
         
    AND WPA.instance_id = WIAS.process_activity

    找到记录则可以点登记订单,如找不到则可能已完成或状态不正确

    */


    检查工作流发现当数据不完全情况下点登记按钮BOOK_ORDER活动环节的状态结果代码是空值,本应该返回结果代码是‘INCOMPLETE’,造成不能自已返回上一环节, 经研究工作流资料后,编写了一段PLSQL代码,可通过执行该过程来调动工作流返回到登记合格这个环节。返回后在订单录入界面重新进行登记就没有问题。

    代码如下:(以后可以把这段代码放在客户化的订单录入FORM中去)

     

    create or replace procedure MIPENG_OEOHBOOK_FIX(P_HEADER_ID in number) is

     

     sts varchar2(100);

     res varchar2(100);

     p_item_key varchar2(50);

     l_activity_id number; -- 活动ID

    begin

       /*当订单登记缺少信息时往往出现不适合登记提示,原因是工作流活动已经走到登记这个活动,但状态结果是空值

         设置该活动为未完成可以回到上一步等待登记活动的状态*/

       --1 找到订单登记的活动ID

       P_item_key := to_char(P_HEADER_ID);

       begin

        select wpa.instance_id into l_activity_id  

        from wf_item_activity_statuses s,wf_process_activities wpa

        where s.process_activity=wpa.instance_id and s.item_type = 'OEOH'  

              and s.item_key = p_item_key and wpa.activity_name = 'BOOK_ORDER';

       exception

       when others then

          return ;

       end;

     -- 2 完成该活动以结果代码'INCOMPLETE',使活动转到上一步

     wf_item_activity_status.result('OEOH',P_item_key,l_activity_id,sts,res);

     if sts='COMPLETE' and res is null then -- 如活动完成且结果代码为空

         wf_engine_util.complete_activity('OEOH',P_item_key,l_activity_id,'INCOMPLETE');

     end if;

     commit;

     

    end MIPENG_OEOHBOOK_FIX;


  • 相关阅读:
    Eleven-面向对象进阶
    Ten-面向对象
    Nine-常用模块
    Eight-内置函数和匿名函数
    Seven-递归函数和装饰器函数
    Six-迭代器和生成器
    Five-函数
    Four-深浅copy和文件操作
    Third-基础数据类型
    Second-基础
  • 原文地址:https://www.cnblogs.com/benio/p/2232974.html
Copyright © 2011-2022 走看看