1, Book order
Oe_Order_Pub.Process_Order
( 1
, Fnd_Api.G_FALSE
, Fnd_Api.G_FALSE
, Fnd_Api.G_FALSE
, x_return_status
, x_msg_count
, x_msg_data
–IN PARAMETERS
, p_header_rec => l_header_rec
, p_line_tbl => l_line_tbl
, p_action_request_tbl => l_action_request_tbl
–OUT PARAMETERS
, x_header_rec => x_header_rec
, x_header_val_rec => x_header_val_rec
, x_Header_Adj_tbl => x_Header_Adj_tbl
, x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
, x_Header_price_Att_tbl => x_Header_price_Att_tbl
, x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
, x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
, x_Header_Scredit_tbl => x_Header_Scredit_tbl
, x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
, x_line_tbl => x_line_tbl
, x_line_val_tbl => x_line_val_tbl
, x_Line_Adj_tbl => x_Line_Adj_tbl
, x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
, x_Line_price_Att_tbl => x_Line_price_Att_tbl
, x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
, x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
, x_Line_Scredit_tbl => x_Line_Scredit_tbl
, x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
, x_Lot_Serial_tbl => x_Lot_Serial_tbl
, x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
, x_action_request_tbl => x_action_request_tbl
); 2, 创建发货行
WSH_DELIVERY_DETAILS_PUB.AUTOCREATE_DELIVERIES(
p_api_version_number => 1.0,
p_init_msg_list => APPS.FND_API.G_TRUE,
p_commit => l_commit,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_line_rows => p_line_rows,
x_del_rows => x_del_rows );
3, 挑库发放
wsh_deliveries_pub.delivery_action(
p_api_version_number => 1.0 ,
p_init_msg_list => null, — IN VARCHAR2,
x_return_status => x_return_status, — OUT VARCHAR2,
x_msg_count => x_msg_count, — OUT NUMBER,
x_msg_data => x_msg_data, — OUT VARCHAR2,
p_action_code => ‘PICK-RELEASE’, — IN VARCHAR2,
p_delivery_id => p_delivery_id, — IN NUMBER DEFAULT NULL,
p_delivery_name => p_delivery_name, — IN VARCHAR2 DEFAULT NULL,
x_trip_id => x_trip_id, — OUT VARCHAR2,
x_trip_name => x_trip_name — OUT VARCHAR2
);
4, 发放确认
WSH_DELIVERIES_PUB.Delivery_Action(
p_api_version_number => 1.0,
p_init_msg_list => init_msg_list,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_action_code => p_action_code,
p_delivery_id => p_delivery_id,
p_delivery_name => p_delivery_name,
p_asg_trip_id => p_asg_trip_id,
p_asg_trip_name => p_asg_trip_name,
p_asg_pickup_stop_id => p_asg_pickup_stop_id,
p_asg_pickup_loc_id => p_asg_pickup_loc_id,
p_asg_pickup_loc_code => p_asg_pickup_loc_code,
p_asg_pickup_arr_date => p_asg_pickup_arr_date,
p_asg_pickup_dep_date => p_asg_pickup_dep_date,
p_asg_dropoff_stop_id => p_asg_dropoff_stop_id,
p_asg_dropoff_loc_id => p_asg_dropoff_loc_id,
p_asg_dropoff_loc_code => p_asg_dropoff_loc_code,
p_asg_dropoff_arr_date => p_asg_dropoff_arr_date,
p_asg_dropoff_dep_date => p_asg_dropoff_dep_date,
p_sc_action_flag => p_sc_action_flag,
p_sc_intransit_flag => p_sc_intransit_flag,
p_sc_close_trip_flag => p_sc_close_trip_flag,
p_sc_create_bol_flag => p_sc_create_bol_flag,
p_sc_stage_del_flag => p_sc_stage_del_flag,
p_sc_trip_ship_method => p_sc_trip_ship_method,
p_sc_actual_dep_date => p_sc_actual_dep_date,
p_sc_report_set_id => p_sc_report_set_id,
p_sc_report_set_name => p_sc_report_set_name,
p_wv_override_flag => p_wv_override_flag,
x_trip_id => x_trip_id,
x_trip_name => x_trip_name);
5, 创建Install Base
csi_item_instance_pub.create_item_instance(
p_api_version => 1.0 –IN NUMBER
,p_instance_rec => l_instance_rec – IN OUT NOCOPY csi_datastructures_pub.instance_rec
,p_ext_attrib_values_tbl => l_ext_attrib_values_tbl — IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
,p_party_tbl => l_party_tbl –IN OUT NOCOPY csi_datastructures_pub.party_tbl
,p_account_tbl => l_account_tbl –IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
,p_pricing_attrib_tbl => l_pricing_attrib_tbl –IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
,p_org_assignments_tbl => l_org_assignments_tbl –IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
,p_asset_assignment_tbl => l_asset_assignment_tbl –IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
,p_txn_rec => l_txn_rec –IN OUT NOCOPY csi_datastructures_pub.transaction_rec
,x_return_status => x_return_status –OUT NOCOPY VARCHAR2
,x_msg_count => x_msg_count –OUT NOCOPY NUMBER
,x_msg_data => x_msg_data); –OUT NOCOPY VARCH
6, 失效Install Base
csi_item_instance_pub.expire_item_instance(
p_api_version => 1.0 — IN NUMBER
,p_instance_rec => l_instance_rec — IN csi_datastructures_pub.instance_rec
,p_txn_rec => l_txn_rec — IN OUT NOCOPY csi_datastructures_pub.transaction_rec
,x_instance_id_lst => l_instance_id_lst– OUT NOCOPY csi_datastructures_pub.id_tbl
,x_return_status => x_return_status– OUT NOCOPY VARCHAR2
,x_msg_count => x_msg_count– OUT NOCOPY NUMBER
,x_msg_data => x_msg_data– OUT NOCOPY VARCHAR2
); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 具体示例代码请参加附件: Oracle OM API Sample create or replace package comms_om_new is -- Author : Horis
-- Created : 11/11/2004 9:22:32 AM
-- Purpose : Deal with order management process
PROCEDURE main(
itemtype in varchar2,
itemkey in varchar2,
actid in number,
funcmode in varchar2,
resultout in out varchar2); PROCEDURE book(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2); PROCEDURE auto_full(errbuf OUT VARCHAR2,
retcode OUT VARCHAR2,
p_line_id IN NUMBER,
p_user_id IN NUMBER
); PROCEDURE pick_release(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2); PROCEDURE ship_confirm(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
p_delivery_id IN NUMBER); PROCEDURE submit_req; PROCEDURE create_install_base(p_line_id IN NUMBER,
x_return_status OUT VARCHAR2,
x_msg_count OUT VARCHAR2,
x_msg_data OUT VARCHAR2); PROCEDURE create_install_base_rel(p_line_id IN NUMBER,
x_return_status OUT VARCHAR2,
x_msg_count OUT VARCHAR2,
x_msg_data OUT VARCHAR2); PROCEDURE expire_install_base(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2); PROCEDURE deal_install_base(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2); end comms_om_new;
/
create or replace package body comms_om_new
is g_header_id NUMBER;
g_order_number NUMBER; g_line_id NUMBER;
g_line_ordered_quantity NUMBER;
g_line_schedule_date DATE; g_user_id NUMBER := fnd_profile.value('USER_ID');
g_delivery_id NUMBER;
g_cur_party_id NUMBER;
g_cur_party_account_id NUMBER; --for WF calling
PROCEDURE main(
itemtype in varchar2,
itemkey in varchar2,
actid in number,
funcmode in varchar2,
resultout in out varchar2)
AS
l_return_status VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_book_flag VARCHAR2(1);
l_picked_flag VARCHAR2(1);
l_line_type NUMBER;
req_id NUMBER;
l_link_to_line_id NUMBER; BEGIN g_line_id := to_number(itemkey);
g_user_id := wf_engine.GetItemAttrNumber(itemtype,itemkey, 'USER_ID');
g_user_id := 1050; IF (funcmode = 'RUN') THEN SELECT ooha.header_id,
ooha.order_number,
oola.line_type_id,
oola.link_to_line_id
INTO g_header_id,
g_order_number,
l_line_type,
l_link_to_line_id
FROM oe_order_headers_all ooha,
oe_order_lines_all oola
WHERE ooha.header_id = oola.header_id
AND oola.line_id = g_line_id
AND ROWNUM = 1; --1033 STRORDER, 1034 ChangePlan, 1036 Suspension
--for child item no need to deal
IF l_line_type IN (1033, 1034, 1036) AND
l_link_to_line_id IS NULL
THEN req_id := fnd_request.submit_request('ONT', --application
'TBFAFL', --program
NULL, --description
NULL, --start_time
FALSE, --sub_request
g_line_id,g_user_id,chr(0),'','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','');
END IF; --for transation_type
resultout := 'COMPELTE:COMPLETE';
RETURN; END IF; IF (funcmode = 'CANCEL') THEN
resultout := 'COMPELTE';
RETURN;
END IF; resultout := 'COMPLETE:COMPLETE';
OE_STANDARD_WF.Clear_Msg_Context;
return; EXCEPTION
WHEN OTHERS THEN
WF_CORE.CONTEXT('comms_om_new', 'main', itemtype, itemkey, to_char(actid), funcmode );
RAISE;
END; PROCEDURE book(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2)
AS CURSOR cur_line IS
SELECT line_id,
ordered_quantity,
schedule_ship_date
FROM oe_order_lines_all
WHERE line_id = g_line_id; i NUMBER:=0;
X_DEBUG_FILE VARCHAR2(100); --IN Parameters
l_header_rec OE_ORDER_PUB.Header_Rec_Type;
l_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type;
l_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
--OUT Parameters
x_header_rec OE_ORDER_PUB.Header_Rec_Type;
x_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type;
x_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
x_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
x_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
x_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
x_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
x_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
x_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
x_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
x_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type;
x_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type;
x_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
x_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
x_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
x_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
x_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
x_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
x_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type;
x_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
x_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type; BEGIN oe_debug_pub.initialize;
X_DEBUG_FILE := OE_DEBUG_PUB.Set_Debug_Mode('TABLE');
oe_debug_pub.SetDebugLevel(1);
oe_msg_pub.initialize; fnd_file.put_line(fnd_file.log, 'g_header_id!' || g_header_id); fnd_global.apps_initialize( g_user_id, 21623, 660,NULL); --(user_id, resp_id, app_id, NULL) l_header_rec := Oe_Order_Pub.G_Miss_Header_Rec;
l_header_rec.header_id := g_header_id;
l_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE; l_action_request_tbl(1).request_type := oe_globals.g_book_order;
l_action_request_tbl(1).entity_code := oe_globals.g_entity_header;
l_action_request_tbl(1).entity_id := g_header_id; i := 0;
FOR row_line IN cur_line
LOOP
i := i+1;
l_line_tbl(i) := oe_order_pub.g_miss_line_rec;
l_line_tbl(i).line_id := row_line.line_id;
l_line_tbl(i).shipped_quantity := row_line.ordered_quantity;
l_line_tbl(i).schedule_ship_date := g_line_schedule_date;
l_line_tbl(i).operation := oe_globals.g_opr_update;
END LOOP; Oe_Order_Pub.Process_Order
( 1
, Fnd_Api.G_FALSE
, Fnd_Api.G_FALSE
, Fnd_Api.G_FALSE
, x_return_status
, x_msg_count
, x_msg_data
--IN PARAMETERS
, p_header_rec => l_header_rec
, p_line_tbl => l_line_tbl
, p_action_request_tbl => l_action_request_tbl
--OUT PARAMETERS
, x_header_rec => x_header_rec
, x_header_val_rec => x_header_val_rec
, x_Header_Adj_tbl => x_Header_Adj_tbl
, x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
, x_Header_price_Att_tbl => x_Header_price_Att_tbl
, x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
, x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
, x_Header_Scredit_tbl => x_Header_Scredit_tbl
, x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
, x_line_tbl => x_line_tbl
, x_line_val_tbl => x_line_val_tbl
, x_Line_Adj_tbl => x_Line_Adj_tbl
, x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
, x_Line_price_Att_tbl => x_Line_price_Att_tbl
, x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
, x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
, x_Line_Scredit_tbl => x_Line_Scredit_tbl
, x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
, x_Lot_Serial_tbl => x_Lot_Serial_tbl
, x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
, x_action_request_tbl => x_action_request_tbl
);
fnd_file.put_line(fnd_file.log, 'Success: Booked');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
fnd_file.put_line(fnd_file.log, 'Failed: Booked');
x_return_status := SQLERRM;
END book; PROCEDURE auto_full(errbuf OUT VARCHAR2,
retcode OUT VARCHAR2,
p_line_id IN NUMBER,
p_user_id IN NUMBER
)
AS
l_return_status VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_picked_flag VARCHAR2(1);
l_line_type NUMBER;
l_cfg_start_date DATE;
l_bom_item_type_id NUMBER;
l_child_count NUMBER;
BEGIN
g_line_id := p_line_id;
g_user_id := p_user_id; BEGIN
SELECT msib.bom_item_type,
oola.header_id,
oola.schedule_ship_date
INTO l_bom_item_type_id,
g_header_id,
g_line_schedule_date
FROM mtl_system_items_b msib,
oe_order_lines_all oola
WHERE msib.inventory_item_id = oola.inventory_item_id
AND oola.line_id = g_line_id
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
l_bom_item_type_id := 1;
END; l_cfg_start_date := sysdate;
IF l_bom_item_type_id=1 THEN
<<wait_for_config>>
SELECT COUNT(*)
INTO l_child_count
FROM oe_order_lines_all oola
WHERE oola.link_to_line_id = g_line_id; IF l_child_count=0 AND (sysdate-l_cfg_start_date)<1/24/6
THEN
--DBMS_LOCK.SLEEP(3);
GOTO wait_for_config;
INSERT INTO comms_log values('waiting');
commit;
END IF;
END IF; --for bom module book(l_return_status, l_msg_count, l_msg_data ); pick_release(l_return_status, l_msg_count, l_msg_data); submit_req; deal_install_base(l_return_status, l_msg_count, l_msg_data) ; END; PROCEDURE pick_release(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2)
AS CURSOR cur_delivery_details IS
SELECT delivery_detail_id
FROM wsh_delivery_details
WHERE source_line_id = g_line_id
OR top_model_line_id = g_line_id; p_api_version_number NUMBER :=1.0;
init_msg_list VARCHAR2(200);
x_msg_details VARCHAR2(3000);
x_msg_summary VARCHAR2(3000); p_line_rows WSH_UTIL_CORE.ID_TAB_TYPE;
x_del_rows WSH_UTIL_CORE.ID_TAB_TYPE;
l_ship_method_code VARCHAR2(100);
i NUMBER;
l_commit VARCHAR2(30);
p_delivery_id NUMBER;
p_delivery_name VARCHAR2(30);
x_trip_id VARCHAR2(30);
x_trip_name VARCHAR2(30);
fail_api EXCEPTION;
l_picked_flag VARCHAR2(10); l_return_status VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000); BEGIN --Initialize (user_id, resp_id, app_id, NULL)
fnd_global.apps_initialize( g_user_id, 21623, 660, NULL);
-- Initialize return status
x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS; i := 0;
FOR row_delivery_details IN cur_delivery_details
LOOP
p_line_rows(1) := row_delivery_details.delivery_detail_id; WSH_DELIVERY_DETAILS_PUB.AUTOCREATE_DELIVERIES(
p_api_version_number => 1.0,
p_init_msg_list => APPS.FND_API.G_TRUE,
p_commit => l_commit,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_line_rows => p_line_rows,
x_del_rows => x_del_rows );
IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
RAISE fail_api;
ELSE
fnd_file.put_line(fnd_file.log, 'Success: Auto create delivery');
END IF; -- Pick release.
p_delivery_id := x_del_rows(1);
p_delivery_name := TO_CHAR( x_del_rows(1) );
g_delivery_id := p_delivery_id; wsh_deliveries_pub.delivery_action(
p_api_version_number => 1.0 ,
p_init_msg_list => null, -- IN VARCHAR2,
x_return_status => x_return_status, -- OUT VARCHAR2,
x_msg_count => x_msg_count, -- OUT NUMBER,
x_msg_data => x_msg_data, -- OUT VARCHAR2,
p_action_code => 'PICK-RELEASE', -- IN VARCHAR2,
p_delivery_id => p_delivery_id, -- IN NUMBER DEFAULT NULL,
p_delivery_name => p_delivery_name, -- IN VARCHAR2 DEFAULT NULL,
x_trip_id => x_trip_id, -- OUT VARCHAR2,
x_trip_name => x_trip_name -- OUT VARCHAR2
); IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
RAISE fail_api;
ELSE
fnd_file.put_line(fnd_file.log, 'Success: Pick release');
END IF; --for pick confirm
COMMIT; <<wait_for_pick2>>
BEGIN
SELECT wdd.released_status
INTO l_picked_flag
FROM wsh_delivery_details wdd
WHERE wdd.delivery_detail_id = row_delivery_details.delivery_detail_id;
EXCEPTION
WHEN OTHERS THEN
l_picked_flag := 'Y';
END;
IF l_picked_flag<>'Y' THEN
GOTO wait_for_pick2;
END IF; ship_confirm(l_return_status, l_msg_count, l_msg_data, p_delivery_id); END LOOP; --row_delivery_details EXCEPTION
WHEN fail_api THEN
WSH_UTIL_CORE.get_messages('Y', x_msg_summary, x_msg_details, x_msg_count);
IF x_msg_count > 1 THEN
x_msg_data := x_msg_summary || x_msg_details;
ELSE
x_msg_data := x_msg_summary || x_msg_details;
END IF;
END pick_release; PROCEDURE ship_confirm(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2,
p_delivery_id IN NUMBER)
IS
-- Standard Parameters.
p_api_version_number NUMBER :=1.0;
init_msg_list VARCHAR2(200);
x_msg_details VARCHAR2(3000);
x_msg_summary VARCHAR2(3000);
p_validation_level NUMBER; -- Parameters for WSH_DELIVERIES_PUB.Delivery_Action.
p_delivery_name VARCHAR2(30);
p_action_code VARCHAR2(15);
p_asg_trip_id NUMBER;
p_asg_trip_name VARCHAR2(30);
p_asg_pickup_stop_id NUMBER;
p_asg_pickup_loc_id NUMBER;
p_asg_pickup_loc_code VARCHAR2(30);
p_asg_pickup_arr_date DATE;
p_asg_pickup_dep_date DATE;
p_asg_dropoff_stop_id NUMBER;
p_asg_dropoff_loc_id NUMBER;
p_asg_dropoff_loc_code VARCHAR2(30);
p_asg_dropoff_arr_date DATE;
p_asg_dropoff_dep_date DATE;
p_sc_action_flag VARCHAR2(10);
p_sc_intransit_flag VARCHAR2(10);
p_sc_close_trip_flag VARCHAR2(10);
p_sc_create_bol_flag VARCHAR2(10);
p_sc_stage_del_flag VARCHAR2(10);
p_sc_trip_ship_method VARCHAR2(30);
p_sc_actual_dep_date VARCHAR2(30);
p_sc_report_set_id NUMBER;
p_sc_report_set_name VARCHAR2(60);
p_wv_override_flag VARCHAR2(10);
x_trip_id VARCHAR2(30);
x_trip_name VARCHAR2(30); /*Handle exceptions*/
fail_api EXCEPTION; X_DEBUG_FILE VARCHAR2(100);
l_ship_method_code VARCHAR2(100); BEGIN --Initialize (user_id, resp_id, app_id, NULL)
fnd_global.apps_initialize( g_user_id, 21623, 660, NULL);
-- Initialize return status
x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS; -- Ship Confirming
p_delivery_name := TO_CHAR(p_delivery_id);
BEGIN
SELECT shipping_method_code
INTO l_ship_method_code
FROM oe_order_headers_all
WHERE header_id = g_header_id;
EXCEPTION
WHEN OTHERS THEN
l_ship_method_code := NULL;
END;
p_action_code := 'CONFIRM'; -- The action code for ship confirm
p_sc_action_flag := 'S'; -- Ship entered quantity.
p_sc_intransit_flag := 'Y'; -- In transit flag is set to 'Y' closes the pickup stop and sets the delivery in transit.
p_sc_close_trip_flag := 'Y'; -- Close the trip after ship confirm
p_sc_trip_ship_method := l_ship_method_code; -- The ship method code WSH_DELIVERIES_PUB.Delivery_Action(
p_api_version_number => 1.0,
p_init_msg_list => init_msg_list,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_action_code => p_action_code,
p_delivery_id => p_delivery_id,
p_delivery_name => p_delivery_name,
p_asg_trip_id => p_asg_trip_id,
p_asg_trip_name => p_asg_trip_name,
p_asg_pickup_stop_id => p_asg_pickup_stop_id,
p_asg_pickup_loc_id => p_asg_pickup_loc_id,
p_asg_pickup_loc_code => p_asg_pickup_loc_code,
p_asg_pickup_arr_date => p_asg_pickup_arr_date,
p_asg_pickup_dep_date => p_asg_pickup_dep_date,
p_asg_dropoff_stop_id => p_asg_dropoff_stop_id,
p_asg_dropoff_loc_id => p_asg_dropoff_loc_id,
p_asg_dropoff_loc_code => p_asg_dropoff_loc_code,
p_asg_dropoff_arr_date => p_asg_dropoff_arr_date,
p_asg_dropoff_dep_date => p_asg_dropoff_dep_date,
p_sc_action_flag => p_sc_action_flag,
p_sc_intransit_flag => p_sc_intransit_flag,
p_sc_close_trip_flag => p_sc_close_trip_flag,
p_sc_create_bol_flag => p_sc_create_bol_flag,
p_sc_stage_del_flag => p_sc_stage_del_flag,
p_sc_trip_ship_method => p_sc_trip_ship_method,
p_sc_actual_dep_date => p_sc_actual_dep_date,
p_sc_report_set_id => p_sc_report_set_id,
p_sc_report_set_name => p_sc_report_set_name,
p_wv_override_flag => p_wv_override_flag,
x_trip_id => x_trip_id,
x_trip_name => x_trip_name);
IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
RAISE fail_api;
ELSE
fnd_file.put_line(fnd_file.log, 'Success: Ship confirm');
END IF; COMMIT;
EXCEPTION
WHEN fail_api THEN
WSH_UTIL_CORE.get_messages('Y', x_msg_summary, x_msg_details, x_msg_count);
IF x_msg_count > 1 THEN
x_msg_data := x_msg_summary || x_msg_details;
ELSE
x_msg_data := x_msg_summary || x_msg_details;
END IF;
END SHIP_CONFIRM; PROCEDURE submit_req
AS
req_id NUMBER;
BEGIN
--submit Process transaction interface
req_id := fnd_request.submit_request('INV', --application
'INCTCM', --program
NULL, --description
NULL, --start_time
FALSE, --sub_request
chr(0), '','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','');
fnd_file.put_line(fnd_file.log, 'Submit request: Process transaction interface'); --submit WIP Move Transaction Manager
req_id := fnd_request.submit_request('WIP', --application
'WICTMS', --program
NULL, --description
NULL, --start_time
FALSE, --sub_request
chr(0), '','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','',
'','','','','','','','','','');
fnd_file.put_line(fnd_file.log, 'Submit request: WIP Move Transaction Manager'); END submit_req; PROCEDURE create_install_base(p_line_id IN NUMBER,
x_return_status OUT VARCHAR2,
x_msg_count OUT VARCHAR2,
x_msg_data OUT VARCHAR2)
AS
l_instance_rec csi_datastructures_pub.instance_rec;
l_ext_attrib_values_tbl csi_datastructures_pub.extend_attrib_values_tbl;
l_party_tbl csi_datastructures_pub.party_tbl;
l_account_tbl csi_datastructures_pub.party_account_tbl;
l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
l_org_assignments_tbl csi_datastructures_pub.organization_units_tbl;
l_asset_assignment_tbl csi_datastructures_pub.instance_asset_tbl;
l_txn_rec csi_datastructures_pub.transaction_rec; l_inventory_item_id NUMBER;
l_org_id NUMBER;
l_ordered_quantity NUMBER;
l_uom VARCHAR2(10); l_instance_id NUMBER;
l_instance_party_id NUMBER;
l_ip_account_id NUMBER;
l_order_number NUMBER;
l_sold_to_org_id NUMBER;
l_ship_to_org_id NUMBER;
l_invoice_to_org_id NUMBER;
l_cur_party_id NUMBER;
l_cust_account_id NUMBER;
l_ship_to_site_id NUMBER;
l_invoice_to_site_id NUMBER;
l_user_party_id NUMBER; cursor cur_user(p_party_id IN NUMBER) is
select hr.object_id party_id
FROM hz_relationships hr
where hr.subject_id = p_party_id
AND hr.relationship_code = 'DOCUMENT_USER'
AND hr.relationship_type = 'USERS'; BEGIN SELECT oola.inventory_item_id,
oola.org_id,
oola.ordered_quantity,
oola.order_quantity_uom,
oola.ship_to_org_id,
oola.invoice_to_org_id,
ooha.order_number,
ooha.sold_to_org_id
INTO l_inventory_item_id,
l_org_id,
l_ordered_quantity,
l_uom,
l_ship_to_org_id,
l_invoice_to_org_id,
l_order_number,
l_sold_to_org_id
FROM oe_order_lines_all oola,
oe_order_headers_all ooha
WHERE oola.line_id = p_line_id
AND oola.header_id = ooha.header_id; SELECT hpsu.party_site_id
INTO l_ship_to_site_id
FROM hz_party_site_uses hpsu
WHERE hpsu.party_site_use_id = l_ship_to_org_id; SELECT hpsu.party_site_id
INTO l_invoice_to_site_id
FROM hz_party_site_uses hpsu
WHERE hpsu.party_site_use_id = l_invoice_to_org_id; SELECT csi_item_instances_s.nextval
INTO l_instance_id
FROM dual; l_instance_rec.instance_id := l_instance_id;
l_instance_rec.instance_number := l_instance_id;
l_instance_rec.external_reference := l_order_number;
l_instance_rec.inventory_item_id := l_inventory_item_id;
l_instance_rec.inv_master_organization_id := 86;
l_instance_rec.mfg_serial_number_flag := 'N';
l_instance_rec.quantity := l_ordered_quantity;
l_instance_rec.unit_of_measure := l_uom;
l_instance_rec.accounting_class_code := 'CUST_PROD';
l_instance_rec.instance_status_id := 10000;
l_instance_rec.customer_view_flag := NULL;
l_instance_rec.merchant_view_flag := NULL;
l_instance_rec.sellable_flag := NULL;
l_instance_rec.active_start_date := TRUNC(SYSDATE);
l_instance_rec.location_type_code := 'HZ_PARTY_SITES';
l_instance_rec.location_id := 249;
l_instance_rec.install_date := TRUNC(SYSDATE);
l_instance_rec.creation_complete_flag := 'Y';
l_instance_rec.version_label := 'AS_CREATED';
l_instance_rec.object_version_number := 1; --get the user account id
SELECT hca.party_id,
hca.cust_account_id
INTO l_cur_party_id,
l_cust_account_id
FROM hz_cust_accounts hca
WHERE hca.cust_account_id = l_sold_to_org_id; insert into comms_log values ('cur_party_id ' || l_cur_party_id); FOR row_user IN cur_user(l_cur_party_id) LOOP
--get user's account id
BEGIN
SELECT hca.cust_account_id
INTO l_cust_account_id
FROM hz_cust_accounts hca
WHERE hca.party_id = row_user.party_id
AND ROWNUM=1;
EXCEPTION
WHEN OTHERS THEN
l_cust_account_id := NULL;
END; insert into comms_log values ('user_party_id ' || row_user.party_id );
insert into comms_log values ('user_party_cunt_id ' || l_cust_account_id); SELECT csi_i_parties_s.nextval
INTO l_instance_party_id
FROM dual;
l_party_tbl(1).instance_party_id := l_instance_party_id;
l_party_tbl(1).instance_id := l_instance_id;
l_party_tbl(1).party_source_table := 'HZ_PARTIES';
l_party_tbl(1).party_id := row_user.party_id;
l_party_tbl(1).relationship_type_code := 'DOCUMENT_USER';
l_party_tbl(1).contact_flag := 'N';
l_party_tbl(1).active_start_date := SYSDATE;
l_party_tbl(1).object_version_number := 1; SELECT csi_ip_accounts_s.nextval
INTO l_ip_account_id
FROM dual;
l_account_tbl(1).ip_account_id := l_ip_account_id;
l_account_tbl(1).instance_party_id := l_instance_party_id;
l_account_tbl(1).party_account_id := l_cust_account_id;
l_account_tbl(1).relationship_type_code := 'DOCUMENT_USER';
l_account_tbl(1).active_start_date := sysdate;
l_account_tbl(1).BILL_TO_ADDRESS := 1170;
l_account_tbl(1).SHIP_TO_ADDRESS := 1170;
l_account_tbl(1).object_version_number := 1;
l_account_tbl(1).parent_tbl_index := 1;
l_account_tbl(1).call_contracts := 'Y'; l_txn_rec.transaction_date := TRUNC(SYSDATE);
l_txn_rec.SOURCE_TRANSACTION_DATE := TRUNC(SYSDATE);
l_txn_rec.TRANSACTION_TYPE_ID := 1;
l_txn_rec.OBJECT_VERSION_NUMBER := 1; csi_item_instance_pub.create_item_instance(
p_api_version => 1.0 --IN NUMBER
,p_instance_rec => l_instance_rec -- IN OUT NOCOPY csi_datastructures_pub.instance_rec
,p_ext_attrib_values_tbl => l_ext_attrib_values_tbl -- IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
,p_party_tbl => l_party_tbl --IN OUT NOCOPY csi_datastructures_pub.party_tbl
,p_account_tbl => l_account_tbl --IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
,p_pricing_attrib_tbl => l_pricing_attrib_tbl --IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
,p_org_assignments_tbl => l_org_assignments_tbl --IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
,p_asset_assignment_tbl => l_asset_assignment_tbl --IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
,p_txn_rec => l_txn_rec --IN OUT NOCOPY csi_datastructures_pub.transaction_rec
,x_return_status => x_return_status --OUT NOCOPY VARCHAR2
,x_msg_count => x_msg_count --OUT NOCOPY NUMBER
,x_msg_data => x_msg_data); --OUT NOCOPY VARCH insert into comms_log values('create install base '); END LOOP;
COMMIT;
END; PROCEDURE create_install_base_rel(p_line_id IN NUMBER,
x_return_status OUT VARCHAR2,
x_msg_count OUT VARCHAR2,
x_msg_data OUT VARCHAR2)
AS
l_instance_id NUMBER;
p_party_tbl csi_datastructures_pub.party_tbl; p_txn_rec csi_datastructures_pub.transaction_rec;
l_i_parties_id NUMBER;
l_owner_party_id NUMBER; cursor cur_user(p_party_id IN NUMBER) is
select hr.object_id party_id
FROM hz_relationships hr
where hr.subject_id = p_party_id
AND hr.relationship_code = 'DOCUMENT_USER'
AND hr.relationship_type = 'USERS'; BEGIN SELECT cii.instance_id, cii.owner_party_id
INTO l_instance_id, l_owner_party_id
FROM csi_item_instances cii
WHERE cii.last_oe_order_line_id = p_line_id; FOR row_user IN cur_user(l_owner_party_id)
LOOP SELECT csi_i_parties_s.nextval
INTO l_i_parties_id
FROM DUAL; /*p_relationship_tbl(1).RELATIONSHIP_ID := l_ii_rel_id;
p_relationship_tbl(1).RELATIONSHIP_TYPE_CODE := 'USED BY';
p_relationship_tbl(1).OBJECT_ID := row_user.party_id;
p_relationship_tbl(1).SUBJECT_ID := l_instance_id;
p_relationship_tbl(1).SUBJECT_HAS_CHILD := 'N';
p_relationship_tbl(1).POSITION_REFERENCE := NULL;
p_relationship_tbl(1).ACTIVE_START_DATE := SYSDATE;
p_relationship_tbl(1).ACTIVE_END_DATE := SYSDATE;
p_relationship_tbl(1).DISPLAY_ORDER := NULL;
p_relationship_tbl(1).MANDATORY_FLAG := 'N';
p_relationship_tbl(1).OBJECT_VERSION_NUMBER := 1; p_txn_rec.TRANSACTION_DATE := TRUNC(SYSDATE);
p_txn_rec.SOURCE_TRANSACTION_DATE := TRUNC(SYSDATE);
p_txn_rec.TRANSACTION_TYPE_ID :=1;
p_txn_rec.OBJECT_VERSION_NUMBER :=1;
*/ insert into csi_i_parties (
instance_party_id,
instance_id,
party_source_table,
party_id,
relationship_type_code,
contact_flag,
active_start_date,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login,
object_version_number)
values( l_i_parties_id,
l_instance_id,
'HZ_PARTIES',
row_user.party_id,
'USED BY',
'N',
sysdate,
'-1',
sysdate,
'-1',
sysdate,
'-1',
1
); /* csi_party_relationships_pub.create_inst_party_relationship
( p_api_version => 1.0 ,-- IN NUMBER
p_commit => 'Y' ,-- IN VARCHAR2
p_init_msg_list => 'N' ,-- IN VARCHAR2
p_validation_level => 0, -- IN NUMBER
p_party_tbl => p_party_tbl ,-- IN OUT NOCOPY csi_datastructures_pub.party_tbl
p_party_account_tbl=> p_party_account_tbl ,-- IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
p_txn_rec => p_txn_rec ,-- IN OUT NOCOPY csi_datastructures_pub.transaction_rec
x_return_status => x_return_status ,-- OUT NOCOPY VARCHAR2
x_msg_count => x_msg_count ,-- OUT NOCOPY NUMBER
x_msg_data => x_msg_data -- OUT NOCOPY VARCHAR2
) ;*/
END LOOP;
COMMIT;
END; --expire earily install base records
PROCEDURE expire_install_base(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2)
AS
l_instance_rec csi_datastructures_pub.instance_rec;
l_txn_rec csi_datastructures_pub.transaction_rec;
l_instance_id_lst csi_datastructures_pub.id_tbl; l_cust_account_id NUMBER;
l_party_id NUMBER;
l_line_type_id NUMBER; --all install base records of earliy subscripiton
CURSOR cur_instance(p_party_id IN NUMBER, p_party_account_id IN NUMBER) IS
SELECT cii.instance_id,
cii.instance_number,
cii.inventory_item_id,
cii.inv_master_organization_id,
cii.active_start_date,
cii.active_end_date
FROM csi_item_instances cii
WHERE cii.owner_party_id = p_party_id
AND cii.owner_party_account_id = p_party_account_id
AND cii.last_oe_order_line_id <> g_line_id; no_need_expire EXCEPTION; BEGIN SELECT oola.line_type_id,
hca.cust_account_id,
hca.party_id
INTO l_line_type_id,
l_cust_account_id,
l_party_id
FROM oe_order_lines_all oola,
oe_order_headers_all ooha,
hz_cust_accounts hca
WHERE oola.line_id = g_line_id
AND oola.header_id = ooha.header_id
AND hca.cust_account_id = ooha.sold_to_org_id
AND ROWNUM = 1; --for Changeplan, expire existing item install base
IF l_line_type_id <> 1034 THEN
RAISE no_need_expire;
END IF; FOR row_instance IN cur_instance(l_party_id, l_cust_account_id)
LOOP
l_instance_rec.instance_id := row_instance.instance_id;
l_instance_rec.instance_number := row_instance.instance_number;
l_instance_rec.external_reference := NULL;
l_instance_rec.inventory_item_id := row_instance.inventory_item_id;
l_instance_rec.inv_master_organization_id := row_instance.inv_master_organization_id;
l_instance_rec.active_end_date := TRUNC(SYSDATE); l_txn_rec.transaction_date := TRUNC(SYSDATE);
l_txn_rec.SOURCE_TRANSACTION_DATE := TRUNC(SYSDATE);
l_txn_rec.TRANSACTION_TYPE_ID := 1;
l_txn_rec.OBJECT_VERSION_NUMBER := 1; csi_item_instance_pub.expire_item_instance(
p_api_version => 1.0 -- IN NUMBER
,p_instance_rec => l_instance_rec -- IN csi_datastructures_pub.instance_rec
,p_txn_rec => l_txn_rec -- IN OUT NOCOPY csi_datastructures_pub.transaction_rec
,x_instance_id_lst => l_instance_id_lst-- OUT NOCOPY csi_datastructures_pub.id_tbl
,x_return_status => x_return_status-- OUT NOCOPY VARCHAR2
,x_msg_count => x_msg_count-- OUT NOCOPY NUMBER
,x_msg_data => x_msg_data-- OUT NOCOPY VARCHAR2
);
END LOOP; COMMIT;
EXCEPTION
WHEN no_need_expire THEN
NULL;
WHEN OTHERS THEN
NULL;
END; PROCEDURE deal_install_base(x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2)
AS
l_cust_account_id NUMBER;
l_party_id NUMBER;
l_line_type_id NUMBER;
no_need_expire EXCEPTION;
l_inventory_item_id NUMBER;
l_product_type VARCHAR2(20);
l_item_number mtl_system_items_b.segment1%TYPE;
l_count NUMBER;
l_telephone_num VARCHAR2(20);
l_sim_num VARCHAR2(20); l_return_status VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000); --product subscribled earlier
CURSOR cur_prod IS
SELECT cii.instance_id,
cii.last_oe_order_line_id line_id
FROM csi_item_instances cii
WHERE cii.last_oe_order_line_id <> g_line_id
AND NVL(cii.attribute10,'E') = l_product_type
AND cii.owner_party_id = l_party_id
AND cii.owner_party_account_id = l_cust_account_id; BEGIN SELECT oola.line_type_id,
hca.cust_account_id,
hca.party_id,
oola.inventory_item_id
INTO l_line_type_id,
l_cust_account_id,
l_party_id,
l_inventory_item_id
FROM oe_order_lines_all oola,
oe_order_headers_all ooha,
hz_cust_accounts hca
WHERE oola.line_id = g_line_id
AND oola.header_id = ooha.header_id
AND hca.cust_account_id = ooha.sold_to_org_id
AND ROWNUM = 1; SELECT msib.segment1
INTO l_item_number
FROM mtl_system_items_b msib
WHERE msib.organization_id = 86
AND msib.inventory_item_id = l_inventory_item_id
AND ROWNUM = 1; IF l_item_number IN ('MOBILEPROD','MOBILECHANGEPLAN') THEN
l_product_type := 'M';
ELSIF l_item_number='BRODBAND' THEN
l_product_type := 'B';
ELSIF l_item_number='DIGITAL_LEASED_LINE_NATL' THEN
l_product_type := 'D';
END IF; --get service number
--Get customer serial number and SIM attribute in quator
BEGIN
SELECT cn.service_num, cn.sim_num
INTO l_telephone_num, l_sim_num
FROM comms_numbers cn,
aso_quote_headers_all aqh,
aso_quote_lines_all aql,
oe_order_lines_all oola
WHERE oola.line_id = g_line_id
AND oola.header_id = aqh.order_id
AND aql.quote_header_id = aqh.quote_header_id
AND cn.quote_line_id = aql.quote_line_id
AND cn.app_id = 521
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
l_sim_num := NULL;
l_telephone_num := NULL;
END;
IF l_sim_num IS NULL THEN
BEGIN
SELECT cn.service_num, cn.sim_num
INTO l_telephone_num, l_sim_num
FROM comms_numbers cn
WHERE cn.quote_line_id = g_line_id
AND cn.app_id = 660
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
l_sim_num := NULL;
l_telephone_num := NULL;
END;
END IF; --for change plan, get service number from old subscription
IF l_line_type_id=1034 AND l_sim_num IS NULL THEN
SELECT MAX(cii.serial_number), MAX(cii.attribute11)
INTO l_telephone_num, l_sim_num
FROM csi_item_instances cii
WHERE cii.owner_party_id = l_party_id
AND cii.instance_status_id = 10000;
END IF; --1033, Staprodline2
--1034, ChangePlan2,
--1036, Suspension
--for Changeplan, expire existing item install base
--attribute10, 'M' Mobile, 'C' Cable, 'D' Degital, 'E' Expire
IF l_line_type_id IN (1034, 1036) THEN FOR row_prod IN cur_prod
LOOP
--update product subscribled earliy
UPDATE csi_item_instances cii
SET cii.active_end_date = TRUNC(sysdate),
cii.instance_status_id = 1,
cii.attribute10 = 'E'
WHERE cii.instance_id = row_prod.instance_id; --update product lines at the same order
UPDATE csi_item_instances cii
SET cii.active_end_date = TRUNC(sysdate),
cii.instance_status_id = 1,
cii.attribute10 = 'E'
WHERE cii.last_oe_order_line_id IN (
SELECT oola.line_id
FROM oe_order_lines_all oola
WHERE oola.top_model_line_id = row_prod.line_id
);
END LOOP; END IF; --make product type for new install base
<<wait_for_install_base>>
SELECT COUNT(*)
INTO l_count
FROM csi_item_instances cii
WHERE cii.last_oe_order_line_id = g_line_id;
IF l_count=0 THEN
GOTO wait_for_install_base;
END IF; UPDATE csi_item_instances cii
SET cii.attribute10 = l_product_type,
cii.serial_number = l_telephone_num,
cii.attribute11 = l_sim_num
WHERE cii.last_oe_order_line_id = g_line_id; --update comms_number for the lastest order line_id
IF l_line_type_id=1034 THEN
UPDATE comms_numbers cn
SET cn.quote_line_id = g_line_id,
cn.app_id = 660
WHERE cn.service_num = l_telephone_num;
END IF; --for suspension order, update status
IF l_line_type_id=1036 THEN
--update product lines at the same order
<<wait_for_all_install_base>>
SELECT COUNT(*)
INTO l_count
FROM oe_order_lines_all oola,
oe_order_lines_all oola2
WHERE oola.header_id = oola2.header_id
AND oola2.line_id = g_line_id;
IF l_count<2 THEN
GOTO wait_for_all_install_base;
END IF; UPDATE csi_item_instances cii
SET cii.instance_status_id = 10021
WHERE cii.last_oe_order_line_id IN (
SELECT oola.line_id
FROM oe_order_lines_all oola,
oe_order_lines_all oola2
WHERE oola.header_id = oola2.header_id
AND oola2.line_id = g_line_id
);
END IF; --for starprod, create a child intall base for user
IF l_line_type_id=1033 THEN
create_install_base_rel(g_line_id,
l_return_status,
l_msg_count,
l_msg_data) ;
END IF; COMMIT; EXCEPTION
WHEN no_need_expire THEN
NULL;
WHEN OTHERS THEN
NULL;
END; END comms_om_new;

Oracle EBS OM 主要API示例的更多相关文章

  1. Oracle EBS OM 发放订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  2. Oracle EBS OM 取消订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  3. Oracle EBS OM 保留订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  4. Oracle EBS OM 删除订单行

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  5. Oracle EBS OM 登记订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  6. Oracle EBS OM 取消订单行

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  7. Oracle EBS OM 已存在的OM订单增加物料

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  8. Oracle EBS OM 创建订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  9. Oracle EBS AR 其他API

    DECLARE L_CR_ID NUMBER; L_ATTRIBUTE_REC AR_RECEIPT_API_PUB.ATTRIBUTE_REC_TYPE; L_GLOBAL_ATT_REC AR_R ...

随机推荐

  1. P2P技术详解(一):NAT详解——详细原理、P2P简介

    1. IPv4协议和NAT的由来 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需.企业利用互联网发 ...

  2. Delphi下DLL编程知识(转)

    一.  DLL和系统变量     在 System 单元声明的变量中,有几个对DLL编程有特殊影响.IsLibrary 可以检测代码是执行在应用程序中还是执行在DLL中,在应用程序中 IsLibrar ...

  3. Chinese-Text-Classification:Tensorflow CNN 模型实现的中文文本分类器[不分词版]

    从现在的结果来看,分词的版本准确率稍微高一点. 训练过程: 模型评估: 实验三,准备换一下数据集,用这里的数据集来跑这个模型:https://zhuanlan.zhihu.com/p/30736422 ...

  4. spring基本原理

    作者:王奕然链接:https://www.zhihu.com/question/21346206/answer/101789659来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  5. vue之生命周期

    vue的生命周期的过程提供了我们执行自定义逻辑的机会,好好理解它的生命周期,对我们很有帮助. 1.vue实例的生命周期(vue2.0) 2.生命周期描述:(参考截图) 3.例子 window.vm = ...

  6. Vim8.0在Debian下,normal模式的O命令出现延时

    Update 2018/4/26 问题是什么 在Debian的Vim8.0中,normal模式下,使用O创建新行,常常出现延迟情况:按下O后,可以看见O首先在当前光标位置出现,过了大约0.5-1秒,接 ...

  7. 【事务】<查询不到同一调用方法其它事务提交的更新>解决方案

    最近遇到一个很棘手的问题,至今也解释不清楚原因,不过已经找到了解决方案. 先来看看Propagation属性的值含义,@Transactional中Propagation属性有7个选项可供选择: Pr ...

  8. Dynamics CRM2016 Web Api之更新时间字段值

    前篇我们论述了时间字段的查询,本篇来论述下时间字段的更新. 还是以之前建的当地时间(时间行为为用户当地时间)字段来测试 可以看到web api更新的是数据库的时间,而在前台的反映就是做了加8处理,所以 ...

  9. Dynamics CRM 部署NLB后使用群集名称访问弹验证框验证不过的解决方法

    自上次部署NLB到现在已有段时间了,今天部署完后遇到了个问题,上次也遇到过但忘记了,本篇作为对该问题的一个记录,部署文档:https://blogs.msdn.microsoft.com/niran_ ...

  10. 【SSH系列】spring中为什么要使用IOC

    开篇前言 在前面的博文中,小编主要简单的介绍了spring的入门知识,随着学习的深入,我们知道spring最核心的两大技术,IOC和AOP,这两个技术也是spring最耀眼的地方,在后续的博文中小编将 ...