PDA

Ver la Versión Completa : PAI y PBO


jarabas
16/12/10, 10:50:17
Hola a todos, estoy con la transacción MIR7 y tengo hacer una validación, mi principal problema es que en los modulos que tienen forms y permiten ser ampliados, se les invoca tanto desde el PBO como desde el PAI.

¿Hay alguna manera de diferenciar desde que modulo se está llamando al Form?
¿Alguna alternativa para añadir la validación?

Muchas gracias

chivi82
16/12/10, 12:48:31
Hola,

El PBO se utiliza para modificar los datos que sale por pantalla (Process Before Output) podrías ocultar algún campo, mostrar algún dato extra mientras que el PAI se utiliza para chequear los datos de pantalla y guardarlos (Process After Input).

Por lo tanto la validación la deberías hacer en el PAI.

Saludos,

jarabas
16/12/10, 14:05:41
Buenas,

No me debí explicar bien, los fomrs donde puedo poner la ampliación, son invocados tanto desde el PAI como desde el PBO, ahí el problema.

Lo del PBO y PAI lo tengo claro.

Saludos.

A alguien se le ocurre algo ?

Gracias

francesc
17/12/10, 08:57:34
Hola, has probado a poner un break-point en ambas llamadas al PERFORM y cuando pare consultar los campos SY-CPROG, SY-XPROG, SY-XFORM, quizás a partir de allí puedas diferenciar cuando se llama desde PAI o PBO.

Buenas,

No me debí explicar bien, los fomrs donde puedo poner la ampliación, son invocados tanto desde el PAI como desde el PBO, ahí el problema.

Lo del PBO y PAI lo tengo claro.

Saludos.

A alguien se le ocurre algo ?

Gracias

jarabas
17/12/10, 10:58:37
Gracias por la ayuda, esos campos contienen lo mismo :(,
ya lo he solucionado leyendo la pila de ejecución, así sé de que module viene.

Saludos.

ghuioi
17/12/10, 11:24:47
El PBO es antes de la pantalla y el PAI después, pon la validación en el que corresponda.

Un saludo

jarabas
17/12/10, 11:48:03
Gracias pero eso de nada me sirve, si lees un poco más arriba verás que ya está solucionado ese problema.

ahora estoy con otros, como por ejemplo, como introducir mensajes en memoria para que se añadan a los que se crean en la propia transacción y se puedan ver dando el botón de "mensajes"

Si alguien pudiera echarme un cable. :)

Gracias y saludos.

ghuioi
17/12/10, 12:33:53
Para sacar los mensajes usa message MESSAGE exxx(zz).
Donde:
E es el tipo de error,
xxx es el numero,
y zz la clase