ABAP - problema exits

 
Vista:

problema exits

Publicado por jose (3 intervenciones) el 08/07/2006 11:43:25
Hola,

Resulta que tengo un desarrollo Z que hace una serie sobre una orden de mantenimiento que ha de estar liberada.
A este desarrollo Z se le llama cuando el usuario pulsa el botón grabar en la transacción IW32(modificar orden de mantenimiento), desde una user-exit ( EXIT_SAPLCOIH_006 ) siempre y cuando la orden esté liberada. La 2ª vez que salta EXIT_SAPLCOIH_006 la orden ya está liberada y entonces salta el Z.

Pero ahora hay que llamar a este desarrollo Z también desde la IW38,que permite ver de una vez las ordenes que queramos, seleccionar una y hacer varias operaciones sobre ella. Esta transacción siempre llama a la IW32 para realizar la operación que se desee. Una de ellas es es liberar una orden. Basta con pulsar el botón liberar y la orden queda liberada, no hace falta luego dar a grabar(de hecho no hay botón de grabar). De las exits que yo tengo activadas pasa por 3 (EXIT_SAPLCOIH_002, EXIT_SAPLCOIH_009 y EXIT_SAPLCOIH_006 ) y es en EXIT_SAPLCOIH_006 donde está la llamada a mi desarrollo Z pero éste no salta ya que cuando pasa por ahí la orden aun no está realmente liberada y mi programa z exige que lo esté. Por eso no salta.

Así que no se qué hacer. Necesitaría una exits que cuando saltara, la orden ya estuviera liberada para poner ahí mi desarrollo pero ni EXIT_SAPLCOIH_002, EXIT_SAPLCOIH_009 y EXIT_SAPLCOIH_006 me sirven ya que cuando pasa por ellas no está liberada aun.

Conocéis alguna ó bien una propia de la IW38??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

problema exits

Publicado por Alejandro (226 intervenciones) el 12/04/2023 01:05:49
Para solucionar tu problema, podrías considerar la posibilidad de utilizar la exit EXIT_SAPLCOIH_022, que se activa después de que se haya liberado la orden. En esta exit podrías llamar a tu programa Z ya que, en este punto, la orden ya estaría liberada y lista para ser procesada por tu programa.

Otra opción sería modificar tu programa Z para que compruebe si la orden está liberada antes de procesarla. En lugar de esperar a que la orden esté liberada en la exit, puedes verificar su estado antes de procesarla en tu programa. De esta manera, podrías llamar a tu programa Z desde la exit EXIT_SAPLCOIH_006 y también desde la IW38.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar