martes, 17 de noviembre de 2015

Query para obtener información de transacciones por Pedido de Movimientos

En Oracle Inventory podemos realizar pedidos de Movimiento de una organización de Inventarios a otro. Una vez aprobado y transaccionado se genera movimientos de material por la transacción, Las siguientes tablas se utilizan en el proceso de Pedidos de Movimiento.

MTL_TXN_REQUEST_HEADERS: Tabla donde se localiza la cabecera de los pedidos de movimientos donde se almacena el número de Pedido de movimiento en la columna (REQUEST_NUMBER). Tiene un estado, pero esto no se utiliza tanto como el estado de las líneas para conducir la funcionalidad.

MTL_TXN_REQUEST_LINES: Tabla donde se localiza las línea de los pedidos de Movimiento, este es el que impulsa más consultas y comprobaciones de estado del pedido de movimiento, ya que cada línea puede ser transaccionado de forma individual.

MTL_MATERIAL_TRANSACTIONS_TEMP: Tabla temporal de transacciones de material también llamado la tabla  de transacción temporal, esto retiene las asignaciones que actúan como reservas de inventario. Una asignación es donde tienes que elegir un artículo específico en el inventario hasta el lote, localizador, serial, revisión de movimiento, pero no se realiza en realidad el movimiento.

MTL_MATERIAL_TRANSACTIONS: Tabla que almacena un registro de cada transacción de materiales o de cada actualización de costos realizado en Inventarios. La columna move_order_line_id contiene el id d la línea del pedido de movimiento transaccionado.

1. Cuando se crea el pedido de movimiento se tiene los siguientes valores:
Quantity: 10
Quantity_Delivered: NULL
Quantity_Detailed: NULL
Required_ Quantity: NULL
Line_Status: 1 (Incompleto)

2. Cuando se aprueba el  pedido de movimiento se tiene los siguientes valores:
Quantity: 10
Quantity_Delivered: NULL
Quantity_Detailed: NULL
Required_ Quantity: NULL
Line_Status: 3 (Aprobado)

3. Cuando se asigna el  pedido de movimiento se tiene los siguientes valores:
Quantity: 10
Quantity_Delivered: NULL
Quantity_Detailed: 10
Required_ Quantity: NULL
Line_Status: 3 (Aprobado)

4. Cuando se transacciona el  pedido de movimiento se tiene los siguientes valores:
Quantity: 10
Quantity_Delivered: 10
Quantity_Detailed: 10
Required_ Quantity: NULL
Line_Status: 5 (Cerrado)

NOTA: Cuando un pedido de movimiento se asigna, se inserta un registro correspondiente en la tabla de pendientes MTL_MATERIAL_TRANSACTIONS_TEMP. Cuando el pedido de movimiento se transacciona, el registro se mueve de la tabla pendiente a la tabla histórica MTL_MATERIAL_TRANSACTIONS.

a) Ejemplo de consulta para enlazar pedidos de movimiento con la tabla pendientes:

SELECT mmtt.transaction_temp_id,
  tol.organization_id,
  toh.request_number,
  toh.header_id,
  tol.line_number,
  tol.line_id,
  tol.inventory_item_id,
  toh.description,
  toh.move_order_type,
  tol.line_status,
  tol.quantity,
  tol.quantity_delivered,
  tol.quantity_detailed
FROM mtl_txn_request_headers toh,
  mtl_txn_request_lines tol,
  mtl_material_transactions_temp mmtt
WHERE toh.header_id = tol.header_id
 AND toh.organization_id = tol.organization_id
 AND tol.line_id = mmtt.move_order_line_id;

b) Ejemplo de consulta que une MTL_MATERIAL_TRANSACTIONS a la orden de movimiento:

SELECT mmt.transaction_id,
  tol.organization_id,
  toh.request_number,
  toh.header_id,
  tol.line_number,
  tol.line_id,
  tol.inventory_item_id,
  toh.description,
  toh.move_order_type,
  tol.line_status,
  tol.quantity,
  tol.quantity_delivered,
  tol.quantity_detailed
FROM mtl_txn_request_headers toh,
  mtl_txn_request_lines tol,
  mtl_material_transactions mmt
WHERE toh.header_id = tol.header_id
 AND toh.organization_id = tol.organization_id
 AND tol.line_id = mmt.move_order_line_id
 AND toh.request_number = '&PedidoMovimiento';

La tabla de pedidos de movimientos (MTL_TXN_REQUEST_LINES) proporciona el estado del pedido en la columna de la LINE_STATUS como numérico. A continuación se enumeran los diferentes estados y de los códigos:

 1 Incompleto
 2 Aprobación Pendiente
 3 Aprobado
 4 No Aprobado
 5 Cerrado
 6 Cancelado
 7 Pre-Aprobado
 8 Parcialmente Aprobado
 9 Cancelado por Origen

Estos se pueden encontrar en el lookup MTL_TXN_REQUEST_STATUS:


1 comentario: