Backorder from “Ship Confirm”Action API
Example供大家參考
適用於有Assign Delivery Number的資料
/* Formatted on 2010/01/12 14:07 (Formatter Plus v4.8.8) */
DECLARE
----------------------------------------------------------------------------------------
-- procedure SHIP_CONFIRM_EXAMPLE(
----------------------------------------------------------------------------------------
x_return_status VARCHAR2 (200);
x_msg_count NUMBER;
x_msg_data VARCHAR2 (2000);
----------------------------------------------------------------------------------------
-- 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);
----------------------------------------------------------------------------------------
--Parameters for WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes.
----------------------------------------------------------------------------------------
source_code VARCHAR2 (15);
----------------------------------------------------------------------------------------
/*Handle exceptions*/
----------------------------------------------------------------------------------------
fail_api EXCEPTION;
----------------------------------------------------------------------------------------
/*User information*/
----------------------------------------------------------------------------------------
p_user_id fnd_user.user_id%TYPE;
p_resp_id NUMBER;
CURSOR cur
IS
SELECT DISTINCT wnd.delivery_id, wnd.NAME
FROM wsh_new_deliveries wnd,
wsh_delivery_assignments wda,
wsh_delivery_details wdd
WHERE wda.delivery_id = wnd.delivery_id
AND wdd.delivery_detail_id = wda.delivery_detail_id
AND wdd.source_code = 'OE'
AND subinventory = 'STAGE'
AND wdd.released_status = 'Y'
AND wdd.organization_id = 93
ORDER BY wnd.delivery_id;
BEGIN
SELECT user_id
INTO p_user_id
FROM fnd_user
WHERE user_name = 'TINALEE';
SELECT responsibility_id
INTO p_resp_id
FROM fnd_responsibility_tl
WHERE LANGUAGE = 'US' AND responsibility_name = 'HKG ORDER MANAGEMENT SU';
/* Initialize return status*/
x_return_status := wsh_util_core.g_ret_sts_success;
DBMS_OUTPUT.put_line ('submit');
/* Call this procedure to initialize applications parameters. To determine
parameter values, refer to the Application Paramater Initialization section of
this chapter. */
fnd_global.apps_initialize (user_id => p_user_id,
resp_id => p_resp_id,
resp_appl_id => 660
);
/* Values for updating delivery details to ship the partial qty.*/
source_code := 'OE'; -- The only source code that should be used by the API
/* Values for Ship Confirming the delivery.*/
p_action_code := 'CONFIRM'; -- The action code for ship confirm
FOR rec IN cur
LOOP
p_sc_action_flag := 'C'; -- Backorder='
p_sc_close_trip_flag := 'Y';
p_delivery_id := rec.delivery_id;
-- The delivery that needs to be confirmed
p_delivery_name := rec.NAME; -- The delivery name,
DBMS_OUTPUT.put_line (' Delivery Number=' || p_delivery_name);
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
DBMS_OUTPUT.put_line (' ** Fail **');
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;
DBMS_OUTPUT.put_line (' - ' || x_msg_data);
END IF;
END IF;
DBMS_OUTPUT.put_line (' Successful');
COMMIT;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;