DECLARE
x_return_status VARCHAR2(2);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
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);
exep_api EXCEPTION;
l_picked_flag VARCHAR2(10);
l_return_status VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
l_user_id NUMBER;
l_resp_id NUMBER;
l_appl_id NUMBER;
CURSOR c_ord_details IS
SELECT oha.order_number sales_order
,oha.org_id
,ola.line_number
,ola.shipment_number
,ola.flow_status_code
,wdd.delivery_detail_id
,wdd.inv_interfaced_flag
,wdd.oe_interfaced_flag
,wdd.released_status
FROM apps.oe_order_headers_all oha
,apps.oe_order_lines_all ola
,apps.wsh_delivery_details wdd
WHERE oha.header_id = ola.header_id
AND oha.org_id = ola.org_id
AND oha.header_id = wdd.source_header_id
AND ola.line_id = wdd.source_line_id
AND oha.booked_flag = 'Y'
AND nvl(ola.cancelled_flag, 'N') <> 'Y'
AND wdd.released_status IN ('R', 'B')
AND ola.flow_status_code = 'AWAITING_SHIPPING'
AND oha.order_number = 1506764261
AND oha.org_id = 121;
--
v_user_id NUMBER;
v_resp_id NUMBER;
v_resp_appl_id NUMBER;
--
BEGIN
--
/* To get the user id details */
SELECT user_id INTO v_user_id FROM fnd_user WHERE user_name = 'SETUP01';
/* To get the responsibility and responsibility application id */
SELECT f.responsibility_id, f.application_id
INTO v_resp_id, v_resp_appl_id
FROM fnd_responsibility_tl f
WHERE f.responsibility_name = '受注管理スーパーユーザー(SC)'
AND f.language = 'JA';
dbms_output.put_line(v_user_id || ' ' || v_resp_id || ' ' ||
v_resp_appl_id);
--
dbms_output.put_line('Starting of script');
-- Setting the Enviroment --
fnd_global.apps_initialize(user_id => v_user_id,
resp_id => v_resp_id,
resp_appl_id => v_resp_appl_id);
--
x_return_status := wsh_util_core.g_ret_sts_success;
i := 0;
FOR i IN c_ord_details
LOOP
-- Mandatory initialization for R12
mo_global.set_policy_context('S', i.org_id);
mo_global.init('ONT');
p_line_rows(1) := i.delivery_detail_id;
-- API Call for Auto Create Deliveries
dbms_output.put_line('Calling WSH_DELIVERY_DETAILS_PUB to Perform AutoCreate Delivery');
dbms_output.put_line('====================================================');
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);
dbms_output.put_line(x_return_status);
dbms_output.put_line(x_msg_count);
dbms_output.put_line(x_msg_data);
IF (x_return_status <> wsh_util_core.g_ret_sts_success) THEN
dbms_output.put_line('Failed to Auto create delivery for Sales Order');
RAISE exep_api;
ELSE
dbms_output.put_line('Auto Create Delivery Action has successfully completed for SO');
dbms_output.put_line('=============================================');
END IF;
-- Pick release.
p_delivery_id := x_del_rows(1);
p_delivery_name := to_char(x_del_rows(1));
dbms_output.put_line('Calling WSH_DELIVERIS_PUB to Perform Pick Release of SO');
dbms_output.put_line('=============================================');
-- API Call for Pick Release
wsh_deliveries_pub.delivery_action(p_api_version_number => 1.0,
p_init_msg_list => NULL,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_action_code => 'PICK-RELEASE',
p_delivery_id => p_delivery_id,
p_delivery_name => p_delivery_name,
p_asg_trip_id => NULL,
p_asg_trip_name => NULL,
p_asg_pickup_stop_id => NULL,
p_asg_pickup_loc_id => NULL,
p_asg_pickup_stop_seq => NULL,
p_asg_pickup_loc_code => NULL,
p_asg_pickup_arr_date => NULL,
p_asg_pickup_dep_date => NULL,
p_asg_dropoff_stop_id => NULL,
p_asg_dropoff_loc_id => NULL,
p_asg_dropoff_stop_seq => NULL,
p_asg_dropoff_loc_code => NULL,
p_asg_dropoff_arr_date => NULL,
p_asg_dropoff_dep_date => NULL,
p_sc_action_flag => 'S',
p_sc_intransit_flag => 'N',
p_sc_close_trip_flag => 'N',
p_sc_create_bol_flag => 'N',
p_sc_stage_del_flag => 'Y',
p_sc_trip_ship_method => NULL,
p_sc_actual_dep_date => NULL,
p_sc_report_set_id => NULL,
p_sc_report_set_name => NULL,
p_sc_defer_interface_flag => 'Y',
p_sc_send_945_flag => NULL,
p_sc_rule_id => NULL,
p_sc_rule_name => NULL,
p_wv_override_flag => 'N',
x_trip_id => x_trip_id,
x_trip_name => x_trip_name);
dbms_output.put_line(x_return_status);
dbms_output.put_line(x_msg_count);
dbms_output.put_line(x_msg_data);
IF (x_return_status <> wsh_util_core.g_ret_sts_success) THEN
dbms_output.put_line('Failed to Pick Release the sales order');
RAISE exep_api;
ELSE
dbms_output.put_line('Sales Order has successfully Pick Released');
dbms_output.put_line('==============================');
END IF;
--for pick confirm
--COMMIT;
END LOOP;
EXCEPTION
WHEN exep_api THEN
dbms_output.put_line('==============');
dbms_output.put_line('Error Details If Any');
dbms_output.put_line('==============');
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;
dbms_output.put_line(x_msg_data);
ELSE
x_msg_data := x_msg_summary || '---' || x_msg_details;
dbms_output.put_line(x_msg_data);
END IF;
END;
使用API進行銷售訂單的Pick Release和Pick Confirm
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.