Autor Tema: PROBLEMA DE SINCRONismo? ENTRE BAPI_GOODMVT_CREATE y BAPI_QUOTATION_CREATEFROMDA  (Leído 6916 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jpcarro

  • Novato
  • *
  • Mensajes: 2
    • Ver Perfil
Estimados,

Estoy teniendo el siguiente problema y ya no se como resolverlo!

Necesito hacer reasignacion de materiales entre pedidos, para ellos se realizo un desarrollo donde se listan todos los materiales de un cliente especificado de los pedidos actualmente abiertos y se permite reasignarlos a otros clientes.

Para ellos, primero se realiza una reasignacion de almacenes para dicho material, pasandolo del almacen del cliente origen al cliente destino con la
BAPI_GOODSMVT_CREATE, donde se confirma en la MCHB que efectivamente se cambio de almacen el lote junto con el stock y se verifica tambien su creacion en la MARD.

Posteriormente (en el mismo desarrollo), se llama a la bapi BAPI_QUOTATION_CREATEFROMDATA2  (si se trata de una oferta nueva que se irá a crear) o a la BAPI_SALESORDER_CREATEFROMDAT2 (si se trata de un nuevo pedido).

El problema es el siguiente: SI MATERIAL + CENTRO + ALMACEN existia previamente en MARD, la bapi da el ok y procede a crear un nuevo documento con el/los materiales a reasignar.
Si no existia previamente y la bapi  BAPI_GOODSMVT_CREATE lo crea, (en el debug se verifica que efectivamente se creo la entrada en la MARD), la BAPI
BAPI_QUOTATION_CREATEFROMDATA2 o a la BAPI_SALESORDER_CREATEFROMDAT2 me dan el error "V 392 el material &1 no existe en el deposito &2 del centro &3.

Pero si salgo del desarrollo y la intento mover de nuevo, lo hace. Estimo que es un problema de sincronismo, pero no importa cuando tiempo espere en el debug, o si vuelvo a llamar a la bapi en el desarrollo cuando ocurre eso, en la MISMA SESION, no va a funcionar. SOLO funciona cuando salgo del desarrollo y entro de nuevo e intento redireccionar el material.

Muchas gracias,
Juan Pablo

Desconectado Enrique.Borroni

  • Moderador_
  • Usuario Completo
  • *****
  • Mensajes: 89
    • Ver Perfil
Re: PROBLEMA DE SINCRONismo? ENTRE BAPI_GOODMVT_CREATE y BAPI_QUOTATION_CREATEFR
« Respuesta #1 en: 23 de Septiembre de 2008, 09:21:06 pm »
Estimado,

       Probaste utilizando la funcion : "BAPI_TRANSACTION_COMMIT", luego de que se ejecuta tu primera BAPI ??

Saludos.

Atte.,
Enrique Borroni

maito : enrique.borroni@abap.es

Desconectado jpcarro

  • Novato
  • *
  • Mensajes: 2
    • Ver Perfil
Re: PROBLEMA DE SINCRONismo? ENTRE BAPI_GOODMVT_CREATE y BAPI_QUOTATION_CREATEFROMDA
« Respuesta #2 en: 23 de Septiembre de 2008, 09:30:56 pm »
Estimados, encontre el problema! esta fue la solucion:

Dentro de las bapis mencionadas, hay 3 niveles mas de Bapis que son ejecutadas. En la ultima (Material_read) se llama a una funcion que lee la tabla mard Lesen_mard (de paso, aprendi aleman, que significa Leer) donde se lee una tabla interna que se carga previamente cuando se ejecuto la primera bapi (goodsmovement_create).
Dado que cuando se cargo esa tabla interna NO EXISTIA ese material en el Nuevo lote asignado, no lo encontraba la bapi siguiente ya que el buffer no estaba actualizado.
 
El problema se resolvio al hacer un submit y llamar a la bapi desde otro programa, de modo de generar una nueva sesion donde la bapi cargue los datos actualizados.