PROCEDURE xxxx_iso_shipping_bkrd (errbuf OUT VARCHAR2, retcode OUT VARCHAR2)
IS
x_return_status VARCHAR2 (3000);
x_msg_count NUMBER;
x_msg_data VARCHAR2 (3000);
l_msg_count NUMBER;
l_msg_data VARCHAR2 (2000);
l_msg_index NUMBER;
--Standard Parameters.
p_api_version_number NUMBER;
init_msg_list VARCHAR2 (30);
x_msg_details VARCHAR2 (3000);
x_msg_summary VARCHAR2 (3000);
p_validation_level NUMBER;
p_commit VARCHAR2 (30);
--Parameters for WSH_DELIVERIES_PUB.Delivery_Action.
p_action_code VARCHAR2 (15);
p_delivery_id NUMBER;
p_delivery_name VARCHAR2 (30);
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_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;
CURSOR lc_get_iso_ship_data
IS
SELECT ooh.header_id, ooh.order_number, wnd.delivery_id,
wnd.NAME delivery_name,
SUBSTR (wdd.source_header_type_name, 1, 3) whse
FROM oe_order_headers_all ooh,
wsh_delivery_details wdd,
wsh_new_deliveries wnd,
wsh_delivery_assignments wda
WHERE 1 = 1
AND ooh.header_id = wdd.source_header_id
AND wdd.delivery_detail_id = wda.delivery_detail_id
AND wda.delivery_id = wnd.delivery_id
AND wdd.released_status = 'Y'
--AND ooh.order_source_id = 10
--And wda.delivery_id = '776213' --- if required pass delivery id as parameter in concurrent program
AND TRUNC (SYSDATE) - TO_DATE (ooh.booked_date) = 1;
ln_user_id NUMBER;
ln_resp_id NUMBER;
ln_resp_app_id NUMBER;
ln_reason_id NUMBER;
BEGIN
ln_user_id := apps.fnd_profile.VALUE ('USER_ID');
IF ln_user_id IS NULL
THEN
ln_user_id := -1;
END IF;
ln_resp_id := apps.fnd_profile.VALUE ('RESP_ID');
ln_resp_app_id := apps.fnd_profile.VALUE ('RESP_APPL_ID');
BEGIN
fnd_global.apps_initialize (ln_user_id, ln_resp_id, ln_resp_app_id);
END;
FOR lc_iso_ship_dt IN lc_get_iso_ship_data
LOOP
EXIT WHEN lc_get_iso_ship_data%NOTFOUND;
p_action_code := 'CONFIRM'; -- The action code for ship confirm
p_delivery_id := lc_iso_ship_dt.delivery_id;
--620600; -- The delivery that needs to be confirmed
p_delivery_name := lc_iso_ship_dt.delivery_name;
--'620600'; -- The delivery name,
p_sc_action_flag := 'C'; -- Ship entered quantity.
p_sc_stage_del_flag := 'N'; --
--p_sc_trip_ship_method := Null; -- The ship method code
/*Call to WSH_DELIVERIES_PUB.Delivery_Action. */
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_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
fnd_file.put_line (fnd_file.LOG,
'Successfully BackOrdered for Order Number - '
|| lc_iso_ship_dt.order_number
);
COMMIT;
ELSE
fnd_file.put_line
(fnd_file.LOG,
'Could not able to Back Order Line Due to Following Reasons -'
|| x_return_status
|| ' for header id - '
|| lc_iso_ship_dt.header_id
);
ROLLBACK;
/* FOR j IN 1 .. l_msg_count
LOOP
fnd_msg_pub.get (p_msg_index => j,
p_encoded => fnd_api.g_false,
p_data => l_msg_data,
p_msg_index_out => l_msg_index);
fnd_file.put_line(fnd_file.log,'Error Message is=> '|| l_msg_data);
END LOOP;*/
END IF;
END LOOP;
COMMIT;
END;
Hi Srini, When i am trying this procedure, i get the below error. Please advce. Successfully Back-Ordered for Order Number - E
ReplyDeleteSuccessfully Back-Ordered for Order Number - 11120
Could not able to Back Order Line Due to Following ReasonsE for header id - 93672 ORA-0000: normal, successful completion
Hi
DeleteAre you using 11i or r12?
How can this API Backorder when the Action is to Ship Confirm??
ReplyDeletePartial Shipments will cause the API to Back Order what hasn't been shipped. Shipping Zero Quantity will Back Order all of it.
ReplyDelete