compilador webgate

Anuncio
COMPILADOR WEBGATE
MANUAL DE PROGRAMACIÓN
CONTENIDO
MANUAL DE PROGRAMACIÓN ............................................................................................ 1
CONTENIDO ........................................................................................................................ 2
INTRODUCCIÓN .................................................................................................................. 6
1
INTERPRETACIÓN DEL ARCHIVO DE PANTALLA ........................................................... 7
1.1
Acciones Iniciales ........................................................................................................................................7
1.2
Limitaciones y Notas ....................................................................................................................................7
1.3
Palabras Clave Soportadas ............................................................................................................................8
1.4
Interpretación de las Constantes que Describen Teclas de Función .....................................................................9
1.5
Interpretación de los Atributos de Visualización de Campo (DSPATR y COLOR) ....................................................9
1.5.1
Atributos de Color ..................................................................................................................................9
1.5.2
Atributos de Pantalla ............................................................................................................................ 10
2
ELEMENTOS GRÁFICOS INCRUSTADOS DE IBM .......................................................... 11
2.1
Botón de Radio.......................................................................................................................................... 11
2.2
Casilla de Selección ................................................................................................................................... 12
2.3
Cuadro de Texto ........................................................................................................................................ 12
2.4
Botón Pulsador .......................................................................................................................................... 13
2.5
Título de Ventana ...................................................................................................................................... 13
3
ELEMENTOS GRÁFICOS ESPECÍFICOS DE WEBGATE400 ............................................. 15
3.1
Riferimento msgid per text lunghe ............................................................................................................... 15
3.2
Ignorar Campo Gráfico ............................................................................................................................... 16
3.3
Ocultar Campo Gráfico ............................................................................................................................... 16
3.4
Definiciones Layout .................................................................................................................................... 16
3.5
Ignora definiciones Layout por proyecto ....................................................................................................... 16
3.6
Tecla funcional variable .............................................................................................................................. 16
3.7
Copyright ................................................................................................................................................. 16
3.8
Visualiza en gráfica campo hidden (oculto) ................................................................................................... 17
3.9
Definir cambio de teclado ........................................................................................................................... 17
3.10
Web Browser ............................................................................................................................................ 17
3.11
Expansión horizontal y vertical de un marco (frame) ...................................................................................... 17
3.12
Valorización campos hidden a través de MSGID ............................................................................................. 18
3.13
Valorización de campos hidden a través de MSGCON ..................................................................................... 18
3.14
Valorización de campos hidden a través de DEFAULT ..................................................................................... 18
3.15
Cabecera de Columna de Subarchivo ........................................................................................................... 18
3.15.1
Encabezamientos con referencia a campo presente en otro formato ........................................................... 18
3.15.2
Cabeceras Compartidas (//) .................................................................................................................. 18
3.16
Marcos ..................................................................................................................................................... 19
3.17
Alineación constante o campo de output ....................................................................................................... 19
3.18
Modifica ocupación campo en pantalla .......................................................................................................... 19
3.19
HiperVínculos ............................................................................................................................................ 20
3.20
Texto Desplazable ..................................................................................................................................... 21
3.21
Imágenes ................................................................................................................................................. 22
3.22
Iconos de Texto......................................................................................................................................... 22
3.23
Iconos Extendidos ..................................................................................................................................... 24
3.24
Iconos Genéricos, Imágenes JPG y SWF ....................................................................................................... 25
3.25
Botones de Imagen.................................................................................................................................... 25
3.26
Iconos de Comando ................................................................................................................................... 26
3.27
Mensajes Variables .................................................................................................................................... 27
3.28
Búsqueda con Clic Derecho ......................................................................................................................... 27
3.29
Micro-Gráficas Contextuales ........................................................................................................................ 27
3.29.1
Tipo 0: Flecha en una Línea de Tres Colores ............................................................................................ 28
3.29.2
Tipo 1: Histograma a un Color ............................................................................................................... 28
3.29.3
Tipo 2: Histogramas Apilados ................................................................................................................ 29
3.29.4
Tipo 3: Estado de Avance...................................................................................................................... 29
3.29.5
Tabla de Colores .................................................................................................................................. 29
3.30
LOBS ....................................................................................................................................................... 29
3.30.1
Definición del Cuerpo de los LOB ............................................................................................................ 29
3.30.2
Guardado ............................................................................................................................................ 30
3.30.3
Índices ............................................................................................................................................... 30
COMPILADOR WEBGATE – Manual de programmación
3.30.4
Salvar y Restaurar LOB ......................................................................................................................... 30
3.30.5
API para RPG....................................................................................................................................... 30
3.31
Campos SQL ............................................................................................................................................. 32
3.32
Casillas de Verificación ............................................................................................................................... 32
3.33
Listas Combinadas ..................................................................................................................................... 33
3.33.1
Composición del TEXT .......................................................................................................................... 33
3.33.2
Características del Campo ..................................................................................................................... 34
3.33.3
Valores de Retorno ............................................................................................................................... 35
3.33.4
División de Valores Disponibles en la Lista............................................................................................... 35
3.33.5
API para Creación de Listas ................................................................................................................... 35
3.34
Manejador de Fechas ................................................................................................................................. 36
3.34.1
Sintaxis del TEXT sin Formateo de Salida ................................................................................................ 36
3.34.2
Sintaxis del TEXT con Formateo de Salida ............................................................................................... 37
3.35
Gráficos.................................................................................................................................................... 38
3.35.1
Información General ............................................................................................................................. 38
3.35.2
Sintaxis .............................................................................................................................................. 38
3.35.3
API Involucradas .................................................................................................................................. 38
3.35.4
Gestión Simplificada de GRÁFICOS ......................................................................................................... 39
3.36
Font ......................................................................................................................................................... 39
3.37
Drag & Drop ............................................................................................................................................. 40
3.38
Campos de valorización remota ................................................................................................................... 41
3.39
Extended Button........................................................................................................................................ 42
3.40
File Manager e File Chooser ........................................................................................................................ 42
3.40.1
3.41
3.41.1
Programa de generación ....................................................................................................................... 47
3.41.2
Api WGUITC ........................................................................................................................................ 50
3.42
4
Información General .................................................................................................................................. 53
4.2
5
Resumen FMTATR ...................................................................................................................................... 54
GESTIÓN DE SUBARCHIVOS ....................................................................................... 56
5.1
Reconocimiento de Subarchivos................................................................................................................... 56
5.1.1
5.1.2
Reconocimiento de Cabeceras de Columna .............................................................................................. 56
Reconocimiento de las Opciones ............................................................................................................ 56
5.2
Optimización de Espacio en Filas Horizontales ............................................................................................... 56
5.3
Paginación ................................................................................................................................................ 57
5.4
Expansión subarchivos en las ventanas ........................................................................................................ 57
5.5
Colocación ................................................................................................................................................ 57
5.5.1
Comportamientos según los parámetros ................................................................................................. 57
5.5.2
Forzamiento del programa .................................................................................................................... 57
5.5.3
7
Sumario de TEXT ....................................................................................................................................... 51
ATRIBUTOS DE FORMATO .......................................................................................... 53
4.1
6
Sintaxis .............................................................................................................................................. 43
Menu con teselas ....................................................................................................................................... 46
Limitaciones ........................................................................................................................................ 57
5.6
Pantallas con Dos Subarchivos .................................................................................................................... 58
5.7
Jerarquías Generadas por Programa............................................................................................................. 58
5.7.1
Mostrar Jerarquías DINÁMICAS .............................................................................................................. 58
5.7.2
Mostrar Jerarquías ESTÁTICAS .............................................................................................................. 58
5.7.3
Mostrar Jerarquía Guardando el Estado de Despliegue de Nodos Individuales .............................................. 59
5.7.4
Casos Prácticos .................................................................................................................................... 59
Funciones de Personalización de Subarchivos, SQL y Gráficas ................................... 63
6.1.1
Función de Tabla de Gráfica .................................................................................................................. 63
6.1.2
Función de Actualización ....................................................................................................................... 65
6.1.3
Función de Jerarquía ............................................................................................................................ 66
6.1.4
Funciones de Resumen ......................................................................................................................... 66
6.1.5
Funciones de Resumen Gráficas ............................................................................................................. 66
6.1.6
Resumen de Atributos de Formato Aplicables a Rejillas, SQL y Gráficas ...................................................... 70
CONFIGURACIÓN DEL PROGRAMA ............................................................................. 71
Page 3 de 108
COMPILADOR WEBGATE – Manual de programmación
7.1
Variables de Entorno .................................................................................................................................. 71
7.1.1
Declaración en RPG III ......................................................................................................................... 71
7.1.2
Declaración en RPG IV .......................................................................................................................... 71
7.2
Palabras Clave ROLLUP y ROLLDOWN........................................................................................................... 73
7.3
Interpretación de la Estructura de Datos INFDS............................................................................................. 73
7.4
8
Interpretación pantalla en SHARE (compartida) ............................................................................................. 73
SERVICIOS DE APLICACIÓN ...................................................................................... 74
8.1
Servicios de Comando ................................................................................................................................ 74
8.1.1
Estándar y Personalizado ...................................................................................................................... 74
8.1.2
8.2
Iconos de Comando.............................................................................................................................. 74
Scripts y WGEXEIOUT ................................................................................................................................ 74
8.2.1
8.3
9
Manejar un Objeto de Salida de un Comando .......................................................................................... 75
Soporte de Ejecución de Programas PC ........................................................................................................ 75
MENÚS ....................................................................................................................... 77
9.1
Comando de Conversión o Integración ......................................................................................................... 77
9.2
El DBmenu ............................................................................................................................................... 79
9.2.1
Estructura de la Base de Datos .............................................................................................................. 79
9.3
Ajustes Globales ........................................................................................................................................ 81
9.4
Hallazgo menú de WEBGATE ....................................................................................................................... 81
9.4.1
Hallazgo menú único ............................................................................................................................ 81
9.4.2
Hallazgo menú en el cambio del sistema informativo ................................................................................ 82
9.4.3
Menú que hay que visualizar en el momento del Logon ............................................................................. 82
9.4.4
Api para escribir/leer parámetros ambientales ......................................................................................... 82
10
MANEJO DE MENSAJES ............................................................................................ 83
10.1
Mensajes Entre Usuarios............................................................................................................................. 83
10.2
Mensajes de Programa ............................................................................................................................... 84
10.3
Emulación de SNDBRKMSG y SNDUSRMSG ................................................................................................... 85
11
GESTIÓN DE COMPAÑÍAS ........................................................................................ 86
11.1
Introducción ............................................................................................................................................. 86
11.2
Archivos ................................................................................................................................................... 86
WGCOMP .......................................................................................................................................................... 86
WGCOMPT ........................................................................................................................................................ 86
12
AYUDA ..................................................................................................................... 87
12.1
Descripción ............................................................................................................................................... 87
12.2
Puntos de Enlace de la Ayuda...................................................................................................................... 87
12.3
Información Técnica ................................................................................................................................... 87
12.3.1
Estructura de Directorios para Guardar los Documentos ............................................................................ 87
12.3.2
Plantillas ............................................................................................................................................. 88
12.3.3
Archivos Involucrados........................................................................................................................... 88
12.4
Paneles de Administración de la Ayuda ......................................................................................................... 88
12.5
Migración de una Ayuda Existente ............................................................................................................... 88
12.5.1
Modo .................................................................................................................................................. 88
12.5.2
Ejecución Repetida de la Migración ......................................................................................................... 88
12.5.3
API WEBGATE400/WGFHLP01 ................................................................................................................ 88
12.5.4
Ejemplo de archivo HTML ...................................................................................................................... 91
13
UTILIDADES ............................................................................................................ 93
13.1
Extracción y Restaurado de Uno o Más Archivos de Pantalla: Comando WGDSPSND ........................................... 93
13.2
Borrado de Especificaciones Gráficas de Archivos de Pantalla .......................................................................... 94
13.3
Depuración de un Programa WG-Compilado .................................................................................................. 94
14
VERSIONES WEBGATE (RXXXX) ............................................................................... 96
15
Globalizar aplicaciones con el uso de WEBGATE400 ................................................ 97
15.1
Introducción ............................................................................................................................................. 97
15.2
Definiciones .............................................................................................................................................. 97
15.2.1
Globalización/Localización ..................................................................................................................... 97
15.2.2
Glyphs y caracteres (characters) ............................................................................................................ 97
Page 4 de 108
COMPILADOR WEBGATE – Manual de programmación
15.2.3
Script ................................................................................................................................................. 97
15.2.4
Set de caracteres (Character Set) ......................................................................................................... 97
15.2.5
SBCS/DBCS/MBCS ............................................................................................................................... 97
15.2.6
Code Page........................................................................................................................................... 97
15.2.7
Sistema de codificación de datos (Character Encoding) ............................................................................. 98
15.2.8
Unicode .............................................................................................................................................. 99
15.2.9
Universal Character Set (UCS) ............................................................................................................. 100
15.2.10
Unicode Trasformation Format (formato de transformación Unicode) (UTF) ............................................ 100
15.2.11
UTF-EBCDIC ................................................................................................................................... 100
15.3
LA ESTRATEGIA....................................................................................................................................... 102
15.3.1
Enfoque global ................................................................................................................................... 102
15.3.2
Consideraciones sobre los datos........................................................................................................... 102
15.4
Tácticas de Data Managment .................................................................................................................... 102
15.5
Proyectos piloto ....................................................................................................................................... 102
15.6
Globalización y iSeries.............................................................................................................................. 103
15.7
Definiciones de campos Unicode en Webgate400 ......................................................................................... 103
15.7.1
Asignación de un CCSID a través de la palabra llave TEXT ...................................................................... 103
15.7.2
CCSID Variable .................................................................................................................................. 103
16
Tabs Control .......................................................................................................... 105
16.1
Modificaciones en el display file ................................................................................................................. 105
16.1.1
Overlay............................................................................................................................................. 105
16.1.2
Definición del formato de control.......................................................................................................... 105
16.1.3
Definición de los campos en el formato de control .................................................................................. 105
16.2
Modificaciones al programa ....................................................................................................................... 107
16.3
Colocación del cursor ............................................................................................................................... 108
Page 5 de 108
COMPILADOR WEBGATE – Manual de programmación
INTRODUCCIÓN
La aplicación Webgate400 se ha desarrollado como un "SISTEMA PARA EL DESARROLLO DE INTERFAZ GRÁFICA".
El WG-Compilador (el cual actúa en realidad como un "pre-compilador") es una herramienta que le confiere el uso de nuevas
funciones básicas también en los programas antiguos. El objetivo de este producto no es tan sólo realizar una simple
conversión, sino suministrar varias funciones gráficas capaces de cumplir con las necesidades del mercado y del usuario en
los años venideros.
Aunque el WG-Compilador se ha utilizado con éxito en centenares de aplicaciones diferentes, escritas por multitud de
programadores diferentes, creemos que tan sólo hemos implementado el 80% del potencial técnico del manejo de archivos
de pantalla. En el restante 20%, es necesaria una cuidadosa valoración para decidir si desarrollar técnicas actualmente no
gestionadas, las cuales podrían sin embargo suponer un obstáculo para un uso completo de las funciones disponibles.
Básicamente, si desea aprovechar completamente el potencial de Webgate400, los archivos de pantalla y fuentes RPG deben
tener la siguiente configuración:


Los archivos de pantalla tiene que definirse externamente.
La paginación de subarchivos (n filas leídas y mostradas, en lugar de llenar completamente el subarchivo antes de su
visualización). Cuando es necesaria, si utiliza este método, puede perder (o limitar) la disponibilidad para visualizar
gráficos, realizar ordenaciones, agrupar y obtener jerarquías.
Page 6 de 108
COMPILADOR WEBGATE – Manual de programmación
1 INTERPRETACIÓN DEL ARCHIVO DE PANTALLA
1.1 Acciones Iniciales
En general, no es necesario modificar el código existente. Sin embargo, puede mejorar considerablemente la estética general
y funciones con poco esfuerzo, comunicando con las aplicaciones para PC y animando a los usuarios a actualizar el sistema y
el software. Por ejemplo, la mejor relación coste/beneficio se obtiene añadiendo marcos a las pantallas y llevándolas a 132
columnas cuando estén particularmente llenas.
Allí donde haya subarchivos, opcionalmente puede implementar funciones Jerárquicas Estáticas y Dinámicas.
Normalmente, no son necesarias acciones específicas en los programas RPG.
1.2 Limitaciones y Notas





La palabra clave DSPMOD definida en el formato de una pantalla no está soportada dado que no es posible
gestionar dinámicamente la ocupación del formato.
La palabra clave IGNORE si está combinada con un subarchivo, también debe estar combinada a su registro de
control de subarchivo y viceversa.
El WG-Compilador automáticamente crea una serie de variables dentro del fuente RPG a ser WG-Compilado: las
variables que comienzan por 'WG', 'WR', 'WP', 'WT', 'WL', 'WE', 'WC',' WW' no pueden utilizarse, con el objeto de
prevenir problemas durante la fase de conversión.
Hay ciertas limitaciones con los nombres de las variables de pantalla o variables dentro del programa a WG-Compilar
y los formatos de pantalla. Los siguientes nombres no pueden usarse: KIDX, K18P18WG, K18toFMT, K18WG,
P18WG, DSPFNWG, FMTNWG, KTYPEWG, SFLRRNWG, DATAXH, FMTTYPE, wWIN, RECA, FMTIND99, SFLPAG,
SFLTOPRR, SFLLSTRR, SFLEOF, Q512, Q58, QMSG, Q59to382, Qw, Qwtop, Qwleft, Qwheight, Qwweigth, QdspfLIB,
QthisPgm, Qerrmsg, QcsrFmt, QcsrFld, QcsrPosF, QcsrLin, QcsrCol, QcsrLinW, QcsrColW, QcsrSFLr, Qdummy, IND24,
IND99, FMTCYCL, wgs*, win*, FMTFLDSZ, I, F, readcRRN, SFLNXTin, memIND, dspfLIB, memCOD, memWGfmt,
IND24DS, IND99DS, MSGID7, MSGLIB, MSGFIL, MSGDTA, MSGTXT, MSGFLD, A1, A13, i8, memKIDX, memH,
memRRN, B0, B1, B2, B3, B4, B5, B6, B7, IDXAPI, IDXREADC, INACTION, LICRR, RCVMSG, ADDMSG, ADDMSGID,
RTVMSGID, ENDJOB, RUNFMT, SEXEC, DATAXD, dSFLC, dSFLEOF, dFMTIND9, dFMTFLD, RRN, $ARR, $ARR3, $SPEC,
$SPEC2, $COMMENT, $SPACE, $DSPF, $Fdesc, $Dname, $Dfrom, $DfromN, $Dto, $DtoN, $Dtype, $Ifmt, $INFDSn,
$INFDSds, $Ifrom, $Ifrom29, $Ifrom30, $Ito, $Ito36, $Ito37, $Itype, $Idec, $IBLANK1, $InputP, $IfmtInd, $IfldExt,
$IBLANK2, $IBLANK3, $IfldInt, $Ifldind, $WORKSTN, $Fkwords, $IN01, $condition, $condOR, $LINE, $F1, $CODE,
$F2, $RESULT, $HI, $LO, $EQ, memSRCDTA, mIfldExt, mIfldInt, mF1, WDTA, $WBEF, $WSPEC, $WCOM,
$WcondOR, $Wconditio, $Wproc, $NAME, $WIN01, $WLINE, $WF1, $TYPE, $WCODE, $LENGH, $WF2, $WF2L,
$WTYP, $DECIM, $WINZ, $WRESULT, $WLEN, $WDEC, $WHIloEQ, $WHI, $WLO, $WEQ, $WCOMM, TWINX,
WINspec, WGWLINP, WGWCOLP, WGWLIN, WGWCOL, $$HLE, $$HI, $$LO, $$EQ, SCRn, SCRa, WGWn, WGWa,
WGBUFFa, WGBUFF, WGTOa, WGTO, WGFLDB, WGFLDBa, WGFLDP, WGFLDPa, WGSFLP, WGSFLPa, K2a, K2,
WGDSmax, WGDSmaxa, T24, T24p, T24A, T300, T100, TIND, T405, TDSP, TDSPl, TDSPu, TDSPi, TDSPp, TDSPpr,
TfDSP, TfDSPl, TfDSPu, TfDSPi, TfFMT, TfFMTr, TfFMTs, TfFMTi, TfFMTw, TfFMTa, TfPAGv, TfPAGa, TfTYP, TfSFLr,
TfWIN, TfWspe, TfVLDK, Tffir, Tflas, TsflE, TfSHAR, TfRRN, TfRRC, TfPAG, TfTOP, TfTOPW, TfLST, TfEOF,
TdspfINDDS, NOTE, TF, TDUI, TDQ, TDM, TP, TC, TCX, TbSND, TSND, TRCV, TaRCV, RMVB, CLRK24, TSNDm,
TEXFR, TRUNF, TINDDS, TZIPI, TCXC, TGETLB, TSHARE, TRMVC, TLST, TCP, TINK24, TDFTa, TDFTn, LC, UC,
bnumeric.
Es preferible evitar cadenas de caracteres con los caracteres "H", "F", "D", "I", "C", "O" (también en minúscula) en
las Matrices en Tiempo de Compilación en su posición 6, porque en ciertos casos, pueden confundirse con caracteres
que definen especificaciones durante la fase de conversión.
Page 7 de 108
COMPILADOR WEBGATE – Manual de programmación
1.3 Palabras Clave Soportadas
A continuación hay una lista de palabras clave que son emuladas por Webgate400:
CAnn
REF
CFnn
REFFLD
CHANGE
ROLLDOWN
CHCCTL
ROLLUP
CHECK
RTNCSRLOC
CHIOCE
SETOF
CLRL
SETOFF
CMP
SFL
CNTFLD
SFLCLR
COLOR
SFLCSRRRN
COMP
SFLCTL
CSRLOC
SFLDSP
DATE
SFLDSPCTL
DFT
SFLEND
DFTVAL
SFLINZ
DSPATR
SFLLIN
DSPSIZ
SFLMSG
EDTCDE
SFLMSGID
EDTWRD
SFLNXTCHG
ERRMSG
SFLPAG
ERRMSGID
SFLRCDNBR
ERRSFL
SFLSIZ
INDARA
SLNO
MLTCHCFLD
SNGCHCFLD
MSGCON
SYSNAME
MSGID
TIME
OVERLAY
USER
PAGEDOWN
VALUES
PAGEUP
VLDCMDKEY
PROTECT
WINDOW
RANGE
WDWTITLE
Page 8 de 108
COMPILADOR WEBGATE – Manual de programmación
1.4 Interpretación de las Constantes que Describen Teclas de Función
Las constantes que describen teclas de función se interpretan basándose en la configuración de diseño ejecutada a nivel de
proyecto para formatos de pantalla completa y ventana:

El número de filas para estas constantes puede especificarse empezando desde la parte inferior.

Se especifican los caracteres iniciales, por ejemplo F03 o CMD03, etc.

Si todos ellos están en la misma cadena de caracteres, necesitan separarse con dos espacios en blanco; si cada
constante es una cadena de caracteres simple, entonces sólo se necesita un carácter de separación.

Los campos ocultos o de salida puede interpretarse como teclas de función: deben tener el TEXT <w>*fkeyvar</w>
y pueden situarse en cualquier lugar de la pantalla.

El TEXT <w>*nofkey</w> puede añadirse a un formato haciendo posible ignorar las condiciones establecidas a nivel
de proyecto en cuanto a la interpretación de las filas inferiores de dicho formato.
1.5 Interpretación de los Atributos de Visualización de Campo (DSPATR y
COLOR)
Cuando están habilitados los Atributos de Color, tienen prioridad sobre otros atributos gráficos, en caso contrario tienen
prioridad los Atributos de Pantalla.
1.5.1 Atributos de Color
Atributo de
vídeo inverso
(RI)
Atributo de
Color
Texto
Fondo
OFF
BLU (Azul)
Color de texto RGB(0, 0,
255)
Ninguno
OFF
GRN (Verde)
Color de Texto RGB(51,149,
53)
Ninguno
OFF
RED (Rojo
Color de texto RGB(0, 0,
255)
Ninguno
OFF
PNK (Rosa)
Color de texto RGB(255, 0,
255)
Ninguno
OFF
YLW (Amarillo)
Color de texto RGB(252, 128,
3)
Ninguno
OFF
TRQ (Turquesa)
Color de texto RGB(3, 188,
250)
Ninguno
ON
BLU (Azul)
Color de texto RGB(0, 0,
255)
Color de fondo RGB(221, 221,
255)
ON
GRN (Verde)
Color de texto RGB(51, 149,
53)
Color de fondo RGB(221, 255,
221)
ON
RED (Rojo)
Color de texto RGB(0, 0,
255)
Color de fondo RGB(255, 207,
159)
ON
PNK (Rosa)
Color de texto RGB(255, 0,
255)
Color de fondo RGB(255, 221,
255)
ON
YLW (Amarillo)
Color de textoRGB(252, 128,
3)
Color de fondo RGB(255, 255,
221)
ON
TRQ (Turquesa)
Color de texto RGB(3, 188,
250)
Color de fondo RGB(222, 254,
253)
Page 9 de 108
COMPILADOR WEBGATE – Manual de programmación
1.5.2 Atributos de Pantalla
Atributo de
alta
intensidad
(HI)
Atributo de
vídeo
inverso
(RI)
Atributo de
subrayado
(UL)
Atributo de
parpadeo (BL)
ON
ON
ON
ON
ON
ON
ON
ON
ON
ON
ON
ON
Texto
Fondo
ON
Color de texto
Ninguno
Color de texto
Ninguno
Color de texto
Color de fondo
Color de texto
Ninguno
ON
Color de texto
Color de fondo
ON
Color de texto
Color de fondo
ON
Color de texto
Ninguno
ON
ON
Atributo de
separador de
columna
(CS)
Blanco
Color de fondo
ON
Color de texto
Ninguno
ON
Color de texto
Color de fondo
ON
ON
Color de texto
Color de fondo
ON
ON
Color de texto
Color de fondo
ON
ON
ON
Color de texto
Color de fondo
ON
ON
ON
Blanco
Color de fondo
ON
ON
ON
Color de texto
Ninguno
ON
Page 10 de 108
ON
COMPILADOR WEBGATE – Manual de programmación
2 ELEMENTOS GRÁFICOS INCRUSTADOS DE IBM
En modo 5250, estas palabras clave están optimizadas para el emulador Client-Access de IBM. Tienen una estructura común:

Hay un campo que representa al administrador de objetos únicos;

Existe un campo de control oculto vinculado a cada objeto (opcional en botones de radio);

Hay una serie de atributos que acompañan al campo administrador y al campo de control, y define las propiedades
de visualización del objeto.
Vínculo a IBM – Documentación de referencia DDS:
http://publib.boulder.ibm.com/pubs/html/as400/v4r5/ic2924/info/db2/rbafpmst02.htm
Ejemplo:
CALL WEBGATE400/RADIOC (desde 5250 ó modo gráfico)
Los fuentes se encuentran en WEBGATE400/QDDSSRC
RADIOD
WEBGATE400/QRPGLERC
RADIO
WEBGATE400/QCLSRC
RADIOC
2.1 Botón de Radio
Es un campo que contiene un número fijo de opciones y el usuario puede escoger sólo una: Se utiliza cuando tiene que
indicar una elección donde las diversas opciones disponibles son mutuamente excluyentes. El campo aparece en la pantalla
como una lista vertical de opciones con un campo de entrada a la izquierda, o como un grupo de botones.
Las palabras clave obligatorias y las gestionadas por el WG-Compilador son las siguientes:

SNGCHCFLD (Campo de selección única): Este es un campo de tipo Y (numérico), de tamaño 2 con 0 decimales.
Su posición identifica la posición de la primera opción. En entrada contiene el índice de la opción escogida (0 si no se
ha elegido nada); en salida contiene la opción predeterminada.
Los parámetros no son obligatorios: Cuando no están establecidas, las opciones se presentan en una columna
simple. Los parámetros gestionados por el WG-Compilador son: *NUMCOL, *NUMROW, *GUTTER. El parámetro
*NUMCOL contiene el número de columnas en las que se distribuyen las opciones. Debe ser un entero positivo,
capaz de contener todas las opciones.
Por ejemplo, las opciones:
Opción 1
Opción 2
Opción 3
Opción 4
Opción 5
Opción 6
Si introducimos *NUMCOL = 2, se distribuirán de la siguiente forma:
Opción 1
Opción 2
Opción 3
Opción 4
Opción 5
Opción 6
De forma similar, el parámetro *NUMROW indica el número de filas en las que se mostrarán las opciones. Si se entra
*NUMROW = 2, las opciones se mostrarán en dos columnas:
Opción 1
Opción 3
Opción 5
Opción 2
Opción 4
Opción 6
El parámetro *GUTTER indica el número de espacios vacíos que deben situarse entre cada columna (si se ha
indicado el parámetro *NUMCOL) o entre filas (si se especificado el parámetro *NUMROW). Debe haber al menos
una de las dos. Si no se especifica entonces se sumen tres espacios.

CHCCTL (Control de opción): Se utiliza en un campo de selección para verificar si las opciones son válidas. La
sintaxis es CHCCTL(número-opción &campo-control). El número de opción es obligatorio y puede tener un valor
desde 0 a 99. El campo de control es obligatorio y especifica el nombre de una variable (precedido por el carácter
"&"), la cual está definida en el mismo formato, Y, longitud 1, 0 decimales y uso H (oculto). A continuación se
indican los valores del campo de control y sus significados:

Valor
Significado en salida
Significado en entrada
0
Disponible
No seleccionado
1
Seleccionado
Seleccionado
2–3–4
No disponible (campo en gris)
CHOICE (Opción del campo de selección): Esta palabra clave define una opción para un campo de selección. La
sintaxis es CHOICE(número-elección clave-elección). El símbolo ">" hace posible habilitar un acceso directo
presionando la tecla Alt junto con la letra subrayada (la letra subrayada es la que sigue inmediatamente al símbolo
">").
Ejemplo:
Page 11 de 108
COMPILADOR WEBGATE – Manual de programmación
A
INT01H
1Y 0H
A
A
INT02H
OPINTV
1Y 0H
2Y 0B 13 45SNGCHCFLD
A
A
CHCAVAIL((*COLOR BLUE))
CHOICE(1 '>> >Sì')
A
CHCCTL(1 &INT01H)
A
A
CHOICE(2 '>> >No')
CHCCTL(2 &INT02H)
2.2 Casilla de Selección
Este es un campo que contiene un número establecido de opciones y el usuario puede elegir una o más de ellas. El
campo aparece en la pantalla como una lista vertical de opciones con un campo de entrada a su izquierda o como un grupo
de botones.
Las palabras clave obligatorias y las gestionadas por el WG-Compilador son las siguientes:

MLTCHCFLD (Campo de selección múltiple): Este es un campo de tipo Y (numérico), de tamaño 2 con 0
decimales. Su posición identifica la posición de la primera opción. En entrada contiene el número de opciones
escogidas (0 si no se ha elegido ninguna); en salida contiene la opción predeterminada. Su definición y modo son los
mismos que para SNGCHCFLD.

CHCCTL (Control de opción): Descrito anteriormente.

CHOICE (Opción del campo de selección): Ya descrito con anterioridad.
Ejemplo:
A
OPSELV
2Y 0B
5
4MLTCHCFLD
A
A
CHCAVAIL((*COLOR BLUE))
CHOICE(1 '>Prima selezione')
A
CHCCTL(1 &SEL01H)
A
A
CHOICE(2 '>Seconda selezione')
CHCCTL(2 &SEL02H)
A
A
CHOICE(3 '>Terza selezione')
CHCCTL(3 &SEL03H)
A
A
CHOICE(4 '>Quarta selezione')
CHCCTL(4 &SEL04H)
2.3 Cuadro de Texto
Se trata de un campo independiente que el usuario ve como una serie de campos durante la fase de entrada y edición. El
formato del texto es más atractivo que un campo único extendiéndose a lo largo de varias líneas.
Las palabras clave son:

CNTFLD (Campo de entrada continua): Es un campo de tipo alfanumérico que tiene el mismo tamaño que la
longitud total del texto. El número de columnas es un parámetro obligatorio y no puede ser mayor el tamaño total
de la pantalla o ventana.
NOTA: No puede utilizarse en subarchivos.
Ejemplo:
Page 12 de 108
COMPILADOR WEBGATE – Manual de programmación
A
NOTEV
60A
B 17 56CHECK(LC)
A
A
CNTFLD(020)
DSPATR(HI)
El campo de 60 caracteres NOTEV se muestra en tres filas de 20 caracteres.
Nota: Webgate400 se asegura de que el espacio ocupado en la pantalla y el número de caracteres atribuidos coinciden con
5250, visto que la alineación del texto no está garantizada.
2.4 Botón Pulsador
Se utiliza para definir una opción por medio de un botón o una tecla de mandato entre "<>". Las palabras clave son:

PSHBTNFLD (Campo de botón pulsador): Es un campo que contiene un número establecido de botones que el
usuario puede utilizar. Se define como un campo Y (numérico), de tamaño 2 con 0 decimales. El campo contiene el
número de opciones efectuadas como entrada, y como salida no tiene valor. Los parámetros gestionados por el WGCompilador son: *NUMCOL, *NUMROW y *GUTTER.

PSHBTNCHC (Opción de botón pulsador): Describe una opción para el botón pulsador. La sintaxis es
PSHBTNCHC(número-opción texto-opción)
Ejemplo:
A
BUTF01
2Y 0B 22
4PSHBTNFLD((*NUMCOL 2))
A
A
CHCAVAIL((*COLOR BLUE))
PSHBTNCHC(1 'F3->Uscita')
A
A
A
PSHBTNCHC(2 'F5->Riprist')
PSHBTNCHC(3 'F6->Noused')
PSHBTNCHC(4 'F21->Noused')
Nota: La palabra clave CHCCTL definida en "Botón de radio" y "Cuadro de selección" también se puede utilizar con el "Botón
pulsador".
Por ejemplo:
A
A
XBUTENT
2Y 0B 14
8PSHBTNFLD((*NUMROW 2))
CHCAVAIL((*COLOR RED))
A 10
A
PSHBTNCHC(1 '>Ignorar y seguir' CF01)
A
A 11
CHCCTL(1 &CTLF1)
PSHBTNCHC(2 '>Confirmar' CF02)
A
A 12
CHCCTL(2 &CTLF2)
PSHBTNCHC(3 '>Reintentar' CF03)
A
A 13
A
CHCCTL(3 &CTLF3)
PSHBTNCHC(4 '>Salir' CF04)
CHCCTL(4 &CTLF4)
2.5 Título de Ventana
La palabra clave WDWTITLE le permite ver texto (constante o variable) en el borde de una ventana:
Page 13 de 108
COMPILADOR WEBGATE – Manual de programmación
WDWTITLE((*TEXT 'Titolo della
window') *TOP)
WDWTITLE((*TEXT 'F3 Fine')
*BOTTOM)
En 5250, si junto al texto se entra el parámetro *TOP, este se muestra en el borde superior de la ventana; si se indica
*BOTTOM, el texto se muestra en el borde inferior de la ventana. Desde un punto de vista gráfico, el texto al cual se le haya
especificado *TOP se interpretará como título de ventana, y el texto al cual se haya codificado *BOTTOM se interpretará como
teclas de función y se situará en la barra de herramientas.
Page 14 de 108
COMPILADOR WEBGATE – Manual de programmación
3 ELEMENTOS GRÁFICOS ESPECÍFICOS DE WEBGATE400
Hay muchos elementos gráficos que no se definen a través de palabras clave nativas de IBM y que son específicas del WGCompilador de Webgate400: El WG-Compilador reconoce secuencias de caracteres específicas en el atributo TEXT del campo
de la pantalla. Definir elementos en el atributo TEXT del campo los convierte en transparentes para la pantalla 5250: La
intervención influye solamente en la pantalla gráfica mientras que el aspecto de la 5250 permanece sin cambios.
El soporte para la programación se suministra a través de las funciones "Tutorial Interactivo" y "Fuentes del Tutorial
Interactivo" al conectarse a Webgate400 con el perfil WEBGATECVT. Proporcionan una apreciación global de los TEXTS
existentes. Puede utilizar estas funciones para copiar sintaxis e introducirla en los campos, verificando que son correctos.
Puede definir la sintaxis general que debe utilizar el WG-Compilador para reconocer las especificaciones.
1. La cadena de caracteres TEXT SIEMPRE empieza con los caracteres <w> (o <W>) y finaliza con </w> (o
</W>).
2. Los caracteres que identifican el tipo de objeto (LINK, IMG, SCROLL,...) van o bien precedidos por el carácter "*"
(ejemplo, *IMG) o están situadas entre los caracteres "<" y ">" (ejemplo, <IMG>).
3. A continuación se muestran los atributos más frecuentes:

l: Línea (número de caracteres)

c: Columna (número de caracteres)

w: Ancho (número de píxeles)

h: Altura (número de píxeles)

v: Valor de variables de pantalla

n: Número
4. Si se utiliza <…> para abrir el TEXT, entonces el código de cierre de la sintaxis es necesario: Por ejemplo, </IMG>.
Nota:
1.
2.
3.
Preste atención a los TEXT con una longitud superior a 50 caracteres: el mantenimiento de pantallas del SDA los
trunca.
Si en un subarchivo se utilizan elementos gráficos, suele ser suficiente con especificar la columna. Solo es útil
especificar la fila cuando en subarchivos multifila desee que se muestre el elemento gráfico en una fila diferente de
la primera.
Allí donde no sea imprescindible, uno de los dos parámetros entre anchura ("w:") y altura ("h:") puede ignorarse. Su
valor se establece automáticamente al mismo que se haya especificado en el otro parámetro.
3.1 Riferimento msgid per text lunghe
Está disponible la text:
Page 15 de 108
COMPILADOR WEBGATE – Manual de programmación
<MT>MsgFile/MsgId</MT>
que permite introducir una text larga en un msgid.
3.2 Ignorar Campo Gráfico
El TEXT
*ignore (o *IGNORE)
hace que los gráficos del campo definido en el formato de pantalla se ignoren y no se muestren.
A
DCODCAR
13A
0 13
3
TEXT('<w>*IGNORE</w>')
3.3 Ocultar Campo Gráfico
El TEXT
*hide (o *HIDE)
hace que el campo definido en el formato de pantalla sea considerado en el programa WG-Compilado, pero que no se envíe al
applet, de forma que es ignorado.
Este TEXT es útil cuando los subarchivos tienen muchos campos ocultos que no son importantes desde un punto de vista
gráfico. Los datos son grabados, pero el CGI no los envía a la pantalla, aligerando considerablemente la escritura y lectura del
subarchivo.
A
DCODCAR
13A
0 13
3
TEXT('<w>*hide</w>')
3.4 Definiciones Layout
Existen unas series de TEXT que se pueden combinar con un campo o con una constante del display file, que permiten definir
esos campos como titúlo, company, estatus para el formato vídeo.

TITÚLO
*title (o *TITLE)

COMPANY
*company (o *COMPANY)

ESTATUS
*status (o *STATUS)
Por ejemplo:
A
A
5 18‘Gestión Anagráfica Artículos’
TEXT('<w>*title</w>')
3.5 Ignora definiciones Layout por proyecto
Existen unas series de TEXT que pueden ser añadidas a nivel de formato del display file, que permiten ignorar la identificación
automática del Layout definido en el proyecto de conversión del display file.

TITÚLO
*notitle (o *NOTITLE)

COMPANY
*nocomp (o *NOCOMP)

ESTATUS
*nostatus (o *NOSTATUS)

TECLAS FUNCIÓN
*nofkey (o *NOFKEY)
A
TEXT('<w>*notitle</w>')
O también encadenadas:
A
TEXT('<w>*notitle*nofkey</w>')
3.6 Tecla funcional variable
La TEXT
*fkeyvar (o *FKEYVAR)
Permite definir un campo variable como tecla funcional.
3.7 Copyright
El TEXT
Page 16 de 108
COMPILADOR WEBGATE – Manual de programmación
*cpyright (o *CPYRIGHT)
en un campo de un formato de pantalla mueve el contenido para que reemplace el texto "Powerd by IBM ISeries" (si se ha
eliminado en la configuración del runtime).
3.8 Visualiza en gráfica campo hidden (oculto)
La TEXT
<sh>L:Riga C:Colonna E:edtcde</sh>
Sirve para visualizar en la gráfica un campo que en el 5250 ha sido definido hidden.
Donde

L: es el número de la línea donde será visualizado el campo

C: es el número de la columna

E: es el código para editar (sólo si el campo es númerico)
Será posible añadir esta text sólo a campos de subarchivo.
La text se puede combinar con la keyword<h> para definir un encabezamiento del campo a subarchivo: <H> </H> <SH>
</SH>.
Notas:
Hay que definir la columna exacta para evitar superposiciones.
Si el subarchivo se encuentra en más de una línea, hay que definir la línea también.
Ejemplo:
<H>Header</H><SH>C:3 E:2</SH>
3.9 Definir cambio de teclado
La text:
<KS>M</KS>
Permite volver a definir en gráfica el atributo de „cambio teclado” (keyboard shift) del campo en pantalla.
3.10
Web Browser
Combinada con un campo (hidden o visualizado), permite visualizar una página html cuyo valor se define con el programa o a
través de MSGID.
<W>*WB L:07 C:30 W:120 H:30 </W>
O bien
<W>*WB HIWEBB </W>
Cuando la text está combinada con un campo no hidden, mantiene sus posiciones y por lo tanto no es necesario especificar
los parámetros “l:” y “c:”.
Añadiendo después del valor de alto (h) y de amplitud(w) el carácter “E”, se remite a la applet la optimización del campo,
conforme a la pantalla corriente.
La referencia a un campo hidden dentro de la text (segunda sintaxis) permite gestionar dinámicamente todos los parámetros
de definición de la ventana.
3.11
La TEXT
Page 17 de 108
Expansión horizontal y vertical de un marco (frame)
COMPILADOR WEBGATE – Manual de programmación
*we (o *WE)
permite deferir a la applet la expansión horizontal de un marco(constante o variable) según la pantalla corriente.
De la misma manera,
*he (o *HE)
habilita la expansión vertical a runtime.
3.12
Valorización campos hidden a través de MSGID
Un campo hidden en 5250 tiene que ser valorizado de programa. Para permitir la valorización a nivel de display file, se ha
introducido la text
<W><MI>Nome MsgF/MsgID</MI></W>
El valor del msgid se encuentra activamente cuando se ejecuta el programa.
3.13
Valorización de campos hidden a través de MSGCON
A través de la text
<W><MC>Nome MsgF/MsgID</MC></W>
se puede aplicar el concepto de MSGCON a campos hidden. El valor del msgid se encuentra estáticamente en fase de
conversión del display file.
3.14
Valorización de campos hidden a través de DEFAULT
La text:
<DF>Valore</DF>
permite asociar una cadena constante de default a un campo hidden directamente en el display file.
3.15
Cabecera de Columna de Subarchivo
Hay un atributo especial, utilizado para forzar el encabezamiento de un campo en un subarchivo. La sintaxis es la siguiente:
<h>Heading</h>
Por ejemplo, si quiere que se muestre la cabecera 'Cod.Item' para el campo "item code" (definido en el subarchivo como
DCODAR), entonces debe asociarle un TEXT como el siguiente:
A
DCODAR
124A
0 24
5
TEXT('<w><h>Cod.Item</h></w>')
3.15.1 Encabezamientos con referencia a campo presente en otro formato
Hay una utilización particular de la TEXT <H> cuando se hace específica referencia ( hidden o output) a un campo presente
en un formato que será emitido en combinación con el subarchivo: este campo se convierte en el encabezamiento de la
columna, y si es de output (salida), se esconde automáticamente:
<h>CTL01.HDESC</h>
3.15.2 Cabeceras Compartidas (//)
Es posible agrupar varias cabeceras:
A
SFXSC1
4
2O 22 59TEXT('<w><h>Sconto//Articolo</h></w>')
A
SFXSC2
4
2O 22 66TEXT('<w><h>Sconto//Cli/For</h></w>’)
A
SFXSC3
4
2O 22 73TEXT('<w><h>Sconto//Ordine</h></w>')
Cualquier cosa que venga antes de los caracteres "//" en la cabecera de una columna de subarchivo, se convierte en la
cabecera de dos (o más) columnas cuando se repite en varias columnas consecutivas.
Page 18 de 108
COMPILADOR WEBGATE – Manual de programmación
3.16
Marcos
Los marcos son cajas que permiten agrupar y organizar información en la pantalla. En una pantalla organizada de esta
manera, puede introducir muchos campos sin reducir la legibilidad, haciendo así más fácil entender su contenido.
Es posible definir marcos variables y marcos constantes:

Para marcos variables (campos de salida con valores suministrados por el programa) es suficiente añadir el TEXT
'*FRAMEVAR';

Los marcos constantes no están definidos por un TEXT: Son simples cadenas de caracteres abiertas por la izquierda
con el carácter "[" (carácter abrir corchete), "I" (letra i mayúscula) subrayado (DSPATR(UL)) y cerrado por la
derecha con el carácter "]" (carácter cerrar corchete) o "I" (letra i mayúscula) también subrayado (DSPATR(UL)).
En ambos casos las siguientes reglas para el uso de marcos involucran solamente a la pantalla:

El final del marco se identifica con la primera fila vacía que se encuentre yendo hacia la parte inferior de la pantalla,
perteneciente al formato de registro actual, y la longitud será igual a la distancia entre las partes superior izquierda
y derecha.

Es necesaria una columna en blanco a lo largo de toda la altura del marco, tanto por la izquierda como por la
derecha. Las columnas 1 y 80 (ó 132 en pantallas de 132 columnas) deben estar vacías siempre.

Pueden crearse marcos dentro de otros marcos.

Una constante oculta (por ejemplo, '*' con DSPATR(ND) o indicadores 99N99 no se consideran un espacio en blanco
y esto permite alargar el marco dándole una mejor apariencia.

El texto entre los caracteres "[" y "]" (o el campo de salida con TEXT '*FRAMEVAR' asociado) se convierte en el título
del marco; sus atributos de color o video inverso se mantienen.
Nota:
1.
2.
Para definir un marco sin tener que preocuparse por el CCSID es posible usar el carácter subrayado 'I' en lugar de
los corchetes ('[' y ']'), los cuales tienen un valor binario que cambia según el CCSID.
Los saltos efectuados con la tecla de tabulador cambian su manera de comportarse: No son lineales, dado que
primero se pasa por todos los campos existentes dentro de un marco.
3.17 Alineación constante o campo de output
La TEXT
<a>C/R</a>
permite modificar con respecto del default (=izquierda) la alineación de una constante o de un campo de output. Los
parámetros son:
C: alineación en el centro
R: alineación a la derecha
El resultado en pantalla es el siguiente:
En 5250:
En gráfica:
3.18 Modifica ocupación campo en pantalla
La TEXT
<sx>xxxx</sx>
permite diferenciar la ocupación horizontal de un campo en pantalla con respecto a su dimensión. El parámetro xxxx tiene
que ser un númerico 4.0 e indica esta nueva ocupación.
Esta text permite recuperar espacio en pantalla sin renunciar a la dimensión deseada de los campos.
Ejemplo:
Los campos en pantalla son ambos largos 50 caracteres, pero el primero se combina con la text:
Page 19 de 108
COMPILADOR WEBGATE – Manual de programmación
<sx>0020</sx>
y el segundo con la text:
<sx>0100</sx>
Aquí el resultado en gráfica:
3.19
Se usan




HiperVínculos
para:
Ejecutar un programa
Mostrar un objeto
Procesar una sentencia SQL
Ir a una URL
Es preciso definir dos campos en el formato de pantalla:

Un campo oculto al cual se le da un valor por programa, con la vía de acceso al vínculo

Un campo con el TEXT *LINK (o <LINK>) y una referencia al campo oculto: Si el campo es una constante el
vínculo es fijo; si es una variable el vínculo puede cambiar.
A
A
LINKH
DBOAT
100A
35A
H
O
7
2TEXT('<w>*link c:LINKH </w>')
Pueden definirse en formato normal de pantalla normal y en subarchivo.
El campo oculto y el campo variable (si está presente) reciben un valor desde el programa RPG.
LINKH
TIPO
'http://www.webgate400.com'
URL
EJEMPLO
'/webgate400/images/dds.gif'
URL – IFS Servidor iSeries
'exec://CALL PGM(ABCV) PARM('1' 'DD')'
Llamada a un RPG en nueva ventana
'exeb://CALL PGM(ABCV) PARM('1'
'DD')'
Llamada a
pantalla)
'exei://CALL PGM(ABCV) PARM('1' 'DD')'
Llamada a un RPG, el cual genera una
salida que gestionar (ver inserción de
script)
'sqli:// SELECT'
SQL en una nueva ventana
un
RPG
en
batch
(sin
Ejemplo de vínculo constante:
DDS:
A
LINKH
255A
A
A
H
9
2'Ir a Google'
TEXT('<w> *link v:LINKH </w>')
RPG:
C
Ejemplo de vínculo variable:
DDS:
Page 20 de 108
EVAL
LINKH = 'http://www.google.com'
COMPILADOR WEBGATE – Manual de programmación
A
LINKH
255A
H
A
A
TEXT
50A
O
9
2
TEXT('<w> *link v:LINKH </w>')
RPG:
C
C
EVAL
EVAL
3.20
LINKH = 'http://www.google.com'
TEXT = 'Ir a Google'
Texto Desplazable
Este es un texto que se desplaza en un área fija de la pantalla. Es útil para mostrar información extensa o menús de opción
en una cantidad limitada de espacio.
Se define en la pantalla por medio de un campo oculto con la palabra clave '*SCROLL' en el TEXT.
A
SCROLH
300A
H
TEXT('<w>*scroll l:3 c:106 h:1 w:20</w>')
El programa da un valor al contenido del campo oculto, pasándole la cadena de caracteres que hay que mostrar.
A través del programa también es posible establecer el color de los caracteres y el color de fondo. Los siguientes colores
están disponibles: BLU, GRN, PNK, RED, TRQ, WHT, YLW. La sintaxis para definir un color es la siguiente:
bc="RED"
color de fondo
tc="TRQ"
color de texto
También es posible hacer que el texto se interprete como un hípervínculo, incluso múltiple, permitiendo de esta forma el
desarrollo de un verdadero menú de funciones. La sintaxis es la siguiente:
<A tc… HREF: … > texto a mostrar </A>
Ejemplo:
A través de las DDS se define el campo con el texto desplazable en la fila 2, columna 5, altura 1 carácter, anchura visible con
50 caracteres.
A
SCROH
255A
H
TEXT('<w> *scroll l:2 c:5 h:1 w:50</w>')
El contenido del campo oculto se define por medio del programa RPG.
Caso I: Texto constante sin colores
C
EVAL
SCROH = 'Texto desplazable'
Caso II: Texto constante con caracteres en color rojo
C
EVAL
SCROH='<A tc="RED">Texto desplazable</A>'
Caso III: Vínculo a un sitio web
C
EVAL
SCROH='<A HREF="www.google.com">Google</A>'
verá el texto "Google" desplazándose por la pantalla y con el vínculo http://www.google.com.
Caso IV: Enviar correo electrónico
C
C
EVAL
SCROH='<A HREF="mailto:[email protected]">+
mail webmaster</A>'
Caso V: Se llama a un programa, el texto es verde y su fondo es rojo
C
EVAL
SCROH='<A HREF="exec://CALL WGICONER" bc= + C
"RED" tc="GRN">Lista de iconos</A>'
Page 21 de 108
COMPILADOR WEBGATE – Manual de programmación
3.21
Imágenes
Las imágenes pueden utilizarse con propósitos puramente estéticos o como botones para ejecutar comandos o mostrar
animaciones.
Una imagen se define en la pantalla utilizando un campo oculto marcado con el TEXT *IMG. Al campo se le da el valor por
programa, junto con la vía de acceso en la que se encuentra la imagen.
Es posible ver diversos tipos de imágenes (fotos, dibujos, gráficos, archivos de Flash,...), tanto en formato normal como en
subarchivo.
Ejemplo 1: Imagen sencilla
A
XXPALNK
256A
H
TEXT('<w> *img l:12 c:32 w:9 h:9 </w>')
Ejemplo 2: Imagen en un subarchivo, con texto para la cabecera del subarchivo
A
XXPALNK
256A
H
TEXT('<w><h>L</h>*img c:32 w:9 h:9</w>')
H
TEXT('<w>*link v:XXXPALNK *img l:12 c:32-A
Ejemplo 3: Imagen con un vínculo
A
XXPALNK
w:9</w>')
256A
Leyenda:
c (columna)
Columna donde está ubicado el campo
l (línea)
Fila donde se encuentra el campo (no necesaria en un subarchivo)
h (altura)
Altura en píxeles
w (anchura)
Anchura en píxeles
3.22
Iconos de Texto
Son pequeños símbolos utilizados para describir estados o situaciones y permiten a la aplicación enviar información de una
forma inmediata e intuitiva.
Se definen en la pantalla por medio de un campo oculto marcado con el TEXT *IMG, el cual rellena el programa con los
códigos de los iconos que tiene que mostrar (los disponibles vienen junto con Webgate400). Es posible definir varios iconos
en el mismo campo separados por el carácter ";" (punto y coma); los parámetros de cada icono deben estar separados por el
Page 22 de 108
COMPILADOR WEBGATE – Manual de programmación
carácter ":". Los nombres de los iconos van precedidos por el carácter ' #' o por el carácter ' %' (si quiere que la definición
sea independiente del CCSID).
Pueden utilizarse en formatos de pantalla sencillos y en filas de subarchivo. Son extremadamente ligeros de procesar y no
sobrecargan los recursos del sistema.
Estos iconos se puede utilizar simplemente para visualizarlos, pueden mostrarse como indicadores de estado o pueden
definirse como botones (TEXT *BMG) para cambiar el valor de un campo, o pueden asociarse a un comando (definiéndolo
como "COMMAND ICON"; si desea más información sobre estos últimos, vea la sección que trata sobre ellos en este manual).
Desde el menú principal del usuario WEBGATECVT, llamando a la función "Catálogo de Iconos de Texto", se muestra la lista
de iconos disponibles juntamente con su código.
Para cambiar las descripciones predeterminadas se puede modificar el archivo XFIMG (en la biblioteca de archivos de
pantalla) y entrar una descripción (también cambiando el idioma si fuera necesario).
Ejemplo:
En el siguiente ejemplo tres iconos de estado se definen en un subarchivo empezando a partir de la columna 10.
DDS:
A
ICOH
50A
H
TEXT('<w><h>S</h>*img c:10 n:3 </w>')
RPG:
C
EVAL
ICOH='%0010; %0011; %0012'
Ejemplo:
En el siguiente ejemplo el campo oculto ICOH recibe como valor siete iconos:
C
1.
2.
3.
4.
5.
6.
EVAL
ICOH='%0010:Executed;%0012::;%0011::%001101+ C
;%0013;%0520::OPTION=D;%0777::F01:OPTION=D;+ C
%0678::FORMAT1.OPTION=D'
El primero (% 0010:Executed) reemplaza descripción estándar con el texto "Executed" y no ejecuta ningún
comando.
El segundo (%0012::) no reemplaza el texto estándar y ejecuta el comando predeterminado asociado al icono
(mismo nombre).
El tercero (%0011:: %001101) no reemplaza el texto y ejecuta el comando %001101.
El cuarto (%0013) muestra solamente el icono con el texto estándar.
El quinto (%0520::OPTION=D) muestra el icono con el texto estándar. Asigna el valor "D" al campo "OPTION" para
el formato al cual pertenece el campo con iconos, y simula la tecla ENTER.
El sexto (%0777::F01:OPTION=D) es similar al anterior, pero se simula la tecla F1 en lugar de ENTER.
Page 23 de 108
COMPILADOR WEBGATE – Manual de programmación
7.
El séptimo (%0678::FORMAT1.OPTION=D) muestra el icono con el texto estándar y asignar valor "D" al campo
"OPTION" del formato FORMAT1.
3.23
Iconos Extendidos
Todos estos iconos están disponibles en los siguientes formatos: 16 × 16, 24 × 24, 32 × 32 y 48 × 48. Al contrario que los
iconos de texto, cada campo sólo puede contener un icono.
Una lista de 1250 EXTENDED ICONS está disponible en el menú principal del usuario WEBGATECVT.
Para obtener información sobre licencias vaya a www.iconexperience.com.
Las descripciones predeterminadas se codifican modificando el archivo XFIMG (en la biblioteca de archivos de pantalla) y
entrando una descripción (también cambiando el idioma si fuera necesario).
La sintaxis para esta función es la siguiente:
nombredeicono.wdf:descripción
Ejemplo:
En el siguiente ejemplo se define el icono add.wdf en la fila 5 y columna 12 en formato 32 × 32.
DDS:
A
ICOH
50A
H
TEXT('<w>*img l:5 c:12 w:32 h:32 </w>')
RPG:
C
Page 24 de 108
EVAL
ICOH='add.wdf:Add'
COMPILADOR WEBGATE – Manual de programmación
3.24
Iconos Genéricos, Imágenes JPG y SWF
Es posible utilizar iconos (*.ICO) creados con software de iconos para Windows.
Estos iconos necesitan instalarse en el IFS, en el directorio WGPublic (también es posible crear un subdirectorio para
identificar sus iconos más fácilmente).
La sintaxis para esta función es la siguiente:
/víadeacceso/nombredeicono.ico
Ejemplo:
En el siguiente ejemplo se define el icono test.ico en la fila 5 y columna 12 en formato 16 × 16.
DDS:
A
ICOH
50A
H
TEXT('<w>*img l:5 c:12 w:16 h:16 </w>')
RPG:
C
EVAL
ICOH='/Wgpublic/test.ico'
Nota: En términos de velocidad de visualización, los iconos de texto y los iconos wdf son los más rápidos mientras que los
iconos tipo.ico se cargan de forma asíncrona, al igual que las imágenes.
3.25
Botones de Imagen
Los "Botones de Imagen" son imágenes que tienen asociado un evento generado por un clic. En la pantalla difieren de las
imágenes estándar, debido a que el puntero del ratón cambia cuando pasa por encima de ellas.
Para que clic sea interceptado por el programa RPG es suficiente con comprobar el contenido de la variable WGQcsrFld, la
cual contiene el nombre del campo actual cuando el applet retorna el control al programa RPG. El programa RPG debe
ejecutar una acción si el valor de la variable es el nombre del campo "Botón de Imagen".
Para usar esta información es suficiente con definir la variable WGQcsrFld con una longitud de 10 caracteres. Si se utiliza
RPG III, es posible utilizar en su lugar la variable WGCSFL, también de 10 caracteres.
La sintaxis para definir botones de imagen en un archivo de pantalla es la misma que para las imágenes con la única
diferencia de que los botones son *BMG.
En lugar de imágenes, pueden utilizarse iconos WDF e ICO con la sintaxis previamente definida.
Ejemplo:
En el archivo de pantalla:
A
XMNIH01
40A
H
TEXT('<w>*bmg l:4 c:39 w:16 h:16 </w>')
En el programa:
* Cargar el contenido del botón de imagen (no obligatorio)
C
…
EVAL
XMNIH01='add.wdf:Add'
* Salida por pantalla
…
* Sección de comprobación de las teclas de función pulsadas
C
IF
WGQcsrFld
= 'XMNIH01
C
CALL
C
C
PARM
PARM
KOXAZIEN
KOXWORKC
C
C
PARM
PARM
KOXACTIO
KOXARGOM
PageC25 de 108
ENDIF
'
'RIQI10'
2 0
3
1
15
COMPILADOR WEBGATE – Manual de programmación
Puede añadir ":" tras la descripción y entrar la tecla de función que hay que ejecutar:
about.wdf:Descripción:TECLA
Se obtienen diferentes resultados dando diferentes valores en el campo TECLA:
 Si no se especifica TECLA, entonces se ejecuta ENTER.
 CF01  CF24 se aprieta la correspondiente tecla de función.
 ROLLUP  se desplaza la página hacia arriba.
 ROLLDOWN  se desplaza la página hacia abajo.
 CF25  lanza la caja de herramientas de impresión.
 CF26  expande completamente un subarchivo con una jerarquía (al igual que con el botón de la barra de
herramientas).
 CF27  contrae completamente un subarchivo con una jerarquía (al igual que con el botón de la barra de
herramientas).
 CF28  expande un nivel de un subarchivo con una jerarquía (al igual que con el botón de la barra de
herramientas).
 CF29  contrae un nivel en un subarchivo con una jerarquía (al igual que con el botón de la barra de herramientas).
 CF30  ejecuta WRKACTJOB.
 CF31  muestra los trabajos del usuario.
 CF32  lanza el manejo de mensajes entre usuarios.
 CF33  lanza el manejo de mensajes de QSYSOPR.
 CF34  muestra la ventana de menú (la que tiene el menú SPI).
 CF35  lanza Instant Report, gestión de notas compartidas.
 El programa puede ejecutar una llamada con CALL.
 Por medio de la sintaxis:
FLD001=val001
se asigna un valor (val001) a un campo (FLD001) es ejecuta automáticamente ENTER.
Por medio del archivo de pantalla, es posible indicar el nombre del archivo de mensajes (MSGF) y el identificador del mensaje
en el campo TEXT del botón de imagen con el contenido de la variable.
Esto tiene dos ventajas:
1. Ya no sigue siendo necesario que el programa suministre un valor al campo oculto.
2. El contenido del campo oculto puede cambiarse dinámicamente sin necesidad de ejecutar conversiones y es posible
mostrar descripciones para las diversas imágenes en diferentes idiomas, situando en línea las bibliotecas de los
archivos de mensajes del idioma que sea necesario.
La sintaxis es la siguiente:
M:NombreMsgF/NombreIDMsg
Ejemplo:
A
XMNIH01
</w>')
40A
H
TEXT('<w>*bmg m:MsgF/MsgID l:4 c:39 w:16- A
Nota: El manejo de botones de imagen en subarchivos actualmente no se puede utilizar.
3.26
Iconos de Comando
Se trata de iconos definidos para lanzar automáticamente los Servicios de Comando: Vea el manual de Administración del
Sistema.
La opción está accesible desde el menú principal del usuario WEBGATECVT.
Estos comandos se definen de la misma forma que los comandos de los "servicios de comando", pero pueden ejecutarse
solamente junto con un Icono de Texto.
La sintaxis es la siguiente:
%nnnn:DescripciónReemplazo:NombreIconoComando
Cada icono debe estar separado por el carácter ";".
Los parámetros deben separarse con el carácter ":".
El carácter ":" activa la búsqueda del comando asociado (ver ejemplo).
#nnnn = Código de icono
Requerido
Descripción de reemplazo
Opcional
Si está presente, reemplaza la descripción estándar del icono.
Icono de Comando
Opcional
Si no se especifica, se usa el nombre del icono.
Page 26 de 108
COMPILADOR WEBGATE – Manual de programmación
3.27
Mensajes Variables
Existe un TEXT que permite reconocer campos de salida que contienen mensajes de error y mostrar los mensajes en la
primera parte de la última fila de la pantalla gráfica.
La sintaxis es la siguiente:
A
MSGERR
128A
B 26
2
TEXT('<W>*MSGVAR</W>')
El campo de salida MSGERR, el cual el programa rellena con los mensajes de error, desaparece de la pantalla y su contenido
se muestra en la fila amarilla en la parte inferior de la ventana.
3.28
Búsqueda con Clic Derecho
Este TEXT le permite realizar búsquedas en un campo por medio de un menú que se despliega con un clic derecho del ratón.
La sintaxis más sencilla es la siguiente:
A




XCODAR
on</W>')
13A
B 26
2
TEXT('<W>*put:char t:text:*FKEY i:textic-A
Char: Puede ser cualquier carácter; cuando nos especifica se asume "?"
Text: Una palabra simple que identifica la opción de menú que lanza la búsqueda; cuando no se especifica, se asume
"search".
Texticon: Específica el icono de texto para la opción de menú; de forma predeterminada se utiliza un interrogante de
color rojo.
*FKEY: esta acción se ejecuta para lanzar la función; puede asumir estos valores: *ENTER, *F1,… *F24.
Al introducir *put el valor del campo se reemplaza con el carácter entrado y se simula la tecla de función especificada.
Adicionalmente al tipo estándar, existen otras cuatro opciones de definición de búsqueda que incrementan los diferentes tipos
de búsquedas disponibles:

*putL: Si al campo se le indica un valor, el carácter establecido para la búsqueda se añade como el primer carácter
del campo en cuestión;

*putR: El carácter indicado se añade por la derecha del valor del campo;

*putLR: Incluye las dos anteriores en un único texto;

*putL_R: Igual que la anterior, pero con la capacidad de añadir el carácter de búsqueda como el primero y último
carácter del valor del campo actual.

*put: No fuerza ningún valor en el campo y activa la tecla de función asociada.
3.29
Page 27 de 108
Micro-Gráficas Contextuales
COMPILADOR WEBGATE – Manual de programmación
Es posible mostrar gráficas en una ventana o en una fila de un subarchivo.
Las Micro-gráficas se definen en una pantalla por medio de un campo oculto que el programa rellena con los parámetros de
las gráficas y con la palabra clave '*IMG' en el TEXT.
A
GRAH
50A
H
TEXT('<w>*img c:10 l:2 h:8 w:180 </w>')
Leyenda:
c
columna
l
fila (no necesaria en un subarchivo)
h
altura
w
anchura en pixeles
El valor



de este campo oculto se establece en el programa RPG y debe seguir la sintaxis predefinida:
El primer carácter debe ser *
El segundo carácter es un número entre 0 y 3 e indica el tipo de gráfica
El resto depende del formato de gráfica.
GRAH = '*0;3000;1500:2;1000;2000‟
tipo 0
GRAH = '*1;300;1;100;150‟
tipo 1
GRAH = '*2;300;30;1;60;2;90;3;100;4‟
tipo 2
GRAH = '*3;300;1;200‟
tipo 3
Hay cuatro tipos de micro-gráficas, todas con sintaxis posicional.
3.29.1 Tipo 0: Flecha en una Línea de Tres Colores
Sintaxis:
*0
;
3000
;
1500:2
;
1000
;
2000
Tipo de
gráfica
;
Valor
máximo que
la gráfica
puede
alcanzar
(línea)
;
Valor donde
situar la flecha :
color de flecha
;
Valor umbral
inferior (donde
acaba la línea
roja)
;
Valor umbral
superior (donde
empieza la línea
verde)
300
;
2
;
100
;
150
Valor máximo
:
;
Color
;
Valor de inicio
;
Valor final
3.29.2 Tipo 1: Histograma a un Color
Sintaxis:
*1
;
300
Tipo
degráfi
a
;
Valor donde
comienza la
línea (opcional;
de forma
predeterminada,
desde 0)
Ejemplos:
Page 28 de 108
:
COMPILADOR WEBGATE – Manual de programmación
3.29.3 Tipo 2: Histogramas Apilados
Máximo de 10.
Sintaxis:
*2
;
300
;
30:1
;
60:2
;
90:3
;
100:4
Tipo de
gráfica
;
Total de la línea
;
Valor del
primero: color
;
Valor del
segundo: color
;
Valor del
tercero: color
;
Valor del
cuarto: color
3.29.4 Tipo 3: Estado de Avance
Sintaxis:
*3
;
300
;
1
;
200
Tipo de
gráfica
;
Valor de la línea
;
Color
;
Valor de la
gráfica
3.29.5 Tabla de Colores
El parámetro de color en la sintaxis de las micro-gráficas puede tomar valores desde 1 hasta 9, los cuales se corresponden
con los colores que se muestran en la siguiente tabla:
3.30
LOBS
Manejo de objetos complejos de aplicaciones 5250 WG-Compilados a Webgate400.
El objetivo es manejar objetos externos como si fueran datos de aplicación incrustados, utilizando una técnica similar a la
utilizada para el manejo de LOB en DB2, pero simplificado desde un punto de vista de programación.
Ejemplos de LOB pueden ser: texto plano, texto RTF, texto HTML (cuerpo del correo electrónico), objetos de Office,...
3.30.1 Definición del Cuerpo de los LOB
Los campos LOB deben tener un nombre con el prefijo WLOB_.
Deben tener el TEXT <lob> … </lob>, como en los siguientes ejemplos:

<lob>txt h:10 w:80 s:F1 d:F4 l:F5 </lob>

<lob>mht h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>rtf h:10 w:80 s:F1 d:F4 l:F5 </lob>

<lob>doc h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>xls h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>sql h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>dgm h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>xml h:10 w:80 s:F1 d:F4 l:F5</lob>
Donde:
h = altura del campo LOB en la pantalla (en filas)
w = anchura del campo LOB en la pantalla (en columnas)
s (save) = tecla de función ligada a la función de guardado
d (delete) = tecla de función ligada a la función de borrado
Page 29 de 108
COMPILADOR WEBGATE – Manual de programmación
l (lose changes) = tecla de función ligada a la función de restaurado (cancelar cambios)
3.30.2 Guardado
Los campos LOB se guardan en carpetas del IFS, como la siguiente:
/WGPublic/Lobs/subcarpeta_almacenLob/Añomes/UNIDE.xxx
donde:

subcarpeta_almacenLob es el subdirectorio actual al cual está vinculada la aplicación que utiliza el LOB

xxx es la extensión del archivo
Determinar la subcarpeta_almacenLob
El valor de la subcarpeta_almacenLob se obtiene desde el procedimiento de guardado del LOB por medio de una variable de
entorno del proceso, identificada por la palabra clave WGLOB_STORE_SUBDIR.
Esta variable también puede ser establecida por la aplicación que utiliza las funciones vinculadas al LOB, por medio de la API
WGLOBSETST, por ejemplo CALL PGM(WGLOBSETST) PARM('SPIFIEP').
Cuando no se establece un valor para la variable, el sistema utiliza el valor dlobstore.
3.30.3 Índices
Creación de un fichero índice en WEBG4FD.
CAMPO
DESCRIPCIÓN
Tipo
Tamaño
XUNIDE
Identificador único del LOB
A
18
XCOMPID
Código de compañía
A
10
XLEXT
Extensión de archivo (tipo)
A
10
XLSIZE
Tamaño del archivo
S
10
XLPATH
Vía de acceso del archivo
A
256
XUSERC
LOB creado por
A
10
XDATEC
Fecha de creación
S
8
XTIMEC
Hora de creación
S
6
XUSERU
LOB actualizado por
A
10
XDATEU
Fecha de actualización
S
8
XTIMEU
Hora de actualización
S
6
El identificador único XUNIDE se calcula invocando a la API "EGETUNID":
C
C
CALL
PARM
'EGETUNID'
PUNIDE
18
3.30.4 Salvar y Restaurar LOB
Los LOB pueden transportarse de un sistema a otro simplemente salvando y restaurando el directorio IFS que los contiene.
El índice nunca debería ser salvado.
Tras restaurarlo se sigue el procedimiento WGLOBRBIDX para reconstruir el índice.
Si se lanza sin argumentos, regenerará el índice comenzando desde la raíz de salvado del LOB (/WGPublic/Lobs), y en caso
contrario se regenerará la rama IFS solicitada.
3.30.5 API para RPG
3.30.5.1 Establecer Almacenamiento - WGLOBSETST
Permite establecer el directorio IFS donde se salvarán los LOB generados para el trabajo actual (lobstore_subdir).
PARÁMETRO
DESCRIPCIÓN
LONG.
XLOBST
Nombre del directorio donde se salvan los
LOB. No debe contener caracteres especiales,
solo letras y números
18
3.30.5.2 Reconstruir Índice - WGLOBRBIDX
Utilidad para reconstruir índices de los LOB.
Parámetros de llamada: Ninguno.
Page 30 de 108
DEC.
TIPO
I/O
Alfanumérico
I
COMPILADOR WEBGATE – Manual de programmación
3.30.5.3 Obtener Texto de un LOB - WGLOBGTXT (verificado)
Extrae texto de un LOB de tipo txt.
Devuelve el texto de un LOB en una serie de cadenas de caracteres. El texto se ajusta, es decir, las líneas se rellenan con
blancos y las filas se cortan a la longitud indicada manteniendo las palabras completas.
PARÁMETRO
DESCRIPCIÓN
LONG.
XUNIDE
Identificador del LOB tipo txt
18
XMAXNL
Número de líneas de texto (máximo)
4
XMAXLL
Longitud de cada línea
XCCSID
CCSID a utilizar
XNUMLN
XSTRBF
DEC.
TIPO
I/O
Alfanumérico
I
0
Numérico
I
3
0
Numérico
I
5
0
Numérico
I
Número de líneas de texto válidas
4
0
Numérico
O
Buffer de salida
Xx
Alfanumérico
O
3.30.5.4 Obtener Vía de Acceso de un LOB - WGLOBGPATH
Retorna la vía de acceso IFS de un LOB.
PARÁMETRO
DESCRIPCIÓN
LONG.
XUNIDE
Identificador del LOB
XLPATH
Vía de acceso IFS del archivo LOB
DEC.
TIPO
I/O
18
Alfanumérico
I
256
Alfanumérico
O
3.30.5.5 Creación de un LOB - WGLOBCRT (verificado)
Creación de un LOB.
PARÁMETRO
DESCRIPCIÓN
LONG.
XUNIDE
Identificador del LOB que se crea
18
XLINEL
Longitud de cada línea
3
XNUMLN
Número de líneas de texto
4
XCCSID
CCSID a utilizar
5
XTYPE
Tipo de LOB a crear (txt, mht, etc)
XSTRBF
Buffer
DEC.
TIPO
I/O
Alfanumérico
I/O
0
Numérico
I
0
Numérico
I
0
Numérico
I
4
Alfanumérico
I
Xx
Alfanumérico
I
3.30.5.6 Supresión de un LOB - WGLOBRMV (verificado)
Suprime un LOB.
PARÁMETRO
DESCRIPCIÓN
LONG.
XUNIDE
Identificador del LOB que se suprime
18
DEC.
TIPO
I/O
Alfanumérico
I
TIPO
I/O
3.30.5.7 Copiado de un LOB - WGLOBCPY (verificado)
Copia un LOB.
PARÁMETRO
DESCRIPCIÓN
LONG.
DEC.
XUNIDF
Identificador del LOB que se copia
18
Alfanumérico
I
XUNIDT
Identificador del LOB destino de la copia. Si
el valor UNID no es válido, se crea uno nuevo
y se retorna
18
Alfanumérico
I/O
3.30.5.8 Get LOB Size – WGLOBGSIZ
Retorna la dimension de un LOB.
PARAMETRO
DESCRIZIONE
L
XUNIDE
ID LOB
18
XLOBSIZ
Dimension del LOB
10
XLOBERR
Page 31 de 108
1
D
0
TIPO
I/O
Alfanumérico
I
Numérico
O
Alfanumérico
O
COMPILADOR WEBGATE – Manual de programmación
3.31
Campos SQL
Los campos SQL son campos hidden que permiten introducir en un form (en una posición establecida y con una dimensión
establecida) el resultado de una instrucción SQL. Por eso, a nivel de display file, es necesario añadir un campo hidden que va
a ser llenado de programa con el "statement" sql que se quiere ejecutar.
Aquí hay varias sintaxis:
1. <W>*SQL L:3 C:109 H:42 W:52 </W>
2.
3.
4.
Se definen estáticamente posición y dimensión de la lista.
<W>*SQL L:3 C:109 H:42 W:52 a:*C</W>
El sql tiene que ser ejecutado sólo si la query cambia.
<W>*SQL L:3 C:109 H:42 W:52 a:*R</W>
El sql se ejecuta sólo a petición del usuario; obviamente el usuario tiene que modificar un campo y también tiene
que empezar el proceso, dado que la ejecución del sql empieza sólo pulsando „enter‟.
<W>*SQL L:3 C:109 H:42E W:52E </W>
Los caracteres ”E” después de las dimensiones, remiten a la applet la expansión en horizontal o/y en vertical de la lista: las
dimensiones especificadas son las dimensiones mínimas de la lista.
5. <W>*SQL HSQL01 </W>
Tanto la posición como la dimensión son valorizadas por el programa a través delcampo hidden HSQL01.
El SQL puede ser elemental o muy complejo (no hay límite a la complejidad del control) y, siendo construido dinámicamente
del código (por ej. RPG), tiene la total capacidad de incluir filtros o selecciones de datos que tienen que ser extractos.
En los campos SQL es posible utilizar muchos de los Format Attribute disponibles (por ejemplo Jerarquías y Agrupaciones) y
con esos mismos atributos se puede también introducir columnas de iconos que permiten proveer informaciones al „form‟
donde está dibujado el SQL, o ejecutar unos links libremente.
Además en los campos SQL se pueden encontrar atributos formatos que permiten obtener un gráfico a través de la simple
definición de ejes (X, Y, Serie). Se obtendrá el gráfico pulsando el botón "Gráfico" en la Quick Access Toolbar de la interfaz.
Por fin, los SQL pueden evitar complejos programas de interrogación, dado que está garantizada la exportación de datos a
Excel y, con la ayuda de los Command Service, pueden ser utilizados para volver a llamar otras funciones ya presentes en la
instalación.
Son utiles para:
Ahorrar código
Aprovechar las potencialidades SQL
Tener la posibilidad de exponer más de una cuadrícula en un mismo formato.
3.32
Casillas de Verificación
Es posible convertir un campo que puede tener dos valores alternativos en una casilla de verificación, simplemente añadiendo
un TEXT específico en el archivo de pantalla. En las pantallas, las casillas de verificación son pequeños cuadros que ocupan un
espacio de dos caracteres. Por consiguiente, siempre es necesario suministrar un espacio en blanco adicional tras las casillas
de verificación, el cual se representa en la pantalla 5250 por un carácter.
Hay tres maneras de insertar casillas de verificación:
1.
Breve: El único parámetro requerido del TEXT es el valor ON. El valor OFF se establece como blanco de forma
predeterminada. En este caso la casilla de verificación NO PUEDE seleccionarse por medio del teclado.
Ejemplo:
A
A
A
2.
7
QSCALA
1A
B
3'Esplodi'
7 11VALUES('S' 'N')
TEXT('<W><CB>ON:S</CB></W>')
Extendido con constante de texto: Hace posible seleccionar/deseleccionar el campo también haciendo clic En la
cabecera: Son necesarios varios parámetros. Los parámetros requeridos son la etiqueta, la columna donde empieza
el campo y el valor ON. En este caso, la casilla de verificación NO PUEDE seleccionarse por medio del teclado.
Page 32 de 108
COMPILADOR WEBGATE – Manual de programmación
Ejemplo:
A
7
A
A
QSCALA
</CB></W>')
1A
B
3'Esplodi'
TEXT('<w>*ignore</w>')
8128TEXT('<W><CB>T:Esplodi C:110 ON:S OFF:N- A
El campo "QSCALA" puede adoptar los valores "S", "N" o " " en la pantalla 5250. En la versión gráfica el mismo
campo se gestiona como una casilla de verificación. El TEXT se identifica como sigue:

Empieza con la palabra clave <CB> (o <cb>).

La cabecera (etiqueta) de la casilla de verificación es un parámetro requerido para el manejo extendido; Se
introduce con la palabra clave "T:" (o "t:") y puede tener una longitud de hasta 20 caracteres. Al definir este
texto, es importante considerar el espacio disponible, para prevenir que en la pantalla la casilla de verificación
cubra otros campos.

La posición (columna) en la cual empieza la casilla de verificación va precedida por el símbolo "C:" (o "c:"); la
fila permanece siendo la misma que la del campo original. Este parámetro es obligatorio para el manejo
extendido, mientras que para el manejo breve se mantiene la posición original del campo.

El tamaño total de la casilla de verificación, opcional, debe ir precedido por el símbolo "S:" (o "s:"). Cuando no
se introduce, se calcula automáticamente. Es importante recordar que el tamaño mínimo de las casillas de
verificación breves es de 2 caracteres, y de 3 caracteres más el tamaño de la etiqueta para las extendidas.

El campo precedido por el valor "ON:" (u "on:"), siempre requerido, es el valor que el campo en la pantalla
adquiere cuando se marca la casilla de verificación.

El campo precedido por "OFF:" (u "off:"), opcional, es el valor que el campo en la pantalla adopta cuando no se
deja la casilla de verificación sin marcar.
NOTA: Si no se indica el valor OFF, entonces asume que es blanco.

El TEXT finaliza con la palabra clave "</CB>" (o "</cb>").
3.
Extendido con nombre de constante: La pantalla gráfica se muestra de la misma forma que la del punto 2.
Ejemplo:
A
A
7
A
QSCALA
</W>')

1A
B
3'Esplodi'
TEXT('<w>*CSCONST01</w>')
8128TEXT('<W><CB>CR:CONST01 ON:S OFF:N</CB>- A
Las reglas son las mismas que las indicadas en el punto 2. La única diferencia es que, en lugar de especificar
directamente la etiqueta en el TEXT del campo variable, esta se define por referencia a una constante que se
encuentra en el mismo formato de pantalla, a través de la palabra clave "CR:" (o "cr:").
NOTA: El texto relacionado con las casillas de verificación, solo puede implementarse en campos alfanuméricos.
3.33
Listas Combinadas
El control se maneja por medio de dos variables:
1. El campo real, que transporta el valor o valores escogidos, y que pueden ir separados por ";"
2. El campo oculto, que contiene una serie de elementos divididos con el separador ";" los cuales consisten en:

Nombre del icono

Valor elegido

Descripción de la elección (Texto)
Los valores de cada elemento se dividen con el carácter ":" y son posicionales.
El segundo valor (descripción) puede omitirse.
Ejemplo:
Elemento completo = %0045:1:Opción1; %0046:2:Opción2; …
Los mismos elementos sin icono = :1:Opción1; :2:Opción2; …
3.33.1 Composición del TEXT
Elemento
Sintaxis
Identificación
Inicio <cl>, final
Page 33 de 108
Valores
Predet.
Notas
COMPILADOR WEBGATE – Manual de programmación
</cl>
Selección
simple o
múltiple
S:
Lista campos
establecidos
Opción de
mostrar
valores
elegidos
S=Simple
M=Múltiple
M
Permite elegir solo un
elemento o más
F:
Nombre del campo
(oculto) que contiene el
icono, el texto y el valor
del elemento
Si se establece ver N, el
primer elemento en la lista es
el valor que se muestra
siempre
V:
V=Mostrar valor
E
T=Mostrar texto
E=Mostrar ambos
N=No mostrar
S=Con atributos
La opción "No mostrar"
permite simular la función
realizada por medio del panel
de menú.
En ese caso, el primer
elemento de la lista es el
texto mostrado durante la
validación
Campo con
atributos
I:
N
Opción de
longitud
L:
Ancho del
control
W:
Número de columnas
usadas para visualizar
Longitud
del campo
que se
comprueba
Número de
filas visibles
en la lista
R:
Número de filas
Número de
elementos
en la lista
Ver lista
abierta
H:
S
S
N=No se pueden
especificar atributos
Solo se pueden indicar
atributos en campos de
selección simple
Valor de la longitud de una
opción en campos de múltiple
selección
(próxima versión)
La validación se muestra con
la lista siempre abierta con el
número de filas indicado
3.33.2 Características del Campo
Vista
En una pantalla el campo ocupa las posiciones indicadas por el parámetro W: más dos posiciones para la flecha. Si W no se
especifica, entonces se ocupa el espacio exacto asignado al campo.
Campo editable
Si el campo permite especificar atributos (por lo tanto es de selección simple), el campo aparece como de entrada normal con
una pequeña flecha por la derecha:
Un delimitador aparece cuando el puntero del ratón se desplaza por encima del campo:
El campo de entrada se selecciona y es posible escribir en él cuando se hace clic a la izquierda del delimitador; haciendo clic
en la flecha se muestra la lista de opciones.
Campo sin atributos
El campo puede ser de selección simple o múltiple, y aparece como una constante con un borde y una pequeña flecha a la
derecha:
El fondo cambia y aparece un delimitador cuando el ratón se mueve sobre el campo:
Si hace clic en cualquier parte de él aparece una lista de opciones. Si se selecciona (haciendo clic o presionando Tab) aparece
un borde.
Si el campo está seleccionado y es de selección simple, entonces al apretar la fecha hacia abajo se selecciona el siguiente
valor de la lista de opciones; pulsando la tecla hacia arriba se selecciona el valor anterior, presionando la barra espaciadora
se hace que aparezca la lista de valores.
Page 34 de 108
COMPILADOR WEBGATE – Manual de programmación
Si el ratón permanece quieto sobre el campo durante una fracción de segundo, aparece una pequeña ventana descriptiva con
el valor actual:
Con un clic derecho sobre la lista se deseleccionan las opciones que estén ya marcadas; si el campo es de selección múltiple,
entonces un segundo clic derecho selecciona todas las opciones.
3.33.3 Valores de Retorno
Campos de selección simple
El campo muestra el valor asociado a la opción elegida o el valor establecido por el usuario, si el campo es editable.
Campos de selección múltiple
Opciones no copiadas
Si los valores asociados a los dos primeros elementos de la lista son diferentes, entonces se asume que todas las
opciones son diferentes entre sí: En este caso, el valor retornado es la lista de valores seleccionados y formateados
de acuerdo a la longitud establecida en el parámetro L. El número máximo de opciones seleccionadas que se
mostrará es igual al campo longitud dividido por el valor de L.
Opciones copiadas
Si los valores asociados a los dos primeros elementos de la lista son iguales, se retorna una cadena de caracteres
"posicional": Para cada una de las opciones disponibles se toman tantos caracteres como se hayan especificado en el
parámetro L del TEXT; si una opción no se selecciona, sus correspondientes caracteres serán blancos, y si se ha
seleccionado se mostrará su correspondiente valor ajustado por la izquierda.
Suponiendo que en el TEXT se ha indicado L:2 y hay tres opciones: A, BB, C:

Si el usuario selecciona solamente la segunda opción, el valor de retorno es " BB ";

Si el usuario selecciona las opciones primera y última, se retorna "A

Si no se efectúa ninguna selección, se devuelve "
C ";
".
3.33.4 División de Valores Disponibles en la Lista
Si se especifica la palabra clave "Valores", los valores indicados dividen el contenido de la lista.
De esta forma es posible personalizar los valores utilizando el mismo método para la personalización de pantallas y sin tener
que modificar el programa.
3.33.5 API para Creación de Listas
Para crear un campo oculto (lista de valores disponibles) por medio de SQL, está disponible la API WGCOLISQLR, la cual da
una lista de N elementos en un campo con el formato apropiado y listo para su visualización tras recibir una instrucción SQL
enviada con el primer parámetro (P0XSQLSP). (P0XCLIST).
La instrucción SQL debe ser construida definiendo dos campos. El primero debe representar el código (el valor
mostrado en el campo de entrada/salida de la pantalla) y la descripción asociada al código.
Por ejemplo: SELECT CODE, DESCR FROM ARCHIVE
También está disponible un parámetro (P0XSQLIC) para especificar si debe incluirse también en la lista un icono de
identificación para cada elemento.
PARÁMETRO
LONG.
P0XSQLSP
1024
Instrucción SQL para procesar
P0XSQLIC
40
Icono que mostrar a la derecha
Opcional
I
P0XCERRO
1
Código de error
0=La lista excede la
longitud máxima
(1000)
O
P0XCLIST
10000
Campo que contiene la lista de
valores que mostrar
Page 35 de 108
DEC.
DESCRIPCIÓN
VALORES
I/O
I
O
COMPILADOR WEBGATE – Manual de programmación
Ejemplos:
Uso
Lista de opciones de
selección múltiple que
muestra el título del
contenido. Campo sin
atributos.
Sintaxis TEXT de DDS
TEXT('<W><CL> F:XCLIST01
V:N I:N L:1 W:07
</CL></W>')
Lista conteniendo
elementos de tabla de
selección simple que
muestra el valor y
descripción. Campo sin
atributos.
TEXT('<W><CL> S:S
F:XCLIST01 V:E R:9 W:20
</CL></W>')
Lista conteniendo
elementos de tabla de
selección múltiple que
muestra solamente el
valor. Campo sin
atributos.
TEXT('<W><CL> F:XCLIST02
V:V I:N L:2 W:20
</CL></W>')
Lista conteniendo
elementos de tabla de
selección simple que
muestra solamente la
descripción. Campo sin
atributos.
TEXT('<W><CL> S:S
F:XCLIST05 V:T W:15
</CL></W>')
Lista conteniendo
elementos de tabla de
selección simple que
muestra solamente el
valor. Campo con
atributos.
TEXT('<W><CL> S:S
F:XCLIST01 V:V I:S W:8
</CL></W>')
3.34
Manejador de Fechas
Para definir un campo numérico que representa una fecha se utiliza un TEXT.
Puede utilizarse de dos formas diferentes:
1. Identificar la sintaxis de un campo de fecha sin intervenir en el formateo del valor mostrado en pantalla (por
ejemplo, para hacer posible ordenar un subarchivo correctamente respecto a una columna de fecha): En este caso el
TEXT solamente define un formato de fecha.
2.
Hacer que la interfaz formatee y valide el campo: En este caso el TEXT trabaja conjuntamente con un parámetro
definido en la configuración del Runtime de Webgate400 (Entorno de ejecución - Formato de fecha) para definir el
valor generado por el RPG y el valor de salida que la interfaz genera.
3.34.1 Sintaxis del TEXT sin Formateo de Salida
En este caso la sintaxis es como sigue:
TEXT('<W><D> P=*EUR; </D></W>')
El parámetro P define como se formatea la fecha, y puede tomar estos valores:
SINTAXIS
DEFINICIÓN
FORMATO
*MDY
Mes/Día/Año
mm/dd/aa
*DMY
Día/Mes/Año
dd/mm/aa
*YMD
Año/Mes/Día
aa/mm/dd
Page 36 de 108
COMPILADOR WEBGATE – Manual de programmación
*ISO
Organización Internacional deEstándares
aaaa-mm-dd
*USA
Estándar USA de IBM
mm/dd/aaaa
*EUR
Estándar Europeo de IBM
dd.mm.aaaa
*JIS
Estándar Industrial Japonés de Era Cristiana
aaaa-mm-dd
Especificando este TEXT, el formateo del campo depende de cualquier EDTCDE / EDTWRD definido.
3.34.2 Sintaxis del TEXT con Formateo de Salida
En este caso la sintaxis es la siguiente:
TEXT('<W><D> O=*EUR D=*TODAY S=; M=Y </D></W>')


O = Formato original (sintaxis del valor numérico entrado por el programa RPG). Este es un parámetro
requerido y puede tomar los siguientes valores:
SINTAXIS
DEFINICIÓN
FORMATO
*MDY
Mes/Día/Año
mm/dd/aa
*DMY
Día/Mes/Año
dd/mm/aa
*YMD
Año/Mes/Día
aa/mm/dd
*ISO
Organización Internacional de Estándares
aaaa-mm-dd
*USA
Estándar USA de IBM
mm/dd/aaaa
*EUR
Estándar Europeo de IBM
dd.mm.aaaa
*JIS
Estándar Industrial Japonés de Era Cristiana
aaaa-mm-dd
D = Valor predeterminado, si al campo no se le da un valor. Si el parámetro no está definido al campo se le
asigna un blanco. Puede tener los siguientes valores de parámetro:
SINTAXIS
DEFINICIÓN
*TODAY
Día actual
*STRMONTH
Primer día del mes actual
*ENDMONTH
Último día del mes actual
*STRYEAR
Primer día del año actual
*ENDYEAR
Último día del año actual
También es posible añadir o sustraer un número fijo de días: Por ejemplo, *TODAY+7 le permite sumar siete días a partir del
día actual.


S = Separador. Esta opción indica qué separador se utilizará para formatear la fecha.
M = Obligatorio. Especifica si la fecha es obligatoria. La fecha de forma predeterminada activa NO es obligatoria. El
valor M = Y define que la fecha es obligatoria.
3.34.2.1 Reglas de Formateo
El formateo del valor de salida se basa en las siguientes reglas:
1.
El orden para situar el día, el mes y el año está definido por el parámetro de configuración del Runtime, el cual
solamente acepta los valores *DMY, *YMD, *MDY.
2.
La longitud del campo en la pantalla es exactamente la misma que la longitud definida para el campo, teniendo en
cuenta cualquier EDTCDE y EDTWRD.
3.
Que se muestre el año con 2 ó 4 dígitos depende de la longitud del campo y de si hay separadores:
4.

Si la longitud del campo es 6, el año siempre se mostrará con 2 dígitos y no se mostrará ningún separador.

Si la longitud del campo es 8 y no se especifica el separador, el año siempre se mostrará con 4 dígitos. Si
se define un separador, el año se mostrará con 2 dígitos.

Si la longitud del campo es 10, el año siempre se mostrará con 4 dígitos, independientemente de si se ha
definido un separador.
Si el TEXT no especifica un valor para el separador, se usará el que esté asociado, caso de haberlo, al EDTCDE o
EDTWRD definido para el campo.
3.34.2.2 Ejemplos de Formateo
Suponiendo que se especificado en la configuración del Runtime el valor *DMY, que el valor del campo es 31122007 (ó
311207 si la longitud del campo es 6) y que el separador es /, estos son algunos ejemplos:

Page 37 de 108
Campo de longitud 6 (con o sin separador): 311207.
COMPILADOR WEBGATE – Manual de programmación

Campo de longitud 8: 31122007 (sin separador) ó 31/12/07 (con separador).

Campos de longitud 10: 31122007 (sin separador) ó 31/12/2007 (con separador).
3.35
Gráficos
3.35.1 Información General
Webgate400 suministra una serie de objetos swf (Macromedia Flash) que le permite incorporar gráficos en pantallas 5250.
Es posible mostrar gráficos de varios modelos:



Series simples de datos
Series múltiples
Series múltiples combinadas
Existe una función Tutorial de Gráficos que aporta explicaciones, fuentes de ejemplos y una galería de todas las plantillas
disponibles al utilizar gráficos.
A esta función se accede desde el menú principal del usuario WEBGATECVT, seleccionando la función "Tutorial Interactivo".
Estos objetos se utilizan insertando el habitual campo oculto en el formato de pantalla, dando valor adecuado al campo a
través del programa RPG.
El campo debe contener el nombre de la plantilla utilizada, separada por el carácter ":", y la vía de acceso IFS al archivo que
contiene los datos necesarios para alimentar la plantilla.
A continuación se encuentra el flujo del programa RPG para mostrar gráficos:
1.
Cargar una cadena de caracteres con la sintaxis XML apropiada (ver la documentación sobre GRÁFICOS anexa a la
licencia).
2.
Escriba la cadena de caracteres en forma de archivo en el IFS del iSeries utilizando la API "EB2IFS" (documentada
más abajo).
3.
Rellene el campo oculto con el nombre y vía de acceso de la plantilla.
4.
Muestre el formato de pantalla.
Si esto es demasiado complejo, vaya a la administración simplificada de GRÁFICOS.
3.35.2 Sintaxis
DDS:
A
P0XSTRCH
</w>')
100A
H
TEXT('<w>*chart l:04 c:03 h:23 w:110 1 - A
Leyenda:
c
Columna donde se encuentra el campo
l
Fila donde el campo está ubicado (no necesaria en un subarchivo)
h
Altura en FILAS
w
Anchura de columna
RPG:
C
EVAL
P0XSTRCH=NombrePlantilla;VíaAccesoDatosGraf
Debe mencionarse que el navegador busca el archivo que contiene la pantalla comenzando desde el directorio /webgate400.
De este modo, la vía de acceso que hay que escribir en el campo oculto debe tener esta forma:
NombrePlantilla;/temp/NombreArchivo.
3.35.3 API Involucradas
Page 38 de 108
COMPILADOR WEBGATE – Manual de programmación
Enviar cadena de caracteres al IFS
C**********************************************************************
C* Enviar cadena de caracteres al IFS
C**********************************************************************
C
RPUTIFS
BEGSR
C
EVAL
EBXPATHP='/webgate400/temp/'+E0XUNIDE+'.xml'
C
C
CALL
'EB2IFS'
C
C
PARM
PARM
C
C
C
PARM
EBXBUFFE
EBXPATHP
'S'
32767
512
EBXCVTEB
1
ENDSR

El parámetro EBXBUFFE es la cadena de caracteres que contiene la sintaxis XML.

El parámetro EBXPATHP contiene el nombre de la vía de acceso para escribir en el archivo (si desea que los archivos
generados sean limpiados automáticamente por procedimiento de Webgate400 especifique webgate400/temp).

El parámetro EBXCVTEB debe establecerse a "S" para ejecutar la conversión EBCDIC a ASCII.
Si fuera necesario generar un nombre de archivo único, está disponible la siguiente rutina, la cual genera un
identificador preciso diferenciado por el milisegundo.
C
C

CALL
PARM
'EGETUNID'
E0XUNIDE
18
El parámetro E0UNIDE contiene el valor que se utilizará como nombre de archivo.
3.35.4 Gestión Simplificada de GRÁFICOS
Webgate400 suministra una API que hace posible obtener GRÁFICOS de una manera extremadamente sencilla y eliminando
la necesidad de aprender la sintaxis de cada plantilla y la sintaxis XML.
Esta API puede utilizarse para obtener los datos necesarios para rellenar el campo oculto que muestra el gráfico en la pantalla
del usuario y mostrar el gráfico real de forma independiente.
El fuente del programa mismo (DSPF y RPG) está disponible en el "Tutorial Interactivo", en la sección sobre GRÁFICOS.
Muestra cómo utilizar la API en las dos formas descritas.
La documentación sobre su uso está también disponible en el fuente.
Nombre de la API
WGCHAHANR
Biblioteca
WEBGATE400
3.36
Font
<W><F>ARIAL;UBI;10;W:20;H:2</F></W>
<W><F>F:HFONT</F></W>
Se gestionan los siguientes parámetros (en el orden especificado y divididos por el carácter “;”, aunque una sección es
vacía):

Nombre de la fuente

U=underline; I=italic; B=Bold (se pueden especificar sólo las voces que interesan o ningunas)

Dimensión fuente (por default la-Dimensión fuente (por default la dimensión corriente de la pantalla)

Alto y ancho, expresadas en número de columnas y líneas.
Es posible no definir la dimensión de la fuente: se mantendrá la dimensión establecida a nivel de interfaz. De la misma
manera, es posible no especificar los parámetros W y H.
Los parámetros de la text se pueden especificar directamente en la text, o bien en un campo hidden. La información no será
administrada dinámicamente, en el sentido que se va a visualizar la definición presente en la primera emisión del campo.
El efecto gráfico es el siguiente:
Page 39 de 108
COMPILADOR WEBGATE – Manual de programmación
N.B: En fase de proyecto de la pantalla, es necesario calcular la ocupación final del campo; la interfaz, en este sentido, no
ejecuta ningún control. La text fuente no se puede aplicar a campos de subarchivo.
3.37
Drag & Drop
Permite gestionar copia/pega con la operatividad típica de Drag & Drop. Los valores contenidos en los campos, pueden ser
arrastrados a otros campos sin ninguna intervención a nivel de código o command service.
Es posible interceptar el evento y entender que la información procede de un Drag (también selecciones multiplas y de
subarchivos).
Se empieza con los botones ...
Se puede deshabilitar sobre cada archivo de pantalla, a través del click derecho del ratón:
Se puede unir, al campo que recibe la operación de Drop, la text:
<w>*d</w>
De eta manera la operación Drag arrastra ( también para selecciones multiplas) tanto el nombre del campo arrastrado como
su valor, además de las referencias de la base de datos que contiene datos presentes en pantalla. Los valores arrastrados
son, en el orden:






Company
K18 (=Id del proceso)
P18 (=Id del trabajo)
librería database temporal
nombre database temporal
librería file vídeo
Page 40 de 108
COMPILADOR WEBGATE – Manual de programmación





nombre file vídeo
formato record
número/os relativos de record (si el drag se ejecuta en una cuadrícula)
lista de 10 de los campos arrastrados y su valor
lista de 100 números relativos de record (si el drag ha sido ejecutado de más de una línea de subarchivo)
Ha sido creada la API WEBGATE400/WGDEDR que permite extraer del bufér de datos las informaciones descritas en forma
de parámetros; aquí la lista:
Si el drag ha sido efectuado por un subarchivo, es posible testear el valor del parámetro P0SSNRR (opcional) que devuelve
los números relativos de record de las líneas de las cuales se ha ejecutado el drag; en este caso la agrupación con los valores
de los campos no es importante: el valor se puede recuperar ejecutando una CHAIN en el subarchivo.
Especificando la text:
<w>*df</w>
en cambio, en el campo se pueden arrastrar archivos que provienen de otras aplicaciones Windows (Explora Recursos, client
de correo arrastrando tanto mensajes como anexos,…). El valor arrastrado es un recorrido momentáneo en el IFS donde los
archivos han sido trasladados. En este caso el „drag‟ (arrastre) descrito antes no está habilitado.
Especificando la text:
<w>*db</w>
el campo está habilitado para recibir los dos tipos de drops descritos: el valor arrastrado depende del tipo de drop ejecutado.
3.38
Campos de valorización remota
Son campos hidden o de output que son valorizados automáticamente por medio del contenido de un archivo presente en una
carpeta PC, después de una acción especifica.
La „root‟ de la carpeta que hay que monitorizar es fija; se puede conseguir del registro de configuración de Windows, leyendo
el valor de una de estas llaves (según el tipo de sistema operativo y de instalación Webgate):
Sistemas 64 bit
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Webgate\Main Application Data Directory
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Edm srl\Main Application Data Directory
Sistemas 32 bit
HKEY_LOCAL_MACHINE\SOFTWARE\Webgate\Main Application Data Directory
HKEY_LOCAL_MACHINE\SOFTWARE\Edm srl\Main Application Data Directory
La lectura de los archivos ocurre con periodicidad especificada en la definición del campo.
Hecha la lectura, el programa simula un envío.
Son definidos por la text:
<w><b>F:NombreCampoHidden N:Timer P:Prefijo</b></w>
Page 41 de 108
COMPILADOR WEBGATE – Manual de programmación
El campo hidden de apoyo (F:) tiene que estar presente en el mismo formato y contiene el directorio que se quiere
monitorear; si no está valorizado adopta como default “COMSPY”
El timer (N:), expresado en segundos, define la periodicidad del control del contenido de la carpeta y es un dato obligatorio.
El prefijo (P:) es el prefijo del nombre del archivo que se quiere abrir. Si no está especificado, todos los archivos de la carpeta
de origen se consideran válidos.
3.39
Extended Button

Pueden tener un icono (.WDF) y un texto

Pueden tener un indicador

Pueden “recargar” teclas funciones


Son “Dropables”
Son sensibles a los DSPATR Protect (PR) y Not Display” (ND)
Aquí la sintaxis de la Text:
<eb> W:22 H:1 F1:XHCS6 F2:XDCS6 </eb>
F1 = campo hidden que incluye sintaxis visualización y comandos(ICONO.WDF:TEXTO:CFxx)
F2 = campo hidden que recibe cadena de DROP interpretable con API WGDEDR
Los nuevos botones debe ser campos visibles. En la text se especifica la dimensión en pantalla (que puede ser diferente de la
del campo original). El valor del campo (que define la imagen que hay que utilizar y el texto) puede ser reconducido al mismo
campo o a un campo hidden definido en la text. La sintaxis del valor es la siguiente:
ICONO.WDF:TEXTO:CFxx.
CFxx es la tecla función que tiene que ser simulada al cliquear: si no está especificada, será simulado un enter. Con el click el
botón se define como campo corriente. Se puede asociar al botón la text que identifica los campos recibidores del drop: en
este caso en la text del botón hay que indicar un segundo campo hidden que recibirá el valor del drop.
Si el campo asociado a la text, tiene combinado el atributo BLINK (DSPATR(BL)), en el botón aparecerá un indicador verde si
el blink no está activo y un indicador rojo si el blink está activo (gris si el campo está protegido).
Cuando se utilizen iconos WDF, la dimensión se calcula automáticamente: se elige el icono más grande que puede ser
dibujado entre las dimensiones disponibles (16/24/32/48/256). Si el ancho del botón no permite la visualización por lo menos
de dos caracteres además del icono, el icono se centra y el texto no va a ser dibujado.
3.40
File Manager e File Chooser
Webgate File Manager es un control introducido en la applet Webgate400 así que los programadores RPG puedan proveer
para sus usuarios una modalidad para navegar el file system de iSeries, para ejecutar upload o download de los archivos,
para consultar, modificar o eliminar objetos del IFS o del PC.
Page 42 de 108
COMPILADOR WEBGATE – Manual de programmación
Este control se puede obtener a través de tres modalidades distintas, según el fin para el cual va a ser incluido en pantalla:



Extensa: permite navegar el file system del PC local o el IFS
Compacta: control „edit‟ con botón, para activar la navegación para seleccionar archivos
Selección: es lo mismo que la modalidad extensa pero devuelve (si requerido) el recorrido del archivo o directorio
seleccionado
A continuación hay imagenes del componente y también imagenes de como se presenta en algunas modalidades de función.
Visualización modalidad chooser (ningún recorrido):
Visualización modalidad chooser remoto (selección archivo, IFS, iconos pequeños):
Visualización modalidad chooser remoto (recorrido seleccionado):
Visualización modalidad extensa(disco local, iconos pequeños):
La modalidad de selección es exactamente como la modalidad extensa, por eso se ha omitido la imagen. Además de la
visualización a través de iconos pequeños, se puede visualizar los elementos del file system con iconos grandes o a través de
la visualización detalles que añade a cada elemento informaciones adicionales, como por ejemplo la fecha de creación y la
dimensión del archivo.
3.40.1 Sintaxis
La sintaxis se puede especificar directamente en la text o haciendo referenCia a un campo ocultado valorizado a programa
con toda la sintaxis.
Ejemplo:
DDS:
Page 43 de 108
COMPILADOR WEBGATE – Manual de programmación
A
P0XSTRCH
100A
H
TEXT('<w>*FB l:04 c:03 h:23 w:110</W>')
Legenda (inscripción):
c (column)
Columna donde se encuentra el campo;
l (line)
LÍnea donde se encuentra el campo (no es necesaria dentro un SFL);
h (height)
alto en LÍNEAS;
w (width)
largo COLUMNAS;
o bien:
A
A
HIFSEST
IFSEST
256A
520A
H
H
TEXT('<W>*FB HIFSEST</W>')
LISTA PARÁMETROS DISPONIBLES Y DESCRIPCIÓN:
Tipo de browser (K:)

L (Local): El browser local permite navegar el file system (sistema de archivo) de la maquina en la que se utiliza la
applet Webgate400.

R (Remoto): El browser remoto permite navegar el file system IFS del server donde se encuentra la instancia
Webgate400 a la cual estamos conectados.

U (Uploader): El browser empieza en modalidad selección files local. El archivo seleccionado va a ser cargado
automaticámente en el IFS a partir del momento en el que se confirma el cierre.
En modalidad de visualización compacta (chooser) se puede utilizar el browser local y remoto en combinación.
Tipo de visualización (V:)
Especifica cómo el browser tiene que ser incorporado:

C (Compacta): en modalidad file chooser,

E (Extensa): en modalidad browser,

S (Selección): en modalidad selección archivo extensa.
Además especifica la modalidad de visualización de los iconos dentro del control browser:

S: iconos pequeños,

I: iconos grandes,

L: lista,

D: detalles.
El default es CL.
La específica del tipo de visualización del browser influye también en su comportamiento. En particular, si se va a utilizar una
visualización compacta (opciones C, CS, CI, CL, CD) se va a crear un componente para la selección de archivos o directorios,
en cambio si se utiliza una visualización extensa (opciones E, ES, EI, EL, ED) se va a crear un componente para navegar el
file system.
Si utilizamos la modalidad selección vista extensa (opciones S, SS, SI, SL, SD) será creado un control parecido a la
modalidad de visualización extensa pero que permite la selección de archivos y/o directorios y devuelve el recorrido.
Output (O:)
Especifica el tipo de objeto que hay que mostrar en el file browser:

D: directory,

F: file.
El default es FD.
Return (R:)
Especifica si, en la modalidad „chooser‟, el control tiene que permitir la selección de:


F: file,
D: directory).
El default es F.
Gestión de los permisos (P:)
Acciones que se pueden ejecutar en los archivos. La gestión de los permisos utilizada por el componente no está en algun
modo ligada a las autorizaciones usuario especificadas en el file system.
El modelo de permisos prevé los siguiente privilegios:

L (List): capacidad de ver el contenido de los recorridos (necesaria para navegar);
Page 44 de 108
COMPILADOR WEBGATE – Manual de programmación

R (Read): capacidad de ver el contenido de los archivos (necesaria para abrir documentos y para hacer un
download);
W (Write): capacidad de modificar el contenido de los directorios (necesaria para la modificación de los archivos y
la creación de nuevos directorios);
X (Execute): no utilizado;
D(Delete): capacidad de eliminar archivos y directorios (eliminación total, no pasa por papeleras u otros sitemas de
backup, cobertura)



El default es R.
Nota: sin el parámetro L, el browser no naviga y no se ven archivos ni tampoco directorios.
Directorio inicial (I:)
Recorrido inicial: especifica a cual recorrido hay que abrir el browser cuando aparece en pantalla; (default: „/webgate400‟
para el browser remoto, el desktop del usuario para el browser local).
Directorio Base (B:)
Recorrido base: especifica el nivel mínimo que el usuario del browser no puede superar ( la root para la sesión) (ningún
default);
Resumen parámetros:
Parámetro
Descripción
Valores
Default
K:
Kind
L, R, U
L
V:
View
CS, CI, CL, CD,
CL
ES, EI, EL, ED,
SS, SI, SL, SD
O:
Output
F, D, FD
FD
R:
Return
F
P:
Permissions
F, D
L, R, W, X, D, RW, RX, WX, RW
I:
Initial directory
B:
Base directory
Page 45 de 108
R
COMPILADOR WEBGATE – Manual de programmación
3.41
Menu con teselas
Hoy es posible crear un menú con iconos flat parecidos a los del menú inicial de Windows 8 y Windows 10.
Como ejemplo ponemos el menú inicial del perfil WEBGATECVT:
Se aconseja, por razones de claridad y espacio en la pantalla, transformar menus bastante breves.
Toda la estructura se basa en un único campo hidden al que se asocian la posición y la dimensión del menú entero:
<W><UIT> L:xxx C:xxx W:xxx H:xxx </UIT></W>
Por ejemplo:
A
A
UIT
4096A H
TEXT('<W><UIT> L:02 C:02 H:28E W:132E </UIT></W>')
El campo hidden es valorizado en el programa a través de la sintaxis compleja que incluye cada componente y sus atributos.
El menú se compone de dos distintos tipos de objetos:

Teselas: son botones a los que se asocia un texto, un icono y un comando que se ejecuta al hacer clic .
O bien
o bien
Page 46 de 108
COMPILADOR WEBGATE – Manual de programmación

Grupos: son agrupamientos de teselas a las que se puede asociar un título.
N.B: Una tesela tiene que encontrarse obligatoriamente dentro de un grupo.
3.41.1 Programa de generación
Dada la complejidad de la sintaxis en la base de esta estructura, ha sido creado un programa de generación. Este programa
se puede llamar a través del elaborado NM o bien del menú “Aplicaciones Ambiente Webgate400” (EX DD), “ Construcción
sintaxis campo de teselas”:
Esta función crea la sintaxis compleja a partir de la configuración de cada componente y sus atributos. Por comodidad se ha
decidido memorizar la sintaxis en un file mensajes: esta no es una opción forzada, el usuario puede decidir la manera de
memorizar la sintaxis.
El mantenimiento está estructurado de la siguiente manera:



en el encabezado se configuran los parámetros y las acciones generales del objeto;
en la izquierda se encuentran dos tab para la configuración de grupos y teselas;
en la derecha hay tres tabs como soporte operativo:
o
vista previa del menú: se actualiza cada vez que se va a apretar la tecla “Crea Sintaxis” y va a mostrar la
representación de la sintaxis incluida en la tab “Sintaxis compleja”;
o
sintaxis compleja: se genera dinámicamente según la configuración de grupos y teselas
o
búsqueda WDF: visualiza la lista de iconos flat disponibles.
Fondo
Dentro de esta frame (marco) se puede definir el fondo del campo entero:

un color seleccionable entre los colores de la combo;

un recorrido IFS de una imagen
Page 47 de 108
COMPILADOR WEBGATE – Manual de programmación
N.B: los primeros colores listados en la combo list, que empiezan con “W”, sono los más recurrentes en las páginas de
Windows 8 y estos colores han sido utilizados en la configuración de la pantalla inicial de WEBGATECVT.
Dimensión Teselas
Las teselas creadas tienen una dimensión estándar de 120 pixel: es posible modificar esta dimensión según la resolución de
la pantalla, estableciendo este valor.
Datos Mensaje
La sintaxis compleja puede ser memorizada en un file mensajes. Estas sono las referencias a este mensaje.
Zoom
Es posible visualizar una vista previa del campo con las dimensiones que tendrá en la pantalla donde se va a posicionar,
definiendo la posición y la dimensión efectiva y clicando en el botón ZOOM.
Ejemplo
Están disponibles tres sintaxis de ejemplo que ponen en evidencia las potencialidades del instrumento y las diferentes
posibilidades de configuración.
Acciones

el botón “Crea Sintaxis” (
) construye la sintaxis compleja empezando de los componentes;

el botón “Descompone Sintaxis” (

el botón “Recarga” (

el botón “Limpia Sintaxis” (

el botón “Fin” (

el botón “Actualiza mensaje” (

el botón “Nuevo” (
) ejecuta la operación inversa;
) descarga la sintaxis presente en el MsgId;
) inicializa la sintaxis;
) sale del programa sin guardar;
) memoriza la sintaxis creada en el mensaje deseado;
) permite añadir un nuevo grupo o una nueva tesela.
Grupos
Definidos los datos de encabezado, es necesario crear por lo menos un grupo al cual pertenecerán las teselas.
Aquí los atributos de un grupo:

progresivo: sirve para atribuir un orden de visualización (obligatorio);

color texto (no obligatorio);

color fondo (no obligatorio);

alineación (horizontal/vertical) de las teselas contenidas (no obligatorio); la alineación por defecto (default) es
vertical;

texto (no obligatorio);

link (enlace):es posible asociar una acción al clic en el texto del grupo (no obligatorio).
Un nuevo grupo va a ser visualizado cuando contiene por lo menos una tesela.
Teselas
Aquí los atributos de las teselas:

progresivo: sirve para atribuir un orden de visualización dentro del mismo grupo (obligatorio);

secuencia: se define (en combinación con el campo timer) si se quiere agregar un efecto de animación a las teselas
y asigna una secuencia a la imagen elegida ( no obligatorio);

grupo de pertenencia: indica el progresivo del gruppo al cual pertenece la tesela (obligatorio);

dimensión: se puede elegir entre tres distintos formatos: grande, media, pequeña; la dimensión de defecto es
aquella media (no obligatorio); la dimensión grande es utilizable sólo en los grupos con alineación vertical;

color texto (no obligatorio);

color fondo (no obligatorio);

texto pequeño bottom: es el texto (pequeño) visualizado en la tesela de abajo (no obligatorio);
Page 48 de 108
COMPILADOR WEBGATE – Manual de programmación

texto grande top: es el texto (grande) visualizado en la tesela arriba (no obligatorio)

texto pequeño top: es el texto (pequeño) visualizado en la tesela arriba (no obligatorio)

link(enlace): indica la acción que hay que ejecutar al hacer clic en la tesela. Para las “call” hay que respetar la
siguiente sintaxis:
EXEC://CALL xxx
Aquí hay algunos ejemplos:
o
/webgate400/Tutorial/Manual/Webgate400ConverterTutorialEN-Id(20090917.1031).pdf
o
EXEC://CALL PGM(WGLSMAN)
o
www.google.it
el campo no es obligatorio

imagen: indicar el recorrido de una imagen a visualizar o el nombre de la WDF. Para las WDF es disponibile la lista
en la tab “búsqueda WDF” de donde se puede arrastrar el icono elegido en el subarchivo o sobre la imagen o sobre
la descripción (no obligatorio); los varios textos asociados se van a visualizar sólo si a la tesela se une un icono o
una imagen;

adapta imagen: puede tomar los valores TRUE (verdadero) o FALSE (falso) y permite adaptar la imagen al espacio
a disposición (no obligatorio);

timer: se refiere al tiempo de exposición de las imagenes combinadas con diferente secuencia a la misma tesela (no
obligatorio);
Page 49 de 108
COMPILADOR WEBGATE – Manual de programmación
3.41.2 Api WGUITC
Esta api permite modificar en el programa la sintaxis compleja: esto permite, por ejemplo, hacer dinamico el texto de una
tesela actualizandolo dinámicamente según la elaboración del programa.
CAMPO
LONGITUD
P0UITC
5096
DEC
I/O
DESCRIPCIÓN
I-O
VALOR UIT
P0GCDL
3
I
Codigo grupo de la tesela
P0SEQ
3
I
Secuencia tesela
P0ATR
512
I
Atributo
P0ACT
1
I
Acción:
 1 = Cancela grupo
 2 = Modifica texto grupo
 3 = Modifica link grupo
 A = Modifica color fondo grupo
 C = Nuevo grupo
 4 = Elimina tesela
 5 = Modifica enlace tesela
 6 = Modifica imagen tesela
 7 = Modifica texto 1
 8 = Modifica texto 2
 9 = Modifica texto 3
 B = Modifica color fondo tesela
 D = Nueva tesela
 E = Modifica dimensión tesela
Notas:

El parámetro P0GCDL (= codigo grupo) es obligatorio excepto para P0ACT=‟C‟ (= inserción nuevo grupo).

Cuando se va a insertar un nuevo grupo (P0ACT=”C”) o una nueva tesela (P0ACT=”D”), los parámetros del nuevo
objeto tienen que ser trensformados en P0ATR.

Si la eliminación de una tesela implica la formación de un grupo vacio, este grupo también va a ser eliminado.
Page 50 de 108
COMPILADOR WEBGATE – Manual de programmación
3.42
Nr
Sumario de TEXT
TEXT
<w>*title</w>
DESCRIPCIÓN
1
2
<w>*company</w>
Compañía
3
<w>*status</w>
Tipo de operación
4
<w>*pgm</w>
Nombre del programa
5
<w>*cpyright</w>
Copyright
6
<w>*fkeyvar</w>
Tecla de función variable
7
<w>*msgvar</w>
Mensaje de error variable
8
<w>*optvar</w>
Opciones de subarchivo variables
9
<w>*framevar</w>
Marcos variables
10
<w>*ignore</w>
El campo es ignorado y no se muestra en el gráfico
11
<w>*hide</w>
Junto a un campo oculto hace que el campo no se envíe al applet,
mostrando así más rápido el subarchivo
12
*notitle
Junto a un formato, permite ignorar el reconocimiento automático del
titúlo definido en la configuración Layout del proyecto(en el Control).
13
*nocomp
Junto aun formato, permite ignorar el reconocimiento automático de
la company definido en la configuración Layout del proyecto (en el
WG-Compilador Control).
14
*nopgm
Junto a un formato, permite ignorar el reconocimiento automático del
“display info” definido en la configuración Layout del proyecto (en el
WG-Compilador Control).
15
*nostatus
Junto a un formato, permite ignorar el reconocimientoautomático del
estatus definido en la configuración Layout del proyecto(en el WGCompilador Control).
16
<w>*nofkey</w>
Junto a un formato, le permite considerar las últimas filas de la
pantalla, normalmente utilizadas para teclas de función, como si
fueran filas del resto de la pantalla
17
<w><h>cabecera</h></w>
Vinculado a un campo de subarchivo, se convierte en la cabecera de
columna del campo
18
<w><opt>*=Seleccionar;4=Cancelar</opt></w>
Vinculado al campo "opciones" del subarchivo, el texto se añade a las
opciones
19
<w>*SCROLL L:7 C:50 H:1 W:83 </w>
Texto desplazable en la línea 7, columna 50, de altura 1 y longitud 83
20
<w>*link v:XXXPALNK</w>
Permite ejecutar un programa, mostrar un objeto, visualizar un SQL o
ir a una URL
21
<w>*img c:131 w:9 h:9</w>
Imagen (en un subarchivo) en la columna 131, de altura 9 y longitud
9. Esta imagen puede ser un icono WDF, una imagen JPG o SWF o
una gráfica
22
<w>*img c:132 w:8 h:8 n:5</w>
Espacio en un subarchivo para cinco iconos de texto
23
*fit
Se utiliza para añadir un atributo de pantalla DSPATR(FIT) a las
imágenes: Ajustar al tamaño del campo
24
*TN
Se utiliza para añadir un atributo de pantalla DSPATR(TN): La imagen
se muestra a un tamaño fijo de 11 x 150. Nota: Sólo se utiliza en
subarchivos
25
<w>*bmg l:04 c:39 w:16 h:16</w>
Es una imagen en la que se puede hacer clic para generar una acción
26
<w>*put:char t:texto a:*FKEY i:texticon5</w>
Con un clic derecho se llama a la función definida en el texto, el
carácter "char" se envía al campo asociado, y simula la tecla ENTER
27
<w><cb>t:No read c:33 s:11 on:S
off:N</cb></w>
Crea una casilla de verificación a partir de una variable que puede
tomar dos valores alternativos. Versión extendida con constante de
texto: El campo también se marca haciendo clic en la constante
28
<w><cb>ON:s</cb></w>
Crea una casilla de verificación a partir de una variable que puede
tomar dos valores alternativos. Versión abreviada: El campo solo se
marca haciendo clic en la constante. El valor devuelto para el campo
sin marcar es un blanco
29
<w><cb>CR:CONST01 C:110
ON:S:OFF:N</cb></w>
Crea una casilla de verificación a partir de una variable que puede
tomar dos valores alternativos. Es igual que la versión extendida,
pero en lugar de fijar el texto, hace referencia a una constante que ya
está en pantalla
30
<w><cl>S:S F:CLISTRAV V:E W:18</cl></w>
Lista combinada de botones de radio
31
<w><cl>F:CLISTMEV V:N I:N L:2
W:18</cl></w>
Lista combinada de menú
Page 51 de 108
Título
COMPILADOR WEBGATE – Manual de programmación
32
<w><cl>F:CLISTCHV V:T I:N L:2 W:18</cl></w>
Lista combinada de casillas de verificación
33
<w><cl>S:S F:CLISTINV V:V I:S W:18</cl></w>
Lista combinada de entrada
34
<w>*DMI</w>
Máscara dinámica: Calcula el número de caracteres disponibles para
la introducción desde el teclado, basado en el número de bytes del
campo marcado con el valor hexadecimal 1F
35
<MI>MsgFile/MsgId</MI>
Junto a un a un campo Hidden, permite asociarle un id de mensaje de
un messagefile directamenteen fase dedefinición del display file.
Emula la keyword MSGIDque del 5250 no se puede juntar a campos
hidden: el mensaje se halla dinámicamente a runtime según su actual
valor.
36
<MC>MsgFile/MsgId</MC>
Junto a un campo Hidden, permite asociarle un id de mensaje de
message file directamenteen fase de definición del display file. Emula
la keyword MSGCONque del 5250 no se puede juntar a campos
hidden: la información por lo tanto resulta estática.
37
<MT>MsgFile/MsgId</MT>
Permite introducir una text larga en un msgid
38
*WB L:07 C:30 W:120 H:30
Web Browser: junto a un campo (hidden o visualizado),permite
visualizar una página html cuyo valor va a ser definido por el
programa o a través MSGID.
39
*FB….
File Manager yfile Chooser (Ver párrafo)
40
<w><D>P=*ISO</d></w>
Campos de fecha: Identifica los campos que muestran una fecha. Vea
Manejador de Fechas para más detalles sobre su uso
<w><D>O=*ISO</d></w>
41
<F>F:HFONT</F>
o
Permite modificar elfont del campo; el valor ha transitado por el
campo introducido por la expresión “F:” o directamenteen la text.
<F>ARIAL;UBI;10;W:20;H:2</F>
42
*D
Permite definir un campo comorecibidor de Drag &Drop
43
Extended Button
44
<eb> W:22 H:1 F1:XHCS6 F2:XDCS6 </eb>
<b>F:NomeCampoHidden N:Timer P:Prefisso</b>
45
<A>C/R</A>
Junto a una constanteo a un campo deoutput permite alinear los
caracteres en elcentro (C) o a la derecha(R)
46
<SX>xxxx</SX>
Junto a un campo deI/O permite definir la ocupación en pantalla del
campo, diferenciandola de la dimensión.
Page 52 de 108
Son camposhidden o deoutput (salida)que se valorizan
automáticamente con el contenido de un archivo presente en una
carpeta PC, después de una específica acción.
COMPILADOR WEBGATE – Manual de programmación
4 ATRIBUTOS DE FORMATO
4.1 Información General
Los modos de salida y comportamiento de un formato de pantalla pueden cambiarse cuando hay atributos de formato. Estos
atributos se identifican por un código numérico y por una regla de comportamiento. Estos atributos pueden transferirse al
formato de pantalla por DDS, base de datos (WGATR) y por programa. Para hacerlo es necesario definir uno o más campos
ocultos en las DDS con la función de transportar los atributos e influir en consecuencia en el modo de salida del formato de
pantalla.
Estos campos se identifican aplicando un TEXT de la siguiente manera:
A
HFMT0001
100A
H
TEXT('<w>*fmtatr</w>')
El TEXT debe contener la palabra clave "*fmtatr" (*FMTATR). El atributo puede ser asignado por el programa en el campo
oculto o en las DDS del archivo de pantalla, con la siguiente sintaxis:
A
HFMT0001
100A
H
TEXT('<w>*fmtatr2178=R();2191=R()</w>')
Donde 2178 y 2191 son dos códigos de identificación con el mismo número de atributos de pantalla, mientras que R() es la
regla que se les aplica.
La regla, o valor del atributo, determina el comportamiento en la pantalla del objeto (formato) en cuestión.
También pueden darse valores durante la ejecución a los campos utilizados para transportar los atributos (por ejemplo
durante la INZSR, si el atributo especificado necesita un valor por defecto).
Para valores en tiempo de ejecución es suficiente con indicar el código del atributo y la regla que hay que aplicar (por
ejemplo, 2191=R()).
No todos los atributos de pantalla pueden cambiarse en tiempo de ejecución, y para algunos de ellos es necesario completar
un TEXT con el valor predeterminado.
A continuación se muestra la tabla de atributos de formato que están actualmente disponibles.
Page 53 de 108
COMPILADOR WEBGATE – Manual de programmación
4.2 Resumen FMTATR
Código
Descripción
Dinám
Requiere
Valor Por
Defecto
Sintaxis
2178
Activa / desactiva la cabecera
de fila al mostrar una tabla de
subarchivo
S
N
2178=R(0) desactiva vista
Activa / desactiva la cabecera
de columna al mostrar una tabla
de subarchivo
S
Ajusta el tamaño total de la
tabla a las filas/columnas con el
objetivo de evitar que las barras
de desplazamiento desborden
los límites
N
Permite la expansión de la tabla
de un subarchivo
N
Desactiva el que se sitúe el
cursor en los campos protegidos
(PR) en la tabla de un
subarchivo
S
2303
Le permite personalizar el
número de filas de subarchivo
(distinto de 100) entrados por el
applet en cada operación de
pasar página. Incrementando el
valor, el applet sigue
descargando registros hasta que
el valor especificado en el
atributo se alcanza. La
operación puede ser lenta, y por
esta razón es mejor establecer
la variable WGSFLPGL (o
WGSFPL), 7 posiciones
numerica
S
2313
Desactiva el color alternativo
2314
Fuerza que se muestre multi-fila
2315
Habilita el situar el cursor en un
subarchivo por medio de las
variables "fila" (WGSCSR, 7
posiciones numéricas) y
"campo" (WGSCSF, 10
posiciones alfanuméricas). Si
está activado, los valores
recibidos son enviados a la
pantalla automáticamente. Al
programa le es posible forzar
diferentes valores
S
Habilita encabezamientos
subarchivos alineados con
campos
N
Lista de campos de
ordenamiento para una tabla.
Esta lista se utiliza para ordenar
los registros disponibles en la
pantalla
S
2191
2192
2193
2195
2178=R(1) activa vista (predeterminado)
N
2191=R(0) desactiva vista
2191=R(1) activa vista (predeterminado)
N
2192=R(0) desactiva
2192=R(1) activa (predeterminado)
N
2193=R(0) desactiva expansión
2193=R(1) activa expansión
(predeterminado)
N
2195=R(0) permite situarse
(predeterminado)
2195=R(1) no permite situarse
N
2303=R(número)
2313=R(1) color alternativo activo
2313=R(0) color alternativo inactivo
2314=R(1) multi-fila activado
2314=R(0) fila única
2320
0602
0603
Usado para definir jerarquías
dinámicas. Lista de campos de
agrupación en una tabla. La
lista se usa para agrupar los
registros disponibles en la
Page 54 de 108
N
2315=R(1) permite situarse
2315=R(0) situarse desactivado
(predeterminado)
2320=R(0) Encabezamientos centrados
(default)
2320=R(1) Encabezamientos alineados con los
campos
N
Ejemplo 1: 0602=R(XXSDSTAT;XXXDSANA;)
Ejemplo 2: 0602=R(XXXDSANA;XXXICODE;)
Ejemplo 3:
0602=R(XXXDSTAT;INCDAEVN;XXXDSANA;)
Es importante utilizar el carácter ";" como
separador
Ejemplo 1:
0603=R(XXSDSTAT;XXXDSANA;C:1;)
Ejemplo 2: 0603=R(XXXDSANA;)
Ejemplo 3:
COMPILADOR WEBGATE – Manual de programmación
pantalla, y obtener una
"jerarquía" o vista, con
elementos expandidos y
contraídos.
0603=R(XXXDSTAT;INCDAEVN;C:2;)
La última parte de la sintaxis define el nivel
mínimo de contracción visualizado.
Son necesarios los campos de
ordenamiento.
C:0 = contrae hasta nivel 0 (todo cerrado)
Los campos indicados deben ser
una parte o todos los campos de
ordenación.
C:1 = contrae hasta nivel 1
C:2 = contrae hasta nivel 2
Nota: Cuando esta función está
activada, el cliente descarga
automáticamente todo el
contenido del subarchivo que ha
cargado el programa RPG. En
realidad, el cliente comprueba el
número de registros ya
descargados y descarga más
hasta que se alcanza el número
actual de registros en el
subarchivo.
0604
Se utiliza para definir
jerarquías estáticas. El
nombre del campo de nivel en
una "jerarquía" o tabla de
subarchivo, donde la lógica
seguida para rellenar el
subarchivo todavía es capaz de
establecer el nivel de jerarquía
entre los registros mostrados
(por ejemplo, base distinta). El
campo de nivel puede ser
numérico o alfanumérico, pero
sólo puede contener valores
entre 0 y 9 ó entre "0" y "9".
S
N
Ejemplo 1: 0604=R(TLEVEL;)
Ejemplo 2: 0604=R(TLEVEL;C:2)
Ejemplo 3: 0604=R(TLEVEL;C:1;S:TSTATUS;)
La última parte de la sintaxis define el nivel
mínimo de contracción visualizado.
C:0 = contrae hasta nivel 0 (todo cerrado)
C:1 = contrae hasta nivel 1
C:2 = contrae hasta nivel 2
El campo TSTATUS (el cual debe ser definido
en el archivo de pantalla, al igual que TLEVEL)
especifica los elementos de estado contraídos
visualizados. Los valores establecidos para este
campo son los siguientes:
0 Administración manejada por el cliente.
Guarda el estado de cada elemento hasta que
se carga el siguiente subarchivo.
1 El elemento debe cerrarse.
2 Elemento debe abrirse.
Si el campo TSTATUS no se especifica, el
subarchivo se muestra en cada operación de
salida de la forma que indique el parámetro C:
0605
Presionar ENTER
automáticamente en la pantalla
actual tras nnn segundos
0607
Campos de total y resumen
0608
Emisión de funciones
S
S
0605=R(0005) Presiona ENTER tras 5
segundos
0605=R(9999) Desactiva la función
AUTOENTER
F =Formato: R = D = Detalle solo resúmenes
NC = Número de columna: Columna que se
usará para emisión en el caso de mostrar
valores individuales
0609
Habilita la función para que en
un subarchivo con una jerarquía
estática también propague a los
registros subsiguientes del
próximo nivel una opción en el
registro contraído
Page 55 de 108
0609=R(0) desactiva la función
(predeterminado)
0609=R(1) ) activa la función
COMPILADOR WEBGATE – Manual de programmación
5 GESTIÓN DE SUBARCHIVOS
5.1 Reconocimiento de Subarchivos
A continuación se indican las reglas que sigue el WG-Compilador para reconocer un subarchivo y las partes que lo describen.
5.1.1 Reconocimiento de Cabeceras de Columna
El WG-Compilador reconoce las cabeceras de columna de subarchivo de esta forma:

El WG-Compilador transforma un subarchivo multi-fila en un subarchivo con una única fila conteniendo todos los
campos.

La cabecera de subarchivo puede ocupar hasta cuatro filas antes de la primera del subarchivo. La pantalla es leída
comenzando desde la fila anterior a la primera del subarchivo, desde abajo hacia arriba.

Cualquier cosa que se encuentre dentro de las columnas se considera una cabecera de campo. Si un campo se
superpone a dos columnas, se considera que es la cabecera para ambas.

Las cabeceras de fila se distribuyen proporcionalmente sobre las filas del subarchivo, dando prioridad a la primera.
Por ejemplo, si la cabecera se compone de dos filas y un registro de subarchivo ocupa dos filas, entonces una fila de
cabecera se asigna a cada fila ocupada; en su lugar, si la cabecera se distribuye sobre tres filas y el registro de
subarchivo ocupa dos, entonces las dos primeras filas de cabecera describen la primera fila de subarchivo y la
tercera describe la segunda fila de subarchivo. Si un registro de subarchivo ocupa más de una fila y los campos de la
segunda fila van precedidos por constantes de cabecera, entonces estas constantes se convierten en cabeceras de
columna de los correspondientes campos y, si las cabeceras de fila son más de una entonces todas ellas se asocian a
la primera fila del subarchivo.
Se supone que estas cabeceras acaban cuando se encuentra lo siguiente:

Una fila conteniendo ":" o "=" (puede ser la fila en la que se indican las opciones)

Una fila mixta (conteniendo variables y constantes)

Una fila en blanco tras haber encontrado otra válida

Una fila subrayada tras haber encontrado otra válida (puede ser la fila en la que se indican las opciones)
Las mismas reglas indicadas para las cabeceras constantes son válidas si las cabeceras están en campos variables en las 4
filas que preceden al subarchivo.
5.1.2 Reconocimiento de las Opciones
El reconocimiento de las filas utilizadas para contener las descripciones de las opciones en un subarchivo se efectúa de la
siguiente manera:

El WG-Compilador lee hasta seis filas antes de la primera del subarchivo

Una fila que contenga ":" o "=" se considera válida
El WG-Compilador para la búsqueda cuando:

Encuentra una fila mixta (que contenga variables y constantes)

Encuentra una fila en blanco tras haber encontrado otra válida
Se necesita un TEXT para activar el reconocimiento de cabeceras en campos variables:

En un formato que se introduce junto a un subarchivo, cada campo con el TEXT '<w>*optvar</w>' (o
'<W>*OPTVAR</W>') se considera que es el campo que contiene las opciones del subarchivo.

Tras los caracteres *optvar es posible forzar el nombre del subarchivo al cual están asociadas las opciones: Esta
sintaxis es particularmente útil si hay subarchivos duplicados.
5.2 Optimización de Espacio en Filas Horizontales
Webgate400 ignora las líneas 5250 rotas. Para el mejor aprovechamiento del espacio disponible en una pantalla, también tras
obtener elementos estándar (cabeceras, opciones), Webgate400 ejecuta operaciones adicionales de optimización, con el
objeto de eliminar filas en blanco sin uso, alargar los subarchivos allí donde sea posible y crear separadores lógicos a través
de las filas horizontales.
Dentro de un formato de pantalla:

Las filas en blanco múltiples se reemplazan por una fila horizontal

Si los campos descritos en el proyecto bajo 'Layout' (título, compañía, pantalla,...) son reconocidos por el WGCompilador y movidos a sus posiciones relativas, las filas que los contienen en modo 5250 pueden quedar vacías y
de esta forma ser optimizadas.
El número de filas de un subarchivo puede incrementarse automáticamente en modo gráfico si:

No hay un formato por debajo (o está vacío tras la conversión);

El subarchivo contiene filas que pasan a estar disponibles;

No hay campos variables en la parte inferior del subarchivo tras la conversión;
Page 56 de 108
COMPILADOR WEBGATE – Manual de programmación

El subarchivo no está en una ventana (registro de equipo window).
Nota: Allí donde sea posible es mejor evitar utilizar campos variables en la parte inferior del subarchivo: La salida es más
rápida debido a que la imagen gráfica de la pantalla es más estable.
5.3 Paginación
Programas con gestión de paginación del subarchivo
Webgate400 lo emula mostrando el mismo número de filas de subarchivo gestionadas en el modo 5250.
Programas con carga completa de subarchivo
Webgate400 optimiza el número de filas mostradas basándose en el espacio disponible (dependiendo de la resolución de su
PC).
La paginación se establece de forma predeterminada a 100 registros: El applet carga 100 registros de subarchivo cada vez y
espera a cualquier operación de paginación necesaria para cargar los siguientes registros. Si hay una jerarquía asociada al
subarchivo entonces algunas agrupaciones pueden no estar completas, dado que pudiera ser que algunos registros no hayan
sido producidos todavía, en el caso de que éstos vengan tras el centésimo cargado. La jerarquía se completa a página hacia
adelante tras la fila centésima.
Es posible cambiar este parámetro administrando una variable de entorno en el programa RPG (WGSFLPGL, numérica de
longitud 4 sin decimales, o WGSFPL en RPG III), estableciéndola a un valor superior a 100.
Esta variable DEBE establecerse al valor deseado antes de escribir el subarchivo y controlar la operación de salida por medio
de una simple operación de asignación:
C
Z-ADD
2000
WGSFLPGL
4 0
Nota: Recuerde que Webgate400 utiliza valores altos para recuperar una mayor cantidad de datos desde el iSeries
comparado con los programas gestionados en modo de "pantalla verde", y de esta forma se incrementa la carga en
el servidor, lo cual provoca problemas de prestaciones. Por consiguiente, es importante encontrar el compromiso
correcto entre la necesidad de obtener jerarquías completas y la velocidad en la salida de subarchivos.
5.4 Expansión subarchivos en las ventanas
La expansión está condicionada por un flag en la configuración runtime y por un atributo de formato, según la siguiente
lógica: si la habilitación está activa, las cuadriculas en las ventanas siempre son expandidas, a menos que no sea
explícitamente requerido que no se haga a través del atributo de formato 2193=R(0). Si en el runtime falta la habilitación, las
cuadriculas en las ventanas son expandidas sólo si se haya especificado el atributo de formato 2193=R(1).
5.5 Colocación
La colocación del subarchivo (primera línea visualizada) está condicionado por 2 parámetros definibles en la configuración
runtime:
1.
Gestión MIN-RRN
2.
Gestión SFLRCDNBR
5.5.1 Comportamientos según los parámetros
El comportamiento de la versión gráfica es el siguiente:

MIN-RRN y SFLRCDNBR los dos deshabilitados: la primera línea visualizada es el topRRN de la pantalla 5250.

MIN-RRN deshabilitado y SFLRCDNBR habilitado: la primera línea va a ser establecida según sea el valor del
SFLRCDNBR si está especificado *TOP, de otra manera se utiliza el valor del TopRRN (como en el punto anterior).

MIN-RRN activo y SFLRCDNBR desactivo: la primera línea es la primera que se ve en el gráfico; si el subarchivo
cuenta con su primera emisión, se utiliza el valor TopRRN – como en los casos anteriores.

MIN-RRN activo y SFLRCDNBR activo: la primera línea está definida por el valor del SFLRCDNBR si es de tipo *TOP,
de otra manera se utiliza el valor del TopRRN (como en casos anteriores).
5.5.2 Forzamiento del programa
Si se quiere forzar la colocación en cierta página de subarchivo, por ejemplo porque el subarchivo ha vuelto a ser cargado
totalmente y por eso ya no está disponibile el valor del TOPRRN, es posible forzar en el programa, en las específicas
anteriores a la emisión del subfile-control, la primera línea a visualizar a través de la variable WGSTOP.
Pero de esta manera, la colocación forzada sobre el último registro o sobre el primero por medio de SFLRCDNBR no será
posible: para obtener esos comportamientos, será necesario forzar en la programación el valor de la variable Webgate
WSTOP.
5.5.3 Limitaciones
Si en un campo del subarchivo resulta activo el atributo DSPATR(PC) que va a forzar la colocación del cursor sobre ese
registro, todas las consideraciones anteriores no seràn válidas. Para poder gestionar el subarchivo en gráfica de manera
correcta, será necesario eliminar ese atributo del archivo de pantalla (display file).
Page 57 de 108
COMPILADOR WEBGATE – Manual de programmación
5.6 Pantallas con Dos Subarchivos
Las pantallas con dos subarchivos son emuladas: Un ejemplo es la función "Fuentes de Tutorial Interactivo", la cual puede
lanzarse desde el perfil WEBGATECVT.
Nota: La cabecera de subarchivo de la parte inferior debe definirse por medio del TEXT <h>…</h> para poder ser
interpretado.
5.7 Jerarquías Generadas por Programa
5.7.1 Mostrar Jerarquías DINÁMICAS
Las jerarquías dinámicas se utilizan cuando desea agrupar datos de subarchivo basándose en agrupaciones lógicas: No es
posible ejecutar opciones relativas a agrupar campos.
Además, los subarchivos dinámicos son cargados completamente por el applet.
Las jerarquías dinámicas se definen con los atributos:
 0602: Contiene la lista de campos de ordenación del subarchivo (dichos campos pueden estar ocultos).

0603: Contiene la lista de campos de agrupación del subarchivo: Son los campos utilizados para agrupar datos de
subarchivo (los campos deben ser visibles).
Para mayor información sobre la sintaxis vea la tabla resumen de los atributos de formato.
Ejemplo 1: Tabla con "jerarquía" utilizando listas de ordenación y de agrupación (atributos 0602 y 0603).
5.7.2 Mostrar Jerarquías ESTÁTICAS
Las jerarquías estáticas se utilizan cuando hay un campo en cada fila de subarchivo que indica el nivel de jerarquía.
Las jerarquías estáticas se definen con el atributo:

0604: Contiene el nombre del campo que lleva el nivel y el del campo que guarda el estado de contracción del
elemento.
Para ver la sintaxis vaya a la tabla resumen de los atributos de formato.
Page 58 de 108
COMPILADOR WEBGATE – Manual de programmación
Ejemplo 2: Tabla con "jerarquía" utilizando un campo de nivel (atributos 0604).
5.7.3 Mostrar Jerarquía Guardando el Estado de Despliegue de Nodos Individuales
Es posible mantener niveles contraídos y/o desplegados de nodos de jerarquía estática a través de la salida de pantalla así
como la última configuración efectuada por el usuario.
Es preciso ejecutar lo siguiente para realizar esta función:

Introducir una variable de estado numérica oculta en el formato del subarchivo;

Completar del siguiente modo el atributo de formato que regula la salida de jerarquía estática:
604=R(XLEVEL;C:x;S:XSTAT;), donde:
o
XLEVEL es el nombre del campo que identifica el nivel de jerarquía del nodo representado por la fila de
subarchivo
o
x es el nivel de contracción predeterminado y puede tomar valores entre 0 y 9
o
XSTAT es el nombre del campo que identifica el estado del nodo representado por la fila del subarchivo y
que puede tomar los siguientes valores: 0 = indiferente, 1 = no visible, 2 = visible.
5.7.4 Casos Prácticos
5.7.4.1
Subarchivo Jerarquizado con Contracción Predeterminada
Establecer el atributo de formato para contraer hasta el nivel 1: 604=R(XLEVEL;C:1;S:XSTAT;).
Todos las filas de subarchivo se generan con el valor XSTAT = 0.
El operador despliega algunos nodos:
Page 59 de 108
COMPILADOR WEBGATE – Manual de programmación
La interfaz del operador utiliza el campo XSTAT de las filas 3, 8, 9, 13, 20, 21 para guardar el estado de "visibilidad". Así,
estos nodos tienen un valor 2 en el campo XSTAT. Cuando el operador aprieta ENTER o una tecla de función que activa el
retorno de datos, este valor puede comprobarse también por el programa RPG.
Nota: Para las filas utilizadas del subarchivo, se accede al indicador de la operación READC. Por consiguiente, es necesario
prestar atención a su uso en el programa RPG.
El operador activa una opción de la fila 3:
la cual abre otra aplicación:
entonces abre una nueva aplicación y vuelve a la jerarquía:
Page 60 de 108
COMPILADOR WEBGATE – Manual de programmación
el cual lo encontrará tal como lo dejó, con tal de que el subarchivo no vuelva a ser emitido, dando así nuevos valores
a la variable de estado XSTAT.
Como puede observar, los nodos 3, 8, 9, 13, 20, 21 mantuvieron el estado dispuesto por el usuario mientras que el 29
permanece en el estado de contracción predeterminado.
5.7.4.2
Expansión o Contracción Dinámica a Niveles Preestablecidos
Si desea seguir expandiendo o contrayendo a ciertos niveles predefinidos, es necesario reenviar el subarchivo
estableciendo el valor de la variable de estado de todos los nodos a 0 (XSTAT = 0) y cambiar el atributo de formato,
indicando en la cláusula C:x el valor deseado.
Partiendo del estado de pantalla anterior, haciendo 604=R(XLEVEL;C:3;S:XSTAT;), obtenemos el siguiente efecto:
o con 604=R(XLEVEL;C:9;S:XSTAT;)
Page 61 de 108
COMPILADOR WEBGATE – Manual de programmación
para volver al nivel 1: 604=R(XLEVEL;C:1;S:XSTAT;)
Page 62 de 108
COMPILADOR WEBGATE – Manual de programmación
6
FUNCIONES DE PERSONALIZACIÓN DE SUBARCHIVOS, SQL Y
GRÁFICAS
6.1.1 Función de Tabla de Gráfica
NOMBRE
LONG.
P0XVIEW
1
DEC.
DESCRIPCIÓN
VALORES
I/O
Mostrar gráfica
1=Sí
I
0=No (completar
campo P0XSTRCH)
P0XSECON
4
Duración de la visualización en
segundos (opcional) (si P0XVIEW=1)
P0XNUMCH
2
Tipo de gráfica
CHXARRAY
I
(Lista mostrada más
abajo)
I
300 elementos de longitud 200
posiciones, donde cada elemento se
define como la DS CHXDATA que se
muestra más abajo
I
P0XCTITL
80
Título de la gráfica (opcional)
I
P0XXTITL
30
Título del eje X (opcional)
I
P0XY1TIT
30
Título del eje Y (opcional)
I
P0XY2TIT
30
Título del eje Y1 (opcional)
I
P0XHPARM
200
Parámetros de cabecera de gráfica
(opcional)
I
P0XSPARM
100
Parámetros de cabecera de series
(opcional)
I
P0XTPARM
200
Parámetros de líneas / áreas de
tendencia (opcional)
I
P0XSTRCH
100
Datos a mostrar (vías de acceso a
plantilla y archivo para la gráfica)
O
D CHXDATA
DS
D
D
DSXSERIES
DSXCATEG
1
31
30
60
D
D
DSXPRISE
DSXVXYZ
61
62
61
82P 3
D
D
DSXCL
DSXSLICE
D
D
DSXNUPFX
DSXSHOVA
83
122
*Serie
*Categoría
DIM(3)
*Y Primaria/secundar.
*Valores X,Y,Z (13,3)
*Vínculos
123
123
*Subrayar sector
124
125
124
125
*Prefijo número
*Mostrar valores
Los cinco parámetros mostrados en rojo son requeridos. Fíjese que el parámetro CHXARRAY es una serie donde cada
elemento está definido por la estructura de datos mostrada. (SI DESEA MAYOR INFORMACIÓN, VEA LA API WGCHAHANR EN
WEBG4SRC).
Para que la función pueda ser llamada por el usuario, debería ver un indicador que lista las columnas donde se indican los
ejes de las correspondientes gráficas. La sintaxis para indicar como una extensión de la instancia SQL consiste en códigos de
operación seguidos por el signo "=", el valor relacionado y marcado por un carácter ":".
Page 63 de 108
COMPILADOR WEBGATE – Manual de programmación
CÓDIGO
SIGNIFICADO
610
Título de la gráfica
611
Tipo de gráfica
612
Título del eje X
613
Título del eje Y
614
Título del eje Y1
615
Serie (nombre del campo o serie de campos, separados por el signo "+")
616
Categoría (nombre del campo o serie de campos, separados por el signo "+")
617
Nombre del campo del valor X. Si se introducen varios campos separados por una coma, el
primero es el primario y los siguientes son secundarios en una serie combinada. El nombre
de la serie para el campo secundario se construye añadiendo la descripción del campo al
valor obtenido por el atributo 615
618
Nombre del campo del valor Y (para gráficas que requieren 2 coordenadas para definir un
punto)
619
Nombre del campo del valor Y1 (para gráficas que requieren 3 coordenadas para definir un
punto)
620
Parámetros de cabecera de gráfica
621
Parámetros de cabecera de serie
622
Parámetros de cabecera de líneas / áreas
Permite devolver contextual a la salida de pantalla, la ejecución del SQL definido en una tab
o en un campo SQL (de esta manera, enseguida, la pantalla aparecerá completa del
resultado del SQL). Para activar esa posibilidad hay que especificar en la cola del SQL la
siguiente sintaxis:
700
701
702
703
704
705
706
707
Page 64 de 108
700=1;
Permite volver a definir el orden de los campos:
701= R(CAMPO1;CAMPO2;CAMPO3;); loscampos serán dimensionados
normalmente
701= R(CAMPO1:Wxx;CAMPO2:Wyy;); xx, yy dimensión(en columnas ) del campo
Permite especificar los campos que hay que ocultar
702= R(CAMPO1;CAMPO2;CAMPO3;);
Permite aplicar el zoom a la cuadrícula
703= R(xx); xx representa el factor de zoom (100 visualización normal)
Permite bloquear las columnas en el scroll horizontal.
704=R(xx); xx representa el índice de la columna que se quiere bloquear
Permite introducir un icono en el interior de un campo SQL. El valor del campo tiene que ser
el valor que se asociaría a un normal campo icono. Si, por ejemplo, los campos CAMPO1
yCAMPO2 , que derivan de un SQL, traen la sintaxis de un icono, es necesario añadir en cola
al SQL la sintaxis:
705=CAMPO1(h:11;w:11;n:1;u:px);CAMPO2(h:16;w:16;n:1;u:px);
Esa sintaxis sirve para identificar la dimensión del icono, exactamente lo que pasa en la text
juntada a los campos de las pantallas.
Los iconos así definidos pueden ser activos: es decir, pueden valorizar un campo
(perteneciente a un cualquier formato record) con un valor cuando se va a hacer click.
Si por ejemplo:
CAMPO1 = „about.wdf:Barrido:T2.EJECUTA=Z ‟
con el click el campo EJECUTA del formato T2 será valorizado con el valor „Z‟.
Además es posible hacer que el valor escrito en el campo dedestino sea el valor de otro
campo del record al cual pertenece la imagen:
„about.wdf:Barrido:T2.EJECUTA= &CAMPO2‟
Si después del '='aparece la letra '&', el valor escrito en el campo EJECUTA será el valor
campo CAMPO2.
Es posible juntar a un icono un link (cuyo valor está definido en otro campo del record), así
que con un click se vaya a ejecutar el mismo link:
705=ICO(h:11;w:11;n:1;u:px);706=ICO:LINK;
La sintaxis precedente indica que al apretar el campo ICO se va a ejecutar el link
especificado en el campo LINK.
Además se puede indicar queun campo resultadodel SQL no es visible, por medio de la
siguiente sintaxis:707=CAMPOH
El campo CAMPOH no será visualizado.
Permite especificar que a través de un clic en el icono (especificadocon el atributo 705) se
ejecuta el link especificadoen otro campo resultado de la query.
La sintaxis es : 709=CAMPO_ICONA:CAMPO_LINK
CAMPO_ICONO es el nombre del campo definido como icono a través del atributo 705
CAMPO_LINK es el nombre del campo en el cual se especifica el link a ejecutar
Permite especificar que un campo, resultado de la query, no tiene que ser visualizado
La sintaxis es:
COMPILADOR WEBGATE – Manual de programmación
707=CAMPO1;CAMPO2;
708
709
CAMPO1 y CAMPO2 no serán visualizados en el campo SQL
Permite forzar el comportamientodefindopor los atributos 701, 702, 703, 704 aunque no esté
presente unreset (restablecer) disposición columnas.
La sintaxis es: 708=R(1);
Define la modalidad para volver a ejecutar la query.
Si no está indicado, la query vuelve a ser ejecutada cada vez que se apreta la tecla función.
709=R(*C); la query vuelve a ser ejecutada si cambia su sintaxis.
709=R(*R); la query vuelve a ser ejecutada sólo si lo solicita el usuario.
Para forzar la ejecución de la query, hay que hacer un click derecho en la primera celda de la
cuadrícula y seleccionar la opción “Ejecuta SQL”.
Ejemplo:
610=R(Situación de stock para inventario);611=R(26);615=R(XCODAR);616=R(XCOMAG); 617=R(XSTOCK);
El ejemplo define una gráfica con el título "Situación de stock para inventario", la cual utiliza el modelo 26, tiene el campo
XCOMAG como identificador de categoría y XCODAR como identificador de serie. El valor que hay que representar se
encuentra en el campo XSTOCK.
Ejemplo de lectura de una tabla para mostrar una gráfica con seis combinadas:
<?610=R(Título de Gráfica);611=R(26);615=R(Año);616=R(Tipo);617=R(Total,Media,Máximo);?>
Año
Tipo
Total
Media
Máxi
mo
Primario
Secundario
RS
Eje X
Eje Y1
e Y2
Eje
Y2
P
S
2001
PERAS
100
7
14
Total
2001
PERAS 100
Media
2001
PERAS
Máximo 2001 PERAS 14
7
2001
PATATAS
110
3
6
Total
2001
PATATAS 110
Media 2001 PATATAS
Máximo 2001 PATATAS 6
3
2001
MANZANAS
125
3
4
22
PERAS
100
15
25
Total
2002
PERAS 100
Media 2002 PERAS 15
2002
PATATAS
100
2
15
2002
MANZANAS
110
15
2003
PERAS
100
15
2003
PATATAS
110
15
6.1.2 Función de Actualización
La regla para actualizar la base de datos es la siguiente:
"Todos los campos en la cuadrícula y también en la descripción de archivo indicada van a ser utilizados por la función de
actualización".
"Todos los campos indicados en la sintaxis (si han cambiado) van a ser modificados".
Las indicaciones que hay que entrar en la instancia son las siguientes:
NombreCampo:campo;campo; campo, NombreCampo:Campo;Campo;Campo
Ejemplo:
SELECT C.XDSCLS, A.XCLASS, COUNT(*) FROM PARAR A INNER JOIN CLBAS ON
A.XCLASS=B.XCLASS, PARAR A1 INNER JOIN TABGE C ON A1.XCLASS=C.XCLASS GROUP BY
C.XDSCLS, A.XCLASS, B.XCLASS [650=(PARAR:XCLASS;…… CLBAS:XCLASS;…….)]
Los puntos existen.
Produce una lista Descripción - Clase que identifica las clases presentes en PARAR y CLBAS.
DESCRIPCIÓN
CÓDIGO
NÚMERO DE REGISTRO
Materias primas
A
150
Acabados
BB
170
Accesorios
CC
190
En este caso hay dos instrucciones de actualización lanzadas, donde si el valor de la clase es AA, se cambia a A1:
UPDATE SPIFIGM/PARAR SET XCLASS = 'A1' WHERE XCLASS = 'AA'
Page 65 de 108
COMPILADOR WEBGATE – Manual de programmación
UPDATE SPIFIGM/CLBAS SET XCLASS = 'A1' WHERE XCLASS = 'AA'
Existe la API Webgate400/RFQR04, la cual tras enviarle la sintaxis en el primer parámetro, ejecuta la actualización.
Parámetros:
1 P0XFQSQU 1024 Cadena de caracteres alfanumérica que se ejecutará
2 P0XRESULT 1 Resultado alfanumérico de la ejecución
La sintaxis que se entra como extensión de la instancia SQL es la siguiente:
<?650=R(PARAR:XCLASS,XCODAR,XUNITM;CLBAS:XCLASS,XCODAR,XUNITM,XKKKKK)?>
Donde indica que hay dos archivos en la actualización (PARAR y CLBAS), y los campos que pueden ser cambiados en PARAR
son XCLASS, XCODAR y XUNITM, mientras que en CLBAS los campos son XCLASS, XCODAR, XUNITM y XKKKKK.
6.1.3 Función de Jerarquía
Los códigos y sintaxis válidos utilizados por el programa son:
6.1.3.1
Código
Significado
602
Ordenar campos
603
Agrupar campos
604
Campo de nivel
605
No utilizable
606
No utilizable
Ejemplo
<?602=R(XCOMAG;XCODAR);604=R(XCOMAG);?>
El ejemplo muestra una jerarquía por XCOMAG en una ordenación por XCOMAG + XCODAR.
6.1.4 Funciones de Resumen
Códigos de operación parecidos a los que se utilizan para las jerarquías se utilizan para identificar y asignar funciones al
mostrar un subarchivo que deriva de una función SQL dinámica, o de una jerarquía de un subarchivo normal de programa. En
realidad, para ser más específicos, trabajan conjuntamente dado que los campos de jerarquía definen puntos de interrupción
para calcular totales, promedios u otras operaciones.
Hay cinco funciones matemáticas: Total, promedio, mínimo, máximo y contar.
Si las funciones de resumen se asocian a un SQL dinámico, el comando SQL debe contener una conveniente cláusula ORDER
BY.
Código
Significado
607
Funciones de resumen y cuenta
608
Funciones de salida:

F = Formato: R = Solo resumen D = Detalle

NC = Número de columna: Columna utilizada para la salida, visualizando valores
simples
Ejemplo:
Si quiere aplicar la función total y promedio en el campo XNUMER (campo cantidad) mientras que para el campo XPREZZ
aplica las funciones mínimo, máximo y contar:
607=R(XNUMER<SUM,AVG>;XPREZZ<MIN,MAX,COUNT>;)
SELECT XWORKC, XCOMAC, XEFFIC, XPROOR FROM SPIFIBO/MACHI ORDER BY XWORKC
<?603=R(XWORKC+XCOMAC<T:Y,D:N>;);607=R(XEFFIC<SUM,AVG>;XPROOR<AVG,MIN,MAX>;); 608=R(FE=R;NC =4)?>
La primera fila de totales debe verse en la correspondiente fila de jerarquía.
6.1.5 Funciones de Resumen Gráficas
Cuando la consulta tiene una jerarquía, y para ella se muestran funciones de resumen, la función de petición del gráfico
también queda influida. En particular, el sistema reconoce el primer nivel de jerarquía como el objeto de la jerarquía de la
gráfica, una vez que el nivel definido como serie cambie (el primero, si cambia la serie, no está definido).
Si las funciones de compresión de apertura del nivel se utilizan como objeto, entonces se reconoce el último nivel
actualmente abierto. Si lo sitúa en el detalle del último nivel la función de petición de la gráfica pregunta qué nivel de detalle
Page 66 de 108
COMPILADOR WEBGATE – Manual de programmación
desea alcanzar: Seleccionando el último (por ejemplo, el detalle), se efectúan totales parciales en los detalles del nivel
contenido, incluyendo todos los cambios de serie.
Por ejemplo, una consulta con dos niveles de jerarquía (Año, Clase de elemento) con detalles consistentes en los Códigos de
elemento.
Fíjese en las funciones de resumen, los cambios de serie, la primera selección para el eje X y los 2 datos elegidos para
representarlos en la gráfica Y1, Y2.
Page 67 de 108
COMPILADOR WEBGATE – Manual de programmación
La gráfica automáticamente muestra el resultado por clase de elemento.
Al situar el cursor en el detalle el programa muestra un menú para elegir el nivel de gráfica. Por ejemplo, si elige Código de
elemento, obtendrá este resultado.
Page 68 de 108
COMPILADOR WEBGATE – Manual de programmación
Compruebe que los resultados mostrados pertenecen a la rama de la jerarquía donde ha situado el cursor.
Page 69 de 108
COMPILADOR WEBGATE – Manual de programmación
6.1.6 Resumen de Atributos de Formato Aplicables a Rejillas, SQL y Gráficas
Código
Significado
602
Campos de ordenación
603
Campos de agrupación
604
Campo de nivel
605
No utilizable
606
No utilizable
607
Campos de total y resumen
608
Funciones de salida:
Ejemplo
F = Formato: R = Solo resumen D = Detalle
NC = Número de columna: Columna utilizada
para la salida, visualizando valores simples
610
Título de la gráfica
611
Tipo de gráfica
612
Título del eje X
613
Título del eje Y
614
Título del eje Y1
615
Serie (nombre de campo o serie de campos
separados por el signo "+")
616
Categoría (nombre de campo o serie de campos
separados por el signo "+")
617
Nombre del campo del valor X. Si se introducen
varios campos separados por una coma, el
primero es el primario y los campos siguientes
son secundarios en una serie combinada. El
nombre de la serie para el campo secundario se
construye anexando la descripción del campo al
valor obtenido por el atributo 615
618
Nombre del campo del valor Y (para gráficas que
requieren dos coordenadas para definir un punto)
619
Nombre del campo del valor Y1 (para gráficas
que requieren tres coordenadas para definir un
punto)
620
Parámetros de cabecera de la gráfica
621
Parámetros de cabecera de las series
622
Parámetros de cabecera de las líneas/áreas
630
Nombre del campo que identifica el nivel forzado
de resumen cuando se vuelve a representar una
gráfica obtenida a partir de un SQL dinámico (si
está disponible en la programación RPG)
631
Nombre del grupo que identifica el nivel forzado
de resumen cuando se vuelve a representar una
gráfica obtenida a partir de un SQL dinámico (si
está disponible en la programación RPG)
650
Archivos y campos para la función de
actualización (UPDATE)
680
Título desglosable (No disponible en
programación RPG)
681
Índice del campo utilizado al desplegar el
desglose. Se calcula lo siguiente: Suma, media,
mínimo, máximo, cuenta. La definición del
campo de desglose en la pantalla establece qué
resultado utilizar. (No disponible en
programación RPG)
690
Page 70 de 108
Cabecera de columna en la rejilla al representar
la salida de un SQL
<?630=DEC. Item;631=DEC.
Class<METALIC RAW MATERIALS
X>;?>
SELECT XNAZIO, XQTUMP FROM
CLBAS WHERE XNAZIO=‟IT‟
<?680=Average National
Quantity Moved;681=2;?>
COMPILADOR WEBGATE – Manual de programmación
7 CONFIGURACIÓN DEL PROGRAMA
Webgate400 gestiona fuentes escritos en RPG III o RPG IV. Durante la fase de conversión en fuente RPG III se transforma en
RPG IV.
Los mismos programas WG-Compilado pueden trabajar en modo gráfico y también en modo 5250.
7.1 Variables de Entorno
Si quiere diferenciar los entornos (Webgate400 y 5250), es posible usar una variable suministrada por Webgate400 en el
fuente. Esta variable se llama WEBGATE en RPG IV, o WEBGAT en RPG III.
Nombre de variable:
WEBGATE
Tipo:
*CHAR
Longitud:
1
Valores:
WEBGATE = '0'
en 5250
WEBGATE = '1'
en entorno gráfico
En los programas puede utilizar la variable WEBGATE y declararla sin tener que inicializarla.
7.1.1 Declaración en RPG III
DEFINICIÓN:
I
DS
I
1
1
WEBGAT
*=====================================================================
C
C 99N99
MOVE
MOVE
*BLANK
WEBGAT
WEBGAT
WEBGAT
IFEQ
'1'
WEBGAT
1
1
USO:
C
*
C
…
ENDIF
7.1.2 Declaración en RPG IV
DEFINICIÓN:
D
D
DS
WEBGATE
1
*=====================================================================
C
MOVE
WEBGATE
WEBGATE
1
C 99
CAN99
MOVE
*BLANK
WEBGATE
C
IF
WEBGATE = '1'
*
C
…
ENDIF
1
USO:
Webgate400 también suministra una API, ya llamada en el programa WG-Compilado, la cual retorna al valor de la variable
WEBGATE:
Programa API Webgate
Page 71 de 108
CALL
WEBGATE400/WGINACTION
PARM
WEBGATE
Tipo
Longitud
I/O
Ejemplo
A
1
O
1 = Webgate
COMPILADOR WEBGATE – Manual de programmación
0 = No Webgate
Page 72 de 108
COMPILADOR WEBGATE – Manual de programmación
7.2 Palabras Clave ROLLUP y ROLLDOWN
Las palabras clave ROLLUP y ROLLDOWN se interpretan a nivel de archivo de pantalla y a nivel RPG. Las palabras clave
PAGEDOWN y PAGEUP tienen la misma función y no son gestionadas.
Nota: Se asocia un indicador de respuesta para el programa, con el fin de gestionar las palabras clave ROLLUP y ROLLDOWN
definidas en un formato de pantalla.
7.3 Interpretación de la Estructura de Datos INFDS
El programa RPG WG-Compilado gestiona ciertos campos que describen el formato de pantalla definido en el programa
original en la estructura de datos INFDS y se asignan automáticamente cuando se retorna la pantalla:
Notas:



NOMBRE DE CAMPO
DESCRIPCIÓN
POSICIÓN
INICIAL
POSICIÓN FINAL
IO-RCD-FMT
Nombre del formato de
registro
261
270
DSP-AID
Byte de ayuda
369
369
CURSOR
Posición del cursor
370
371
SF-RRN
Número relativo de registro del
subarchivo
376
377
MIN-RRN
Mínimo número relativo de
registro del subarchivo
378
379
NUM-RCDS
Número de registros del
subarchivo
380
381
ACT-CURS
Posición del cursor en la
ventana activa
382
383
*STATUS
Código de error
El campo MIN-RRN siempre debe definirse conjuntamente con el campo SF-RRN, con el fin de ser interpretado.
Actualmente los códigos de error gestionados por el campo *STATUS son los relativos a las teclas ROLLUP /
ROLLDOWN (códigos 01122 y 01123). Para activar esta función debe definir el atributo 606, especificando el
indicador que debe activarse cuando se aprieta una de las dos teclas:
606=R(1122;1123;I99)
Los valores de fila y columna para los campos CURSOR y ACT-CURS solamente se gestionan en los campos (no en
ninguna posición del archivo de pantalla) y el valor de la columna siempre indica la primera columna del campo
donde está situado el cursor.
7.4 Interpretación pantalla en SHARE (compartida)
La gestión de pantalla en share (compartida) está garantizada también en entorno gráfico. En la mayoría de los casos la
condivisión está garantizada automáticamente en el interior del programa deletreado en modalidad Webgate, que ejecuta
automáticamente, cuando empieza, una práctica de lectura de datos compartidos, eventualmente escritos por otro programa
que utiliza la misma pantalla.
En el caso de que un programa que gestiona una pantalla en share (compartida) vuelva a llamar otro programa que ejecuta
operaciones en la misma pantalla, es necesario que el programador RPG añada la siguiente /COPY en el interior de la
surgente que hay que compilar, en la especifica sucesiva a la CALL.
/COPY *LIBL/WGQCPYSRC,WGRTVH
LIMITACIONES:
Dentro programas que utilizan pantallas compartidas no se puede utilizar la funcion de RENAME (Volver a nombrar)de
formatos.
Page 73 de 108
COMPILADOR WEBGATE – Manual de programmación
8 SERVICIOS DE APLICACIÓN
Se podría decir que con Webgate400 se ha introducido un tercer nivel de programación:
1. El primer nivel de programación es la base de datos (archivos lógicos, integridad referencial, disparadores, etc.)
2.
El segundo nivel consiste en los programas RPG.
3.
Webgate400 suministra un tercer nivel de programación que opera a un nivel superior, en el proceso de la interfaz y
sus eventos. Los parámetros disponibles son usuario, grupo, idioma, sistema y todos los campos de pantalla (visibles
u ocultos).
8.1 Servicios de Comando
A esta función se accede desde el menú principal.
Para incrementar las funciones disponibles en cada pantalla es suficiente con describir reglas de activación que definan la
disponibilidad de un comando cuando haya ciertas variables en la pantalla (en campos visibles u ocultos).
Básicamente, las reglas se describen por medio de una instrucción que representa este concepto:
"Allí donde estén presentes el campo1 o el campo2 y el campo 3, estará disponible el comando xxxxxxxx con parámetros que
recibirán los valores en pantalla de las variables campo1 y campo3."
Se pueden llamar comandos AS/400, comandos PC (tales como mandatos DOS) y servicios web. De este modo, compilando
solamente un registro de comandos podría, por ejemplo, generar una gráfica utilizando "Crystal Reports" en todas aquellas
pantallas que contengan un "código de artículo", representando el consumo del producto y sin cambiar la aplicación de
ninguna otra forma.
Los tipos de servicios de comando disponibles son los siguientes:

GENERAL: Activado desde la "barra de comandos" o haciendo clic derecho en el campo en cuestión.

MÁS INFORMACIÓN: Activado haciendo doble clic en el campo en cuestión.

ANEXAR: Se lanza desde la "barra de comandos" (DATABASE LINKS).

AYUDA: Se ejecuta haciendo clic derecho.

BÚSQUEDA: Activado con clic derecho.
Cuando un campo en una pantalla puede activar un comando, éste se marca con un símbolo especial (un punto rojo, azul,
verde, amarillo respectivamente en la esquina de los campos en cuestión).
8.1.1 Estándar y Personalizado
8.1.2 Iconos de Comando
8.2 Scripts y WGEXEIOUT
Es posible asociar al vínculo un comando interactivo o batch que ejecutará el sistema. Este comando puede generar una
salida, la cual puede ser un archivo, un documento, un programa ejecutable u otro objeto.
Page 74 de 108
COMPILADOR WEBGATE – Manual de programmación
Para hacer que el applet entienda que el vínculo es un comando que ejecutará es necesario usar las siguientes claves al inicio
del vínculo:
exei://
Para ejecutar un comando interactivo;
exeb://
Para ejecutar un comando batch.
Ejemplo:
Exei://CALL LIB01/PGM01 PARM('ABC' 12)
Nota: El comando se ejecuta en el trabajo (sesión) que contiene el vínculo.
8.2.1 Manejar un Objeto de Salida de un Comando
Si el comando exei genera una salida, Webgate400 suministra una API para poderla manejar:
API para manejar la salida
Tipo
Longitud
I/O
Ejemplo
CALL
WEBGATE400/WGEXEIOUT
PARM
URL
A
256
I
'/webgate400/temp/page1.html'
PARM
ACTION
A
64
I
'Open'
'OpenDelete'
PARM
ERRMSG
A
256
O
PARM
TYPE
A
1
I
'Y' = Retorna el control al RPG (se
puede usar en botones pulsadores)
' ' = No retorna el control al RPG (se
usa en vínculos con exei://)
(En el ejemplo anterior, se supone que se llama a la API tras la ejecución del programa LIB01/PGM01).
Ejemplo 1
Supongamos que el programa PGMCRTHTML crea una página HTML y la pone en el directorio /html/page1.html del IFS.
El vínculo tendrá este valor: exei://CALL PGMCRTHTML PARM('XXX').
El mismo programa PGMCRTHTML, tras crear la página HTML, debe llamar de la siguiente manera a la API Webgate400:
CL:
CHGVAR
VAR(&URL)
CHGVAR
CHGVAR
CALL
VAR(&ACTION)
VALUE('OpenDelete')
VAR(&MSGERR)
VALUE(*BLANK)
PGM(WEBGATE400/WGEXEIOUT) PARM(&URL &ACTION &MSGERR)
VALUE('html/page1.html')
La página HTML aparece tras hacer clic en el vínculo.
Ejemplo 2
Si quiere que se abra un documento de Word, indique:
CHGVAR
VAR(&URL)
VALUE('C:\documentos\documento.doc')
CHGVAR
VAR(&URL)
VALUE('C:\documentos\prueba.pdf')
Si necesita iniciar Acrobat Reader, indique:
Y si quiere enviar un correo electrónico:
CHGVAR
VAR(&URL)
VALUE('mailto:direccion_email@dominio')
¡Cuidado!:
Para que el applet pueda mostrar por pantalla la salida, es necesario que el trabajo que lanzó la API WGEXEIOUT emita una
pantalla que debe permanecer abierta hasta que la salida esté disponible.
8.3 Soporte de Ejecución de Programas PC
El soporte para la ejecución de programas PC se obtiene llamando al programa WGSTRPCOC:
CALL
PARM
El parámetro CMDW es alfanumérico de 200 posiciones.
Page 75 de 108
'WGSTRPCOC'
CMDW
COMPILADOR WEBGATE – Manual de programmación
De forma alternativa, puede ejecutar el parámetro WGSTRPCOP desde el applet:
Por ejemplo, si quiere llamar a una sesión de applet en un programa RPG WG-Compilado debe emitir esta instrucción:
CALL PGM(WGSTRPCOC) PARM('C:\EDMAPP\WEBGATE400\WEBGATE400.EXE')
La máscara de la primera conexión al applet se lanza con esta instrucción.
Con un comando un poco más complejo es posible automatizar ciertas fases de la conexión hasta el lanzamiento de una única
instancia gráfica:
WEBGATE400 /HHost /UUsuario /WContraseña /AAplicación /SSesión /C"Comando"
Donde:

Host = Nombre o dirección IP del host de conexión;

Usuario = Nombre de usuario para la conexión;

Contraseña = Contraseña para la conexión;

Aplicación = Nombre de la aplicación referida, para configuración del entorno (configuración del Runtime - archivo
WGXPARMS);

Sesión = Nombre de la sesión o prefijo a utilizar (configuración del Runtime);

Comando = Línea de comando que debe ejecutarse (estilo iSeries).
Si desea ejecutar un comando DOS, por ejemplo COPY, es necesario especificar esta sintaxis:
CALL PGM(WGSTRPCOC) PARM('cmd.exe /C COPY "VíaAcceso1" "VíaAcceso2" ')
Nota: Recuerde que el programa WGSTRPCOC debe incluirse en un programa que contenga un archivo de pantalla.
Ejemplo:
Ejecución directa de un programa en otro sistema abriendo otra instancia de Webgate400 enviando los parámetros:
CALL PGM(WGSTRPCOC) PARM('C:\EDMAPP\WEBGATE400\WEBGATE400.EXE /H192.10.10.10 /UROSSIM /C”CALL
PGM(PROVA) PARM(‘AR44001’ ‘402’)”)
Page 76 de 108
COMPILADOR WEBGATE – Manual de programmación
9 MENÚS
Es posible crear menús con estructura de árbol utilizando el WG-Compilador de Webgate400:
Este resultado se puede obtener de dos formas:
1. El applet lee el archivo WGMNTREE: Este archivo es el mismo para todas las aplicaciones y se encuentra en la
biblioteca WEBG4FD. Se rellena utilizando el comando WGCRTMNU y contiene el árbol del menú expandido.
2.
El applet lee los cuatro archivos de DBmenu, los cuales pueden ser compilados por el programador utilizando el
comando WGCRTMNU (para menús UIM o DSPF) o lanzando la función "Menu Management" desde el mantenimiento
del proyecto en el control del WG-Compilador. El applet lee los cuatro archivos de DBmenu solamente si el archivo
WGMNTREE está vacío o no existe.
9.1 Comando de Conversión o Integración
El comando de conversión interpreta el menú UIM o DSPF:

UIM
Fuentes MENU

DSPF
Fuentes MNUDDS
El comando de conversión de menú se sustenta en una base de datos (DBmenu) que puede llenarse automáticamente por la
misma conversión utilizando los fuentes del menú, o cumplimentado a mano por el programador. Esto hace posible llevar
menús desde las oficinas del desarrollador de software a las del cliente, e integrar menús personalizados para cada cliente.
Page 77 de 108
COMPILADOR WEBGATE – Manual de programmación

El nombre del menú y su biblioteca se establecen en el parámetro "Menu" (MNU).

El parámetro "Application name" (APP) es el nombre de la aplicación a la que se vincula el árbol jerárquico del
menú. Es necesario crear una rama separada. Si este parámetro se utiliza para crear el árbol, también pueden
utilizarse para actualizarlo.

El parámetro "Library of WG-compiled programs" (LIBCVTPGM) contiene la biblioteca de los objetos WGCompilado: en esta biblioteca se crean automáticamente cuatro archivos DBmenu.

Los parámetros "Pre-command" y "Post-command" (PRECMD y POSTCMD) indican los comandos que hay que
seguir antes y después de la conversión.

El parámetro "Source file" - "Source library" (MNUSRCFIL) contiene el nombre (o nombres) del archivo fuente del
menú y su biblioteca.

El parámetro "Use source menu" (USESRCMNU) indica si el parámetro MNUSRCFIL debe usarse. Si se indica *YES,
los archivos DBmenu y WGMNTREE se rellenan basándose en los menús establecidos en el parámetro MNUSRCFIL; si
se indica *NO, el archivo WGMNTREE se llena basándose en el contenido del archivo DBmenu precompilado.
Los menús se crean en batch; al final, el menú se encuentra en el archivo WGMNTREE de la biblioteca WEBG4FD.
Nota: El menú se descarga en la memoria del PC por medio del applet en la primera conexión del usuario: Si ha cambiado,
entonces es necesario eliminarlo de la cache usando el comando del applet, con el fin de ver la versión actualizada.
Ejemplo 1: Conversión de menú desde diferentes bibliotecas
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL LIB02/*ALL LIB03/*ALL) USESRCMNU(*YES) DOTREEMNU(*ALL)
Ejemplo 2: Conversión de menú desde diferentes bibliotecas con fuentes trasladados desde sus archivos fuente
originales
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL LIB02/*ALL LIB03/*ALL) USESRCMNU(*YES) MNUSRCFIL(LIBSCR01/FILSRC01)
DOTREEMNU(*ALL)
Ejemplo 3: Cambiar un menú específico y regenerar todo el árbol
WEBGATE400/WGCRTMNU MNU(LIB01/MNU01) USESRCMNU(*YES) DOTREEMNU(*ALL)
Ejemplo 4: Cambiar dos menús específicos y regenerar todo el árbol
WEBGATE400/WGCRTMNU MNU(LIB01/MNU01) USESRCMNU(*YES) DOTREEMNU(*NO)
WEBGATE400/WGCRTMNU MNU(LIB01/MNU02) USESRCMNU(*YES) DOTREEMNU(*NO)
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL) USESRCMNU(*NO) DOTREEMNU(*ALL)
Page 78 de 108
COMPILADOR WEBGATE – Manual de programmación
Ejemplo 5: Menú desde base de datos (Ejemplo de módulo básico)
Primero cree los archivos DBmenu (vacíos) en la biblioteca especificada; lance el comando:
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL) USEMNUSRC(*NO) DOTREEMNU(*NO)
Llene el DBmenu (vea el formato del archivo).
Ejemplo 6: Crear el árbol de menú
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL) USEMNUSRC(*NO) DOTREEMNU(*ALL)
Ejemplo 7: Volver a crear solamente una rama del árbol, sin recrear el árbol entero (multi-entorno)
Use el parámetro APP del comando; creará una rama separada.
Si este parámetro se utiliza para crear el árbol también puede reutilizarse para actualizarlo. La limitación es que un *APPLIB
no puede superponerse sobre otro.
Creación:
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL) APPLIB(APP01) DOTREEMNU(*ALL)
Actualización:
WEBGATE400/WGCRTMNU MNU(LIB01/*ALL) APPLIB(APP01) DOTREEMNU(*APPLIB)
Ejemplo 8: Añadir e integrar menús de cliente personalizados en el menú sin cancelar las entradas originales
Las bibliotecas de objetos de los menús originales son suministradas por el cliente:
WEBGATE400/WGCRTMNU MNU(ORIGLIB01/*ALL ORIGLIB02/*ALL PERSOLIB01/*ALL) DOTREEMNU(*YES)
9.2 El DBmenu
El DBmenu consta de los cuatro siguientes archivos:

WGMNUFLD
(Carpeta),

WGMNUFLT
(Texto de carpeta),

WGMNUCMD
(Comandos),

WGMNUCMT
(Texto de comandos).
Los archivos de trabajo se pueden crear de una de estas dos formas:
1. Si los fuentes del menú están disponibles, el convertidor de menús UIM o DSPF de Webgate400 lanza la función de
conversión. En este caso se llena (o actualiza) el contenido de los archivos WGMNUFLD, WGMNUFLT, WGMNUCMD y
WGMNUCMT, en caso contrario los archivos permanecerán vacíos. De esta forma un cliente puede integrar menús
personalizados en una estructura de menú convertido (suministrado por un fabricante de software) sin necesidad de
tener los fuentes.
2.
Si los menús que hay que convertir residen en una base de datos (por ejemplo el archivo de menú ACG) es posible
llenar los archivos DBmenu directamente, y entonces gestionarlos por medio de la función "Menu Management"
perteneciente a "Gestión de proyectos" del Control del WG-Compilador.
9.2.1 Estructura de la Base de Datos
A continuación hay un ejemplo de cómo crear una pequeña estructura con un menú y un submenú partiendo desde el menú
de caracteres estándar y llenando los archivos de trabajo de DBmenu.
Page 79 de 108
COMPILADOR WEBGATE – Manual de programmación
Los cuatro archivos DBmenu se compilaron de la siguiente manera para obtener el árbol de menú gráfico:
WGMNUFLD Vínculo entre carpetas
FLDLIBI
FLDMNUI
FLDSEQO
FLDLIBO
FLDMNUO
BIBLIOTECA
FLDA1
1
BIBLIOTECA
FLDB2
BIBLIOTECA
FLDA1
2
BIBLIOTECA
FLDC2
BIBLIOTECA
FLDC2
1
BIBLIOTECA
FLDE3
FLDTXTO
FLDRES
WGMNUFLT Texto de las carpetas
TXTLIB
TXTMNU
TXTLANG
TXTFLD
BIBLIOTECA
FLDA1
Menu livello 1
BIBLIOTECA
FLDB2
Menu B livello 2
BIBLIOTECA
FLDC2
Menu C livello 2
BIBLIOTECA
FLDE3
Menu E livello 3
WGMNUCMD Directorio de los comandos
CMDLIB
CMDMNU
CMDCPT
BIBLIOTECA
FLDA1
1
CALL PGM1
BIBLIOTECA
FLDA1
2
CALL PGM2
BIBLIOTECA
FLDB2
1
CALL PGM3
BIBLIOTECA
FLDB2
2
CAPGM4
BIBLIOTECA
FLDC2
1
CALL PGM5
BIBLIOTECA
FLDC2
2
CALL PGM6
BIBLIOTECA
FLDE3
1
CALL PGM7
BIBLIOTECA
FLDE3
2
CALL PGM8
WGMNUCMT Texto de los comandos
Page 80 de 108
CMDPRE
CMD
CMDPOST
CMDLIBCVT
CMDLIBPRD
CMDLIBCUR
COMPILADOR WEBGATE – Manual de programmación
TXTLIB
TXTMNU
TXTOPT
BIBLIOTECA
FLDA1
1
TXTLANG
TXTCMD
Azione 1
BIBLIOTECA
FLDA1
2
Azione 2
BIBLIOTECA
FLDB2
1
Azione 3
BIBLIOTECA
FLDB2
2
Azione 4
BIBLIOTECA
FLDC2
1
Azione 5
BIBLIOTECA
FLDC2
2
Azione 6
BIBLIOTECA
FLDE3
1
Azione 7
BIBLIOTECA
FLDE3
2
Azione 8
Para crear el menú gráfico a partir de los archivos con datos, es necesario ejecutar el comando:
WEBGATE400/WGCRTMNU MNU(MenuLibrary/*ALL) APP(ApplicationName) USEMNUSRC(*NO) DOTREEMNU(*ALL)
9.3 Ajustes Globales
Webgate400 puede configurarse para lanzar el menú definido en el perfil de usuario cuando se identifica en la pantalla de
inicio, por medio de los parámetros INLMNU o INLPGM (utilizados en las sesiones 5250): La única condición es que estos
menús hayan sido convertidos.
Estos valores están protegidos: Solamente pueden cambiarlo los usuarios que pertenezcan a la categoría *SECOFR. También
es posible especificar el uso de un menú fijo o de un menú predeterminado (el cual se lanzará si el menú que hay
que utilizar no existe en Webgate400).
Desde el menú WEBGATE400/WGMNURUN, lance la opción 5 (Configurar Acceso de Menú):
9.4 Hallazgo menú de WEBGATE
Webgate provee dos métodos por lo que concierne el hallazgo del menú del usuario:
1.
el usuario posee un único menú asociado;
2.
el usuario posee un menú distinto por cada company (=sistema informativo).
9.4.1 Hallazgo menú único
El método de individuación del menú usuario, según el valor del campo “Menú Principal”, sigue los siguientes pasos:

Si el valor es igual a *SIGNOFF o bien a *SAME, significa que no existe un menú especifico para el usuario, por
eso, si el campo “Programa inicial” está vacío, se va a buscar el menú de default (aquel que está indicado en el
campo “Menú Default Programas”) y, si también este no existe, se empieza la búsqueda de un menú que se
encuentre en el campo “Proyecto”, es decir el nombre de la aplicación en uso.

Si el menú principal no está definido pero existe un programa inicial, es decir si el campo “Programa inicial” tiene
un valor distinto de *NONE y de WGINLMNU, se crea un menú con un único nudo que coincide con el programa
especificado.

Si el menú “Menú Default Programa” es igual a MAIN y la librería es *LIBL (o bien si estos son los valores
devueltos del programa WGINLMNU), significa que el menú que se va a utilizar, si existe, es el menú indicado en el
campo “Menú Principal”.

Si en los casos de arriba se identifica un menú usuario que no existe, hay que proceder como explicado en el paso 1.
Page 81 de 108
COMPILADOR WEBGATE – Manual de programmación
9.4.2 Hallazgo menú en el cambio del sistema informativo
Este procedimiento se aplica si el campo “Utiliza Menú de la Company” vale Y.
Por cada cambio de sistema informativo siempre el programa WGINLMNUXX será llamado en la librería del programa inicial
(campo “Librería Programa Inic”), al cual se trasladan dos parámetros: el usuario y la Company (Empresa) corriente (los
dos parámetros formados por 10 caracteres). Ese programa tiene que configurar dos variables ambientales correspondientes
al nombre y a la librería del menú usuario. Si ese menú no existe, otro menú será buscado según las modalidades que se
han explicado aquí arriba.
9.4.3 Menú que hay que visualizar en el momento del Logon
En el logon el usuario no ha seleccionado todavía una company, por eso es necesario definir una company inicial. De hecho,
en esta situación el programa WGINLMNUXX, no recibiendo el parámetro company, no puede devolver un menú válido.
De esa tarea se encarga el programa WGINLMNU, que tiene que ser definido en los parámetros “Librería” y “Programa
inicial” y valoriza las variables ambientales (por medio de adecuadas API provistas) necesaria para definir la company y el
menú inicial. Ese programa tiene que devolver no sólo el nombre y la librería del menú, sino también la company que está
asociada a ese menú, de lo contrario aquel parámetro no se puede conocer.
N.B:
Es importante recordar que cuando se utiliza el programa WGINLMNU el parámetro “Menú principal” tiene que ser distinto de
*SIGNOFF.
9.4.4 Api para escribir/leer parámetros ambientales
WGSETMNU: sirve para definir el nombre del menú. Tiene tres parámetros:

Librería del menú que hay que definir: alfanumérico desde 10.

Nombre del menú que hay que definir: alfanumérico desde 10

Código de error: alfanumérico desde 1.
WGSETCOM: sirve para definir el id de la company. Tiene dos parámetros:

ID de la company que hay que definir: alfanumérico desde 10

Código de error: alfanumérico desde 1.
WGGETENV: Sirve para recuperar los parámetros ambientales necesarios para la configuración del menú. Tiene dos
parámetros:

Especifica el nombre de la variable buscada (input): alfanumérico desde 50.

Devuelve el valor buscado (output): alfanumérico desde 50.
Los valores que se utilizan por la mayoría son:

WGAPPN (nombre proyecto de compilación Webgate),

WGADLIB (librería de default de datos para el proyecto),

WGLANGID (lengua del usuario),

REMOTE_USER (usuario que lanza la instancia http),

REMOTE_ADDR (dirección IP de donde se lanza la instancia http),

MENUNAME (nombre menú),

MENULIB (librería menú).
Las variables especificadas arriba se pueden recuperar sólo si se está ejecutando el programa en entorno CGI; en entorno no
CGI, se gestionan las siguientes variables:

COMPID (ID company),

GRPID (ID Grupo).
9.4.4.1
Definición de las CALL
Las CALL definidas en los menús, además de parámetros fijos, se pueden valorizar a través de dos variables ambientales de
la applet: el nombre del usuario y el ID de la Company corriente. Para hacer que el programa que se vuelve a llamar, reciba
uno o los dos parámetros, es necesario que en la lista parámetros de la CALL aparezcan dos cadenas de la sintaxis fija:
&WGCOMPID y &WGUSRID, las dos sin ápices (que van a ser añadidos automáticamente).
Por ejemplo:
CALL LIB/PGM PARM(„PARM1‟ &WGCOMPID &WGUSRID)
Page 82 de 108
COMPILADOR WEBGATE – Manual de programmación
10 MANEJO DE MENSAJES
El applet es capaz de gestionar mensajes enviados entre usuarios y mensajes desde un programa a un usuario.
10.1
Mensajes Entre Usuarios
Los mensajes entre usuarios se gestionan a través de la pantalla principal del applet:
La pantalla de gestión de mensajes aparece para todos los mensajes enviados por el usuario:
Los mensajes están caracterizados por su tipo (*INFO, *INQ, *RPY, *NTY) y nivel de gravedad descrito aplicando un número
que va desde 0 hasta 99. Todos los mensajes, con excepción de los informativos (*INFO) solamente se pueden ver en la
gestión de mensajes.
Los usuarios que pertenezcan a las categorías *SECOFR, *SECADM y *PGMR están autorizados a utilizar 'Borrar Todo', opción
que les permite borrar todos los mensajes recibidos.
Haciendo clic en 'Enviar Mensaje', aparece esta ventana:
Page 83 de 108
COMPILADOR WEBGATE – Manual de programmación
Es posible insertar un breve mensaje que es leído inmediatamente por el receptor y un mensaje de segundo nivel para
detalles. Estableciendo el parámetro 'Borrar' a 'Yes', puede solicitar que los mensajes sean eliminados una vez que el receptor
los haya leído. Por medio del parámetro 'Respuesta', puede solicitar una respuesta del receptor y con el parámetro
'Notificación' a 'Yes' obtendrá una notificación de que el mensaje fue recibido.
Haciendo clic en el botón ' Avanzado', puede establecer algunas características opcionales del mensaje: Se puede anexar una
imagen, una dirección de correo electrónico, un sitio web para, un texto desplazable y una serie de iconos descriptivos. Los
parámetros 'Planificación de Recepción de Mensaje' le permiten planificar la fecha y la hora de recepción del mensaje.
10.2
Mensajes de Programa
Cuando el que envía el mensaje es un programa, se utiliza la API "WGMSWR" de la biblioteca WEBGATE400; a continuación
hay una lista de los parámetros que hay que enviar al programa y sus longitudes.
CALL
'WGMSWR'
PARM
P0TMS0 10
PARM
P0SEV0 2
PARM
P0RMV0 1
Eliminar mensaje
PARM
P0RPY0 1
Solicitud de respuesta
PARM
P0NTY0 1
Recibir notificación
Page 84 de 108
Tipo de mensaje
0
Gravedad
COMPILADOR WEBGATE – Manual de programmación
PARM
P0JOB0 10
PARM
P0USR0 10
Nombre del trabajo
PARM
P0NBR0 6
PARM
P0LIB0 10
Biblioteca del programa
PARM
P0PGM0 10
Nombre del programa
PARM
P0DTS0 8
0
Fecha planificación (DDMMYYYY)
PARM
P0HHS0 6
0
Hora planificación (HHMMSS)
PARM
P0SUS0 10
PARM
P0SDT0 8
0
Fecha de envío (DDMMYYYY)
PARM
P0SHH0 6
0
Hora de envío (HHMMSS)
PARM
P0RUS0 10
Usuario receptor
PARM
P0MS10 256
Mensaje de nivel I
PARM
P0MS20 1024
Mensaje de nivel II
PARM
P0IMG0 256
Imagen asociada
PARM
P0ICO0 256
Icono asociado
PARM
P0EML0 256
mailto://
PARM
P0URL0 256
Dirección Internet
PARM
P0BNR0 256
Texto desplazable
PARM
P0RTNC 1
E = Error
Usuario del trabajo
0
Número del trabajo
Usuario que envía
Los parámetros requeridos son:

Usuario receptor (P0RUS0);

Tipo de mensaje (P0TMS0);

Mensaje de nivel I (P0MS10);

Usuario que envía o Nombre de biblioteca y programa.
10.3
Emulación de SNDBRKMSG y SNDUSRMSG
La versión gráfica de Webgate400 intercepta los comandos SNDBRKMSG y SNDUSRMSG, emulando solamente una parte de
su ejecución y enviando mensajes al usuario a través del manejador de mensajes propietario de Webgate400.
Los parámetros interceptados y gestionados por SNDBRKMSG son:
MSG (mensaje de texto)
MSGTYPE (siempre establecido como *INFO)
Nota: El receptor del mensaje siempre es el usuario que se obtiene por medio de RTVJOBA en el trabajo que se está
ejecutando.
Los parámetros interceptados y gestionados por SNDUSRMSG son:
MSG (mensaje de texto)
MSGTYPE (tipo de mensaje) se gestionan mensajes de tipo *INQ y *INFO, pero en modo Webgate400
TOUSR (perfil de usuario que recibe el mensaje)
Los demás parámetros se ignoran.
Page 85 de 108
COMPILADOR WEBGATE – Manual de programmación
11 GESTIÓN DE COMPAÑÍAS
11.1
Introducción
De forma predeterminada, el applet le permite establecer la definición de hasta 9 compañías por medio del menú
"Herramientas / Configuración": Estos ajustes son locales y son válidos para cada usuario que se conecte desde dicho PC; la
identificación de cada compañía es un número.
Para indicar compañías de forma centralizada y hacerlas configurables para cada usuario y para cada aplicación WGCompilado, están disponibles dos archivos: WGCOMP y WGCOMPT.
11.2
Archivos
Los dos archivos deben residir en la biblioteca de datos de la aplicación WG-Compilado.
WGCOMP
Le permite definir qué compañías están visibles para un usuario, asociando sus correspondientes identificaciones. La lista de
compañías habilitadas se obtiene por medio de diferentes lecturas del archivo, utilizando una clave cada vez menos detallada,
basándose en los parámetros establecidos en la configuración seleccionada por el usuario (idioma y grupo).
La marca "Incluir / Omitir" le permite ocultar o activar una cierta compañía solamente para determinados usuarios: Para que
una compañía sea visible, la marca debe establecerse a "Y".
Si la clave está completamente en blanco, el identificador especificado está habilitado para todos los usuarios.
WGCOMPT
Este archivo se lee una vez que se ha obtenido la lista de compañías asociadas con el usuario, al principio con la clave
completa (idioma + compañía) y posteriormente usando solamente la compañía como clave, para buscar las descripciones
asociadas con la compañía.
Page 86 de 108
COMPILADOR WEBGATE – Manual de programmación
12 AYUDA
12.1
Descripción
Webgate400 le permite desarrollar paneles de ayuda que puede añadir directamente a la interfaz de usuario.
Es posible editar el contenido de la ayuda haciendo clic derecho sobre los objetos definidos como +++"puntos de enlace"
(vea la lista en la siguiente sección).
Puede desarrollar documentos "estándar" (suministrados por el desarrollador de la aplicación) o personalizados para el
usuario, grupo, idioma y compañía.
La aplicación le permite editar documentos con las herramientas habituales de Office y, para documentos estándar, los
convierte automáticamente en formato HTML, guardándolos en un directorio distinto.
De cualquier forma, es posible ver los documentos directamente en el formato original si la aplicación de edición está
instalada en el PC.
12.2
Puntos de Enlace de la Ayuda
Los Puntos de enlace están definidos del mismo modo que las referencias en instancias Webgate400 que le permiten enlazar
con un documento de ayuda. Son las siguientes:

Campos

Archivos de pantalla (accesibles haciendo clic derecho en el área libre de la pantalla o haciendo clic derecho sobre el
icono)

Funciones de menú simples
12.3
Información Técnica
12.3.1 Estructura de Directorios para Guardar los Documentos
Los documentos de ayuda se guardan en el IFS, en directorios creados automáticamente y con la siguiente estructura:
Ejemplo:
Este ejemplo muestra la disposición de las carpetas para la biblioteca DBLINK. Las plantillas están en el directorio
seleccionado.
Los nombres de los directorios están estructurados como sigue:
Directorio de publicación:
WGHnnnnnn
donde nnnnnn es el nombre de la biblioteca que contiene los archivos de pantalla
Directorio de edición:
EWGHnnnnnn
donde nnnnnn es el hombre de la biblioteca que contiene los archivos de pantalla
Para distribuir los objetos de la ayuda a los sistemas de usuario final, es suficiente con salvar a todos los directorios que
empiecen con WGH. Por ejemplo, el directorio publicado de Webgate400 se llama WGHwebgate400.
El directorio con el prefijo EWGH contiene documentos en formato editable.
Page 87 de 108
COMPILADOR WEBGATE – Manual de programmación
12.3.2 Plantillas
Para adaptar el formato de los documentos de ayuda, cuando se crea un nuevo documento aparece una ventana de selección
conteniendo todas las plantillas disponibles en el directorio "Templates" (vea la estructura indicada anteriormente) situada en
el directorio que identifica la clase de documento. Las plantillas que quiera utilizar para cada clase de documento se sitúan en
este directorio. Si hay más de una, aparecerá una ventana de selección durante la creación del documento.
12.3.3 Archivos Involucrados
Una vez el documento se ha creado se encadena con un atributo de vínculo en el archivo WGATR (WGATRC para la versión
personalizada). El vínculo hace referencia al número de identificación del documento codificado en el archivo WGHDC, el cual
contiene la vía de acceso completa al documento.
Las clases de documento están definidas en el archivo WEBGATE400/WGHCL.
12.4
Paneles de Administración de la Ayuda
Para crear, modificar o borrar un panel de ayuda, primero debe ser activado.
Los permisos se definen con el perfil "Configuración del Runtime" en el menú principal de Webgate400.
En particular, un usuario puede tener permisos para mantener la ayuda estándar de la aplicación o solo personalizar la ayuda
por compañía, idioma, grupo o usuario.
Para una breve demostración de cómo se utilizan los paneles de ayuda, vea:
http://www.webgate400.com/EDMSites/Clips/NovitaV3/SviluppoHelpApplicazioneeUtente.swf
12.5
Migración de una Ayuda Existente
12.5.1 Modo
Para migrar paneles de ayuda existentes, estos tienen que ser convertidos a formato HTML y sus referencias tienen que estar
integradas en la base de datos de archivos de pantalla generada por Webgate400.
Está disponible una API, descrita a continuación, que ejecuta esta integración automáticamente.
Así, los usuarios que quieran ejecutar la migración deben:
1. Ejecutar un programa que identifica esos documentos.
2. Ejecutar un programa para cada documento convirtiéndolo a formato HTML (ver el siguiente ejemplo) en el archivo
QTEMPWEBGATEHLP.
3. Ejecutar la API WGFHLP01.
4. Volver al paso uno.
Una vez se lleva a cabo la conversión, los paneles pueden modificarse siguiendo el procedimiento de mantenimiento normal
descrito en la sección anterior.
Con este propósito, tras convertir los documentos a formato HTML, además de convertirlos, la aplicación para la gestión de la
ayuda los convierte automáticamente a formato WORD, para editarlos y los guarda en un formato editable en el directorio
(EWGHnnnnnn).
12.5.2 Ejecución Repetida de la Migración
Si es necesario repetir la migración, se deben llevar a cabo acciones antes de volver a migrar:

Borre todos los registros de referencia del archivo WGATR con una instrucción SQL (se identifican por el valor del
campo XFATYP entre 6001 y 6010).

Ejecute CLRPFM en el archivo WGHDC (contiene los vínculos entre las pantallas y los documentos).

Borre los documentos del directorio WGHnnnnn (donde nnnnn es el nombre de la biblioteca que contiene los archivos
de estructura de la aplicación).
12.5.3 API WEBGATE400/WGFHLP01
La API lee el archivo QTEMP/WEBGATEHLP definida con esta sintaxis:
CRTPF FILE(QTEMP/WEBGATEHLP) RCDLEN(32000)
Page 88 de 108
COMPILADOR WEBGATE – Manual de programmación
La sintaxis HTML no puede exceder los 32 Kb de tamaño.
Los datos tienen que estar conectados en un campo con una longitud de 32000 bytes.
Page 89 de 108
COMPILADOR WEBGATE – Manual de programmación
NOMBRE
DESCRIPCIÓN
PARÁMETRO
DE RETORNO
LONGITUD
BIBLIOTECA
Obligatorio. Biblioteca a la que pertenece la ayuda. Es
la biblioteca donde se encuentran los archivos de
estructura de Webgate400
NO
10
COMPAÑÍA
Opcional. Clave de personalización
NO
10
GRUPO
Opcional. Clave de personalización
NO
10
USUARIO
Opcional. Clave de personalización
NO
10
IDIOMA
Opcional. Clave de personalización
NO
10
NOMBRE DEL
ARCHIVO DE
PANTALLA
Opcional. (Deben proporcionarse el nombre del
archivo o sólo el nombre de campo o el nombre del
archivo de pantalla, el nombre de formato y el
nombre del campo juntos). Nombre de la pantalla a la
que pertenece la ayuda. Si no se indica, el documento
que se está procesando se asocia a todos los campos
con este nombre en la aplicación. Si el nombre del
archivo de pantalla se omite también debe omitir el
formato y viceversa.
NO
10
NOMBRE DEL
FORMATO
Opcional. (Deben proporcionarse el nombre del
archivo o sólo el nombre de campo o el nombre del
archivo de pantalla, el nombre de formato y el
nombre del campo juntos). Nombre del formato de
pantalla a la que pertenece la ayuda. Si no se indica,
el documento que se está procesando se asocia a
todos los campos con este nombre en la aplicación. Si
el nombre del archivo de pantalla se omite también
debe omitir el formato y viceversa.
NO
10
NOMBRE DE
CAMPO
Opcional. (Deben proporcionarse el nombre del
archivo o sólo el nombre de campo o el nombre del
archivo de pantalla, el nombre de formato y el
nombre del campo juntos). Nombre del campo al que
pertenece la ayuda, o acceso directo asociado a una
opción de menú. Puede entrar el nombre completo
del campo de la pantalla o su destino precedidos por
un asterisco. Si, por ejemplo, escribe *CODAR y
omite el nombre del archivo de pantalla y formato, el
documento de ayuda se asocia a todos los campos
que acaban con "CODAR" en todos los archivos de
pantalla de la aplicación.
NO
10
CLASE DE
AYUDA
Obligatorio. Clase de ayuda (por ejemplo, 6001 es la
clase Definición General). El archivque contiene estas
clasificaciones es WEBGATE400/WGHCL.
NO
4
SECUENCIA
Dejar en blanco. Número de secuencia del atributo en
el archivo WGATR (WGATRC). El valor lo carga la API
y lo retorna durante la fase de adición.
SÍ
4
TÍTULO
Obligatorio. Título de la ayuda. Es la descripción del
documento de ayuda y es útil también durante la fase
de búsqueda. También se utiliza para establecer el
nombre del documento. Cuidado con los duplicados.
NO
100
ESTÁNDAR
Obligatorio. Forzado a Y. Y = ayuda estándar.
NO
1
ACCIÓN
Obligatorio. Forzado a WGHDCSAVE. WGHDCSAVE =
Añadir ayuda.
NO
10
UNIDE
Dejar en blanco. Identificador único de ayuda. Lo
genera la API y el valor se retorna durante la fase de
adición.
SÍ
18
TIPO DE
AYUDA
Obligatorio. Forzado a '0' para archivos de ayuda
vinculados a objetos de pantalla; forzado a '1' para
archivos de ayuda vinculados a claves de menú.
Define el tipo de ayuda: Indica si el archivo de ayuda
está vinculado a un objeto de pantalla (campo,
archivo de pantalla) o a una clave de menú.
NO
1
Page 90 de 108
COMPILADOR WEBGATE – Manual de programmación
12.5.4 Ejemplo de archivo HTML
El fuente del ejemplo se encuentra en WEBGATE400/WGSAMPLES/WGHLPHTML.
<head>
<STYLE type="text/css">
<!-p.title {color:red; font-family:arial; font-size:16pt; font-weight: bold;}
p.description {color:black; font-family:arial; font-size:16pt; font-weight:bold; marginbottom:3pt;}
p.example {color:blue; font-family:arial; font-size:16pt; font-weight: bold; margin-bottom:3pt;}
p.valuesavailable {color:green; font-family:arial; font-size:16pt; font-weight:bold; marginbottom:3pt;}
div.normal {color:black; font-family:arial; font-size:12pt; margin-top: 3pt;}
-->
</STYLE>
<title>Titolo del pannello di aiuto</title>
<P class=title> Titolo del pannello di aiuto </P>
</head>
<body>
<P class=description>Descrizione</P>
<DIV class=normal>Testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale</div>
<DIV class=normal>Testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale</div>
<P class=example>Esempio</P>
<DIV class=normal>Testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale</div>
<P class=valuesavailable>Valori disponibili</P>
<DIV class=normal>Testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale testo normale</div>
</body>
Visualización del archivo HTML anterior en Explorer.
Page 91 de 108
COMPILADOR WEBGATE – Manual de programmación
El ejemplo anterior muestra una forma básica y fácil de entender de cómo utilizar el lenguaje HTML para escribir paneles de
ayuda.
Todas las partes resaltadas quedan fijadas una vez que el usuario ha ajustado a sus necesidades los diversos parámetros. Las
partes que no están resaltadas configuran el contenido real del panel de ayuda.
Si desea más información sobre el lenguaje puede consultar una de las numerosas publicaciones en la web.
El archivo TEMP/WEBGATEHLP utilizado durante el tratamiento debe contener escrito algo similar también consecutivamente
en el campo WEBGATEHLP (el mismo nombre del archivo) contenido en uno o más registros, si el panel excede 32000
caracteres.
Page 92 de 108
COMPILADOR WEBGATE – Manual de programmación
13 UTILIDADES
13.1
Extracción y Restaurado de Uno o Más Archivos de Pantalla:
Comando WGDSPSND
El comando WEBGATE400/WGDSPSND está disponible para alinear la información gráfica ESTÁNDAR para un archivo de
pantalla a su objeto (incluyendo referencias a cualquier archivo de ayuda, valores predeterminados, tablas y jerarquías). Este
comando permite salvar y restaurar la información en un archivo de pantalla WG-Compilado.
Se crean doce archivos de trabajo (WG2ATR, WG2DS, WG2DSPF, WG2DSIND, WG2DSMSG, WG2FDB, WG2FLD, WG2FMT,
WG2DFT, WG2HDC, WG2VER, WG2RUNF) en una biblioteca y es posible especificar cuál.
Los parámetros determinan:

El nombre del archivo de pantalla: Puede indicar un archivo de pantalla único, un grupo de archivos de pantalla (por
ejemplo, RGBM*), o todos los archivos de pantalla en la biblioteca (*ALL).

El nombre de la biblioteca conteniendo el archivo de pantalla WG-Compilado.

La opción (*SAVE o *RST) la cual permite salvar o restaurar el archivo de pantalla.

El modo (*ADD o *REPLACE) de la copia que debe ser ejecutada en los archivos de trabajo (solamente junto a la
opción SAVE). Cuando se salva con la opción *REPLACE, se lanza una búsqueda de los archivos WG2* y se limpia su
contenido.

El nombre de la biblioteca donde quiere salvar los archivos de trabajo (WG2*).
Una vez los archivos de trabajo se han restaurado, llamando al comando en el modo de restauración (*RST), los datos son
situados en los archivos originales de la biblioteca especificada en el sistema.
Es importante prestar atención a lo siguiente con el fin de asegurar que el comando funcionará correctamente:
1. Ponga siempre la misma biblioteca para los archivos de pantalla cuando salve y restaure.
2. Haga que la biblioteca que contiene el objeto sea la biblioteca para el archivo de pantalla.
3. El comando lanzado en más de un archivo de pantalla a la vez (por ejemplo, RGBM* o *ALL) gestiona como máximo
9999 archivos de pantalla.
4. Cuando se hacen cambios de nivel o cuando son integrados nuevos archivos de Webgate400, es necesario ejecutar
el comando de salvado con la opción *REPLACE, de forma que los archivos WG2 vuelvan a ser creados basándose en
las nuevas vías de acceso para los archivos correspondientes en el PC de origen.
Page 93 de 108
COMPILADOR WEBGATE – Manual de programmación
13.2
Borrado de Especificaciones Gráficas de Archivos de Pantalla
Existe un programa que hay que llamar con el fin de borrar de los archivos WG* los registros existentes para un archivo de
pantalla y que se añadieron durante la conversión:
CALL WEBGATE400/WGALLWGFP
Los parámetros requeridos son el nombre de biblioteca y el nombre de archivo de pantalla.
13.3
Depuración de un Programa WG-Compilado
Tal como se ha indicado, durante la conversión de los fuentes RPG que gestionan un archivo de pantalla, éstos vuelven a ser
procesados con las especificaciones gráficas añadidas y son recompilados de forma que el objeto puede ser ejecutado tanto
en el entorno 5250 como en el entorno gráfico.
Cuando es necesario depurar un programa WG-Compilado en modalidad 5250, la conversión necesita ser lanzada con la vista
de depuración en el objeto:
1. Es necesario modificar las opciones de conversión del proyecto asociado y conectar con el perfil WEBGATECVT,
función "Control del WG-Compilador ", opción 10 en el proyecto. Aparece una ventana con las opciones para las
especificaciones de compilación del proyecto; establezca el parámetro DBGVIEW para el comando CRTBNDRPG
(sección II) a "*ALL" y el mismo parámetro para el comando CRTSQLRPGI (sección III) a "*SOURCE". Lance de
nuevo el programa de conversión.
Si es necesario depurar del programa en el entorno gráfico, necesita:
1. Proceder de la misma forma que en el punto 1 de la conversión 5250.
2. Entonces, tras generar la sesión Webgate lanzando al programa o función desde el menú, debe lanzar el siguiente
comando a través de la sesión 5250:
STRSRVJOB JOB(NombreSesiónWebgate)
Si no es el único trabajo abierto con este nombre, aparece una lista para seleccionar cuál es el activo.
3. Ejecute entonces:
STRDBG(NombreDePrograma)
Page 94 de 108
COMPILADOR WEBGATE – Manual de programmación
Aparece la pantalla de diálogo, donde está ubicado el RPG; introduzca los puntos de interrupción necesarios y continúe con el
programa utilizando la tecla F12.
Page 95 de 108
COMPILADOR WEBGATE – Manual de programmación
14 VERSIONES WEBGATE (RXXXX)
Se puede instalar en el mismo sistema diferentes versiones de la aplicación Webgate400 y sus módulos. El PC cliente utiliza la
versión correcta de una forma que es transparente para el usuario. El procedimiento de instalación del cliente se ocupa de
descargar solamente los componentes necesarios para la aplicación: Los diversos componentes (ayuda, gestor,...) se
descargan automáticamente la primera vez que se utilizan.
Page 96 de 108
COMPILADOR WEBGATE – Manual de programmación
15 GLOBALIZAR APLICACIONES CON EL USO DE WEBGATE400
15.1
Introducción
El objetivo de este manual es ser una guía útil para el desarrollador de aplicaciones que quiere internacionalizar su trabajo,
es decir el desarrollador que quiere permitir el uso de la tecnología desarrollada por parte de grupos de usuario heterogéneos
por lengua, cultura y nacionalidad
15.2
Definiciones
15.2.1 Globalización/Localización
Globalización en el contexto de “información technology” quiere decir permitir el uso de una tecnología con todos los
idioma, tipo de escritura (script) y cultura (W3C Internazionalizaciàon Activity Proposal, 05 de septiembre de 2002). El
término original utilizado màs a menudo es internacionalización.
Para la localización se entiende la "configuración de una tecnología con respecto a un idioma particular y la cultura" (W3C
Internazionalizacion Activity Proposal , 05 de septiembre de 2002).
La globalización hace posible y facilita la localización.
Localización de datos

Formato de datos (fechas, horarios , moneda, representación de números)

Lengua (idioma y caracteres en la que los datos son expresados)
15.2.2 Glyphs y caracteres (characters)
Un "glyph" es una figura, generalmente visible, que se utiliza en la escritura.
Un "carácter" es un glyph que tiene significado o función en una lengua escrita. Letras, ideogramas en idiomas como chino,
signos de puntuación, fórmulas matemática, notas musicales o el braille son todos ejemplos de caracteres glyps que se usan
en lengua escrita.
Un glyph se puede utilizar para representar caracteres diferentes en distintos idiomas:

el glyph de P se utiliza para la letra 'P' en el alfabeto latino y la letra ER ' en cirílico

el glyph c se pronuncia como una "k" o una "s" en inglés, se pronuncia "ts" en Polaco
en ambos casos, un glyph, 2 diferentes usos, 2 distintos caracteres.
15.2.3 Script
Un script es un conjunto de letras parecidas y otros símbolos escritos que se utilizan para representar la información textual
de uno o más sistemas de la escritura (The Unicode Glossary). Ejemplo de scripts son los alfabetos, los varios Latinos (angloAmericano, Polaco, etc.), Cirílico, Griego, Árabe, los alfabetos indianos (Indic ), los alfabetos chinos y japoneses.
15.2.4 Set de caracteres (Character Set)
Un conjunto de caracteres que representa una Script o un subsistema de una Script. Ejemplos son: el alfabeto Latín en uso
en Europeo Occidental, el alfabeto latin de Europa Central, el chino simplificado y tradicional. Muchos utilizan el término
"charácter repertoire" y "charácter set" como sinónimo de " code page".
15.2.5 SBCS/DBCS/MBCS

SBCS significa “Single Byte Character Set ": utiliza un sólo byte para representar cada uno de los caracteres
pertenecientes al charácter set.

DBCS significa "Doble Byte Character Set ": utilizando dos bytes para representar cada uno de los caracteres
pertenecientes al charácter set.

MBCS significa "Multi Byte Character Set": es el uso de un número variable de bytes para representar cada uno de
los caracteres pertenecientes al character set.
15.2.6 Code Page
Un conjunto de códigos numéricos son asignados a los caracteres relacionados a valores binarios memorizados en un
ordenador. Un code page (página de códigos) es el esquema para codificar uno o más conjuntos de caracteres.
La relación entre charácter set

y un code page es de muchos a muchos.
Un único charácter set puede ser codificado en diferentes formas que dependen de la estructura del sistema
informático que procesa los datos, por ejemplo un esquema de codificación ASCII en un PC y un esquema de
codificación EBCDIC en un mainframe ( marco principal).
Page 97 de 108
COMPILADOR WEBGATE – Manual de programmación

Una sola code page puede contener más de un charácter set, si se basa en un esquema de múltiples bytes (MBCS).
Por ejemplo, la code page estándar de la República Popular de China incluye más de 6000 símbolos de la script
Chino Simplificada y el charácter set latino de Europa occidental (en otra parte indicado como Latin-1).
Hay code page estándar para todos los lenguajes escritos más ampliamente usado (character set).
Ejemplos de code page para el carácter set de los idiomas latinos

ISO-8859-1de Europa occidental

ISO 8859-2 de Europa Central

IBM EBCDIC CP00870 de Europa Central
Ejemplos de code page para el carácter set de los idiomas no latinos:

Gb2312 :Estándar nacional de Chino

ISO-8859-6 :Árabe

Windows 949: Corea
15.2.7 Sistema de codificación de datos (Character Encoding)
Establece el número binario que el ordenador va a utilizar para representar los caracteres que ves en la pantalla o en la
impresora.
Los 2 principales sistemas de codificación, y entonces su codepages, son ASCII y EBCDIC.
ISO 646 (ASCII: American Standard Code for Information Interchange : código estándar Estadounidense para el intercambio
de informaciones)

codificación de 7 bits (128 caracteres)

nativo en PC
EBCDIC (Extended Binary Coded Decimal Interchange Code )

codificación de 8 bits. 256 caracteres.

Estándares propietarios de IBM. Originalmente desarrollado porque se utilizaba con tarjetas perforadas.

Nativo en muchos dispositivos IBM (mainframes, impresoras). No utilizado en PC.

IBM ha desarrollado numerosas code pages equivalentes a code pages de códigos ASCII
Equivalencia de la letra 'A'
Code Page
Valor hexadecimal
ISO 646 Superset of ASCII
X '41
ISO 8859-1 Western Europa (ASCII)
X '41
CECP 500 Internacional Latin(EBCDIC)
X 'C1
Unicode UTF-8
X '41
Unicode UTF-16
X '00 41
UTF-EBCDIC
X 'C1
Page 98 de 108
COMPILADOR WEBGATE – Manual de programmación
15.2.8 Unicode
Unicode es el nombre de la code page, multi byte, universal que puede contener todos los 'character set'.
Esquema de asignación en la code page Unicode de los varios Character set/alfabetos en el interval(rango) 0000-FFFF,
también conocido como Basic Multilingual Plane (BMP).
Unicode define 2 modos de codificación (encoding): el Unicode TrasformacionFormat y el Universal Character Set.
El primer se caracteriza por la capacidad para representar los codepoints unicode en un numero variable de bytes(MBCS), el
segundo para un número fijo de bytes DBCS.
Codificación
Número de bits/bytes
UTF-8
8 bits
UTF-16
16 bits
UTF-32
32 bits
UCS-2
2 bytes
UCS-4
4 bytes
Page 99 de 108
COMPILADOR WEBGATE – Manual de programmación
Mientras que UCS-4 y UTF-32 son equivalentes, UCS-2 y UTF-16 son diferentes en cuanto UCS-2 es capaz de representar
solamente la 'range' x'0 -x'FFFF vice versa UTF-16 representa el range x'0- x' 10FFFF utilizando 4 bytes para codepoints
mayor de x ' FFFF.
15.2.9 Universal Character Set (UCS)
EL estándar internacional ISO/IEC 10646 define el Universal Character Set (UCS)(Juego de caracteres Universal -UCS)
como un carácter encoding. Contiene cientos de miles de caracteres abstractos que se identifican cada uno con un nombre y
número que se llama code point.
Los caracteres (letras, números, símbolos, ideogramas, etc.) de diferentes lenguajes, scripts y tradiciones del mundo están
representados por un único code point.
UCS se actualiza constantemente con la inclusión de nuevos caracteres. Por esta razón se habla de versiones UCS , estamos
actualmente en la versión 4.0 (UCS-4).
La versión 4 de UCS es capaz de cubrir más de 1,1 millones de puntos de código (1.114.111), pero sólo los primeros 65.536
entraron en uso común antes del año 2000.
En este caso se refiere a la versión 2.0 (UCS-2).
Esta situación evolucionó cuando la República de China decidió que en su territorio los ordenadores vendidos tenían que
suportar la code page GB1830 que incluye tanto el chino simplificado que el chino tradicional. Esto obligó al estándar USC a
superar el límite de 65.535.
Afortunadamente, el sistema había planeado mantener algunas áreas en el BMP para su uso futuro. Para superar el problema
entonces se recurrió a los llamados surrogados, esto condujo a la superación de la codificación UCS-2 en favor de la
codificación UTF-16.
UCS-2 (2 bytes encoding):

encoding de longitud fija

2 bytes (sólo BMP)

cubre la mayoría de alfabetos y chino simplificado

nativo para Windows NT/2000/XP/Vista, SQL Server,. NET, Symbian

No se recomienda para DB2 y Oracle
UCS-4 (4 bytes codificación):

Encoding de longitud fija

4 bytes

cubre todas las code page y más allá

No se recomienda
15.2.10
Unicode Trasformation Format (formato de transformación Unicode) (UTF)
UTF-8 (8-bit encoding):



Encoding de longitud variable
De 1 a 4 bytes por character
o
1 bytes en el estándar US-ASCII
o
2 bytes por los alfabetos
o
3 bytes para chino simplificado
o
4 bytes para chino tradicional
Especialmente utilizado en protocolos de internet, adoptados por el Internet Mail Consortium
UTF-16 (16 Bit Encodingt ):

Encoding de longitud variable

2 bytes para el BMP o 4 bytes para los 'planes' siguientes

2 bytes cubren la mayoría de los alfabetos y el chino simplificado

Soporta scripts bidireccionales como hebreo y árabe

Es el formato interno de IBM Z/OS, es nativo de Java

Versión nativa 2 bytes para SQL Server, Windows 2000/XP/Vista (con soporte para los suplentes) Symbian, .NET

Aprobado para dominios de internet

Recomendado por consultores de IBM

Utilizado como CCSID por default (defecto) en los datos de UNICODE para OS/400
15.2.11
UTF-EBCDIC

Versión UTF-8

Encoding de longitud variable
Page 100 de 108
modificada por EBCDIC
COMPILADOR WEBGATE – Manual de programmación

De 1 a 5 byte por carácteres
o
1 byte para el estándar US-ASCII
o
2/3 bytes para los alfabetos
o
4 bytes para chino simplificado
o
5 bytes para chino tradicional

Soporta todos los caracteres de UNICODE

Formato interno utilizado para permitir migración o la convivencia de datos y no para el intercambio de los mismos

No es activamente apoyada por IBM que pero ha elaborado la especificación que está depositada en el consorcio de
Unicode

Es el formato interno de trabajo del 'parser' XML desarrollado por Webgate400
Esta explicación es fuertemente orientada hacia el uso de UNICODE.
Page 101 de 108
COMPILADOR WEBGATE – Manual de programmación
15.3
LA ESTRATEGIA
15.3.1 Enfoque global

Migración de los database a UNICODE

Exclusión de soluciones DBCS (también por recomendación de IBM)

Convertir a UNICODE sólo los datos que realmente lo necesitan.

Construir los sistemas en dos niveles:
o El nivel de interfaz hombre-máquina (Customer Interface Layer), donde los usuarios interactúan con el
sistema de información
o El nivel de proceso (Core Processing Layer), donde los datos se validan, son procesados, almacenados y
distribuidos a múltiples aplicaciones a por ser utilizado, por su análisis o crear informes.

La mayoría de los datos para el CPL no necesitan el formato UNICODE.

Minimizar el trabajo y el riesgo . Dejar el CPL como se encuentra. Aplicar la localización y UNICODE en el CIL.
15.3.2 Consideraciones sobre los datos
15.3.2.1 Clasificación de los datos donde Unicode no es necesario

Codigos/identificadores alfanuméricos: códigos partes, códigos de cliente/proveedor, códigos de tablas de uso
internos, etc.)

Fecha

Números (identificadores)

Cantidad

Totales (de monedas)

Timestamps ( marcadores de tiempo)
15.3.2.2 Clasificación de los datos donde Unicode es necesario

Nombres: Organizaciones, personas, direcciones, países.

Texto: Títulos, traducciones , mensajes, etiquetas (labels), comentarios, texto por direcciones de correo, correos
electrónicos .
15.4
Tácticas de Data Managment

Desarrollar el código estándar para el uso en aplicaciones globalizadas utilizando el lenguaje y los códigos que son
genéricos para la organización. Planificar descodificaciones para descifrar múltiples idiomas y alfabetos.

No localizar a nivel de código la gestión de la información: desarrollar servicios genéricos.

Determinar el nivel de integración de datos que se quiere utilizar: un database único o un database por país.

Considerar la posibilidad de añadir datos de idioma y script como clave de database para memorizar el texto. Puede
ser necesario almacenar la versión de idioma local, la versión transliterada y la versión traducida.

Aumentar la capacidad de almacenamiento (más bytes por carácter en versiones localizadas)

Activar servicios de traducción

Iniciar proyectos piloto para implementar las técnicas. Globalización significa desarrollar técnicas genéricas, no patch
15.5
Proyectos piloto
Utilizar proyectos piloto para desarrollar y documentar el material que se reutilizará para otras aplicaciones: métodos,
procedimientos, frameworks, estándares, pruebas, 'lecciones aprendidas' y modelos de planificación.

Desarrollar, probar y documentar métodos y procedimientos para “Unicoding“ y 'data bases'

Elaborar normas y guías practicas

Identificar, probar y documentar la infraestructura y el software necesario
Page 102 de 108
COMPILADOR WEBGATE – Manual de programmación
15.6
Globalización y iSeries
Nivel sistema operativo
Soporte Unicode
V4R4
UCS-2 (CCSID 13488)
V5R1
ICU (Componentes Internacionales para
Unicode)
V5R3 + PTF
UTF-8 (1208/1209)
UTF-16 (1200/1201)
15.7
Definiciones de campos Unicode en Webgate400
Para definir, en un display file, campos que soporten el estándar UNICODE, hay diferentes posibilidades.
El estándar IBM prevé la definición en el archivo video, de campos de tipo G (=gráfico) completados con la específica palabra
llave CCSID con el valor adecuado.
A
A
R REC01
UFLD1
50G
B
9 43CCSID(xxxxx)
Donde xxxxx puede ser:
Release OS/400
4.2
5.3 (con PTF)
5.3 (con PTF)
Estándar
UCS-2
UTF-16 BE
UTF-8
Valor
13488
1200 (formato interior de default para OS/400)
1208
El estándar IBM es soportado por Webgate400 según los límites impuestos por la release de realización.
Con Webgate400 es posible, a través de la palabra llave text, soportar campos UNICODE aun más en release precedentes y
obtener funcionalidades adicionales que están conectadas a campos que no son de tipo G.
15.7.1 Asignación de un CCSID a través de la palabra llave TEXT
A
A
R REC01
FLD2
50A
B
9 43TEXT('<W><CI>xxxxx</CI></W>')
Donde, en el sentido general, xxxxx es el CCSID que hay que utilizar en el tratamiento del campo.
Con la escritura de arriba es posible hacer gestionar el CCSID (SBCS o UNICODE), del campo video en objeto, de manera
autónoma con respecto al sistema operativo.
15.7.1.1 UTF-EBCDIC (CCSID 1210)
Un caso particular concierne el CCSID n.ro 1210, catalogado, pero no activamente soportado por IBM que clasifica su
utilización en las fases de migración de aplicaciones de SBCS a UNICODE.
A
A
R REC01
FLD2
50A
B
9 43TEXT('<W><CI>1210</CI></W>')
La escritura de arriba, permite la utilización de un campo alfanumérico normal (no tipo G), para contener datos UNICODE en
el formato UTF-EBCDIC (CCSID 1210).
Esta es claramente una ventaja si pensamos en una migración „suave‟ de las bases de datos de SBCS a Unicode, porque no
nos obliga a rehacer el proyecto completo de la base de datos. Más bien habilita viejas bases de datos SBCS a contener
datos de tipo UNICODE.
15.7.2 CCSID Variable
Además la interfaz de Webgate ofrece la posibilidad de establecer de manera variable (a runtime), el CCSID de un campo
video.
A
A
A
Page 103 de 108
R REC01
FCCSID
FLD1
5S 0H
50A B
7 43TEXT('<W><CC>FCCSID</CC></W>')
COMPILADOR WEBGATE – Manual de programmación
La variable FCCSID contendrá (a runtime) el código del CCSID por el cual será representado el campo FLD1.
Consecuencia lógica es que se puede obtener una aplicación nativa SBCS que muestra en su pantalla diferentes CCSID. Aquí
también se puede hablar de migración „suave‟.
Una aplicación práctica puede ser la del traductor donde el valor de un campo se puede expresar en una lengua, mientras que
el equivalente que incluye la traducción tiene que ser expresado en el CCSID de aquella lengua.
A
A
A
A
A
Page 104 de 108
R REC01
FCCSID
TCCSID
FWORD
TWORD
5S 0H
5S 0H
50A B
50A B
7 43TEXT('<W><CC>FCCSID</CC></W>')
7 43TEXT('<W><CC>TCCSID</CC></W>')
COMPILADOR WEBGATE – Manual de programmación
16 TABS CONTROL
Los TABS Controles son formatos video que pueden trabajar como envase para otros formatos (llamados paneles o sheets).
Cada formato resulta accesible a través de la presión del ratón en “ pestañas” (Tabs), que llevan una etiqueta de
identificación del contenido atinente a cada panel (sheets).
Esta estructura en 'pestañas', de alta visibilidad, es particularmente útil para 'aliviar' cada formato y para distribuir mejor las
informaciones. Estas pestañas son muy apreciadas en programas que gestionan muchas informaciones (por ejemplo los datos
anagráficos principales) aportando mínimas modificaciones al display file y al programa.
Los Controles TABS pueden incluir paneles (o sheets), formatos registro solos o compuestos (ej. control + subfile). Además
en una pantalla pueden aparecer más de un Control TABS (más contenedores o grupos), cada uno con sus 'pestañas' y sus
paneles (superando aun el límite de las 132 columnas o de las 27 líneas).
TABS Controles
TAB (pestaña)
Sheet (panel)
Ejemplo de uso de un Control TABS en un típico programa de gestión anagráfica clientes proveedores.
16.1
Modificaciones en el display file
16.1.1 Overlay
Asociar a los varios formatos implicados la palabra llave OVERLAY.
16.1.2 Definición del formato de control
Hay que definir un formato que desarrolle la función de contenedor y control de los formatos secundarios.
A este formato se va a asociar la TEXT *TCL (TABS Control):
<W>*TCL:5;2;23;131</W>
En la text se define la naturaleza del formato, su posición y dimensión. En nuestro ejemplo:




5 = linea
2 = columna
23 = número líneas
131 = número columnas
16.1.3 Definición de los campos en el formato de control
En este campo hay que definir 5 campos ocultos:
Page 105 de 108
COMPILADOR WEBGATE – Manual de programmación
1.
TABS Structure (estructura Tabs): es un campo oculto alfanumérico suficientemente grande; sirve para
definir la estructura de la tab. Es definido por la text :
<TS>EDMMSG001/M211001</TS>
Es obligatorio hacer referencia a un MSGID (que se encuentra en línea durante la conversión), en el cual se va a definir la
estructura del grupo de formatos que se quieren insertar en el Control TABS.
El MSGID contiene fundamentalmente una lista de formatos separada por punto y coma.
Ejemplo de lista simple
T1;T2;T3;T4;T5;
donde T1, T2, T3, T4 son formatos a introducir en el grupo.
El switch (conmutador) entre un formato y otro ocurre de manera clara con respecto al programa de referencia.
Ejemplo de lista compuesta
T1CTL:T1SFL;T1H:T1F;T2;
donde T1CTL es un subarchivo control unido a su subarchivo T1SFL, T1H es un formato header y T1F un formato foot (pie)
emitidos en el mismo sheet, T2 es un formato solo.
El switch (conmutador) entre un formato y otro ocurre de manera clara con respecto al programa de referencia.
Si se quiere simular la presión de una tecla en la activación de un panel (cuando se vaya a hacer clic en la pestaña
correspondiente), hay que especificar la tecla como en la explicación siguiente:
T1CTL:T1SFL,CF01;T2,CF02;T3,CF03;T4,CF00;
La tecla ENTER es descrita con CF00.
2.
Display On/Off: es un campo 1 alfanumérico que contiene el valor „1‟ si el TABS Control tiene que ser
visualizado y „0‟ en caso contrario.
La text que lo define es:
*TABDLY
3.
TABS Descripción: es un campo oculto alfanumérico que contiene las diferentes descripciones que se colocan en
las etiquetas.
Está caracterizado por la TEXT:
*TABDES
Puede ser valorizado por programa o por la text <MI>…</MI>. En nuestro ejemplo:
Precios/Descuentos;Recibo/Facturas/Transportes;Clasificaciones/Crédito;Especificas/Expedición/Previsiones;E
ntrega;
4.
Active Sheet: es un campo 2 alfanumérico y sirve para identificar el panel (sheet) activo en un determinado
grupo (de „01‟ a „99‟). Por eso permite establecer tanto la sheet activa en la próxima emisión de la pantalla como
registrar la última tab (pestaña) 'clicada' por el operador. El número corresponde a la posición del formato en el
MSGID.
Está caracterizado por la TEXT:
*TABACT
5.
TABS Attributes (atributos): es un campo alfanumérico largo 99 que corresponde a un array de 99 elementos
largos 1 , donde cada elemento contiene el atributo del sheet correspondiente. Los atributos que se pueden
gestionar actualmente son:



Blank(vacío): DEFAULT,
N (=Not Display): todos los campos de la sheet correspondiente son „NOT DISPLAY‟.
P (=Protect): todos los campos de la sheet correspondiente son protegidos.
La text che lo define es:
*TABATR
No es un parámetro obligatorio.
Page 106 de 108
COMPILADOR WEBGATE – Manual de programmación
6.
Running Group: es un campo alfanumérico largo 1, refiere la información del TABS Control actualmente activo en
la pantalla (en el caso en el cual estén más de uno). el valor '1' indica que el TABS Control contiene la última tab
activada (clicada) por el operador. En caso contrario contiene el valor '0'.
Además se puede usar para forzar el TABS Control al cual pertenece para que sea aquel actualmente activo en la
pantalla durante una fase de emisión. Obviamente los demás tienen que presentar valor '0'.
La text que lo define es:
*TABRUN
No es un parámetro obligatorio porque resulta útil sólo cuando han sido definidos más Controles TABS.
16.2
Modificaciones al programa
El programa requiere modificaciones mínimas que tiene que ser aportadas ad hoc para la versión gráfica: si se desea que el
programa siga funcionando en entorno 5250, las específicas añadidas tendrán que estar subordinadas al valor de la variable
WEBGATE=1.
El ciclo de emisión del video tiene que ser estructurado como sigue:

En fase de apertura del programa se necesita configurar las variables:

La tab activa antes de la emisión se guarda en una variable ventajosa para condicionar luego la „read‟:
Este campo es útil para entender cuál es el último formato visualizado. De hecho el “Active Sheet” en el momento de
la lectura contiene el número de la tab que ha sido clicada por el operador.

WRITE de cada sheet:

WRITE del formato “contenedor”:
La escritura de este formato sirve para definir los grupos visualizados y las tabs activas o protegidas.

EXFMT de uno de los formatos en pantalla:

READ del formato “contenedor”:
La lectura de este formato sirve para identificar activos el Control TABS y la sheet.

READ del último formato de la estructura emitido:
Page 107 de 108
COMPILADOR WEBGATE – Manual de programmación
Despúes de esta „read‟, se puede ejecutar el control en el formato correspondiente: si el control tiene éxito positivo,
inicia el „loop‟ de gestión de la tab activa (variable TCTL01ACT); si el control tiene éxito negativo se va a forzar la
re-emisión del formato precedente (variable TCTL01PRV).
Antes de volver a la WRITE, es posible modificar los valores de las variables “Active Sheet” y “Display” así que se
pueda definir cada vez el formato activo y la modalidad de visualización.
16.3
Colocación del cursor
El client de Webgate asigna el focus al primer campo que lo requiere; examinando la pantalla es el que se encuentra
empezando por el vértice izquierdo de arriba.
En el caso de que el primer campo pertenezca a un sheet que se encuentra dentro de un TABS Control, van a ser activados
los grupos correspondientes y la tab relativa.
Si un campo perteneciente a un sheet que se encuentra dentro de un Control TABS, tiene el atributo Position Cursor
(colocación del cursor) activado, se activan los grupos correspondiente y la tab relativa.
NB. El atributo PC o la presencia de un ERRMSG siempre tienen la prioridad en la asignación del focus tanto en el interior
como en el exterior del Control TABS.
Page 108 de 108
Descargar