转:使用脚本关闭订单头

订单的关闭是自动的,在所有行工作流结束(Close或者Cancel)后0.5天,订单头也将在Workflow Background Process的推动下关闭。

还有另外一种说法:you can wait until month-end and the “Order Flow – Generic” workflow will close it for you.

所以造成了很多时候订单行已经关闭了,但订单头还是处于Booked状态,这个时候如果你想Close订单头,你可以手动运行Workflow Background Process来关闭订单,也可以使用脚本来close Order Header.

脚本一:

begin  
fnd_global.apps_initialize(:USER_ID, :RESP_ID, :RESP_APPL_ID);  
end;  
/  
  
/*If Work Flow exist for Order header then use the script below. This will close the Order  
After running this script run "Workflow Background Process" */  
begin  
wf_engine.completeactivity  
(  
'OEOH', --item_type  
'9999999', --item_key = header_id .... pass the HEADER_ID of the order you want to close  
'CLOSE_WAIT_FOR_L', -- apps.wf_process_activities.activity_name where instance_id= apps.wf_item_activity_statuses.process_activity  
null  
);  
end;  
/  
Commit;  
  
====================  
/*If Work Flow does NOT exist for Order then use the script below .  
After running this script run "Workflow Background Process" */  
  
declare  
l_return_status VARCHAR2(240);  
l_msg_count NUMBER;  
l_msg_data VARCHAR2(240);  
l_header_id NUMBER := 99999999; --pass the HEADER_ID of the order you want to close  
begin  
OE_ORDER_CLOSE_UTIL.Close_Order  
( p_api_version_number => 1.0  
, p_header_id => l_header_id  
, x_return_status => l_return_status  
, x_msg_count => l_msg_count  
, x_msg_data => l_msg_data  
);  
dbms_output.put_line('status = ' l_return_status);  
end;  
/  
Commit;  
  
/* After running this script run "Workflow Background Process" */  
**********************************************************************  
**********************************************************************  

脚本二:你要确保订单行都被关闭了的情况用这个脚本

Select HEADER_ID, OPEN_FLAG, FLOW_STATUS_CODE  
from apps.oe_order_lines_all  
where org_id=:org_id and header_id =:HEADER_ID; --pass the ORG_ID and HEADER_ID of the order you want to close  
  
update apps.oe_order_headers_all  
set open_flag = 'N' , FLOW_STATUS_CODE= 'CLOSED'  
where org_id=:org_id and header_id =:HEADER_ID; --pass the ORG_ID and HEADER_ID of the order you want to close  
  
Commit;  
原文地址:https://www.cnblogs.com/toowang/p/3665624.html