Introduction

This Post illustrates the steps required to pick release for sales order through oracle API script in Oracle EBS R12

Script to Oracle API Script for pick Release for Sales order(wsh_deliveries_pub.delivery_action

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 =’66404′–v_order

AND oha.org_id = 204–org id;

BEGIN

— Initializing the Applications

SELECT user_id

INTO l_user_id

FROM fnd_user

WHERE user_name = ‘OPERATIONS’;

 

SELECT responsibility_id, application_id–, responsibility_name

INTO l_resp_id, l_appl_id

FROM fnd_responsibility_vl

WHERE responsibility_name  like ‘Order Management Super User, Vision Operations (USA)’;

–fnd_global.apps_initialize (l_user_id,l_resp_id,l_appl_id);

fnd_global.apps_initialize (1318,21623,660);

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;

What we expect in the script.

This script helps us to comprehend how the Oracle API Script is used for pick Release for Sales order(wsh_deliveries_pub.delivery_action. A couple of tables which is being used in the scripts are

Wsh_Delivery_Details,Fnd_Responsibility,etc.

Summary

This Post described the script for Oracle API Script for pick Release for Sales order(wsh_deliveries_pub.delivery_action) in Oracle EBS R12.

Queries

Do drop a note by writing us at doyen.ebiz@gmail.com  or use the comment section below to ask your questions

 

Recent Posts

Start typing and press Enter to search