PDA

Ver la Versión Completa : Subcontratación con función BAPI_GOODSMVT_CREATE


christianl
08/03/22, 16:50:47
Hola.

Comparto esto que estuve buscando durante mucho tiempo y nunca encontré algo publicado.

Cómo utilizar la función BAPI_GOODSMVT_CREATE para el registro de los movimientos de subcontratación?

Un proceso de subcontratación es aquel en que enviamos materiales a un proveedor que les realiza una transformación y nos lo devuelve (como otro producto). El material que se envía lo denominamos componente, surge de la Lista de Materiales del Producto que compramos al Proveedor y es el que se va a consumir al realizar el alta en stock del producto que nos entrega el Proveedor.
En la transformación realizada por el Proveedor también se pueden obtener desperdicios o subproductos que queremos registrar en stock.


En general en un proceso de subcontratación tenemos tres tipos de movimientos de materiales.

- Movimiento 101 para el material recibido (producido por el proveedor).
- Movimiento 543 para el material consumido. Este es el componente que enviamos al proveedor y que el mismo utiliza para la producción del material que luego entrega.
- Movimiento 545 para la generación del subproducto que se puede generar por el proceso productivo por parte del proveedor.


En esta BAPI se completan las siguientes tres Tablas.


GOODSMVT_HEADER

PSTNG_DATE Fecha de Contabilización
DOC_DATE Fecha de Documento
REF_DOC_NO Nota de Entrega
HEADER_TXT Texto de Cabecera


GOODSMVT_CODE
se indica el valor 01.


GOODSMVT_ITEM

Para el primer ítem que se recepciona.

MATERIAL 100000001
PLANT 1000
STGE_LOC AL01
BATCH LOTE_00001
MOVE_TYPE 101
VENDOR 100000001
ENTRY_QNT 1.000,000
ENTRY_UOM KG
PO_NUMBER 4500000000
PO_ITEM 00010
MVT_IND B
LINE_ID 000001
PARENT_ID 000000

MATERIAL 111000001
PLANT 1000
BATCH LOTE_FA001
MOVE_TYPE 543
ENTRY_QNT 1.100,000
ENTRY_UOM KG
LINE_ID 000002
PARENT_ID 000001

MATERIAL 5000001
PLANT 1000
MOVE_TYPE 545
ENTRY_QNT 100,000
ENTRY_UOM KG
LINE_ID 000003
PARENT_ID 000001


Ejemplo si tenemos un Segundo ítem que se recepciona.

MATERIAL 100000002
PLANT 1000
STGE_LOC AL01
BATCH LOTE_00002
MOVE_TYPE 101
VENDOR 100000001
ENTRY_QNT 1.000,000
ENTRY_UOM KG
PO_NUMBER 4500000000
PO_ITEM 00020
MVT_IND B
LINE_ID 000004
PARENT_ID 000000

MATERIAL 111000002
PLANT 1000
BATCH LOTE_FA002
MOVE_TYPE 543
ENTRY_QNT 1.200,000
ENTRY_UOM KG
LINE_ID 000005
PARENT_ID 000004

MATERIAL 5000001
PLANT 1000
MOVE_TYPE 545
ENTRY_QNT 200,000
ENTRY_UOM KG
LINE_ID 000006
PARENT_ID 000004



Si tuviéramos un tercer ítem que se está recibiendo y suponemos que tiene 2 componentes y 2 subproductos.

MATERIAL 100000003
PLANT 1000
STGE_LOC AL01
BATCH LOTE_00003
MOVE_TYPE 101
VENDOR 100000001
ENTRY_QNT 1.000,000
ENTRY_UOM KG
PO_NUMBER 4500000000
PO_ITEM 00030
MVT_IND B
LINE_ID 000007
PARENT_ID 000000

MATERIAL 111000003
PLANT 1000
BATCH LOTE_FA003
MOVE_TYPE 543
ENTRY_QNT 1.300,000
ENTRY_UOM KG
LINE_ID 000008
PARENT_ID 000007

MATERIAL 111000004
PLANT 1000
BATCH LOTE_FA004
MOVE_TYPE 543
ENTRY_QNT 1.400,000
ENTRY_UOM KG
LINE_ID 000009
PARENT_ID 000007

MATERIAL 5000001
PLANT 1000
MOVE_TYPE 545
ENTRY_QNT 300,000
ENTRY_UOM KG
LINE_ID 000010
PARENT_ID 000007

MATERIAL 5000002
PLANT 1000
MOVE_TYPE 545
ENTRY_QNT 400,000
ENTRY_UOM KG
LINE_ID 000011
PARENT_ID 000007



Lo que se hace es ir combinando las posiciones con los campos LINE_ID y PARENT_ID.

LINE_ID comienza en 000001 y se va incrementando en 1 con cada línea que se completa en la tabla.
PARENT_ID = 000000 indica que es la posición que se está recibiendo por lo que no depende de nadie.
PARENT_ID con valor indica la posición de la que depende la línea que se está registrando. Esto es para el consumo o la generación del subproducto.


De esta forma se establecen las relaciones.

El Primero producto que se recibe tiene:
LINE_ID 000001
PARENT_ID 000000
Es por esto que los productos dependientes de esta línea (componente y subproducto) tienen PARENT_ID 000001.

El Segundo producto que se recibe tiene:
LINE_ID 000004
PARENT_ID 000000
Es por esto que los productos dependientes de esta línea (componente y subproducto) tienen PARENT_ID 000004.

El Tercer producto que se recibe tiene:
LINE_ID 000007
PARENT_ID 000000
Es por esto que los productos dependientes de esta línea (componente y subproducto) tienen PARENT_ID 000007.



Luego pueden darse varias combinaciones con lo que se tiene que adecuando esto.

- Es posible que un Producto que se está recibiendo tenga un único componente (543) y un único Co-Producto (545).
- Es posible que un Producto que se está recibiendo tenga un único componente (543) y varios Co-Productos (545).
- Es posible que un Producto que se está recibiendo tenga varios componentes (543) y un único Co-Producto (545).
- Es posible que un Producto que se está recibiendo tenga varios componentes (543) y varios Co-Productos (545).
- Es posible que un Producto que se está recibiendo tenga un único componente (543) y no tenga Co-Producto (545).
- Es posible que un Producto que se está recibiendo tenga un varios componentes (543) y no tenga Co-Productos (545).



Espero que les sirva.
Saludos.