首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle erp销售订单订单行状态不对导致订单无法关闭之解决方案!
【标  题】:Oracle erp销售订单订单行状态不对导致订单无法关闭之解决方案!
【关键字】:Oracle,erp
【来  源】:http://blog.chinaunix.net/article.php?articleId=41670&blogId=1281

Oracle erp销售订单订单行状态不对导致订单无法关闭之解决方案!

销售订单行booked后,挑库到待发库,突然决定不再发货,对订单行作backordered,但是订单行的状态没有变为cancle,仍然是picked,导致整个订单无法关闭!

具体操作步骤:

### Steps to Reproduce ###
1)om/order organizer /new sale order i create an sale order ,entry order line ordered item:C.BT.250-100G-2.8.J
02 qty: is 11
2) om/ship transaction/pick release reserved 11.and transer to satged subinventory 'DFK'.
3) later,i don't want to ship it to custmer, in ship transaction form, i do backordered,delivery is clos
ed,but order line status is
picked, in ship transaction form, query it ,line pick status is staged, reserved is not released.

Souliton:

Dwon the script from Metalink

REM $Header: single.sql 115.0 2000/06/15 ysinha noship $

WHENEVER SQLERROR EXIT FAILURE ROLLBACK;

set ver off

set feed off

set serveroutput on size 500000

Prompt

accept order_line_id number prompt 'Enter LINE_ID of the Line to Cancel : '

spool &order_line_id

col dtime format a25 heading 'Script run at Date/Time' ;

select to_char(sysdate, 'DD-MON-YYYY HH:MI:SS') dtime from dual;

Declare

  l_line_id   number := &order_line_id;

  l_user_id   number;

  l_resp_id   number;

  l_resp_appl_id number;

  l_wf_exists varchar2(1) := 'Y';

Begin

  update oe_order_lines_all

  set    ordered_quantity   = 0

  ,      cancelled_quantity = nvl(cancelled_quantity, 0) + ordered_quantity

  ,      cancelled_flag     = 'Y'

  ,      open_flag          = 'N'

  ,      flow_status_code   = 'CANCELLED'

  ,      last_updated_by    = -2564702

  ,      last_update_date   = sysdate

  where  line_id            = l_line_id;

  Begin

    select number_value

    into   l_user_id

    from   wf_item_attribute_values

    where  item_type = 'OEOL'

    and    item_key  = to_char(l_line_id)

    and    name      = 'USER_ID';

    select number_value

    into   l_resp_id

    from   wf_item_attribute_values

    where  item_type = 'OEOL'

    and    item_key  = to_char(l_line_id)

    and    name      = 'RESPONSIBILITY_ID';

    select number_value

    into   l_resp_appl_id

    from   wf_item_attribute_values

    where  item_type = 'OEOL'

    and    item_key  = to_char(l_line_id)

    and    name      = 'APPLICATION_ID';

   

    Exception

      When No_Data_Found Then

        l_wf_exists := 'N';

  End;

  If l_wf_exists = 'Y' Then

    fnd_global.apps_initialize(l_user_id, l_resp_id, l_resp_appl_id);

    wf_engine.handleerror( OE_Globals.G_WFI_LIN

                           , to_char(l_line_id)

                           , 'CLOSE_LINE'

                           , 'RETRY'

                           , 'CANCEL'

                           );

  End If;

  update wsh_delivery_assignments

  set    delivery_id               = null

  ,      parent_delivery_detail_id = null

  ,      last_updated_by           = -2564702

  ,      last_update_date          = sysdate

  where  delivery_detail_id        in

        (select wdd.delivery_detail_id

         from   wsh_delivery_details wdd, oe_order_lines_all oel

         where  wdd.source_line_id   = l_line_id

          and   wdd.source_code      = 'OE'

          and   oel.open_flag        = 'N'

          and   oel.shipped_quantity is null

          and   oel.ordered_quantity = 0

          and   released_status      <> 'D');

  update wsh_delivery_details

  set    released_status        = 'D'

  ,      src_requested_quantity = 0

  ,      requested_quantity     = 0

  ,      shipped_quantity       = 0

  ,      cycle_count_quantity   = 0

 ,      cancelled_quantity     = decode(requested_quantity,0,cancelled_quantity,requested_quantity)

  ,      subinventory           = null

  ,      locator_id             = null

  ,      lot_number             = null

  ,      serial_number          = null

  ,      revision               = null

  ,      ship_set_id            = null

  ,      inv_interfaced_flag    = 'X'

  ,      oe_interfaced_flag     = 'X'

  ,      last_updated_by        = -2564702

  ,      last_update_date       = sysdate

  where  delivery_detail_id        in

        (select wdd.delivery_detail_id

         from   wsh_delivery_details wdd, oe_order_lines_all oel

         where  wdd.source_line_id   = l_line_id

          and   wdd.source_code      = 'OE'

          and   oel.open_flag        = 'N'

          and   oel.shipped_quantity is null

          and   oel.ordered_quantity = 0

          and   released_status      <> 'D');

 

Exception

  when others then

  rollback;

  dbms_output.put_line(substr(sqlerrm, 1, 240));

End;

/

 

Prompt

Prompt ===========================================================

Prompt You must enter COMMIT to Save changes or ROLLBACK to Revert

Prompt ===========================================================

 

spool off

 

…………………………………………………………………………………………………………………………………………………………

$ sqlplus apps/apps @single.sql

 

SQL*Plus: Release 8.0.6.0.0 - Production on Sat Aug 13 2005

 

(c) Copyright 1999 Oracle Corporation.  All rights reserved.

 

 

Connected to:

Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production

With the Partitioning option

JServer Release 8.1.7.4.0 - Production

Enter LINE_ID of the Line to Cancel : 858580

Script run at Date/Time

-------------------------

13-AUG-2005 11:33:00

===========================================================

You must enter COMMIT to Save changes or ROLLBACK to Revert

===========================================================

SQL> commit;

SQL>

<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-f

Useful SQL reference:【上一篇】
对Foreign Key的进一步认识。:【下一篇】
【相关文章】
  • oracle下定时执行过程脚本
  • Oracle的Archive Log模式下的恢复工作
  • Oracle调优(入门及提高篇)
  • oracle管理查询
  • oracle热物理备份步骤
  • Oracle触发器
  • Oracle 中的OOP概念
  • Oracle10gR2安裝
  • Install Oracle on Solaris 8/9/10
  • Install Oracle9 on RedHat
  • 【随机文章】
  • 存储热在中小企业 2006年全球市场超千亿美元
  • ASP开发中数据库文件调用的捷径
  • IronPython0.9.3发布了 —— Decorator简介
  • PhotoImpact 10 视频教程-选取区应用
  • 新的办公室
  • Flash相关软件介绍之Flashtoolset 2.0
  • 装上XGL,贴个图。
  • Foxpro 更改默认设置
  • 根据IP地址的奇偶来分拆流量
  • 关掉QuickTime 扰人的升级画面+将网页制作成PDF的方法
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.