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
    Maddy

    Hi 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
    Thanks

    Hi 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,
    OT

    Hi,
    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
    Girish

    Hi,
    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,
    Mike

    Hi 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;
    Thanks

    Hi,
    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
    Vasudha

    when 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,
    JPS

    Hi,
    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.
    Thanks

    Yes .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 advance

    I 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.
    Jeff

    Hi,
      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