PDA

Ver la Versión Completa : Movimientos 101 y 543 con BAPI_GOODSMVT_CREATE


maleficius
21/12/06, 13:21:17
Hola gente, estoy teniendo el siguiente problema que paso a explicar: Lo que necesito hacer es un mov. 101 y un 543. Cuando el funcional lo hace a través de la trx. MIGO, le aparece el mensaje "Introduzca Lote", entonces él lo completa en la posición que se genera automaticamente correspondiente al mov. 543, y ya el error no aparece y puede grabar.

Para reemplazar el uso de la trx. MIGO yo estoy llamando a la BAPI para movimientos de mercancias, y, ya probé tanto pasando 2 items (uno por cada movimiento) como pasando solo el 101 (por lo que vi en un post del SDN hay que pasar solo el 101 y el 543 lo realiza automaticamente). Y a pesar de que estoy enviando el campo BATCH (lote), la BAPI devuelve el error "Introduzca Lote" (M7018).

Alguien realizó esta combinación de movimientos?
Copio mi código, si alguien puede tirarme una pista, agradecido:


*---------- Cabecera

lwa_gmh-pstng_date = sy-datum.
lwa_gmh-doc_date = sy-datum.
lwa_gmh-bill_of_lading = lp_zhf-text1.
lwa_gmh-ref_doc_no = lp_zhf-text2.
lwa_gmh-header_txt = lp_zuonr.
lwa_gmh-pr_uname = sy-uname.
lwa_gmh-ver_gr_gi_slip = '2'. " Imprimir una pág./item
lwa_gmh-ext_wms = '2'. " Efectuar mod. de stock

lwa_gmc-gm_code = lk_gm_code.

*---------- Movimiento 101

li_gmi-move_type = '101'.

li_gmi-material = lp_ekpo-matnr.
li_gmi-plant = lp_ekpo-werks.
li_gmi-stge_loc = lp_ekpo-lgort.
li_gmi-batch = lp_lote.
* li_gmi-val_type = lp_lote.
* li_gmi-move_batch = lp_lote.
* li_gmi-move_val_type = lp_lote.
* li_gmi-vendrbatch = lp_lote.
li_gmi-VENDOR = lp_zif-lifnr.
li_gmi-entry_qnt = lp_zif-menge.
li_gmi-po_number = lp_zif-ebeln.
li_gmi-po_item = lp_zif-ebelp.
li_gmi-mvt_ind = 'B'. " Indicador de mov.
li_gmi-entry_uom = lp_zif-meins.
li_gmi-stck_type = 'S'. " Stock bloqueado

APPEND li_gmi. CLEAR li_gmi.

*---------- Movimiento 543

* li_gmi-move_type = '543'.
*
* li_gmi-material = lp_ekpo-matnr.
* li_gmi-plant = lp_ekpo-werks.
* li_gmi-batch = lp_lote.
* li_gmi-val_type = lp_lote.
* li_gmi-move_batch = lp_lote.
* li_gmi-move_val_type = lp_lote.
* li_gmi-entry_qnt = lp_zif-menge.
* li_gmi-mvt_ind = 'B'. " Indicador de mov.
* li_gmi-entry_uom = lp_zif-meins.
* li_gmi-spec_stock = 'O'. " Indic. de stk. espec.
*
* APPEND li_gmi. CLEAR li_gmi.

*---------- Llamada a BAPI

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = lwa_gmh
goodsmvt_code = lwa_gmc
IMPORTING
materialdocument = l_materialdocument
matdocumentyear = l_matdocumentyear
TABLES
goodsmvt_item = li_gmi
return = i_return.


Gracias, saludos

Daemonjr
27/12/06, 17:05:45
Que tal Maleficius? yo tengo el mismo problema y todavia no lo puedo resolver...
Buscando en diferentes foros nombraba otra bapi : /AFS/BAPI_GOODSMVT_CREATE pero en mi sistema no existe.

Algunas de las soluciones que encontre fue, el de que si existe algun documento de refenrencia en la EKBE agregarlo en la cabecera (no es mi caso), o agregar la tabla t_serial_no; obteniendo los valores para llenarla de la mseg (BEZEI para mat_doc_id y el parent_id).

Saludos espero que encuentres la respuesta a esto, yo por mi parte apenas sepa algo más, enseguida te lo paso.

Salut.

maleficius
27/12/06, 17:27:02
Mirá, lo que es seguro es que NO hay que cargar un item para el mov. 543. Este es creado automaticamente por la BAPI (revisá la nota OSS 520813, punto 8). El problema es que al determinarlo internamente, si en la posicion del pedido no está el lote (como es mi caso ya que en la versión que estoy no permite cargarlo) ocurre este error. Lo que estoy intentando ahora es hacer llegar de alguna forma el lote a la posicion del pedido, para probar si asi lo determina solo.
Te aviso si tengo algun exito, y gracias por la respuesta!
Saludos

pablin_11
07/08/09, 14:32:51
Hola maleficius, ¿Como estas?
Una consulta, ¿te acordas si pudiste resolver este tema? hace mas de una semana que estoy con el mismo problema y ya no se por donde buscar.

Saludos!