Problema sincronización creación de documentos

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • neocloudmx2000
    Junior Member
    • abr
    • 26

    #1

    Problema sincronización creación de documentos

    Hola a todos:

    Me encuentro realizando una función que será llamada remotamente, la cual hace el proceso de:

    1. Crear la entrega de un pedido de vtas
    2. Confirmar la entrega (VL02N->Picking)
    3. Crear la orden de transporte para la entrega
    4. Crear el documento de materiales (salida de mercancías)
    5. Crear una factura

    Todo esto lo estoy haciendo con BAPI's y funciones, a exepción de la salida de mercancías (paso 4, ese lo hago con un CALL TRANSACTION a la VL02N->Contabilizar SM).

    Me he topado con que, individualmente o cuando me encuentro en modo debug estos pasos funcionan a la perfección, pero cuando ejecuto este proceso para que corra completo se detiene al parecer en la creación de la factura, ya que parece que no está creando la salida de mercancías y manda el mensaje: Salida de mercancías todavía no contabilizada para la nota de entrega.

    Entre cada paso que utiliza BAPI tengo el debido 'BAPI TRANSACTION COMMIT' , posterior al paso 4 tengo un COMMIT WORK y en ambos casos un tiempo de espera (WAIT UP TO n SECONDS) para tratar de sincronizarlos, pero aún así existe un punto donde el proceso de creación de un documento sucesor le gana al antecesor.

    Alguien sabe de algo para forzar a que, entre cada paso, se pueda obligar a SAP a actualizar la BD para que se cree el documento o algo similar.

    Saludos y gracias colegas.
  • ibai23
    Junior Member
    • mar
    • 19

    #2
    Aupa compañero sapero

    me parece que tienes el tipico problema de la ejecución sincronica o asincronioca de batch inputs.

    Metete a la ayuda del call transaction con el tipico F1 y mirate la opción 'UPDATE'. Pon el valor que NO tiene por defecto, me parece que tendrías que poner 'S' y yo creo que con eso te vale.

    Tambien acuerdate de poner la funcion BAPI_TRANSACTION_COMMIT después de cada bapi que haya sido ejecutada con exito

    Comentanos si te funciona

    Un saludo

    Comentario

    • neocloudmx2000
      Junior Member
      • abr
      • 26

      #3
      Muchas gracias colega. Pero en mi código ya tenía todo esto: BAPI TRANSACTION COMMIT para las BAPI's y algo así para el CALL TRANSACTION:

      CALL TRANSACTION 'VL02' USING it_bdcdata MODE modo UPDATE 'S'
      MESSAGES INTO it_messtab.

      Aun así hay algo que no me deja ir de un paso a otro por problemas de sincronización.
      Editado por última vez por neocloudmx2000; 13/05/2010, 19:23:28.

      Comentario

      • ballan
        Senior Member
        • oct
        • 671

        #4
        Buenos dias

        Lo primero decirte que mezclar llamadas a bapis y batch inputs no suele funcionar muy bien, en tu caso para crear un movimiento de mercancias puedes utilizar la funcion BAPI_GOODSMVT_CREATE, seguro que existen muchos ejemplos de como llamar a esta funcion y puede ser que te resolviera el problema

        Si cambiando el batchinput por la bapi sigue sin funcionar lo que haria es asegurarme de que es un problema de sincronismo y no de datos o parametrizacion

        Prueba a poner siempre commit work and wait en lugar de commit work y pon unos intervalos bastante grandes entre cada llamada a funcion para confirmar que efectivamente el problema es que se estan pisando las llamadas a las funciones

        Si confirmas que efectivamente el problema es que cuando se llama a una funciona la otra todavia no ha terminado postea y encontraremos alguna solucion

        Comentario

        • neocloudmx2000
          Junior Member
          • abr
          • 26

          #5
          Problema resuelto camaradas. Efectivamente, mis procesos se estaban pisando (sincronismo), el que me causaba problemas era el segundo paso, en el cuál utilizaba la BAPI_OUTB_DELIVERY_CHANGE. Cuando el paso termina correctamente tenía originalmente BAPI_TRANSACTION_COMMIT para cerrarlo, el cuál sustituí por:

          call function 'BAPI_TRANSACTION_COMMIT'
          exporting
          wait = 'X'.

          Esta contiene el mencionado commit work and wait. Ya con esto corre bien lo demás y ya no fué necesario poner un tiempo de espera (wait up to n seconds).

          Gracias

          Comentario

          • troyaitl
            Junior Member
            • sep
            • 2

            #6
            Problemas con la BAPI BAPI_OUTB_DELIVERY_CHANGE

            Hola.

            Estoy programando una RFC para hacer el proceso de pedido, entrega, picking, y factura, en la modificación de la entrega uso esta BAPI BAPI_OUTB_DELIVERY_CHANGE pero no se como usarla para que solo se iguale la entrega en cantidad de picking y se guarde. puedes ayudarme.

            de antemando agradezco su atención y apoyo.

            Saludos!!

            Comentario

            Trabajando...