You are on page 1of 3

Move Orders in Oracle provide good functionality for approval

based movement of material with in an inventory organization.


Move Order Approvals use a workflow (INV: Move Order
Approval) for approvals and hence provide flexibility to extend
it for approvals.
Move Orders can be created from different sources. These
move orders are identified by Move order type at the header
level. Different types of move orders are:
Move Order Requisitions: These are created from the move
order form. Based on the setup at the organization and item
level, move orders require approval before they can be
allocated and transacted. These requisitions can be created to
charge an account or move the material from one subinventory
to another.
Replenishment Move Orders: These are auto-created with
pre approved status. Depending on the planning type you can
replenish the quantity in a subinventory for an item. Three
types of replenishment plans (in relation to move orders) are
available:
1. Min-max Replenishment Planning
2. Kanban Replenishment Planning
3. Replenishing Count planning

Based on these sources, when appropriate programs are run,


move orders are automatically created.
Pick Wave Move Order Requisitions: These move orders
are specifically for the sales order picking process. When Pick
Releasing program is run move orders are created as
preapproved and allocated. Pick Confirm process transacts
these pick wave move orders.

Move orders contain headers and lines. All types of approved


move orders have to be allocated (basically reserved) before
they can be transacted. Depending on the item transaction
controls (Subinventory, Locator, Revision, Lot or Serial number)
move order creation and allocation gets complex.

The
process is simple. Create and approve Move orders, allocate
move order lines and transact them.
In this article let us review creating, allocating, and transacting
a move order requisition of first type (requisitions) using APIs.
These move orders will be created in pre-approved status and
hence do not use workflow. Move Order Issue transaction type
is used in this example. An account is chosen while creating
this move order. When successfully transacted, this account
gets debited, crediting inventory account of the subinventory.
From the user interface, to create Move orders, Move Orders
window is used.
The lines are allocated when allocation step is performed. In
this example the logic for allocation and transaction is borrowed
from pick confirmation code. To allocate and transact same
form is used: Transact Move Orders.
If the item is lot and serial number controlled (as in this
example), you have to pass the lot number and serial number
information into the move order lines table parameter. And also

make sure to pass another parameter (p_suggess_serial) as


true. This will automatically take care of allocating the lot and
serial numbers into the appropriate table as mentioned in the
process flow. Also when we allocate the move order from the
user interface, the records in the form are created in the
mtl_material_transactions_temp table with transaction_status
as 2, which allows the user to change the values from user
interface. But in order to perform transaction from SQL, you
have to change this value to 3 so that the transaction manager
can pick these records up. You find that logic in the allocating
code.
The tables affected in each process step are mentioned in the
process flow. Code for each step as well as complete code to
create, allocate and transact can be downloaded as seen here.

You might also like