You are on page 1of 2

Create Allocate & Transact a Move Order

Using API’s
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.

1
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