¿Cuál sería el efecto de la utilización de la ‘BAPI_TRANSACTION_COMMIT’ con ‘ESPERAR’ parámetro cuando es igual a ‘X’ dentro de un BADi? Debo esperar que SAP confirmar los datos cuando LUW comete?

Soy consciente de que dentro de ‘BAPI_TRANSACTION_COMMIT’ sucede ‘COMMIT work’ o ‘COMMIT work Y ESPERAR» si especifica el parámetro ‘ESPERAR’ = ‘X’.

También estoy consciente de que no es correcto hacer un «COMMIT work’ dentro de un BADi, pero si yo uso ‘COMMIT work Y ESPERAR» a través de la BAPI?

La documentación de SAP en cuanto a COMETER dice:

Este ejecuta todas las actividades de alta prioridad (VB1) actualización de módulos de función en el
el orden de su registro y en una base de datos común LUW. Si usted
no especificar la adición Y ESPERAR, el programa no espere hasta que el
actualización del proceso de trabajo que se ha ejecutado (asincrónica actualización), pero
en su lugar se reanuda inmediatamente después de COMETER el TRABAJO. Sin embargo, si el
la suma Y la ESPERA se especifica, el programa de procesamiento después de COMETER el TRABAJO
no va a continuar hasta que la actualización del proceso de trabajo que se ha ejecutado el
actualización de alta prioridad módulos de función (sincrónico actualización).

Cuando todos los de alta prioridad en función de la actualización de los módulos se han completado con éxito,
la instrucción se ejecuta la baja prioridad (VB2) actualización de módulos de función
en el orden de inscripción juntos en una base de datos común LUW.

Mi confusión surge porque tenemos una BADi aplicación donde hay una llamada a la mencionada función con el parámetro ‘ESPERAR’ = ‘X’ y hemos encontrado un Notas de SAP donde se prohíbe el uso de ‘COMMIT work’ en el interior que BADi, sin embargo, se dice ‘COMMIT work’ y no ‘COMMIT work Y ESPERAR».

Para que yo pudiera pensar que la implementación es correcta debido a que los datos sean comprometidos cuando LUW acabados … o no. Cualquier comentario?

1 Comentario

  1. 3

    Realmente la LUW termina cuando usted llame COMMIT WORK o COMMIT WORK AND WAIT. La única diferencia es que COMMIT WORK es asincrónico y COMMIT WORK AND WAIT es sincrónico.

    La BAPI_TRANSACTION_COMMIT con WAIT conjunto de parámetros es igual a COMMIT WORK AND WAIT. Sin el conjunto de parámetros es igual a COMMIT WORK.

    Y es cierto. No debes cometer en una BAdI. Lo que si hay es una operación de deshacer después de que el BAdI ya ha ejecutado? Se puede dejar sus datos en un estado inconsistente.

    • La última parte no es del todo correcto. Si es seguro o no para el uso COMMIT en un BAdI aplicación depende del programa que llama a la aplicación.
    • Y ¿cómo se puede saber si hay compromiso en el programa (que generalmente es un estándar de SAP) o no? Es mejor y más seguro no commit o rollback en un BAdI.
    • podría usted comentar sobre esto, por favor: «Cuando todos los de alta prioridad en función de la actualización de los módulos se han completado con éxito, se ejecuta la sentencia de la baja prioridad (VB2) función de la actualización de los módulos en el orden de inscripción juntos en una base de datos común LUW.»
    • Es acerca de la actualización de módulos de función. Son las llamadas con una frase IN UPDATE TASK. Mira la primera pestaña llamada Atributos para cualquier módulo de función en la transacción SE37. Ahí tienes una opción Módulo de Actualización y subopciones iniciar de inmediato y comenzar a retrasar. Si el módulo de función se marca como el inicio de inmediato significa que tiene una alta prioridad y que será ejecutado en VB1. El último será ejecutado en VB2. Observar los procesos en SM50 se encuentra al menos dos procesos marcados como UPD y UP2. UPD es VB1 y UP2 es VB2.

Dejar respuesta

Please enter your comment!
Please enter your name here