Este es uno de los ejemplos de Synactive para GuiXT que más me gusta y que demuestra lo que se puede llegar ha hacer en Sap con GuiXT.
Es un teclado numérico para pantallas táctiles con el que el usuario puede introducir el código de material y acceder a la información del mismo en el maestro de materiales del sistema Sap.
Por un lado, tenemos el GuiXT scripts que modifica la pantalla y añade los botones del teclado numérico.
Por otro, el archivo Digit.txt contiene el inputscript que va concatenando las pulsaciones del usuario en el teclado numérico.
Empezemos por las imagenes que harán la función de botones del panel numérico y pantalla donde se mostrara el codigo introducido.D
Descargar las siguientes imágenes ( boton derecho -> Guardar imagen como... ) y guardarlas en el mismo directorio donde guardáis los scripts de GuiXT.
Pantalla y pulsador del teclado numérico |
Para crear el GuiXT script:
- Acceder a la transacción MM03 y cambiamos a la ventana de GuiXT.
- Pulsar el boton SCRIPT en la barra de herramienta de la venta de GuiXT.
- Copiamos el siguiente código y grabamos
GuiXT Script Editor |
Lo mas importante son los parámetros Input="U[digit]:1;OK:process=digit.txt" y textstring="0".
En anteriores entradas se explico que el parámetro Input permite volver interactiva la imagen y que al hacer clic sobre ella se ejecuten una serie de acciones. Estas acciones pueden ir desde guardar algún dato en una variable a ejecutar un inputscript o llamar a una transacción del sistemas Sap.
Cada acción que deseamos ejecutar va separada por ';' .
OK representa la acción de presionar la tecla Intro.
En este ejemplo estamos programando, que cuando el usuario haga clic sobre la imagen, se realicien las siguientes acciones:
- Asignar el dato '1' a la variable U[digit] . U[digit]:1
- Intro OK
- Ejecutar el InputScript digit.txt process=digit.txt
El parámetro textstring pinta sobre la imagen un texto, puede ser un texto fijo como los números del teclado o estan contenido en una variable como textstring="&F[Material]" , en este caso F[Material] es una variable donde vamos concatenando los números que selecciona el usuario.
Para crear el Inputscript:
- Pulsar el botón INPUTSCRIPT en la la barra de herramienta de la venta de GuiXT.
- Copia el siguiente código.
- Guarda el inputscript como digit.txt en el mismo directorio que el guixt script.
InputScript editor |
Parameter digit Set V[matnr] "&F[Material]" if U[digit=clear] Set V[matnr] "" goto return endif if U[digit=back] Set V[k] "&V[matnr]" -stringlength if V[k>0] Set V[k] &V[k] - 1 Set V[matnr] "&V[matnr](1-&V[k])" endif goto return endif Set V[matnr] "&V[matnr]&U[digit]" Set V[matnr] "&V[matnr](1-8)" label return Set F[Material] "&V[matnr]" Return
Es como una subrutina. Recibe un parámetro digit, comprueba su valor y actua en consecuencia
Cuando llamamos al inputscripts, damos valor a parámetro digit y creamos la variable matnr con el valor actual del campo de pantalla Material de la transacción MM03. Después actuamos dependiendo del valor que nos han pasado en el parámetro digit. Si es un numero concatenamos el valor actual y el nuevo número, limitamos a 8 digitos y devolvemos el dato al elemento de la pantalla.
La instrucción goto return rompe la ejecución des inputscript y salta a la etiqueta return.
Recordemos:
U[...] es un parámetro.
V[...] es una variable
F[.....] es un elemento de pantalla de sap
Ya solo queda acceder a la transacción MM03 y ver el resultado.
Recordar activar el modulo InputAssistant o no funcionara el inputscript.
Para activarlo : GUIXT: El modulo InputAssistant
Fuente:
Display a numeric keypad ( Ir a Tips&Trick -> nº 26 Display a numeric keypad ).
Entradas Anteriores:
HOLA SOY NUEVO Y TENGO EL SIGUIENTE PROBLEMA CON GUIXT Y SAP.
ResponderEliminarPARA DARSE LOGOFF DESDE LA HH SIN USAR EL TOUCHSCREEN Y SIN FUNCIONAR LA TECLA TAB,PARA POSICIONARME EN LA OPCION YES DEL POPUP, QUE SE PUEDE HACER?? ES POSIBLE CONFIGURAR ALGO?
MI CORREO ES GHLARA@HOTMAIL.COM