ship_confirm api of Oracle Example

Example 1:
This procedure can be used as an example on how to ship confirm a delivery
consisting of delivery details that have already been pick released and assigned
to a delivery.
Call WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes API to update the
corresponding delivery details to ship all quantities in the first delivery
detail; to back order all in the second; to stage all in the third delivery
detail.
Call WSH_FREIGHT_COSTS_PUB.Create_Update_Freight_Costs API to create freight
costs for the delivery that the details have been assigned to.
Call WSH_CONTAINER_PUB.Auto_Pack to pack the delivery lines into a container.
Call WSH_DELIVERIES_PUB.Delivery_Action API to ship confirm the delivery.[@more@]

/* Formatted on 2007/05/14 11:57 (Formatter Plus v4.8.7) */
CREATE OR REPLACE PACKAGE BODY wsh_ship_api
AS
/*
Example 1:
This procedure can be used as an example on how to ship confirm a delivery
consisting of delivery details that have already been pick released and assigned
to a delivery.
Call WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes API to update the
corresponding delivery details to ship all quantities in the first delivery
detail; to back order all in the second; to stage all in the third delivery
detail.
Call WSH_FREIGHT_COSTS_PUB.Create_Update_Freight_Costs API to create freight
costs for the delivery that the details have been assigned to.
Call WSH_CONTAINER_PUB.Auto_Pack to pack the delivery lines into a container.
Call WSH_DELIVERIES_PUB.Delivery_Action API to ship confirm the delivery.
*/
PROCEDURE ship_confirm_example1 (
x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2
)
IS
/*
--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_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes.
source_code VARCHAR2(15);
changed_attributes WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType;
--Parameters for WSH_CONTAINER_PUB.Auto_Pack.
p_entity_tab WSH_UTIL_CORE.id_tab_type;
p_entity_type VARCHAR2(30);
p_group_id_tab WSH_UTIL_CORE.id_tab_type;
p_pack_cont_flag varchar2(30);
x_cont_inst_tab WSH_UTIL_CORE.id_tab_type;
--Parameters for WSH_FREIGHT_COSTS_PUB.Create_Update_Freight_Costs.
action_code VARCHAR2(15);
pub_freight_costs WSH_FREIGHT_COSTS_PUB.PubFreightCostRecType;
freight_cost_id NUMBER;
--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;
BEGIN
/* Initialize return status*/
x_return_status := wsh_util_core.g_ret_sts_success;
/* 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 => 1001594,
resp_id => 52892,
resp_appl_id => 660
);
/* Values for updating delivery details to ship all quantities in the first
line, stage everything in the second line, and back order all in the third. It
is assumed that the user knows the quantities in each line.
*/
source_code := 'OE';
-- The only source code that should be used by the API
changed_attributes (1).delivery_detail_id := 13431;
-- Ship All quantities in this detail.
changed_attributes (1).shipped_quantity := 1;
changed_attributes (2).source_line_id := 13432;
-- Back Order All in this
-- detail.
changed_attributes (2).shipped_quantity := 0;
changed_attributes (2).cycle_count_quantity := 2;
changed_attributes (3).source_line_id := 13433;
-- Stage All in this detail.
changed_attributes (3).shipped_quantity := 0;
changed_attributes (3).cycle_count_quantity := 0;
--Call to WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes.
wsh_delivery_details_pub.update_shipping_attributes
(p_api_version_number => 1.0,
p_init_msg_list => init_msg_list,
p_commit => p_commit,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_changed_attributes => changed_attributes,
p_source_code => source_code
);

IF (x_return_status <> wsh_util_core.g_ret_sts_success)
THEN
RAISE fail_api;
END IF;

/* Values for creating freight costs for the delivery created for the above
delivery details. The delivery can be queried for the respective delivery detail
through wsh_delivery_assignments.
*/
pub_freight_costs.freight_cost_type_id := 1;
pub_freight_costs.unit_amount := 20;
pub_freight_costs.currency_code := 'USD';
pub_freight_costs.delivery_id := 5341;
--Call to WSH_FREIGHT_COSTS_PUB.Create_Update_Freight_Costs.
wsh_freight_costs_pub.create_update_freight_costs
(p_api_version_number => 1.0,
p_init_msg_list => init_msg_list,
p_commit => p_commit,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pub_freight_costs => pub_freight_costs,
p_action_code => 'CREATE',
x_freight_cost_id => freight_cost_id
);

IF (x_return_status <> wsh_util_core.g_ret_sts_success)
THEN
RAISE fail_api;
END IF;

/* Values for autopacking the delivery details to a container.
*/
p_entity_tab (1) := 13431;
p_entity_tab (2) := 13432;
p_entity_tab (3) := 13434;
--Call to WSH_CONTAINER_PUB.Auto_Pack
wsh_container_pub.auto_pack (p_api_version => 1.0,
p_init_msg_list => init_msg_list,
p_commit => p_commit,
p_validation_level => p_validation_level,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_entity_tab => p_entity_tab,
p_entity_type => 'L',
p_group_id_tab => p_group_id_tab,
p_pack_cont_flag => p_pack_cont_flag,
x_cont_inst_tab => x_cont_inst_tab
);

IF (x_return_status <> wsh_util_core.g_ret_sts_success)
THEN
RAISE fail_api;
END IF;

/* Values for Ship Confirming the delivery.
*/
p_action_code := 'CONFIRM'; -- The action code for ship confirm
p_delivery_id := 5341; -- The delivery that needs to be confirmed
p_delivery_name := '5341'; -- The delivery name,
p_sc_action_flag := 'S'; -- Ship entered quantity.
p_sc_close_trip_flag := 'Y'; -- Close the trip after ship confirm
p_sc_trip_ship_method := 'GROUND'; -- 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
RAISE fail_api;
END IF;
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;
END IF;
END ship_confirm_example1;

/** Example 2:
This procedure can be used as an example on how to ship confirm delivery details
that have originally not been assigned to a delivery.
Call WSH_DELIVERIES_PUB.CREATE_UPDATE_DELIVERY to create a new delivery.
Call WSH_DELIVERY_DETAILS_PUB.Detail_to_Delivery to assign the delivery details
to the new delivery.
Call WSH_DELIVERIES_PUB.Delivery_Action to ship confim.
**/
PROCEDURE ship_confirm_example2 (
x_return_status OUT VARCHAR2,
x_msg_count OUT NUMBER,
x_msg_data OUT VARCHAR2
)
IS
-- 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;
COMMIT VARCHAR2 (30);
-- Parameters for WSH_DELIVERIES_PUB.CREATE_UPDATE_DELIVERY
action_code VARCHAR2 (15);
delivery_id NUMBER;
delivery_info wsh_deliveries_pub.delivery_pub_rec_type;
NAME VARCHAR2 (30);
-- Parameters for WSH_DELIVERY_DETAILS_PUB.Detail_to_Delivery
p_delivery_id NUMBER;
delivery_name VARCHAR2 (30);
p_tabofdeldets wsh_delivery_details_pub.id_tab_type;
p_action 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;
BEGIN
-- Initialize return status
x_return_status := wsh_util_core.g_ret_sts_success;
-- Values for WSH_DELIVERIES_PUB.CREATE_UPDATE_DELIVERY
-- Create a new delivery for the following
delivery_info.initial_pickup_location_id := 204;
delivery_info.ultimate_dropoff_location_id := 840;
delivery_info.gross_weight := 10;
delivery_info.ship_method_code := 'UPS';
p_action_code := 'CREATE';
-- Call to WSH_DELIVERIES_PUB.CREATE_UPDATE_DELIVERY
wsh_deliveries_pub.create_update_delivery
(p_api_version_number => 1.0,
p_init_msg_list => init_msg_list,
x_return_status => return_status,
x_msg_count => msg_count,
x_msg_data => msg_data,
p_action_code => p_action_code,
p_delivery_info => delivery_info,
p_delivery_name => delivery_name,
x_delivery_id => delivery_id,
x_name => NAME
);

IF (x_return_status <> wsh_util_core.g_ret_sts_success)
THEN
RAISE fail_api;
END IF;

p_delivery_id := delivery_id;
pub_freight_costs.delivery_id := delivery_id;
-- Values for WSH_DELIVERY_DETAILS_PUB.Detail_to_Delivery
-- Call Detail_to_Delivery with an action code of ASSIGN to assign details to a
-- delivery.
p_tabofdeldets (1) := 13463;
p_tabofdeldets (2) := 13464;
p_action := 'ASSIGN';
-- Call to WSH_DELIVERY_DETAILS_PUB.Detail_to_Delivery.
wsh_delivery_details_pub.detail_to_delivery
(p_api_version => 1.0,
p_init_msg_list => init_msg_list,
p_commit => COMMIT,
p_validation_level => p_validation_level,
x_return_status => return_status,
x_msg_count => msg_count,
x_msg_data => msg_data,
p_tabofdeldets => p_tabofdeldets,
p_action => p_action,
p_delivery_id => p_delivery_id,
p_delivery_name => delivery_name
);

IF (x_return_status <> wsh_util_core.g_ret_sts_success)
THEN
RAISE fail_api;
END IF;

-- Values for Ship Confirming the delivery.
p_action_code := 'CONFIRM'; -- The action code for ship confirm
p_delivery_id := 5341; -- The delivery that needs to be confirmed
p_delivery_name := '5341'; -- The delivery name,
p_sc_action_flag := 'S'; -- Ship entered quantity.
p_sc_close_trip_flag := 'Y'; -- Close the trip after ship confirm
p_sc_trip_ship_method := 'UPS'; -- 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,
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
RAISE fail_api;
END IF;
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;
END IF;
END ship_confirm_example2;
END wsh_ship_api;
/

--show errors package body WSH_SHIP_API;
--COMMIT;

SET serveroutput on

DECLARE
x_return_status VARCHAR2 (15);
x_msg_count NUMBER;
x_msg_data VARCHAR2 (3000);
BEGIN
wsh_ship_api.ship_confirm_example1 (x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data
);
DBMS_OUTPUT.put_line ('The return status: ' || x_return_status);
DBMS_OUTPUT.put_line (x_msg_data);
END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/226700/viewspace-914942/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/226700/viewspace-914942/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值