Partially picked situation
Hello,
I wish to get clarification on the following regarding situation where full ordered quantity is not fully picked.
WM situation :
To post Goods Issue when quantity is partially picked,
Either
a. Copy the picked quantity to the Delivery quantity and then confirming the TO with this partial picked quantity. Goods is now issuable. A New DO is then created for the balance.
OR
b. perform subsequent picking for the remaining quantities by creating additional TOs based in the same DO for the balance. In this case, unlike above, picked quantity is entered in Picking quantity and Delivery quantity is also set to Picking Quantity and the DO can be saved. PGI is done. Next, this DO can be opened again and additional TO is created to clear the balance using this same DO.
Non-WM situation :
1. WM status field not applicable. Actually picking is reflected same way as WM situation, that is, picked quantity entered in Picking Quantity thus picking status is B not C and Delivery quantity set to same as Picking Quantity. But in this case, picking status is not C as picked quantity not the same as order quantity, so PGI not possible or allowed. So, the Delivery Quantity has to be reduced to the Picking quantity (actually picked qty) . The balance of customer's required quantity can only be processed using another separate DO referencing the same Sales Order containing the original Order Quantity.
regards
Pascal
Edited by: Pascal Gabin on Feb 5, 2011 2:39 PM
Hello Pascal,
Please refer the following suggestions;
WM situation : To post Goods Issue when quantity is partially picked,
a. Copy the picked quantity to the Delivery quantity and then confirming the TO with this partial picked quantity. Goods is now issuable. A New DO is then created for the balance.
: Yes, you are correct , when delivery is partially picked, we copy the delivery qty (partially) in to picked qty under picking tab and confirm the transfer order.
Now you can create new outbound delivery for the remaining balanced qty from the parent sales order unless and until sales order line item is marked for rejection (customer cancelled order). If the line item in sales order is marked for deletion, then in that case new delivery cannot be created as the sales order status chnages to completed.
b. perform subsequent picking for the remaining quantities by creating additional TOs based in the same DO for the balance. In this case, unlike above, picked quantity is entered in Picking quantity and Delivery quantity is also set to Picking Quantity and the DO can be saved. PGI is done. Next, this DO can be opened again and additional TO is created to clear the balance using this same DO.
: I don' think this is possible as the delivery which is created from sales order picks up the qty based on schedule line determination in sales order, which is executed with the help of availability check. I suggest, you should not manually change the delivery qty as it may lead to updation termination, as system won't allow you to post goods issue, basec on reason that stock is not sufficiently available.
Non-WM situation :
This situation occurs generally during cross docking or third party sales, where goods are being directly delivered at customer's premises. Yes, WM status is not appicable in such cases as these deliveries are not warehouse managed.
In such cases, you need to directly do the picking and confirmtaion in one single step by opening gthe delivery in chnage mode and enter the delivery qty same as that of picking qty. Here you can enter the delivery qty based on customer commitment and susquently do the picking for partial qty and later manage the left over qty under seperate delivery document
BR,
Tushar
Similar Messages
-
How to DIsable Partial Pick Release in Sales Order Pick Release
Hi Everyone,
A Basic doubt.
In Sales Order Pick Release, supposing I want to pick only if the entire requested quantity is available.
I would rather have the Order Backordered than to pick partially.
How to enable this.(similar to what we have in the COmponent Pick Release in WIP)
regards,
Karthi Sankar!Hi Karthi,
To prevent a partial Pick Release:
1. Make each of the sales order lines a Ship Set
On the Sales Order, Lines, Shipping tab
Scroll to the right for Ship Set column
Enter a Ship Set number.
2. In Shipping Parameters, Pick Release tab, check the box for Enforce Ship Sets and Ship Models
Note: - Each Sales Order line should have a unique ship set number -
Unless you want some of the lines to ship together.
If that is the case, then the lines that need to ship together should have same set numbers
Thanks & Regards,
Srinivasulu Vakati -
Output error - partially picked status in delivery
Hi All,
im getting an error while taking output for the delivery.Scenario is like, i have created STO with about 600 line items(10 interval). created outbound delivery for the same. Two deliveries have been created one with 500 line items and other with 100 line items respectively. in the first delivery i have picked all the quantity(manually w/0 WM) and did the PGI. system shows the status as partially picked and when i tried to take the out put, it is giving error " No data exists for the delivery" and in the long text " Place holder for the batch input error text, this message is not output"
for the second delivery again i picked and did PGI, status shows fully picked and out put is getting generated.
im using std LD00 output type
In the output procedure i assigned the requirement '1' which is delvry GI posted which says system checks the goods movt status and if the status is fully picked and PGI is done output will be generated.
so i have created a new routine where in i gave goods movt status to accept partially picked or fully picked and PGI is done to give out put. even then it is not working.
i want the output for the partially picked deliveries too.
pls help in this issue as this is happening in production client.
Thanks and Regards
MaddyHi Maddy
Welcome to SDN forum
As you are using LD00 output type only , and for this output type as you have assigned requirement 1 , because of this only output is not coming . So firstly check wheather output is coming correctly or not by removing the requirement 1 .
Secondly , also check wheather any Smartforms are assigned to LD00 output type or not. If any Smartform is assigned then go to smartform and then check wheather any sub-routine has been written or not
Finally also check the access sequcne and the condition record you have maintained
Regards
Srinath -
All Materials Completely picked but Delivery status still partially Picked
Hello all,
I am facing an issue where in a delivery of which all line items have been completely picked (Status of line items C completely picked)
But still the delivery header has pick status B Partially picked.
While doing POD an error message come saying items not picked completely.
A material from sales order is missing in the delivery.There is a chance that the user might have deleted it (but even if so that does not appear in the change history)
Please give your inputs in case anyone has faced such issue or has an idea about this
ThanksHi abhishek
Check the delivery item category and delivery type details and check the picking field.has been checked or not.
Regards
Srinath -
Partial picking and PGI (with Idoc)
Hello
a) We have a scenario where we would like to achieve partial picking and PGI with Idoc:
For example
In the delivery the delivery qty is 10 from the beginning, but we would like to pick only 7 and perform the PGI anyway. The 3 remaining units should remain open and create a new delivery with VL10 or whatever. For the picking confirmation we are using SHP_OBDLV_CONFIRM_DECENTRAL03. We are not using WM, just inventory management in this scenario.
We know that per standard SAP functionality the picking quantity must match the delivery quantity when doing the PGI.
b) However: we have another scenario where we run picking and confirmation from a DWMS, where all confirmations are made by the idoc type SHP_OBDLV_CONFIRM_DECENTRAL03. In this scenario, it is possible to achieve the partial picking and PGI.
So my questions are really:
1) Anyone knows why SHP_OBDLV_CONFIRM_DECENTRAL03 would post partial picking PGI with DWMS succesfully, and not with a "normal" scenario where there is no DWMS in use, just a normal plant/storage location?
2) Anyone knows a suitable idoc type to achieve partial picking idoc, one where the picking qty and the delivery qty could be adjusted at the same time so that picked and delivery quantities would be exactly the same?
3) Any suitable user exit that could be used in order to change the delivery qty according to what has been picked for the delivery? Some success stories around it would be appreciated.
Thanks in advance,
OTHi,
I am not able to get the details whether you want to know the information about the Inbound Idoc or Outbound Idoc. But you want to do the picking and packing of the delivery then I can presume that you are doing the Inbound process.
In that case you can do use the process code SDPI which has the message type SDPICK. In this we have the function module SD_IDOC_INPUT_PICKING which can do the picking and PGI of delivery.
In this you can also change the delivery quantity if you are not picking up the whole quantity from the plant. So it allows you to change the delivery quantity and then do the PGI for the same.
Regards
Suneet -
HU SU and Pick Point Partial Picking
Hi,
I have an scenario where I dont want to make partial picking of an Handling unit in storage type with bulk strategy, I was trying to use the pick point however is there a form that first make the transfer order for the complete HU to the pick point and then it ask me for the pick HU to 916, because it seems that the standar behavior is to create the pick HU during the confirmation of the transfer order to 916 and leave the rest of the HU in the pick point, is it correct?
Thx.Hi Mariana,
You are experiencing standard SAP.
As I understand you want some kind of two-step picking but it doesn't work trhough pick point. As I understand you would like to do this:
1. TO from nromal storage type to pick point
2. TO from pick point to interim storage type
However, system executes the WM goods movement via one TO:
1. TO from normal storage type to interim storage type
It doesn't matter you use a pick point or not.
Please read SAP online help how the process goes:
http://help.sap.com/erp2005_ehp_04/helpdata/EN/c6/f8471f4afa11d182b90000e829fbfe/frameset.htm
Regards,
Csaba -
How Partial picking can be allowed?
Hi Experts,
At our client site we have one requirement that once a delivery is created say for 100 qty., system should allow to do pgi for 50 qty. without completing the delivery so that remaining delivery doc. can be is used later. One option is to pick the partial qty. but system wont alow to do PGI for partially picked delivery.
Kindly suggest.
Thanks & Regards
GirishHi,
You are right, you cant have difference in delivery qty and picking qty. They both always have to be same. Then only you can do PGI.
Yo can do one thing, decrease the delivery qty to the qty i.e. 50 that you want to deliver then change the picked qty to this changed delivery qty. i.e. 50 and do PGI.
Next time when you create delivery for the rest of qty. i.e. 50 system will automatically propose the remaining undelivered qty.
But make sure you make the setting for partial delivery in ship to party master data as suggested
Hopy you get some inputs
regards,
Sagar -
Update Transfer requirement for partially picked Transfer Order
Hi,
I am looking for a functionality to update a transfer requirement for a partial picking.
For example, we have a TR for quantity 100 pieces and we have 80 pieces in stock, so we create a TO for 80 pieces and the remaining quantity on TR would be 20. Now we dont want to pick for the rest of the 20 pieces, instead we want the TR to be updated for the quantity which will be picked i.e 80 Pieces.
Also, is it possible to put some kind of a rule which govern that the TR should be updated only if we are picking for atleast 80% of the quantity originally mentioned in the TR.
Thanks in advance,
MikeHi Frenchy,
Thanks for the answer. I have one more question.
Is it possible to automate it based on a movement type, so that every time we create a Transfer Order for this movement type the relevant TR will be automatically marked for 'final delivery'. This would help us, because then we would not have to go to WAM everytime to mark it as complete.
Or some kind of configuration that will dictate that only one Transfer order will be allowed for a Transfer Requirement and the TR will be set to complete as soon as the TO is confirmed.
Thanks,
Mike -
Partial Pick Confirming Sales Order
Hi Folks,
I have a requirement where I have to Pick Confirm and Ship confirm Sales Order through API.
1. When the quantites to be picked are same as quantity ordered the code seems to work just fine.
But suppose in my example my quantity in SO line is 50 and I want to partially Ship confirm the lines lets say 20 quantites.
then which API i need to use?
The approach I am following is while pick confirming I am passing 20 quantites only and the ship confirming it.
I researched and found that we can use the following API to update shipping attributes 'WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes' but when I run it (I tried before and after Pick confirm) the API runs fine but no changes are getting affected and the code Pick confirms all the quantity.
Could some please help me with this.
Please find the codes for pick confirm and updating shipping attributes
Pick confirm code
DECLARE
lv_order_num number := 700145812;
vMoveOrderLineId NUMBER;
p_pick_conf_qty NUMBER;
pStatus VARCHAR2(100);
pMsgData VARCHAR2(4000);
v_movehdr_rec INV_MOVE_ORDER_PUB.TROHDR_REC_TYPE;
v_movehdr_val_rec INV_MOVE_ORDER_PUB.TROHDR_VAL_REC_TYPE;
v_moveln_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_tbl_p INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_zero_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_zero_tbl_p INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_tbl_d INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_tbl_o INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
v_moveln_val_tbl INV_MOVE_ORDER_PUB.TROLIN_VAL_TBL_TYPE;
v_mold_tbl INV_MO_LINE_DETAIL_UTIL.G_MMTT_TBL_TYPE;
v_mold_tbl_p INV_MO_LINE_DETAIL_UTIL.G_MMTT_TBL_TYPE;
l_mold_tbl INV_MO_LINE_DETAIL_UTIL.G_MMTT_TBL_TYPE;
l_moveln_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
l_trolin_rec INV_MOVE_ORDER_PUB.TROLIN_REC_TYPE;
l_trolin_tbl INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
l_return_status VARCHAR2(240);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_move_hdr_id NUMBER;
l_move_order_no NUMBER := 0;
v_return_values VARCHAR2(2000) := FND_API.G_TRUE;
v_move_hdr_rec INV_MOVE_ORDER_PUB.TROHDR_REC_TYPE;
v_move_hdr_val_rec INV_MOVE_ORDER_PUB.TROHDR_VAL_REC_TYPE;
v_api_pick_confirm NUMBER;
cv_fail VARCHAR2(100) := 'Fail';
cv_success VARCHAR2(100) := 'Success';
g_user_id number;
g_resp_id number;
g_resp_appl_id number;
p_user_name varchar2(100) := 'SYSADMIN';
p_resp_name varchar2(100) := 'Order Management Super User';
p_mo_apps varchar2(100) := 'ONT';
CURSOR c_mmtt_recs(vMoveOrderLineId NUMBER) IS
SELECT transaction_header_id,
transaction_temp_id,
source_code,
source_line_id,
transaction_mode,
lock_flag,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
request_id,
program_application_id,
program_id,
program_update_date,
inventory_item_id,
revision,
organization_id,
subinventory_code,
locator_id,
transaction_quantity,
primary_quantity,
transaction_uom,
transaction_cost,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
transaction_source_id,
transaction_source_name,
transaction_date,
acct_period_id,
distribution_account_id,
transaction_reference,
requisition_line_id,
requisition_distribution_id,
reason_id,
lot_number,
lot_expiration_date,
serial_number,
receiving_document,
demand_id,
rcv_transaction_id,
move_transaction_id,
completion_transaction_id,
wip_entity_type,
schedule_id,
repetitive_line_id,
employee_code,
primary_switch,
schedule_update_code,
setup_teardown_code,
item_ordering,
negative_req_flag,
operation_seq_num,
picking_line_id,
trx_source_line_id,
trx_source_delivery_id,
physical_adjustment_id,
cycle_count_id,
rma_line_id,
customer_ship_id,
currency_code,
currency_conversion_rate,
currency_conversion_type,
currency_conversion_date,
ussgl_transaction_code,
vendor_lot_number,
encumbrance_account,
encumbrance_amount,
ship_to_location,
shipment_number,
transfer_cost,
transportation_cost,
transportation_account,
freight_code,
containers,
waybill_airbill,
expected_arrival_date,
transfer_subinventory,
transfer_organization,
transfer_to_location,
new_average_cost,
value_change,
percentage_change,
material_allocation_temp_id,
demand_source_header_id,
demand_source_line,
demand_source_delivery,
item_segments,
item_description,
item_trx_enabled_flag,
item_location_control_code,
item_restrict_subinv_code,
item_restrict_locators_code,
item_revision_qty_control_code,
item_primary_uom_code,
item_uom_class,
item_shelf_life_code,
item_shelf_life_days,
item_lot_control_code,
item_serial_control_code,
item_inventory_asset_flag,
allowed_units_lookup_code,
department_id,
department_code,
wip_supply_type,
supply_subinventory,
supply_locator_id,
valid_subinventory_flag,
valid_locator_flag,
locator_segments,
current_locator_control_code,
number_of_lots_entered,
wip_commit_flag,
next_lot_number,
lot_alpha_prefix,
next_serial_number,
serial_alpha_prefix,
shippable_flag,
posting_flag,
required_flag,
process_flag,
error_code,
error_explanation,
attribute_category,
attribute1,
attribute2,
attribute3,
attribute4,
attribute5,
attribute6,
attribute7,
attribute8,
attribute9,
attribute10,
attribute11,
attribute12,
attribute13,
attribute14,
attribute15,
movement_id,
reservation_quantity,
shipped_quantity,
transaction_line_number,
task_id,
to_task_id,
source_task_id,
project_id,
source_project_id,
pa_expenditure_org_id,
to_project_id,
expenditure_type,
final_completion_flag,
transfer_percentage,
transaction_sequence_id,
material_account,
material_overhead_account,
resource_account,
outside_processing_account,
overhead_account,
flow_schedule,
cost_group_id,
demand_class,
qa_collection_id,
kanban_card_id,
overcompletion_transaction_id,
overcompletion_primary_qty,
overcompletion_transaction_qty,
end_item_unit_number,
scheduled_payback_date,
line_type_code,
parent_transaction_temp_id,
put_away_strategy_id,
put_away_rule_id,
pick_strategy_id,
pick_rule_id,
common_bom_seq_id,
common_routing_seq_id,
cost_type_id,
org_cost_group_id,
move_order_line_id,
task_group_id,
pick_slip_number,
reservation_id,
transaction_status,
transfer_cost_group_id,
lpn_id,
transfer_lpn_id,
pick_slip_date,
content_lpn_id
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE move_order_line_id = vMoveOrderLineId;
l_moveln_fidx NUMBER;
l_moveln_lidx NUMBER;
n_mvln_cntr NUMBER;
l_Index NUMBER := 1;
v_records_in_mmtt NUMBER := 0;
REC C_MMTT_RECS%ROWTYPE;
BEGIN
select user_id
into g_user_id
from fnd_user
where user_name = p_user_name;
select responsibility_id, application_id
into g_resp_id, g_resp_appl_id
from apps.fnd_responsibility_vl
where responsibility_name = p_resp_name;
Apps.FND_Global.Apps_Initialize(g_user_id, g_resp_id, g_resp_appl_id);
MO_GLOBAL.INIT(p_mo_apps);
for mol in (select wda.delivery_id,
wda.delivery_detail_id,
wda.parent_delivery_detail_id,
wdd.source_code,
wdd.inventory_item_id,
wdd.organization_id,
wdd.ship_from_location_id,
wdd.ship_to_location_id,
wdd.requested_quantity,
wdd.requested_quantity_uom,
wdd.move_order_line_id,
wdd.org_id,
mtrl.quantity,
mtrl.quantity_delivered
from wsh_delivery_details wdd,
wsh_delivery_assignments wda,
oe_order_lines_all ol,
oe_order_headers_all oh,
mtl_txn_request_lines mtrl,
mtl_txn_request_headers mtrh
where wdd.source_line_id = ol.line_id
and wdd.delivery_detail_id = wda.delivery_detail_id
and ol.header_id = oh.header_id
and wdd.move_order_line_id = mtrl.line_id(+)
and mtrl.header_id = mtrh.header_id(+)
and oh.order_number = lv_order_num) loop
vMoveOrderLineId := mol.move_order_line_id;
p_pick_conf_qty := mol.quantity - nvl(mol.quantity_delivered,0);
SELECT COUNT(move_order_line_id)
INTO v_records_in_mmtt
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE move_order_line_id = vMoveOrderLineId;
IF v_records_in_mmtt > 1 THEN
pStatus := cv_fail;
pMsgData := 'Wrong number of records in MMTT for the MOVE_ORDER_LINE_ID : ' ||
vMoveOrderLineId;
DBMS_OUTPUT.PUT_LINE('Multiple records in MMTT for move_order_line_id = ' ||
vMoveOrderLineId);
v_api_pick_confirm := 0;
GOTO end_of_pkcnf;
ELSIF v_records_in_mmtt = 0 THEN
--means that the delivery is already pick confirmed
pStatus := cv_success;
DBMS_OUTPUT.PUT_LINE('No records in MMTT for move_order_line_id = ' ||
vMoveOrderLineId ||
' hence it is already pick confirmed');
v_api_pick_confirm := 0;
GOTO end_of_pkcnf;
END IF;
SELECT mtrh.header_id, mtrh.request_number
INTO l_move_hdr_id, l_move_order_no
FROM mtl_txn_request_headers mtrh, mtl_txn_request_lines mtrl
WHERE mtrh.header_id = mtrl.header_id
AND mtrl.line_id = vMoveOrderLineId;
DBMS_OUTPUT.PUT_LINE('Obtained MTRH.HEADER_ID = ' || l_move_hdr_id ||
' MTRH.REQUEST_NUMBER = ' || l_move_order_no ||
' for move_order_line_id = ' || vMoveOrderLineId);
INV_MOVE_ORDER_PUB.GET_MOVE_ORDER(p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_return_values => v_return_values,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_header_id => l_move_hdr_id,
p_header => l_move_order_no,
x_trohdr_rec => v_move_hdr_rec,
x_trohdr_val_rec => v_move_hdr_val_rec,
x_trolin_tbl => v_moveln_tbl,
x_trolin_val_tbl => v_moveln_val_tbl);
COMMIT;
DBMS_OUTPUT.PUT_LINE('Return status of INV_MOVE_ORDER_PUB.GET_MOVE_ORDER = ' ||
l_return_status);
IF l_return_status != FND_API.G_RET_STS_SUCCESS THEN
pStatus := cv_fail;
pMsgData := 'Failed to get move order inv_move_order_pub.get_move_order for MOVE_ORDER_LINE_ID : ' ||
vMoveOrderLineId;
GOTO end_of_pkcnf;
END IF;
OPEN c_mmtt_recs(vMoveOrderLineId);
FETCH c_mmtt_recs
INTO rec;
CLOSE c_mmtt_recs;
v_mold_tbl(1).transaction_header_id := rec.transaction_header_id;
v_mold_tbl(1).transaction_temp_id := rec.transaction_temp_id;
v_mold_tbl(1).source_code := rec.source_code;
v_mold_tbl(1).source_line_id := rec.source_line_id;
v_mold_tbl(1).transaction_mode := rec.transaction_mode;
v_mold_tbl(1).lock_flag := rec.lock_flag;
v_mold_tbl(1).last_update_date := rec.last_update_date;
v_mold_tbl(1).last_updated_by := rec.last_updated_by;
v_mold_tbl(1).creation_date := rec.creation_date;
v_mold_tbl(1).created_by := rec.created_by;
v_mold_tbl(1).last_update_login := rec.last_update_login;
v_mold_tbl(1).request_id := rec.request_id;
v_mold_tbl(1).program_application_id := rec.program_application_id;
v_mold_tbl(1).program_id := rec.program_id;
v_mold_tbl(1).program_update_date := rec.program_update_date;
v_mold_tbl(1).inventory_item_id := rec.inventory_item_id;
v_mold_tbl(1).revision := rec.revision;
v_mold_tbl(1).organization_id := rec.organization_id;
v_mold_tbl(1).subinventory_code := rec.subinventory_code;
v_mold_tbl(1).locator_id := rec.locator_id;
v_mold_tbl(1).transaction_quantity := rec.transaction_quantity;
v_mold_tbl(1).primary_quantity := rec.primary_quantity;
v_mold_tbl(1).transaction_uom := rec.transaction_uom;
v_mold_tbl(1).transaction_cost := rec.transaction_cost;
v_mold_tbl(1).transaction_type_id := rec.transaction_type_id;
v_mold_tbl(1).transaction_action_id := rec.transaction_action_id;
v_mold_tbl(1).transaction_source_type_id := rec.transaction_source_type_id;
v_mold_tbl(1).transaction_source_id := rec.transaction_source_id;
v_mold_tbl(1).transaction_source_name := rec.transaction_source_name;
v_mold_tbl(1).transaction_date := rec.transaction_date;
v_mold_tbl(1).acct_period_id := rec.acct_period_id;
v_mold_tbl(1).distribution_account_id := rec.distribution_account_id;
v_mold_tbl(1).transaction_reference := rec.transaction_reference;
v_mold_tbl(1).requisition_line_id := rec.requisition_line_id;
v_mold_tbl(1).requisition_distribution_id := rec.requisition_distribution_id;
v_mold_tbl(1).reason_id := rec.reason_id;
v_mold_tbl(1).lot_number := rec.lot_number;
v_mold_tbl(1).lot_expiration_date := rec.lot_expiration_date;
v_mold_tbl(1).serial_number := rec.serial_number;
v_mold_tbl(1).receiving_document := rec.receiving_document;
v_mold_tbl(1).demand_id := rec.demand_id;
v_mold_tbl(1).rcv_transaction_id := rec.rcv_transaction_id;
v_mold_tbl(1).move_transaction_id := rec.move_transaction_id;
v_mold_tbl(1).completion_transaction_id := rec.completion_transaction_id;
v_mold_tbl(1).wip_entity_type := rec.wip_entity_type;
v_mold_tbl(1).schedule_id := rec.schedule_id;
v_mold_tbl(1).repetitive_line_id := rec.repetitive_line_id;
v_mold_tbl(1).employee_code := rec.employee_code;
v_mold_tbl(1).primary_switch := rec.primary_switch;
v_mold_tbl(1).schedule_update_code := rec.schedule_update_code;
v_mold_tbl(1).setup_teardown_code := rec.setup_teardown_code;
v_mold_tbl(1).item_ordering := rec.item_ordering;
v_mold_tbl(1).negative_req_flag := rec.negative_req_flag;
v_mold_tbl(1).operation_seq_num := rec.operation_seq_num;
v_mold_tbl(1).picking_line_id := rec.picking_line_id;
v_mold_tbl(1).trx_source_line_id := rec.trx_source_line_id;
v_mold_tbl(1).trx_source_delivery_id := rec.trx_source_delivery_id;
v_mold_tbl(1).physical_adjustment_id := rec.physical_adjustment_id;
v_mold_tbl(1).cycle_count_id := rec.cycle_count_id;
v_mold_tbl(1).rma_line_id := rec.rma_line_id;
v_mold_tbl(1).customer_ship_id := rec.customer_ship_id;
v_mold_tbl(1).currency_code := rec.currency_code;
v_mold_tbl(1).currency_conversion_rate := rec.currency_conversion_rate;
v_mold_tbl(1).currency_conversion_type := rec.currency_conversion_type;
v_mold_tbl(1).currency_conversion_date := rec.currency_conversion_date;
v_mold_tbl(1).ussgl_transaction_code := rec.ussgl_transaction_code;
v_mold_tbl(1).vendor_lot_number := rec.vendor_lot_number;
v_mold_tbl(1).encumbrance_account := rec.encumbrance_account;
v_mold_tbl(1).encumbrance_amount := rec.encumbrance_amount;
v_mold_tbl(1).ship_to_location := rec.ship_to_location;
v_mold_tbl(1).shipment_number := rec.shipment_number;
v_mold_tbl(1).transfer_cost := rec.transfer_cost;
v_mold_tbl(1).transportation_cost := rec.transportation_cost;
v_mold_tbl(1).transportation_account := rec.transportation_account;
v_mold_tbl(1).freight_code := rec.freight_code;
v_mold_tbl(1).containers := rec.containers;
v_mold_tbl(1).waybill_airbill := rec.waybill_airbill;
v_mold_tbl(1).expected_arrival_date := rec.expected_arrival_date;
v_mold_tbl(1).transfer_subinventory := rec.transfer_subinventory;
v_mold_tbl(1).transfer_organization := rec.transfer_organization;
v_mold_tbl(1).transfer_to_location := rec.transfer_to_location;
v_mold_tbl(1).new_average_cost := rec.new_average_cost;
v_mold_tbl(1).value_change := rec.value_change;
v_mold_tbl(1).percentage_change := rec.percentage_change;
v_mold_tbl(1).material_allocation_temp_id := rec.material_allocation_temp_id;
v_mold_tbl(1).demand_source_header_id := rec.demand_source_header_id;
v_mold_tbl(1).demand_source_line := rec.demand_source_line;
v_mold_tbl(1).demand_source_delivery := rec.demand_source_delivery;
v_mold_tbl(1).item_segments := rec.item_segments;
v_mold_tbl(1).item_description := rec.item_description;
v_mold_tbl(1).item_trx_enabled_flag := rec.item_trx_enabled_flag;
v_mold_tbl(1).item_location_control_code := rec.item_location_control_code;
v_mold_tbl(1).item_restrict_subinv_code := rec.item_restrict_subinv_code;
v_mold_tbl(1).item_restrict_locators_code := rec.item_restrict_locators_code;
v_mold_tbl(1).item_revision_qty_control_code := rec.item_revision_qty_control_code;
v_mold_tbl(1).item_primary_uom_code := rec.item_primary_uom_code;
v_mold_tbl(1).item_uom_class := rec.item_uom_class;
v_mold_tbl(1).item_shelf_life_code := rec.item_shelf_life_code;
v_mold_tbl(1).item_shelf_life_days := rec.item_shelf_life_days;
v_mold_tbl(1).item_lot_control_code := rec.item_lot_control_code;
v_mold_tbl(1).item_serial_control_code := rec.item_serial_control_code;
v_mold_tbl(1).item_inventory_asset_flag := rec.item_inventory_asset_flag;
v_mold_tbl(1).allowed_units_lookup_code := rec.allowed_units_lookup_code;
v_mold_tbl(1).department_id := rec.department_id;
v_mold_tbl(1).department_code := rec.department_code;
v_mold_tbl(1).wip_supply_type := rec.wip_supply_type;
v_mold_tbl(1).supply_subinventory := rec.supply_subinventory;
v_mold_tbl(1).supply_locator_id := rec.supply_locator_id;
v_mold_tbl(1).valid_subinventory_flag := rec.valid_subinventory_flag;
v_mold_tbl(1).valid_locator_flag := rec.valid_locator_flag;
v_mold_tbl(1).locator_segments := rec.locator_segments;
v_mold_tbl(1).current_locator_control_code := rec.current_locator_control_code;
v_mold_tbl(1).number_of_lots_entered := rec.number_of_lots_entered;
v_mold_tbl(1).wip_commit_flag := rec.wip_commit_flag;
v_mold_tbl(1).next_lot_number := rec.next_lot_number;
v_mold_tbl(1).lot_alpha_prefix := rec.lot_alpha_prefix;
v_mold_tbl(1).next_serial_number := rec.next_serial_number;
v_mold_tbl(1).serial_alpha_prefix := rec.serial_alpha_prefix;
v_mold_tbl(1).shippable_flag := rec.shippable_flag;
v_mold_tbl(1).posting_flag := rec.posting_flag;
v_mold_tbl(1).required_flag := rec.required_flag;
v_mold_tbl(1).process_flag := rec.process_flag;
v_mold_tbl(1).error_code := rec.error_code;
v_mold_tbl(1).error_explanation := rec.error_explanation;
v_mold_tbl(1).attribute_category := rec.attribute_category;
v_mold_tbl(1).attribute1 := rec.attribute1;
v_mold_tbl(1).attribute2 := rec.attribute2;
v_mold_tbl(1).attribute3 := rec.attribute3;
v_mold_tbl(1).attribute4 := rec.attribute4;
v_mold_tbl(1).attribute5 := rec.attribute5;
v_mold_tbl(1).attribute6 := rec.attribute6;
v_mold_tbl(1).attribute7 := rec.attribute7;
v_mold_tbl(1).attribute8 := rec.attribute8;
v_mold_tbl(1).attribute9 := rec.attribute9;
v_mold_tbl(1).attribute10 := rec.attribute10;
v_mold_tbl(1).attribute11 := rec.attribute11;
v_mold_tbl(1).attribute12 := rec.attribute12;
v_mold_tbl(1).attribute13 := rec.attribute13;
v_mold_tbl(1).attribute14 := rec.attribute14;
v_mold_tbl(1).attribute15 := rec.attribute15;
v_mold_tbl(1).movement_id := rec.movement_id;
v_mold_tbl(1).reservation_quantity := rec.reservation_quantity;
v_mold_tbl(1).shipped_quantity := rec.shipped_quantity;
v_mold_tbl(1).transaction_line_number := rec.transaction_line_number;
v_mold_tbl(1).task_id := rec.task_id;
v_mold_tbl(1).to_task_id := rec.to_task_id;
v_mold_tbl(1).source_task_id := rec.source_task_id;
v_mold_tbl(1).project_id := rec.project_id;
v_mold_tbl(1).source_project_id := rec.source_project_id;
v_mold_tbl(1).pa_expenditure_org_id := rec.pa_expenditure_org_id;
v_mold_tbl(1).to_project_id := rec.to_project_id;
v_mold_tbl(1).expenditure_type := rec.expenditure_type;
v_mold_tbl(1).final_completion_flag := rec.final_completion_flag;
v_mold_tbl(1).transfer_percentage := rec.transfer_percentage;
v_mold_tbl(1).transaction_sequence_id := rec.transaction_sequence_id;
v_mold_tbl(1).material_account := rec.material_account;
v_mold_tbl(1).material_overhead_account := rec.material_overhead_account;
v_mold_tbl(1).resource_account := rec.resource_account;
v_mold_tbl(1).outside_processing_account := rec.outside_processing_account;
v_mold_tbl(1).overhead_account := rec.overhead_account;
v_mold_tbl(1).flow_schedule := rec.flow_schedule;
v_mold_tbl(1).cost_group_id := rec.cost_group_id;
v_mold_tbl(1).demand_class := rec.demand_class;
v_mold_tbl(1).qa_collection_id := rec.qa_collection_id;
v_mold_tbl(1).kanban_card_id := rec.kanban_card_id;
v_mold_tbl(1).overcompletion_transaction_id := rec.overcompletion_transaction_id;
v_mold_tbl(1).overcompletion_primary_qty := rec.overcompletion_primary_qty;
v_mold_tbl(1).overcompletion_transaction_qty := rec.overcompletion_transaction_qty;
v_mold_tbl(1).end_item_unit_number := rec.end_item_unit_number;
v_mold_tbl(1).scheduled_payback_date := rec.scheduled_payback_date;
v_mold_tbl(1).line_type_code := rec.line_type_code;
v_mold_tbl(1).parent_transaction_temp_id := rec.parent_transaction_temp_id;
v_mold_tbl(1).put_away_strategy_id := rec.put_away_strategy_id;
v_mold_tbl(1).put_away_rule_id := rec.put_away_rule_id;
v_mold_tbl(1).pick_strategy_id := rec.pick_strategy_id;
v_mold_tbl(1).pick_rule_id := rec.pick_rule_id;
v_mold_tbl(1).common_bom_seq_id := rec.common_bom_seq_id;
v_mold_tbl(1).common_routing_seq_id := rec.common_routing_seq_id;
v_mold_tbl(1).cost_type_id := rec.cost_type_id;
v_mold_tbl(1).org_cost_group_id := rec.org_cost_group_id;
v_mold_tbl(1).move_order_line_id := rec.move_order_line_id;
v_mold_tbl(1).task_group_id := rec.task_group_id;
v_mold_tbl(1).pick_slip_number := rec.pick_slip_number;
v_mold_tbl(1).reservation_id := rec.reservation_id;
v_mold_tbl(1).transaction_status := rec.transaction_status;
v_mold_tbl(1).transfer_cost_group_id := rec.transfer_cost_group_id;
v_mold_tbl(1).lpn_id := rec.lpn_id;
v_mold_tbl(1).transfer_lpn_id := rec.transfer_lpn_id;
v_mold_tbl(1).pick_slip_date := rec.pick_slip_date;
v_mold_tbl(1).content_lpn_id := rec.content_lpn_id;
v_mold_tbl(1).transaction_quantity := p_pick_conf_qty;
v_mold_tbl(1).primary_quantity := p_pick_conf_qty;
v_mold_tbl(1).shipped_quantity := p_pick_conf_qty;
INV_PICK_WAVE_PICK_CONFIRM_PUB.PICK_CONFIRM(p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_FALSE,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_move_order_type => 3 -- PickWave - Order
p_transaction_mode => 1 -- 1:On-Line, 2:Concurrent, 3:Background
p_trolin_tbl => v_moveln_tbl_d,
p_mold_tbl => v_mold_tbl,
x_mmtt_tbl => v_mold_tbl,
x_trolin_tbl => v_moveln_tbl_o,
p_transaction_date => SYSDATE);
COMMIT;
DBMS_OUTPUT.PUT_LINE('Return status of INV_PICK_WAVE_PICK_CONFIRM_PUB.PICK_CONFIRM = ' ||
l_return_status);
IF l_return_status != FND_API.G_RET_STS_SUCCESS THEN
pStatus := cv_fail;
pMsgData := 'Failed to pick confirm move order inv_pick_wave_pick_confirm_pub.pick_confirm for MOVE_ORDER_LINE_ID : ' ||
vMoveOrderLineId;
GOTO end_of_pkcnf;
END IF;
v_api_pick_confirm := 1;
dbms_output.put_line('Status of the Pick Confirm is : ' ||
l_return_status);
<<end_of_pkcnf>>
NULL;
end loop;
END;
Updating Shipping attributes
DECLARE
--Standard Parameters.
p_api_version NUMBER;
init_msg_list VARCHAR2(30);
p_commit VARCHAR2(30);
--Parameters for WSH_DELIVERY_DETAILS_PUB.update_shipping_attributes.
source_code VARCHAR2(15);
changed_attributes WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType;
--out parameters
x_return_status VARCHAR2(10);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
x_msg_details VARCHAR2(3000);
x_msg_summary VARCHAR2(3000);
-- Handle exceptions
vApiErrorException EXCEPTION;
BEGIN
-- Initialize return status
x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
-- Call this procedure to initialize applications parameters
FND_GLOBAL.APPS_INITIALIZE(user_id => 0,
resp_id => 21623,
resp_appl_id => 660);
source_code := 'OE';
changed_attributes(1).delivery_detail_id := 9317811; -- delivery_detail_id
changed_attributes(1).shipped_quantity := 0; -- quantity to update
changed_attributes(1).cycle_count_quantity := 30;
--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);
commit;
IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
RAISE vApiErrorException;
ELSE
dbms_output.put_line('The shipped quantity is updated with ' ||
changed_attributes(1)
.shipped_quantity || ' for the delivery detail ' ||
changed_attributes(1).delivery_detail_id);
END IF;
EXCEPTION
WHEN vApiErrorException 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;
DBMS_OUTPUT.PUT_LINE('Message Data : ' || x_msg_data);
ELSE
x_msg_data := x_msg_summary;
DBMS_OUTPUT.PUT_LINE('Message Data : ' || x_msg_data);
END IF;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Unexpected Error: ' || SQLERRM);
END;
ThanksHi,
Goto VTFL.Select you valid combination.
Click on item.Select yout item category there.Goto details.
Select the Pos/neg quantity field as "+".
Maintain the billing quantity as "A".
Maintain VBRK/VBRP as "001".
Save.
Goto VOV7 and select your item category.Details.
Select completion rule as "B" and billing relevance as "F".
Save.
Pls go through the follwing threads that are posted by me earlier.
[Invoice split|Re: Invoice split]
[Splitiing of invoice|Re: Invoice split]
Regards,
Krishna. -
2 step picking-can allocation TO be created for partial pick TO?
Dear experts,
For 2 step picking, let's say that I have 2 items in the pick TO which belong to different materials. I confirm only 1 out of the 2 items. Can I then proceed to create the allocation TO just for the 1 item which I confirmed or is it a must for me to perform full picking for all the materials in the pick TO before I can create the allocation TO?
Thanks.Dear experts,
Can anybody help me? -
Component pick release for partial quantity
Hi All,
For R12 environment , customer needs move order to be created for partial quantity using component pick release.
As far as I know component pick release cannot be done for partial pick release and only possible when onhand qty is not available.
Can any one pleas elet us know if we can have any alternate solution or easy customization so that client can edit the quantities before going to move order creation?
Thanks
Vasudhawhen the move order is created..update the allocation and then perform transact move order
ex if for 10 qty move order is created..but if u wish to issue 5 qty to the job..then update the allocation..for the remaining u can just backorder the move order
HTH
Mahendra -
No pick if Qty blocked/partial blocked
Hello,
I am trying to create 'TO for group' in background using VL06O
If in outbound/delivery (there are multiple line items) one of the material is fully blocked or partially blocked system does not creates the TO (or TOs), whereas I was expecting it should create the TO (TOs) for rest of materials in the delivery...
I have made the setting LEWMInterfaceShippingDefine Shipping Control--Shipping Control per Warehouse Number
Warehouse :ABC
Picking tech: empty
Partial pick: YES
Combination: empty
Pick&Pack: empty
Delay: 1
As the partial pick is set, it should pick rest of the materials and partial blocked material...
Please suggest!
Regards,
JPSHi,
Try this maybe it helps:
SPRO > LE > WM > Master Data > Define Control Parameters for Warehouse Number
Here please set "Partial Picking" indicator to "1".
http://help.sap.com/erp2005_ehp_04/helpdata/EN/c6/f841f24afa11d182b90000e829fbfe/frameset.htm
Regards,
Csaba -
Partial SUs picking from Bulk storage
Hello Experts ,
From Bulk storage, we are trying to pick partial SUs and when we created the TO , itu2019s not suggesting any SU for picking. We only have to confirm the partial SU number during the TO confirmation (Provided there are more than one partials SUs in bulk storage).This makes user to search for appropriate partial pallet in the whole storage bin to confirm the TO rather being suggested by the system which one to pick (In TO). Is this the standard behavior of Bulk storage? How do we manage these partial pallets in bulk storage? We have enabled the partial picking strategy for bulk storage. We have no batches for materials.
Please advise.
ThanksYes .As a rule Bulk storage does not support the partial quantities to be managed in the storage type.However you can still process the partials provided you need to pick partial SUs manually.SAP will not suggest what SU need to be picked.
You can also read this article for configuring the round off flag which may be helpful to you.
"As a rule, you would not manage partial pallet quantities in bulk storage areas. Partial pallet quantities should be picked from a corresponding area designated for partial quantities. The following example illustrates what kind of system behavior you can control using this switch.
The requirement quantity is 2.5 pallets; the quantity in the bin is 5 pallets:
1. ' ' allows the removal of 2.5 or 3 pallets, depending on the partial pallet setting and the setting for a return item.
2. 'X' allows the removal of 2 pallets; for the remaining half pallet, the system determines a suitable stock using the storage type search function. If there is no stock in the storage types listed, the half pallet can also be removed from the bulk storage area in a second item.
This setting is used in particular to avoid partial pallet quantities and only works in this manner if complete stock removal is set.
3. 'Y' allows the removal of one pallet. For the remaining 1.5 pallets, the system finds suitable stock using the storage type search function. The system once again finds a bulk storage area, and once again 1 pallet is removed in a second item. The system proceeds with the remaining half pallet as described under X above.
This setting is used to avoid partial pallet quantities and the creation of single TO items for each pallet during stock removal." -
Negative Qty in Pick and Pack Manager
Hi all, I've the following problem with SBO 2005A, is there someone who can help me?
I need to print pick lists even if "qty available to release" is less than the open qty.
Scenario is when I have to provide information to the wherehouse about sales order to prepare with goods already arrived but not yet registered in Sap.
In other words: in the morning I receive goods from my supplier, in the late morning I must issue sales orders. I would need to print pick lists before acquiring goods (in Sap).
Problem is that Sap checks available qty without considering Purchase Orders.
example is:
regarding article ABC
qty in stock = 4
qty in a PO = 100 (delivery date today)
qty in a Sales Order = 30 (delivery date tomorrow)
I would like to print a pick list with qty 30. Total available could be 74 (100+4 -30) or -26, it doesn't matter.
At the moment the answer I have when I try to "allocate" 30 pieces in Pick and Pack Manager screen is "Released
quantity exceedes available quantity [message 81-13]
Is there a way to make it working as I want?
Thanks in advanceI have the same problem at my client site and I think we need to rethink the logic for the Pick and Pack Manager. What if inventory quantity is wrong? Or, what if you need visibility of the whole Sales Order in the warehouse and the shipping people do not have access to the Sales Order module. I suggest you allow the user to print Sales Order Items on the Pick List that, according to Sap, does not have availability. The Picker could find sufficient quantity on the shelf or the order may need to be partially picked and staged until the rest of the order becomes available.
If you check the Block Negative Inventory box in Document Settings, then prevent the zero quantity item from appearing on the Pick List. -
Partial packing of TO line item in RF transaction LM46
Hello all.
Is it possible to partially pick/pack a TO line item via RF t-code LM46? Is there a user exit to accomplish this?
I am testing the pick/pack by delivery transaction LM46 and have encountered a problem. For a given TO line item I want to be able to pick and pack a portion of the target quantity onto one HU, and then pick and pack the remaining quantity onto a new HU. I am not using HU-mgmt storage locations.
Thanks in advance.
JeffHi,
I don't see a direct way to do it thrugh LM46. Where as in TRM there is a functionality of TO/Task split, where you can pick from Multiple HUs and pack onto Multiple HUs. But why you want to do that. Probably what you can do is split the TO items while TO creation itself, rather than customizing LM46 for partial packing. There is a screen exit MWMRF 0651 for your own customizing for partial packing.
Hope that helps.
Thanks
Vinod.
Maybe you are looking for
-
How to run an application in the background when iMac starts up?
Hi, I installed TextExpander a couple of months back. It normally runs in the background and doesn't appear in my list of running applications when I cycle through them with Cmd+Tab. This is how I like it. Of late though, TextExpander starts up when
-
Track volume doesn't shift when I shift track contents, probably simple!
Hi all, So I am creating a mix-tape for mothers day and am trying to blend/overlap tracks using Garageband. I have each mp3 in a separate track and each track's "Track Volume" enabled and taking care of fade in/out. But now I need to shift all the tr
-
How to shutdown and start agent in ODI 11g in Linux Environment
Hi Experts, Pls any one can help me on "How to shutdown and start agent in ODI 11g in Linux Environment" and where can I find Agent.sh and Agentshutdown.sh files location in ODI 11g and parallely how can I find Odiparameter.sh file location Thanks in
-
Use charger for iPod Nano also for iPod Touch (4G)?
I have a charger for my old iPod Nano 2G, can I use it on my now iPod Touch?
-
Hi lenovo, I have bought lenovo G570 8 months ago. i asked for a original os. It came with win 7 home and OKR. after the release of win 8 i installed win 8 in C: .but the oem partition was good . i did not disturb It. after install and