FUNCIONES FANTASMAS EN ABAP
Publicado por Angel Donnarumma (1 intervención) el 21/02/2008 15:59:36
Buenos dias al que se encuentre leyendo este escrito.
Me gustaría que alguien me pudiese explicar, como es posible que un módulo de función llamado en un programa, ejecute un proceso cuando el mismo módulo no contiene ningún tipo de código en su interior, sin embargo dicha funcion cumple su cometido de una forma que yo desconozco.
Para ser un poco mas gráfico, aqui esta el ejemplo del módulo de función al que me refiero:
------------------------------------------------------------------------------------------------------
CALL FUNCTION 'ZWB_RS232_CONEX' DESTINATION 'CONEXION_RS232'
EXPORTING
PORT = 1
BAUD = 2400
DATABIT = 7
STOPBIT = 1
PARITYBIT = 0
TIMEOUT = 2000
PETICION = ''
BITSTOREAD = 18
IMPORTING
BUFFER = MY_BUFFER
EXCEPTIONS
BAD_PARAMETER_ASSIGN = 1
NO_OPEN_CONECTION = 2
PETITION_ERROR = 3
READ_PORT_ERROR = 4
NO_CLOSE_CONECTION = 5
NOT_DATA = 6
OTHERS = 7.
------------------------------------------------------------------------------------------------------
Ahora en el interior de la misma se encuentra lo siguiente:
------------------------------------------------------------------------------------------------------
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(PORT) TYPE I
*" VALUE(BAUD) TYPE I
*" VALUE(DATABIT) TYPE I
*" VALUE(STOPBIT) TYPE I
*" VALUE(PARITYBIT) TYPE I
*" VALUE(TIMEOUT) TYPE I
*" VALUE(PETICION) TYPE CHAR128 OPTIONAL
*" VALUE(BITSTOREAD) TYPE I
*" EXPORTING
*" VALUE(BUFFER) TYPE CHAR128
*" EXCEPTIONS
*" BAD_PARAMETER_ASSIGN
*" NO_OPEN_CONECTION
*" PETITION_ERROR
*" READ_PORT_ERROR
*" NO_CLOSE_CONECTION
*" NOT_DATA
*"----------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
Como pueden ver, el código en su totalidad esta comentado.
P.D.: El módulo de función se creó con el fín de establecer conexión con el puerto serial de la computadora y capturar un dato que entra por ese puerto.
Me gustaría que alguien me pudiese explicar, como es posible que un módulo de función llamado en un programa, ejecute un proceso cuando el mismo módulo no contiene ningún tipo de código en su interior, sin embargo dicha funcion cumple su cometido de una forma que yo desconozco.
Para ser un poco mas gráfico, aqui esta el ejemplo del módulo de función al que me refiero:
------------------------------------------------------------------------------------------------------
CALL FUNCTION 'ZWB_RS232_CONEX' DESTINATION 'CONEXION_RS232'
EXPORTING
PORT = 1
BAUD = 2400
DATABIT = 7
STOPBIT = 1
PARITYBIT = 0
TIMEOUT = 2000
PETICION = ''
BITSTOREAD = 18
IMPORTING
BUFFER = MY_BUFFER
EXCEPTIONS
BAD_PARAMETER_ASSIGN = 1
NO_OPEN_CONECTION = 2
PETITION_ERROR = 3
READ_PORT_ERROR = 4
NO_CLOSE_CONECTION = 5
NOT_DATA = 6
OTHERS = 7.
------------------------------------------------------------------------------------------------------
Ahora en el interior de la misma se encuentra lo siguiente:
------------------------------------------------------------------------------------------------------
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(PORT) TYPE I
*" VALUE(BAUD) TYPE I
*" VALUE(DATABIT) TYPE I
*" VALUE(STOPBIT) TYPE I
*" VALUE(PARITYBIT) TYPE I
*" VALUE(TIMEOUT) TYPE I
*" VALUE(PETICION) TYPE CHAR128 OPTIONAL
*" VALUE(BITSTOREAD) TYPE I
*" EXPORTING
*" VALUE(BUFFER) TYPE CHAR128
*" EXCEPTIONS
*" BAD_PARAMETER_ASSIGN
*" NO_OPEN_CONECTION
*" PETITION_ERROR
*" READ_PORT_ERROR
*" NO_CLOSE_CONECTION
*" NOT_DATA
*"----------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
Como pueden ver, el código en su totalidad esta comentado.
P.D.: El módulo de función se creó con el fín de establecer conexión con el puerto serial de la computadora y capturar un dato que entra por ese puerto.
Valora esta pregunta


0