UNABLE TO CHANGE THE LOT NUMBER USING PICK RELEASE API FOR ATO
作者: moonsoft(http://moonsoft.itpub.net)发表于: 2007.06.14 11:29
分类: 分销
出处: http://moonsoft.itpub.net/post/15182/294786
---------------------------------------------------------------
ONDEMAND: UNABLE TO CHANGE THE LOT NUMBER USING PICK RELEASE API FOR ATO
*** 02/16/06 09:51 am ***
Tar Number: SR:5059789.992
PROBLEM STATEMENT:
------------------
Unable to change the lot numbers using pick release API if it is ATO order.
By default take the lot generated after the completing of WIP job.
.
Is there an API within Inventory to change and pick a different lot number than the one that's assigned from the discrete job? Or Transact Move Orders API?
A particular sales order was created from a discrete job.
After that, the workers moved the finished goods into specific lots within
Inventory.
When performing a pick release with Autoallocate and Auto Pick Confirm set to
'No', the User goes to the Transact Move Orders screen where they can perform
allocations and change the lot number that was originally assigned by the
discrete job from the View Allocations screen.
Need to find out if there is an API within Inventory to change and pick a
different lot number than the one that's assigned from the discrete job.
Even though these actions can be performed from the Transact Move Orders
form, the requirement is to perform these tasks through an API due to the
number of occurrences that these actions take place.
.
Verified the issue and requirements during OWC with Customer where Customer
explained the process that they currently performed through the Transact Move
Orders form.
Customer wants to know whether the same process can be performed using an API
within Inventory.
STEPS TO REPRODUCE THE PROBLEM:
-------------------------------
Step#1. Access
(
(Line status will now be "Supply Eligible")
Step#2. Progress the order line in order to create the Discrete job in WIP.
(Line status will now be "Production Open")
Step#3. Change to WIP responsibility, release the WIP Discrete job
(by changing the status)
Step#4. Complete the Move Transaction for the Discrete job
Step#5. Complete the WIP Discrete job. While completing the job,
generate the item lot number and use that lot number to complete the
job.
Step#6. Change the responsibility back to
to
see the line status has changed to "Awating Shipping".
Step#7. Repeat Step#1 to Step#6 to create another Sales order and the
corresponding WIP discrete job
the below mentioned sequence.
.
Note: In Step#8. While processing for the first order try to pass in the lot
number which belongs to the second order. Still , we will see that the
delivery details for this first order line ends up with the original lot,
which was generated during the WIP completion, being allocated and pick
confirmed.
.
WSH_PICKING_BATCHES_PUB.create_batch (p_api_version =>1.0,
p_init_msg_list
=>fnd_api.g_false,
p_commit
=>fnd_api.g_false,
x_return_status
=>lc_return_status,
x_msg_count =>ln_msg_count,
x_msg_data =>lc_msg_data,
p_batch_rec =>lr_batch_rec,
x_batch_id =>ln_batch_id);
.
WSH_PICKING_BATCHES_PUB.release_batch ( p_api_version =>1.0,
p_init_msg_list
=>fnd_api.g_false,
p_commit
=>fnd_api.g_false,
x_return_status
=>lc_return_status,
x_msg_count
=>ln_msg_count,
x_msg_data
=>lc_msg_data,
p_batch_id
=>ln_batch_id,
p_release_mode =>'ONLINE',
x_request_id
=>ln_request_id) ;
.
/* -- use below information for declaring/defining variables
** l_trolin_tbl INV_MOVE_ORDER_PUB.Trolin_Tbl_Type;
** l_trolin_old_tbl INV_MOVE_ORDER_PUB.Trolin_Tbl_Type;
** l_pick_release_stat
INV_PICK_RELEASE_PUB.Inv_Release_Status_Tbl_Type;
** l_mmtt_tbl INV_MO_LINE_DETAIL_UTIL.G_Mmtt_Tbl_Type;
*/
.
INV_MOVE_ORDER_PUB.Process_Move_Order_Line( p_api_version_number =>
1.0
,p_init_msg_list =>
Fnd_Api.G_False
,p_return_values =>
Fnd_Api.G_False
,p_commit =>
Fnd_Api.G_False
,x_return_status =>
lc_return_status
,x_msg_count =>
ln_msg_count
,x_msg_data =>
lc_msg_data
,p_trolin_tbl =>
l_trolin_tbl -- information of the move order line.
--The lot number to be force will be
-- a part of this move order line information
,p_trolin_old_tbl =>
l_trolin_old_tbl
,x_trolin_tbl =>
l_trolin_tbl);
.
INV_PICK_RELEASE_PUB.Pick_Release (p_api_version => 1.0,
p_init_msg_list =>
Fnd_Api.G_True,
p_commit =>
Fnd_Api.G_False,
p_mo_line_tbl =>
l_trolin_tbl,
p_auto_pick_confirm => 2, --
Valid values: 1 (yes) or 2 (no)
p_plan_tasks => FALSE,
p_grouping_rule_id =>
ln_grp_rule_id, -- IN variable
x_pick_release_status =>
l_pick_release_stat, -- IN variable
x_return_status =>
lc_return_status, -- OUT variable
x_msg_count =>
ln_msg_count,
x_msg_data =>
lc_msg_data);
.
INV_PICK_WAVE_PICK_CONFIRM_PUB.Pick_Confirm (p_api_version_number =>
1.0,
p_init_msg_list =>
Fnd_Api.G_True,
p_commit =>
Fnd_Api.G_False,
p_move_order_type =>
Inv_Globals.G_Move_Order_Pick_Wave,
p_transaction_mode =>
1,
p_trolin_tbl =>
l_trolin_tbl,
p_mold_tbl =>
l_mmtt_tbl,
x_mmtt_tbl =>
l_mmtt_tbl,
x_trolin_tbl =>
l_trolin_tbl,
x_return_status =>
lc_return_status,
x_msg_count =>
ln_msg_count,
x_msg_data =>
lc_msg_data);
.
Step#9. Upon successfull completion of all API called in Step#8, execute
"COMMIT" statment in the Toad/Sql*Plus session and then query back the
order in the Shipping Transactions form from the
for the


