Total Pageviews

July 4, 2017

7/04/2017 10:45:00 PM

Oracle applications Work in Process



Oracle Applications :WIP: Component Pick Release in work in process



What is Component Pick Release in work in process? 

How we can utilize the function? 


CPR is a way to allocate on-hand inventory to work orders. This is   similar to sales order reservation. 

You have to make work order status=released. 

Then you run CPR for a range of work orders. You can give a variety of criteria to select the work orders

Oracle creates a move order and finds available inventory and allocates to the work orders

You can then print tickets / print report. The ticket printing is typically customized by clients. You can put bar codes on the pick tickets. Typically, the pick ticket contains the following information 

Work order #, component item #, component item location, qty, destination 


The picker picks the material based on the pick ticket and transacts it. As soon as it is transacted, Oracle performs a component issue transaction to issue the component to the work order. The picker delivers the material to the floor personnel for use on the floor. 


WHICH API CAN BE USED TO CREATE A COMPONENT PICK RELEASE? 

There is an API which can be used to mimic component pick release and create the move orders for jobs/schedules. The API is called : wip_picking_pub.allocate. Here is some sample code which can be used to create the move orders :



DECLARE
p_alloc_tbl1 wip_picking_pub.allocate_tbl_t;
l_conc_req_id NUMBER;
l_mo_req_number VARCHAR2(1000);
l_return_status VARCHAR2(1000);
l_msg_data VARCHAR2(1000);
i number:=0;
CURSOR c_mypickrelease(v_myrid NUMBER)
IS
SELECT
we.wip_entity_id g_wid
FROM
wip.wip_entities we
WHERE
we.wip_entity_name=TO_CHAR(v_myrid);
BEGIN
i:=0;
FOR f_wipcmppk IN c_mypickrelease(702)
LOOP
i:= i+1;
p_alloc_tbl1(i).wip_entity_id := f_wipcmppk.g_wid;
p_alloc_tbl1(i).repetitive_schedule_id := NULL;
p_alloc_tbl1(i).use_pickset_flag := 'Y';
p_alloc_tbl1(i).project_id := NULL;
p_alloc_tbl1(i).task_id := NULL;
p_alloc_tbl1(i).bill_seq_id := NULL;
p_alloc_tbl1(i).bill_org_id := NULL;
p_alloc_tbl1(i).required_date := SYSDATE;
p_alloc_tbl1(i).alt_rtg_dsg := NULL;
END LOOP;
DBMS_OUTPUT.PUT_LINE(p_alloc_tbl1(i).wip_entity_id);
wip_picking_pub.allocate
(p_alloc_tbl => p_alloc_tbl1,
p_days_to_alloc => NULL,
p_auto_detail_flag => 'T',
p_start_date => TRUNC(SYSDATE-1),
p_cutoff_date => TRUNC(SYSDATE+1),
p_operation_seq_num_low => NULL,
p_operation_seq_num_high => NULL,
p_wip_entity_type => 1,
p_organization_id => 104,
p_pick_grouping_rule_id => 1050,
p_print_pick_slip => 'F',
p_plan_tasks => NULL,
x_conc_req_id => l_conc_req_id,
x_mo_req_number => l_mo_req_number,
x_return_status => l_return_status,
x_msg_data => l_msg_data);
dbms_output.put_line('PICK RELEASE REQ ID: '||l_conc_req_id);
29
IF (l_return_status = fnd_api.g_ret_sts_success) THEN
dbms_output.put_line('Success- '||l_msg_data);
dbms_output.put_line('Success- '||l_mo_req_number);
ELSE
dbms_output.put_line('Not Success- '||l_msg_data);
dbms_output.put_line('Success- '||l_mo_req_number);
END IF;
END;
 
Related Posts Plugin for WordPress, Blogger...