MUNDOSAP

MUNDOSAP (foro/index.php)
-   Formularios - SAPScript - Smartforms (foro/forumdisplay.php?f=5)
-   -   No sé como funciona el include en sapscripts para textos (foro/showthread.php?t=62731)

jtristan 18/05/12 09:06:00

No sé como funciona el include en sapscripts para textos
 
Hola,

estoy revisando un sapscript que tiene la siguiente instrucción:
/: INCLUDE &T166K-TXNAM& OBJECT &T166K-TDOBJECT& ID &T166K-TDID& LANGUAGE 'ES'

por lo que he podido averiguar, esta instrucción se comportaría como un read_text y muestra los textos que puedan estar grabados en la transacción.

Al debuguear veo que los valores que llegan corresponden con el número de pedido, el identificador del texto y la tabla. Pero no veo cómo puedo hacerles llegar esos valores. He consultado la tabla T166K y ahí no existen los valores que le llegan.

muchas gracias.
un saludo.

Melandry 18/05/12 10:23:42

Hola, no se si puedes explicar mejor el problema o lo que quieres conseguir, porque el último párrafo me mató y no entendí nada.
:)

jtristan 18/05/12 10:47:13

Claro, la verdad que como no sé como funciona no sé como explicar lo que quiero.

El formulario, es la impresión de un pedido de compras. imprime una sección, que son los textos a nivel de cabecera.
Viendo la estructura del formulario, veo que utiliza la sentencia INCLUDE.

Necesito, desde un programa z, imprimir este formulario. Yo veo, que a la sentencia include se le tiene que pasar el número de pedido, el id y el object. Lo que no sé es cómo se lo puedo pasar.

Desde el programa que llama al formulario he intentado hacer algo así:

data: t166k type table of t166k with HEADER LINE.
t166k-TXNAM = p_ebeln.
t166k-TDOBJECT = 'EKKO'.
t166k-TDID = 'F01'.
append T166K.

loop at T166K.

CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = ' '
WINDOW = 'OBSERVA'
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
CODEPAGE = 9
OTHERS = 10.

endloop.

Sin embargo, sigue sin imprimirse las observaciones.

No sé si me he explicado ahora lago mejor.

muchas gracias.

Melandry 18/05/12 11:47:52

Como bien dices debería ser posible leerlo con la READ_TEXT (La sentencia INCLUDE en el formulario tiene el mismo efecto), por lo que una prueba que puedes hacer es a ejecutar la función con esos valores y ver si recupera algo.
Los textos estarán en la tabla STXH.
También puedes ir al pedido a ver si el ID, el OBJECT son los correctos, para ello vas al texto de cabecera, cambiar el editor de texto a editor SAPscript y una vez dentro ir al menu superior > pasar a> cabecera y ahí podrás chequearlo.
Un saludo.

jtristan 18/05/12 12:20:22

Gracias por contestar Melandry.

Los valores que le estoy pasando son valores que he utilizado de prueba con la función read_text, que a su vez son los valores, que está recibiendo el formualrio cuando lo imprimo por la me23n. Por eso sé que son correctos. Sin embargo, al tratar de pasarlos mediante el loop en el write_form no veo que estén llegando al sapscript.

Mari.Sole 18/05/12 12:55:17

Hola Jtristan,
Una consulta muy tonta a lo mejor, pero estás seguro que tu programa Z está llamando al sapscript?.
Prueba activar el debbuguer del formulario y ejecutar tu programa Z para ver si efectivamente el OPEN_FORM lo realiza y si es así dentro del debbuguer del sapscript verifica que las estructuras están pasandose al include text o si alguna condición hace que se saltee esa ventana.

Saludos.

jtristan 23/05/12 05:55:01

Hola Mari.Sole,

el formulario se ejecuta bien, excepto la parte del include. Al debuguear lo que veo, es que los valores que solicita el include llegan vacíos. Sin embargo, en el loop que tengo antes del write_form si que están llegando correctamente.

Voy a hacer que el sapscript llame a una función y en esta haré el write_form, pero si que me parece útil esta instrucción y por eso quiero ver como funciona.

Muchas gracias.

Melandry 23/05/12 06:21:43

Hola de nuevo.
Fíjate a ver si la variable que usas en el include la tienes declarada como global en tu programa control, si no es así pues no le llegan los datos al formulario.

Y otra cosa, si tienes que imprimir más de una línea, si tu ventana no es la ventana main, sólo vas a poder ver el último registro porque se van a pisar.

jtristan 24/05/12 12:40:30

Hola Melandry,

perdona que no te contestase antes pero surgio otra prioridad y no he podido retomar el tema hasta ahora.
En efecto, el problema era que no había declarado la tabla interna como global. Al hacerlo ya recibe perféctamente los valores.

Muchas gracias.


Husos Horarios son GMT. La hora en este momento es 11:30:53.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web