HERRAMIENTAS DE CUSTOMIZACIÓN Manual de analista de
Transcripción
HERRAMIENTAS DE CUSTOMIZACIÓN Manual de analista de
Herramientas de Customización – Manual de Analista de Sistema HERRAMIENTAS DE CUSTOMIZACIÓN Manual de analista de sistema Pagina 1 Herramientas de Customización – Manual de Analista de Sistema SUMARIO 1 2 INTRODUCCIÓN ................................................................................................................... 3 HERRAMIENTAS DE PERSONALIZACIÓN .............................................................................. 3 2.1 2.1.1 2.2 Editor SQL .............................................................................................................................................. 3 Específicas de Visualización SQL............................................................................................................ 5 Gestión Interrogaciones Genéricas (G5) ..................................................................................................... 10 2.2.1 Default Parcialización Interrogación ...................................................................................................... 12 2.2.2 Funciones de Parcialización ................................................................................................................. 13 2.2.3 2.3 2.3.1 2.4 Comando ejecución interrogaciones EXEEG5 .......................................................................................... 14 Mantenimiento Procesos y Funciones SQL (Stored Procedures e UDF) (HU)...................................................... 14 Debug procedure (proceso de debug) ................................................................................................... 17 Gestión programas EXIT (HX) ................................................................................................................... 18 2.4.1 Esquema de funcionamiento ................................................................................................................ 22 2.4.2 Utilización de las Fórmulas .................................................................................................................. 23 2.4.3 Inner Join ......................................................................................................................................... 24 2.4.4 Utilización funciones SUF_ en instrucciones SQL ..................................................................................... 24 2.4.5 Variables disponibles .......................................................................................................................... 24 2.5 Mantenimiento Files Mensajes (EP) ............................................................................................................ 25 2.6 Fast Query (Ver manual especifico) ........................................................................................................... 25 2.7 Añadidura Columnas SubFile a través de Webgate400 .................................................................................. 26 2.7.1 Valorización de los campos a través de expresiones SQL.......................................................................... 27 2.7.2 Valorización por medio de fórmula........................................................................................................ 29 2.7.3 Valorización de los campos a partir de Programas exteriores .................................................................... 29 2.7.4 Tratamiento de los campos UNICODE (tipo G) ........................................................................................ 30 2.7.5 Añadidura de columnas LINK y/o Imagen .............................................................................................. 30 2.7.6 2.8 2.8.1 2.8.2 2.9 Añadidura de una columna ICONO ....................................................................................................... 31 Command Services ................................................................................................................................. 32 Command Services de tipo Drag and Drop ............................................................................................. 33 Tips ................................................................................................................................................. 35 Sintaxis de las Variables y de los Campos ................................................................................................... 35 2.10 Sesión Base de Datos (STRDBMON) .............................................................................................................. 35 2.11 Pagina 2 Interrogación LOG de Applet..................................................................................................................... 36 Herramientas de Customización – Manual de Analista de Sistema 1 INTRODUCCIÓN Las herramientas que se describen a continuación tienen por objeto facilitar los departamentos de asesoramiento y asistencia en el cumplimiento de las exigencias del cliente en cuanto a la satisfacción de unas necesidades específicas y de la intervención tempestiva . Al mismo tiempo, sirven para mantener unos principio de desarrollo estandarizado sin sobrecargar el programa de funcionalidad y visualización de poca importancia para el interés colectivo. Este objetivo es particularmente importante a fin de no proliferar indefinidamente campos, columnas, opciones y teclas de función que hacen que el uso del producto sea poco intuitivo. A QUIÉN ESTÁ DIRIGIDO A los operadores de las aplicaciones de gestión que tienen la tarea de consultar los datos elaborados por el sistema de información de la compañía. CONSEJOS Cuando usted decide utilizar estas herramientas en su sistema, no olvide añadir en rescates diarios las bibliotecas WEBG4FD WGFRnnnnD , si no está ya previsto. Si utiliza unos * MSGF Custum creados en librerías en lengua como WGLANGITA recuerde que también estas bibliotecas estén guardadas. CÓMO ACTIVAR LAS FUNCIONES Simplemente en el menú WEGGATECVT en: Menú Aplicaciones-> Herramientas de personalización. 2 HERRAMIENTAS DE PERSONALIZACIÓN 2.1 Editor SQL Está disponible en una amplia variedad de programas de personalización, en gestión de atributos y en Query Command, sin embargo, requiere como requisito previo que esté instalado "Microsoft .NET Framework 4". Permite la inclusión de una o más instrucciones SQL encadenada, en una forma sencilla y fácil de leer. Es posible ingresar las instrucciones escribiendo todo de seguida, entonces el editor se encargará de dar el formato adecuado y hacer que se pueda fácilmente leer y realizar la comprobaciones de sintaxis en forma automáticas y a respetar la longitud de las instrucciones donde había estas limitaciones, como en el caso de comando "CREATE PROCEDURE" o "CREATE FUNCTION" si el texto excede 80 caracteres, este se resalta en rojo. Si estén presentes los parámetros en la instrucción, estos se resaltan con un color distinto. En el marco superior, hay iconos que recuerdan algunos de los comandos disponibles con "Clik izquierda" en la ventana de negro del editor. Figura 2.1-I (RFQX04FM/W11) "Expandir /Reducir” le permite cambiar desde el formato reducido para el formato ampliado (y viceversa) para permitir la lectura completa incluidas cadenas de comandos muy largas. ”Formato“donde se introduces instrucciones SQL compactadas , reduce las instrucciones por presentarlas de una manera más fácil de leer y interpretar. Esta función también se activa de forma automática cada vez que se entra en un SQL ya guardado. Pagina 3 Herramientas de Customización – Manual de Analista de Sistema “Consulta QUERY" en la elaboración de los comandos SQL, se puede ejecutar el comando SQL por visualizar el resultado obtenido, le permite comprobar los errores de sintaxis de los comandos introducidos . Por cada statement, se muestra el resultado de este análisis y en caso de errores, seleccionando el MSG del error es resaltada en el editor la línea donde se encuentra el error. “Ejecutar SQL" siempre en la fase de redacción SQL, puede ejecutar las instruciones SQL y visualizar el resultado obtenido. Con la versión 8.0.0.52 de Webgate se puede solicitar la ejecución de una query que contiene parámetros, aunque no se espera que estos son solicitados por Prompt, como podría ser cuando los parámetros provienen de Pantallas. El sistema detecta automáticamente todos los parámetros Query y sugiere incluir un valor que se utilizará durante la ejecución. “Añadir Especificación" permite abrir la ventana de impostación "Especificaciones de visualización SQL." Veremos más adelante cómo se compila. "Mostrar Especificaciones" muestra las especificaciones incluidas en el SQL en el antiguo formato . Estas, cuando sea posible, se deben quitar y convertir según el nuevo formato que veremos en breve. "Intellisense" (no disponible con el icono), permite preguntar al programa la sugerencia de nombres de campos o archivos que comienzan con las letras usadas a medida que se introducen. La función sobre la base de la posición del cursor en el interior de lo statement, reconoce si la palabra que se está escribiendo es nombre de archivo ( file) o del campo, y filtra de seguida sugerencias que muestran el nombre y la descripción. Figura 2.1-II (RFQX04FM/W11) “Insert Snippet” (no disponible con el icono) para insertar en el editor, en el punto donde se encuentra el cursor, bloques predefinidos de código SQL, y que podría ser SELECT, INSERT, o CREATE VIEW. “Wizard” le permite insertar en un SQL Query funciones predefinidas a través de una interfaz que conduce al desarrollo de sus parámetros requeridos. En primer lugar, se le mostrará una lista de funciones disponibles que se pueden utilizar en comandos SQL. Resaltando la línea inherente a la función que se desee utilizar y pulsando el botón "Siguiente" muestra la función y los parámetros requeridos por compilar. Una vez completado, se ejecuta por el editor , en el punto donde se está colocado con el cursor, la cadena de comandos de la función seleccionada. seleccionamos por ejemplo una función de interrogación logística declaramos la variable y seleccionamos el valor resultado entre lo que están disponibles por la función el comando se compila Pagina 4 y confirmando “Ok”, se incorpora en el editor Herramientas de Customización – Manual de Analista de Sistema Desde funciones ya presentes en la instrucción SQL se puede llegar a la pantalla, y luego modificarlas rápidamente abriendo el editor de la función con un doble clik sobre WUF_xxx, y a continuación, pulsando el icono “Wizard”. 2.1.1 Específicas de Visualización SQL Utilizando esta función, que se puede llamar desde Editor de SQL, se puede atribuirse a las columnas de la instrucción SELECT, responsable de la visualización de los datos, una serie de funciones como parámetros, niveles de jerarquizaciones , , cálculo de la suma, promedio mínimo, máximo, las funciones relacionadas con la construcción de tablas , hipervínculos(hyperlink), pivot (consulta cruzada “Cross Query”). La asociación entre la columna y las funciones , es a través del Alias que se debe asignar a cada columna obtenida a través de una expresión. Para las columnas que se desea utilizar por las funciones relacionadas con Command Services y Ajuntos (Administración de Documentos Database Link), tienen que ser utilizados Alias correspondientes a nombres de variables (o terminaciones de los mismos) y no pueden ser utilizados en absoluto si el nombre de la columna corresponde a la ya definida en el diccionario (ver XCODAN columna, XUSERI, etc. Figura 2.1-III (RFQM8FM/T2CTL) Si el encabezado no está especificado, se toma del diccionario de los campos de la base de datos, si no se puede indicar en la especifica. En el ejemplo, algunas columnas se agrupan bajo el título principal, es el caso de "DEPENDIENTE". Para conseguir esto, usted tiene que dividir las dos cadenas con los caracteres“//” como “Dependiente//Código” mientras “Dirección E-Mail” o “Móvil” no pertenece a ningún agrupamiento de columnas. Con “Parámetro” se declara el “Número” progresivo del parámetro y el “Campo a Vídeo” de destino del dato; la codifica (orden) es “TEXMAN01” nombre del campo en la pantalla que recibirá el dato seleccionado y “T1CTL.” el formato video escogido .Tomamos como ejemplo la anterior “Especifica” expuesta , referida a como se puede personalizar un vídeo de búsqueda “Clientes/ Proveedores”. Seleccionando el icono especifico presente en la interrogación SQL , el campo función presente en la línea se vuelca en el campo T1CTL.TEXMAN01 que corresponde al primer campo de cabecera de filtros por función. Pagina 5 Herramientas de Customización – Manual de Analista de Sistema Con “Jerarquía” se establece el orden jerárquico mediante el cual se expondrán los datos. En el ejemplo mostrado, nos limitamos a hacer agrupaciones usando sólo el Codigo Función. Con “Esconde” se puede no visualizar algunas columnas extraidas, al ser necesarias para otras tareas, como podría ser los campos Hyperlink, como se verá más adelante. Mediante “Función” podemos realizar cálculos de resumen de las columnas como “T_otal” , “M_edia” , “C_onteggio”(Cálculo) , “M_áximo” e “M_ínimo”. Mediante “Hyperlink” se puede obtener que los datos de las columnas configuradas puedan ser seleccionables y puedan llamar algunos comandos en función de lo que se ha programado en las instrucciones SQL. Veamos un ejemplo e intentemos aclarar su funcionamiento. Esta es una interrogación sobre los encargos de los Clientes/Proveedores donde podemos ver en el interior de los campos SELECT dos comandos “EXEC://” que vuelven a llamar unos programas, los cuales tienen asociado un ALIAS. Pagina 6 Herramientas de Customización – Manual de Analista de Sistema Como vemos, mediante una numeración, han sido relacionados entre ellos el campo “Descriptivo” de hyperlink con el campo que contiene el comando relativo, que se ejecutará cuando seleccionemos el campo descriptivo. Además se puede observar en el ejemplo que el campo que contiene el comando está ocultado. Por eso en la Query vamos a encontrar el campo ”Dependiente” y “Usuario” que podrán ser seleccionados y reconocidos en la pantalla al aparecer “subrayados”. El comando que se ilustra en el ejemplo es un recibo, entonces seleccionándolo tendremos… Además del comando “EXEC://” están disponibles otros comandos. La lista y su lenguaje se puede encontrar en el “Manual Webgate400 Converter Tutorial”; presentamos de todas formas un resumen. Comando Tipo „http://www.webgate400.com‟ URL „/webgate400/images/rubinetto.gif‟ URL – IFS iSeries Server „EXEC://CALL PGM(ABCV) PARM(„1‟ „DD‟)‟ CALL RPG con emisión nueva ventana „EXEB://CALL PGM(ABCV) PARM(„1‟ „DD‟)‟ CALL RPG batch (sin vídeo) „EXEI://CALL PGM(ABCV) PARM(„1‟ „DD‟)‟ CALL RPG que produce un output a gestionar (ver inserción script) „SQLI:// SELECT‟ SQL sobre nueva ventana Ejemplo Mediante “Chart” se puede configurar los campos sobre los que poder conseguir gráficos, con la función disponible sobre applet. Veamos cómo definir los datos, mediante un simple ejemplo, análisis de lo vendido durante el año dividido por clase. Pagina 7 Herramientas de Customización – Manual de Analista de Sistema El campo XCLASS , código de la clase está extraído, pero no visible, su descripción se define como un elemento de jerarquía, de este Valor nos interesa el total. En los parámetros “Chart” vamos a definir cómo crear el gráfico, con “Categoría” programamos el eje “X” del gráfico, campo DCLASS, con “Valor 1” el eje “Y”, campo XPREZE totalizado y con “Serie” definimos el campo XANFAT sobre el que se van a generar más gráficos. Esto es el resultado aplicado sobre una TAB insertada como personalización de un trabajo, retomando la función “Gráfico” de la applet. El campo “Serie” como se observa, ha generado más gráficos de distintos colores. Mediante los parámetros “Pivot” se puede construir una Query SQL con campos cruzados. En “Ruolo” se indica la tipología de los campos que puede ser “Pivot” , con el cual cada valor se expondrá en una nueva columna, “Línea” (Máximo 3 campos) que se utiliza como clave de reagrupamiento de los datos de lectura (es posible establecer una jerarquía), “Datos” (Máximo 5 campos) que son los campos de los datos visualizados bajo el “Pivot”, para cada uno de ellos se puede programar varias tipologías de “Acción” como pedir que el campo sea “Descodificado” con un límite de “Longitud” del la cadena expuesta. En Pagina 8 Herramientas de Customización – Manual de Analista de Sistema relación a los campos definidos como “Datos” se pueden pedir cálculos como el offset a valor y/o en porcentaje entre una columna “Pivot” y la otra. También se puede pedir de omitir el “Total General” de las columnas totalizadas expuestas para cada reagrupamiento “Pivot”. Figura 2.1-IV (RFQM08FM/T2CTL) Mostramos aquí un ejemplo de uso de esta técnica. Cliente XCODAN y Clase XCLASS son campos “Jerarquizados de nivel 1 e 2”, están definidos como campos de referencia de “Línea (ruolo) ” en la estructura por las Cross Query y se pide su decodífica que se ha limitado a 30 caracteres (efecto final evidenciado en Rojo y Verde Oscuro). El año de facturación XANFAT es el campo “Pivot (ruolo)” de la query y lo vemos como cabecera del grupo de columnas (efecto final evidenciado en Fuxia). Los campos XPRZTE, XNUMER y XPNET son campos “Datos (ruolo)” de la Cross Query, de los cuales se pide el total y sólo por XPRZTE se pide el offset de “Valor” y “Porcentaje” (efecto final evidenciado en Violeta). En la definición de i “Pivot” se pide omitir el total general de todos los años extraidos por el campo XPNET y de hecho la columna “Peso” la encontramos para cada año agrupado, pero no entre las columnas de Total General (efecto final evidenciado en Verde). Figura 2.1-V (RFQX07FM/T2) Mediante “Modificable” se puede declarar que algunos campos en la pantalla pueden ser modificados por el operador. Es necesario declarar también el file de destino del dato que se va a modificar, y esto podría ser un límite si los campos que se quieren modificar provienen de muchos files. El programa que va a coger la modificación, crea una “clave” de filtro de los registros a actualizar, combiando todos los campos que pertenecen al file declarado con los relativos valores retomados de la línea seleccionada y continua actualizando todos los registros que entran en aquel filtro. Entonces hay que valorar atentamente como se define activa esta función para que no se obtegan resultados desagradables; aconsejamos insertar, eventualmente como campo ocultado, la clave efectiva del file que se irá a actuallizar. Figura 2.1-VI (RFQM08FM/T2CTL) Con “doble click” sobre el número línea que se quiere seleccionar, se va a llamar la ventana de actualización datos. Sólo seleccionando “Salva/ Continua” o “Salva” los datos se actualizan físicamente en el file. Aquí abajo hay un ejemplo de personalización de una TAB de un eleborado donde se prevé la posibilidad de actualizar el campo “Usuario”. Pagina 9 Herramientas de Customización – Manual de Analista de Sistema En fin, vemos la definición de los datos de cabecera “ID” y de los “Parámetros Generales” Con “Aplicación ” se indica el entorno aplicativo al que se refiere la query SQL, “002” indica el WEBGATE, “006” indica el Dblink, etc…con “Descripción” se programa el título de la Query SQL que aparecerá en pantalla al usuario. La configuración “Estándard” está destinada a EDM y se refiere a todos aquellos SQL que son entregados a los clientes junto a las actualizaciones. Si se selecciona “Emisión Sincrónica” significa que la instrucción SQL es contemporánea a la emisión de la pantalla y será elaborada enseguida, si no se selecciona , empezará sólo a petición del operador cuando abra la TAB que le interesa. “Condiciones Ejecución” permite que se ejecute la interrogación SQL sólo “Si cambiado” el valor del campo de referencia, sólo “Si pedido” por el operador o bien “Siempre” ejecutada en cada acción en la pantalla por parte del operador. 2.2 Gestión Interrogaciones Genéricas (G5) El “G5” permite la creación y archivo de interrogaciones personalizadas usadas por el usuario. Las interrogaciones pueden ser buscadas o recuperadas pulsando el propio icono o la tecla F2. En la búsqueda se puede seleccionar una interrogación: ejecutarla “1”, modificarla con el “2”, copiarla “3”, borrarla “4” o simplemente verla para consultar las instrucciones SQL utilizadas ”5”. Utilizando la tecla F6 se puede crear una interrogación nueva, identificable por medio de un “Código” y una “Descripción” y una “Sección” facultativa, que resulta muy útil para agrupar por categorías las interrogaciones y/o para agruparlas por usuario o área empresarial a la que están destinadas. Figura 2.2-I (RFQX04FM/W11) La “Sección” es utilizada también para bloquear el acceso a un solo grupo de interrogaciones para uno o más usuarios impidiendo ver todo, actuando a través del mantenimiento atributos objetos que figuran en la pantalla, fijando el campo T2CTL.VVXIGSZ co n el nombre de la “Sesión” deseada como valor forzado y protegido. Pagina 10 Herramientas de Customización – Manual de Analista de Sistema Figura 2.2-II (RGBMS4FM/T2CTL) El “Tipo” de Query indica las características y tipos de uso. Las “Query Embedded” son reservadas a EDM y son usadas por algunos programas, por ejemplo ZR, como soporte para agilizar las preguntas. Las “Query Custom” tienen el mismo fin, además de características específicas de personalización para satisfacer las exigencias del usuario o de la empresa y se pueden seleccionar como alternativa a las “Embedded” en el momento de la pregunta (de momento solo en ZR, tecla “F11elegida SQL”). La “Query Interattiva” es la interrogación tradicional, realizada de forma interactiva, cuyo resultado se muestra directamente en el vídeo. Puede ser realizada directamente por G5 o como último paso de un procedimiento GK para ver el resultado final obtenido. El código “Aplicación” se usa para mostrar el campo de trabajo sobre el que opera la query. “Record Standard” es una opción del uso EDM y permite crear interrogaciones que vendrán publicadas a todos los clientes a través de las actualizaciones periódicas de WEBGATE. El “Número Query” y la relativa “Descripción” sirve para organizar posteriores preguntas G5, visibles según la modalidad TAB, que se activan con los datos obtenidos de la query principal del propio icono de selección de la línea. A continuación un ejemplo del efecto visual que se puede obtener. La query TAB se activa posicionando el cursor sobre la línea deseada de la Query Base. Figura 2.2-III (RFQX07FM/T2T0) A través del editor SQL es posible insertar las instrucciones SQL que compondrán las preguntas y definir las “Específicas” (véanse los capítulos específicos del manual). Respecto a las “Especificaciones de Visualización” de las interrogaciones SQL es conveniente precisar bien el modo en el que deben ser codificados los parámetros que la Query Base pasa a las TAB secundarias. Pagina 11 Herramientas de Customización – Manual de Analista de Sistema Figura 2.2-IV (RFQM08FM/T2CTL) Veamos un ejemplo. Los parámetros disponibles son 9 en total y se llaman desde T2T0.SQXP1 a T2T0.SQXP9 donde T2T0 es el nombre del formato vídeo de la Query Base y SQXP1 - P9 es el nombre del parámetro que se asocia al campo de Data Base. Estos parámetros no pueden exceder los 20 caracteres. Con el vídeo “Gestión Instrucciones” del “G5”, la tecla “F2 – Custom y Default” permite abrir una ventana con la que “Personalizar “ el uso de las interrogaciones. Figura 2.2-V (RFQM04FM/W12) En “Personalización” activando adecuadamente los campos, se puede restringir y limitar el uso de la Query. Solo para Query Custom y Embedded (en cada uno son los utilizados por “ZR”), en “Parcialización File/Formato” se debe indicar el file (archivo) en pantalla y cuyo formato se ajustará a las instrucciones SQL de que se trate. En “Particialización” se puede configurar los valores predeterminados por defecto de los campos y en general de las variables usadas en la interrogación. 2.2.1 Default Parcialización Interrogación Puede configurar los valores predeterminados por defecto de los campos de parcialización y en general de las variables usadas en la interrogación. El valor único está compuesto por “Nombre Variable” y “Valor” de las Variables separadas por un “=” igual). Las variables se separan entre sí por “;” un punto y seguido. Para los campos de fecha, está disponible una sintaxis especial como la usada para cálculo con fechas en la “WUF_DCA” (la documentación está disponible on line marcando “Help Navigator”) CODARF=ART01;CODART=ART02; ecc (Ejemplo de Variables en las Instrucciones SQL) Select XCODAR "P5_Código", XDSART "Descripción Artículo", XCLASS, WUF_DEC('001','CLASS',XCLASS) "Descripción Clase", XDISEG, 'PARAR' "P1_File", '*BLNK' "P2_Id", '*BLNK' "P3_Flaga", '*BLNK' "P4_Codic" FROM PARAR WHERE XCODAR BETWEEN '%('CODARF','*DICT:De Código Artículo','001','CODAR')' AND '%('CODART','*DICT:A Código Artículo','001','CODAR')' DATADA=*STRYEAR -12 *M (Inicio año anterior) DATADA=*TODAY -30 *D (30 días antes de hoy) DATADAC=*STRYEAR *NONE;DATAALC=*ENDYEAR *NONE;DATADAP=*STRYEAR -12 *M;DATAALP=*ENDYEAR -12 *M (Calcula dos intervalos de fechas durante el año en curso y el año anterior). Pagina 12 Herramientas de Customización – Manual de Analista de Sistema 2.2.2 Funciones de Parcialización Sintaxis de las instrucciones con el uso de los campos SIN diccionario (BM) %(„Nombre de la Variable‟,„Texto Prompt‟,‟Longitud‟,‟Tipo‟,‟Comparación‟) Nombre de la Variable = longitud máxima del nombre 9 caracteres (sin prefijo %) Texto Prompt = Es el texto que describe la variable. Longitud = Longitud total del campo. Tipo = A - Alfa; N - Número; D - Fecha (para editar y volcar en prompt). Comparación= Utilizado para facilitar la entrada y el control de las variables de entrada. …donde: Los valores disponibles son : 1. Blanco o no especificado, no realiza controles o automatismos. 2. >= Límite Inferior (también valores inferiores between) 3. <= Límite Superior (también valores superiores between) 4. LIKE utilizado con LIKE Ejemplo SELECT XCODIP , SUM(XMLAVN * %COR1/%COR2) FROM OPERA WHERE XDATAB >= %('FECHA1','De la Fecha','8','D','>=') AND XDATAB < %('FECHA2','A la Fecha','8','D','<=') GROUP BY XCODIP Sintaxis de las instrucciones con el uso de los campos CON diccionario (BM) %(„Nombre Variable‟,‟*DICT‟,‟Código Aplicación‟,‟Nombre Campo en Diccionario‟, ‟Comparación‟) donde : Nombre Variable = longitud máxima de 9 caracteres (sin prefijo %) *DICT o bien *DICT:Texto = Costante que indica el uso del diccionario. Código de Aplicación = Es el código de la aplicación con el que se define el campo del diccionario. Nombre Campo en Diccionario = Es el nombre del campo definido en el diccionario. Comparación= Utilizado para facilitar la entrada y el control de las variables de entrada en la pantalla. Valores disponibles como se indicaba anteriormente. Ejemplo 1 (utiliza el texto tomado del Diccionario) SELECT XCODIP , SUM(XMLAVN) FROM OPERA WHERE XCODIP = '%('DIPEND','*DICT','001','CODIP')' GROUP BY XCODIP Ejemplo2 (Utiliza el texto definido DOPO *DICT:) SELECT XCODIP Pagina 13 Herramientas de Customización – Manual de Analista de Sistema , SUM(XMLAVN) FROM OPERA WHERE XCODIP = '%('DIPEND','*DICT:Da Cod.Dipen.','001','CODIP')' GROUP BY XCODIP 2.2.3 Comando ejecución interrogaciones EXEEG5 Mediante el comando EXEEG5 se puede programar en AS400 o bien volver a llamar en HX la ejecución de una Interrogación G5. El comando prevé la posibilidad de pasar una variable de 500 caracteres que contiene las variables de la interrogación codificada según la sintaxis descrita en el párrafo“Default Parcialización Interrogación”. EXEEG5 IGUNI(Nombre Interrogación) NUMAZ(Empresa) “Opcional” IGPMF(Variables de la interrogación) “Se pueden pasar variables calculadas” Esempio : EXEEG5 IGUNI(INTERROGACIÓN) NUMAZ(002) IGPMF('CODCLI=000123;CODART=ART01;DATABOLLA=*TODAY -30 *D') 2.3 Mantenimiento Procesos y Funciones SQL (Stored Procedures e UDF) (HU) Sobre el tema, está bien ver además el Help “DB2 for i- SQL Stored Procedure”. La/as “Stored Procedure” no son más que los PROGRAMAS a todos los efectos descargables mediante una SQL CALL Statement. Permiten el uso en su interior de parámetros de Input para la ejecución de las instrucciones SQL y de Output extraídos como resultado de SQL. Respetan los modelos de seguridad de los datos IBM-garantizando el control del acceso a los datos y su integridad. Con una única búsqueda permiten el comienzo de transacciones mútiples y procesos, también útiles al ser fácilmente transportables cuando se trabaja por departamentos. Figura 2.3-I (RDBS01FM/T2CTL) Mirando el ejemplo, se muestran todos los procedimientos incluidos. El símbolo “V” indica el procedimiento estándard emitido por EDM y actualizable sólo descargando las nuevas versiones de WEBGATE. Con la opción “3” se puede copiar una existente o bien con la tecla de función F6 crear una nueva. Pagina 14 Herramientas de Customización – Manual de Analista de Sistema Figura 2.3-II (RDBS01FM/W1) Introducimos la descripción del procedimiento, que nos permitirá de reconocerlo, de los comentarios que nos expliquen las características y empezaremos a introducir los Statements del procedimiento. Los campos atributos, están gestionados completamente por el programa, e indican Usuario, Fecha y Hora de la última vez que se guardó, mientras el parámetro “Estándard” manejable sólo por EDM indica si el procedimiento se dará a conocer con actualizaciones WEBGATE y estará al alcance de todos. “Sintax to Copy” es útil cuando se toman instrucciones de otro campo y se quiere hacer una comprobación rápida de la sintaxis para utilizarla correctamente dentro de nuestro procedimiento. “Instrucciones de DROP” es útil antes de CREAR de nuevo el procedimiento, borrar todas las viejas entradas y ésto lo hacemos con esta instrucción DROP PROCEDURE RTKA14. Veamos ahora cómo están estructurados y escritos estos procedimientos. CREATE PROCEDURE RTKA14 (IN UNID CHAR(18)) El programa empieza con esta instrucción, donde definimos el Nombre del procedimiento “RTKA14” (longitud máxima 10 caracteres) y la lista de los parámetros en IN_put , OUT_put, INOUT input/output definidos mediante el nombre de la variable “UNID” su naturaleza y dimensión “CHAR(18)” LENGUAJE SQL Determina el lenguaje utilizado. BEGIN Define el inicio del procedimiento. DECLARE SQLSTATE CHAR(5); DECLARE SQLCODE INTEGER; La declaración de estas dos variables “convencionales” permite en el ámbito del procedimiento controlar eventuales condiciones o errores durante la ejecución de un statement SQL. DB2 se encarga de manera automática actualizar los valores de las dos variables después de la ejecución de cada statement. DECLARE EOF_REACHED CONDITION FOR SQLSTATE '02000'; Esta forma de definición permite asociar a una condición “SQLSTATE = 02000” un nombre para utilizar en el procedimiento que puede facilitar la redacción del mismo programa y puede volverlo más comprensible cuando vayamos a recuperar para una nueva edición. Para quien programa en lenguaje COBOL es el equivalente al nivel 88. DECLARE V_XKEY01 CHAR(20); Alfanumérico de 20 caracteres DECLARE V_XXDALL DECIMAL(8, 0); Numérico de 8 dígitos y 0 decimales Esta es la forma para definir las variables que se utilizarán en el ámbito del procedimiento. Estas variables pueden también ser ejecutadas al principio del programa codificando el valor que querramos atribuirle. DECLARE BREAK_LOOP INT DEFAULT 0; La variable se carga inicialmente con el valor Cero. -- Este procedimiento controla el uso de Equipos Numéricos……………. /* Este procedimiento controla el uso de Equipos Numéricos…………….*/ Iniciando la línea con dos caracteres “menos” o bien incluyendo el texto en el interior de “/* comentarios que faciliten la documentación del procedimiento. -- Cursor declaración para EACS estructura DECLARE C1 CURSOR FOR Pagina 15 */” es posible introducir Herramientas de Customización – Manual de Analista de Sistema SELECT I.XUNIDE, T.XKEY01, T.XKEY02, T.XKEY03, T.XKEY04, T.XKEY05, T.XKEY06, T.XNMFLI, I.XXDALL, I.XXOALL FROM EACSI I INNER JOIN EACST T ON T.XUNIDE=I.XUNIDE WHERE I.XUNIDE=UNID AND (T.XNMFLI='ATNUM' OR T.XNMFLI='PACAT') FOR READ ONLY; -- Handler declaration for EOF condition detected DECLARE CONTINUE HANDLER FOR EOF_REACHED SET BREAK_LOOP = 1; OPEN C1; READ_LOOP: Esta es una TAG del programa LOOP FETCH FROM C1 INTO V_XUNIDE, V_XKEY01, V_XKEY02, V_XKEY03, V_XKEY04, V_XKEY05, V_XKEY06, V_XNMFLI, V_XXDALL, V_XXOALL; IF BREAK_LOOP = 1 THEN LEAVE READ_LOOP; ELSE ………………………………… END LOOP; CLOSE C1; END; En el fragmento anterior vemos un Declare Cursor sobre Data Base y un Loop controlado de lectura. De subrayar la instrucción “FOR READ ONLY” en la SELECT que permite la visualización en modo de sólo lectura de los datos, aconsejada por la importancia de los datos que se encuentran en esta data base. Mediante la “DECLARE CONTINUE ….” se administra SQLSTATE que determina la salida del modo lectura y activa la condición que controlada con IF permite salir del Loop de lectura “LEAVE READ_LOOP”. SET V_ALLARM_ON = 0; A través de la instrucción SET se puede atribuir el valor a la variable. CALL RIQIAT(V_RATMATRA, V_RATDACER, 'N', ' ', V_RATVALOR, V_RATESITO); Con el comando CALL se puede recuperar cualquier programa API Standard u otras aplicaciones. CASE V_PCXATUTI WHEN 'a' THEN SET V_RAUXFATT = 'S'; WHEN 'A' THEN SET V_RAUXFATT = 'S'; WHEN 'e' THEN SET V_RAUXFLAV = 'S'; SET V_RAUXFATT = 'S'; WHEN 'E' THEN SET V_RAUXFLAV = 'S'; SET V_RAUXFATT = 'S'; WHEN 'l' THEN SET V_RAUXFLAV = 'S'; END CASE; Mostramos a continuación un caso de interrogaciones condicionadas mediante el comando CASE. SUCCESS: RETURN 0; INS_FAILURE: RETURN 900; UPD_FAILURE: RETURN 901 Este es un ejemplo de salida/as del programa devolviendo un código con un valor preestablecido. Acabada la redacción del Procedimiento se puede grabar y modificar con F1 y crear el objeto ejecutable con F2. Pagina 16 Herramientas de Customización – Manual de Analista de Sistema 2.3.1 Debug procedure (proceso de debug) Ejecutar una copia del proceso, para poder modificarla y sacar el atributo “Estándard” e introducir la visualización de debug. Proceso Estándard Figura 2.3-III (RDBS01FM/W1) SET OPTION DBGVIEW=*SOURCE SP:BEGIN Proceso modificado para el Debug Figura 2.3-IV (RDBS01FM/W1) Utilizando la opción “X” se crea e proceso con visualizaciones de debug (se sostituye el objeto de la librería QGPL) Figura 2.3-V (RDBS01FM/T2CTL) Activar el debug con STRDBG PGM(QGPL/RTKA14) Para visualizar el valor de las variables durante el proceso de Debug, hay que utilizar esta sintaxis : Variable númerica EVAL SP.V_ALLARM_ON Variable alfanúmerica EVAL *SP.V_RATESITO:S Pagina 17 Herramientas de Customización – Manual de Analista de Sistema (se disfruta del prefijo indicado antes de la instrucción BEGIN para llamar la variable del programa) Acabado el debug y corregido el proceso, se crea otra vez el proceso después de haber quitado las instrucciones para generar las visualizaciones de debug. (Se utiliza siempre la opción “X”). 2.4 Gestión programas EXIT (HX) Figura 2.4-I (RCKRM1FM/T2CTL) Los programas EXIT son “grupos de comandos condicionados” que se van a ejecutar si son considerados elegibles por las verificaciones descritas a continuación; estas verificaciones se ejecutan cada vez que el control pasa del client webgate400 al programa RPG. Apretando ENTER o la tecla función (F1...F24), se ejecutan estos dos controles: 1. 2. Verifica si existen programas habilitados (A) o el file vídeo corríente. o el formato registro corriente o la empresa corriente o la lengua corriente o el usuario corriente o el grupo de usuarios corrientes Además verifica si se ha pulsado una de las teclas función prevista en aquel programa. (B) Las informaciones sobre la elegibilidad del programa EXIT (condiciones para la ejecución), se pueden actualizar con la tecla función F9 o bien con la opción X Figura 2.4-II (RCKRM2FM/W1) Pagina 18 . Herramientas de Customización – Manual de Analista de Sistema Figura 2.4-III (RCKRM1FM/W1) Cuando el programa es elegible, se van a ejecutar las siguientes fases: 1. Búsqueda de todas las variables de los formatos registro 2. Ejecución de todos los comandos, incluídos en el programa, no suspendidos … visibles en pantalla (o para las que ha sido efectuada una operación write) … en la secuencia indicada (4) por el campo apropriado, hasta el último de la lista o hasta el campo marcado con el flag “Último si válido” (5), desarrollando las siguientes fases: o Sustitución de las variables contenidas en la instrucción SQL de validación (1) (llegados a este punto de la elaboración están presentes las variables del vídeo o bien, si el programa es llamado de API RCKR02, las variables con los parámetros VVAR E NVAR). o Ejecución de la instrucción sql de validación y búsqueda de las variables (todas las columnas del primer registro). (1) Si verdadera (la instrucción devuelve por lo menos 1 registro), o Ejecución Instrucción SQL Búsqueda Variables (F2) y búsqueda variables (todas columnas del primer registro). o Visualización del posible prompt (2). o Sustitución de las variables contenidas en el comando. Ahora están disponibles: las variables del vídeo/parámetros las variables encontradas por la instrucción SQL de validación (1). las variables encontradas por la ”instrucción SQL de búsqueda variables”. o Ejecución de las formulas 1 e 2 o Ejecución del comando. (3) Si falsa o respuesta a prompt no permite prosecución de la lectura del comando siguiente. “Suspendido” permite no anular la EXIT pero se suspende su ejecución. “Último si válido” (5) permite interrumpir la cadena de los programas de control y salir, es muy útil si hay que efectuar controles en secuencia, cuyas condiciónes se pueden considerar las mismas que en “*OR”. En la instrucción de SELECT vamos a ver el utilizo de la variable %T2CTL. Esta es la sintaxis que se utiliza para referirse a la “table” que contiene todo el formato vídeo T2CTL y también podría ser %T1 si quieres hacer referencia directamente a una ventana habitual en el vídeo. No hace falta explicitar “Nombre Vídeo” y/o “Librería”: el programa recibe estas variables y automáticamente las relaciona a los recursos físico corregidos en las librerías del ambiente activo en aquel momento. La instrucción SQL de validación, puede ser también de tipo compuesto, o sea el resultado de más SQL concatenadas en secuencia entre si mismas. Tales instrucciones tienen que ser separadas por el carácter “;”. Hay dos distintas maneras para codificar el mensaje que se va a presentar al técnico: hay que codificar una llamada al programa API “RIQIH2” en el campo “Comando a ejecutar” , o bien hay que indicar en el “Prompt Confirma si SQL válido (2)” un mensaje “USER” codificado en un MSGFile Custom (ejemplo USRMSG001) con el elaborado “EP”. En la composición del texto se puede introducir variables encontradas con el comando SQL y/o disponibles del trabajo HX. A continuación ponemos los campos que hay que llenar en caso de mensaje codificado: MSG File. Nombre file Mensajes. Si no existe, se puede crear, por ejemplo, con el comando CRTMSGF MSGF(WGLANGITA/USRMSG001) TEXT('Mensajes Usuario‟) Pagina 19 Herramientas de Customización – Manual de Analista de Sistema NB Se aconseja crear files mensajes en la librería donde ya se encuentran los mensajes traducidos a una específica lengua (en el ejemplo considerado WGLANGITA) así que se pueda utilizar también la gestión plurilingüs de las customizaciones. En la codificación de estos USRMSG se podría seguir las lógicas ya utilizadas por EDM en sus EDMMSG, diferenciando con 001 los mensajes dedicados al Spi, 003 aquellos dedicados al PSG, 006 aquellos de Dblink e 020 aquellos dedicados a la GeA. ¡ATENCIÓN!: los files mensajes TXTMSG… son reservados rigorosamente a TEST de EDM. ID. Id Mensaje. Si no existe, se puede crear con el comando WRKMSGF MSGF(WGLANGITA/USRMSG001) o bien con el elaborado EP Opciones. Opciones disponibles. Se pueden definir más valores al mismo tiempo Se pueden definir valores mayúsculos y minúsculos para elegir en que botón se va a posicionar el focus. Los Valores posibles son los siguientes : Si está presente la opción de salida “C” (Sal) y se elige esta opción, el control vuelve al vídeo SIN pasar por el programa RPG. Si está presente la opción de salida “I” (Ignora) y se elige esta opción, el control pasa al proximo comando saltando el comando corriente. Si está presente la opción de salida “G” (Go) y se elige esta opción, el comando será ejecutado. Si está presente la opción de salida “R” (Retry) y se elige esta opción, el comando de validación vuelve a ejecutarse. Ejemplo : si el campo Opciones está valorizado con 'IGR ', el programa hace disponibiles sólo 3 de las respuestas disponibles; el cursor se va a posicionar en la respuesta Ignora. si el campo Opciones está valorizado con 'iRc ', el programa hace disponibles sólo 3 respuestas disponibles; el cursor se va a posicionar en la respuesta “Vuelve a Probar”. Reproducimos una parte de la documentación para el utilizo del API – RIQIH2 para la gestión de mensajes. CALL PGM(RIQIH2) PARM(„Texto del mensaje‟ „IGRC‟ „Título de la Ventana‟ „ „) #==================================================================================# ! P A R Á M E T R O S +----------+----+--+---------------------------------+-------------------------+---+ !TXTMSG ! 250! !Mensaje Ventana !DFTRIS ! 4! !Respuestas visualizadas o bien ! ! I ! !TITLE ! 30! !Título Ventana ! ! I ! !RISPOS ! 1! !Respuesta dada ! ! O ! !A elección entre I, G, R e C.! I ! +----------+----+--+---------------------------------+-------------------------+---+ De la interrogación HX parcializable por “Company” , “Lengua” , “Usuario” , “Grupo” para que sea más fácil la búsqueda, se puede continuar con el comando de línea “+” para duplicar totalmente la EXIT asignandole una secuencia sucesiva o bien con el comando “3” donde se propone la copia de la EXIT permitiendo la modificación y la atribución de una nueva secuencia a nuestra discreción. Con “X” se pueden interrogar las condiciones por las cuales se va a activar la EXIT, modificarlas y/o añadir nuevas condiciones con la tecla F6. Figura 2.4-IV (RCKRM2FM/T2CTL) NB. Existe el API “RCKR02” que puede ser buscado por medio de la adecuada función de menú “EK”, que permite ejecutar directamente según programa, uno o más programas EXIT aquí descritos. Pagina 20 Herramientas de Customización – Manual de Analista de Sistema NB. Si se elige la opción “LOG” (5) por cada Programa ejecutado, va a ser emitida una registración en el LOG de AS400 visible con la opción 10 de los trabajos activos WRKACTJOB, o bien de las “System Utilities (Herramientas >SystemUtilities>DisplayJobLog)” de la applet, que contiene las siguientes informaciones: 1. Id Programa 2. Descripción 3. Secuencia 4. Eventual Mensaje Emitido 5. Eventual Respuesta Introducida por el técnico 6. SQL de validación 7. SQL búsqueda Variables 8. Comando Ejecutado NB. Las variables encontradas, se pueden utilizar también en el mensaje emitido del prompt. Pagina 21 Herramientas de Customización – Manual de Analista de Sistema 2.4.1 Esquema de funcionamiento Client webgate400 Apretar ENTER, F1-F24 de Client webgate400 Escritura Database Vídeo Control EXIT si elegibles: Prompt Programa 1 o Comando 1 o Comando 2 o Comando 3 si elegible: Programa RPG Pagina 22 Lectura Database Vídeo. Ejecución operaciones RPG Programa 2 o Comando 1 o Comando 2 Cada Comando SQL Validación Prompt (si opción C vuelve a Client) SQL Datos Fórmula 1 Fórmula 2 Comando/SQL Herramientas de Customización – Manual de Analista de Sistema 2.4.2 Utilización de las Fórmulas De la “Gestión Comandos de Programas EXIT – HX” con la tecla “F2-SQL Variables” se puede llamar la función que permite gestionar las dos variables %FOR1 y %FOR2, que son objeto de fórmulas de cálculo más o menos complejas. Luego estas variables pueden ser retomadas en el interior de instrucciones SQL o comando a ejecutar cuando las condiciones son VERDADERAS. Figura 2.4-V (RCKRM1FM/W3) En el ejemplo de abajo, a través de la instrucción SQL, se obtiene el campo “Descuento Precio Total” del file CLIAD y en este va a ser aplicado un “-5” a través de la Fórmula UNO (Variable %FOR1). Figura 2.4-VI (RCKRM1FM/W1) El valor que se obtiene, luego va a ser retomado con la variable “%FOR1” para actualizar el campo“Descuento 2” del vídeo T1. Pagina 23 Herramientas de Customización – Manual de Analista de Sistema 2.4.3 Inner Join Figura 2.4-VII (RCKRM1FM/W1) Cuando hay que utilizar una INNER JOIN para conectar la tabla Vídeo “%T1” a unas bases de datos poniendo algunas condiciones entre los campos, es necesario que la variable proveniente de T1 sea utilizada como valor de referencia porque la instrucción funcione de manera correcta, como puesto en evidencia en el ejemplo recién explicado. 2.4.4 Utilización funciones SUF_ en instrucciones SQL Está disponibile una función que permite llamar una “facility” que admite la introducción paso a paso de funciones SUF_ y puede ser llamada del editor SQL con el botón “ Wizard”. Figura 2.4-VIII (RFQM04FM/W11) Después de haber seleccionado la función con doble clic del mouse, aparece una máscara en la que se pueden introducir los parámetros a utilizar. Con un Enter el programa compila el comando y pone en evidencia parámetros no reconocidos. Hay que confirmar con F1 para volver a la instrucción SQL di HX. Figura 2.4-IX (RFQM04FM/W11) 2.4.5 Variables disponibles El programa de gestión de las EXIT, pone a disposición una serie de variables que pueden ser llamadas al interior de la instrucciones SQL; las variables son: Pagina 24 Herramientas de Customización – Manual de Analista de Sistema Variable Descripción DSYUSER DSYGRPID DSYCOMPID DSYLANGID DSYJOBNR DSYAPPLI Usuario Grupo Company Lengua JOB Number Aplicación DSYIND24 DSYK18 DSYP18 Fila F1-24 1=ON ID Unívoco JOB Webgate Notas ID Unívoco Nivel llamada EJEMPLO: Se quiere vincular el uso de un campo a vídeo de “0I-Anagrafica GeA” a un solo operador. SELECT * FROM %JSTDABDA T1 LEFT OUTER JOIN JFANA00F T2 ON T1.VANTAN=T2.JANTAN AND T1.VANCAN=T2.JANCAN AND T2.JANSOC='EDM' WHERE T1.VANFAC='1' AND T2.JANFAC<>'1' AND '%DSYUSER'<>'ROBERTO' Si el usuario no es “ROBERTO” se emite un mensaje en el vídeo y se prohibe el mantenimiento del campo JANFAC. 2.5 Mantenimiento Files Mensajes (EP) Una vez creado el/los files USGMSG en las librerías adecuadas, es posible introducir los mensajes personalizados que iremos a utilizar en nuestros procesos. A través de F6 añadimos un nuevo mensaje. Figura 2.5-I (WGEDTMSGD/T2CTL) A través de F6 añadimos un nuevo mensaje. El código del mensaje es un campo compuesto formado por los tres primeros caracteres que identifican el GRUPO y por los siguientes cuatro caracteres que indican el NÚMERO progresivo del mensaje. El estándard adoptado por EDM utiliza el grupo para identificar el Módulo Aplicativo del cual el mensaje forma parte(alfanúmerico) y los sucesivos cuatro caracteres para el progresivo de los mensajes (númerico). Figura 2.5-II (WGEDTMSGD/T1) Hay que compilar simplemente indicando el texto del mensaje y confirmando con F1. Ignore la tabla en la derecha de la pantalla que se refiere a la lista de los elementos, de hecho sólo la necesita EDM para su programación. 2.6 Fast Query (Ver manual especifico) Para mayores detalles sobre el argumento, véase el “Manual del Usuario” y “Manual del analista de Sistema – Fast Query” Pagina 25 Herramientas de Customización – Manual de Analista de Sistema 2.7 Añadidura Columnas SubFile a través de Webgate400 Sólo si, iniciando del perfil Usuario “RunTime WEBGATE”, usted tiene la autorización a modificar los formatos vídeo y si estás utilizando la modalidad TABLE de WEBGATE, entonces es posible llamar la función de añadidura columnas del “Menù” del applet gráfico seleccionando “Herramientas” + “Personalizaciones” + “Añadidura columnas”. Hay que estar posicionado en la ventana abierta donde se quiere añadir la/las columnas. Se abrirá una primera ventana a través de la que podremos definir dónde y cómo aplicar la personalización que realizaremos y que, por supuesto, será por “Formato” como nivel mínimo y por “Sistema Informativo” y/o “Usuario” o bien “Grupo” como especialización. La selección se hace apretando los botónes adecuados que cambiarán la tonalidad de grises al seleccionarlos. Luego hay que apretar “Confirma”. A continuación mostramos un ejemplo de la pantalla que aparecerá. En este caso ya han sido insertados registros de personalización y que se refieren al elaborado ZR “Interrogación documentos”. Figura 2.7-I (WGDSAHAND/T1CTL) F6 para añadir una nueva columna. Figura 2.7-II (WGDSAHAND/GENERAL) Hay que indicar un nombre del “Campo”, la “Dimensión”, el número “Decimales” si el formato del campo es numérico, el “Tipo campo” y “Encabezamiento” que asumirá la columna añadida. Además están disponibles botones, según las modalidades que se quiere utilizar para valorizar los campos,“Exit Program” , “Fórmulas Matemáticas” , o “Instrucción SQL”. En el ejemplo se ve un campo definido que tiene una instrucción SQL. Pagina 26 Herramientas de Customización – Manual de Analista de Sistema Figura 2.7-III (WGDSAHAND/GENERAL) 2.7.1 Valorización de los campos a través de expresiones SQL Es posible activar una función de valorización de los campos adjuntos a través de instrucciones SQL. La convención de escritura permite parametrizar la query incluyendo campos en pantalla utilizando la forma &nombre_formato.nombre_campo. La omisión del nombre_formato significa que el campo de referencia pertece al formato corriente donde estamos añadiendo la/las columnas. Ejemplo : SELECT XPREZE FROM CLBAS WHERE XKKKKK = &XKKKKK También equivale a ……. SELECT XPREZE FROM CLBAS WHERE XKKKKK = &T21SFL.XKKKKK Figura 2.7-IV (WGDSAHAND/GENERAL) Si el campo vídeo de referencia está expresado en formato alfanumérico, hay que indicarlo en la instrucción escribiendolo entre ápices (comillas simples) ej. „&T21SFL.DCODAR‟ . El nombre del campo vídeo tiene que corresponder al nombre visualizado en el campo de la petición “Propriedad” en el campo vídeo. La columna añadida puede estar compuesta por más campos ( multiples)del file expuestos en bloque. En este caso la SELECT podría ser , por ejemplo: SELECT XZONA1, XAGEN1, XAGEN2 FROM CLBAS WHERE XKKKKK=&T21SFL.XKKKKK La columna añadida va a incluir los tres campos. Esto es suficiente si sólo tenemos la necesidad de añadir una única columna, pero si tenemos que añadir otras columnas, o bien queremos tener los campos separados, a diferencia del ejemplo que acabamos de ver, no es conveniente, por los tiempos de respuesta en el uso de la aplicación, definir más campos, cada uno con su SELECT, si provienen del mismo file. Lo mejor sería utilizar una única instrucción SQL. Ahora, llegados aquí, se puede seguir según dos modalidades: Modalidad 1: Correspondencia entre Nombre_campo añadido y Nombre _campo de la SELECT. Pagina 27 Herramientas de Customización – Manual de Analista de Sistema Defino el campo por medio de la modalidad “Master” o sea con una expresión “SELECT” que se refiere a todos los campos que quiero exponer. A través de la expresión SQL “as” asocio al campo físico, que se extrae del file, el campo ( Nombre libre ) que luego voy a utilizar para definir las sucesivas columnas añadidas. En el ejemplo mostrado XCOSTR es el mismo campo que estoy extrayendo en la columna “Marca” (Master) mientras que XCATAL, XNACAD y ESIDI son campos que se colocarán en las columnas vídeo añadidas y que llamaré respectivamente, como nombre campo, “CATÁLOGO” , “CAD” e “EXISTENCIAS”. Figura 2.7-V (WGDSAHAND/WGGENERAL) Luego defino los demás campos (“esclavos”), indicandolos con el nombre de los campos tomados de la expresión SELECT asignada al “Master”, que como en el ejemplo serán “CATÁLOGO” , “CAD” e “EXISTENCIAS”. A continuación, utilizando la misma modalidad descrita arriba, voy a anñadir una nueva columna indicando en el “Campo” el nombre campo “as” declarado en la SELECT (ej. CATÁLOGO) correspondiente al campo de base de datos que quiero exponer, defino el “Encabezamiento” de la columna, la “Dimensión” y el “Tipo campo” y escribiré en la expresión SELECT el valor convencional *SQLF. Figura 2.7-VI (WGDSAHAND/GENERAL) Tras la ejecución de la SELECT ligada a “MARCA” serán valorizados los campos “CATÁLOGO” , “CAD” e “EXISTENCIAS”. Para resolver eventuales homonimias se puede utilizar este metodo de codificación de la instrucción SQL: SELECT F1 AS “C1”, SUBSTR(F2, 2, 2) AS “C2”, MAX(F3) AS “C3” FROM FILEX WHERE F4=‟&FMT1.V1‟ Donde F1, F2, F3, F4 son campos físicos de la base de datos FILEX , C1, C2, C3 el nombre de los respectivos campos de las tres columnas añadidas y V1 es el campo de comparación. Modalidad 2: Utilización de la expresión SELECT para crear las correspondencias entre Nombres_Campo. Defino un campo “Master” al cual asigno la expresión SELECT y luego los demás campos (“esclavos ”), indicandolos con nombres distintos de los campos utilizados en la expresión SELECT asignada al “Master”. En la expresión SELECT de los campos “esclavos” voy a escribir el nombre del campo “Master” y el nombre del campo de referencia en la SELECT, separados por dos puntos. Ejemplo: añado el campo “MARCA” (Master) con la siguiente expresión SQL. Pagina 28 Herramientas de Customización – Manual de Analista de Sistema Voy a añadir el campo “CATÁLOGO” (“esclavo”) con la expresión SQL : MARCA:XCATAL Voy a añadir el campo “CAD” (“esclavo”) con la expresión SQL : MARCA:XNACAD Tras la ejecución de la SELECT ligada a “MARCA” serán valorizados los campos “CATÁLOGO” , “CAD” y “EXISTENCIA”. El primer campo de la SELECT siempre se refiere al primer campo “Master” de la añadidura columnas. 2.7.2 Valorización por medio de fórmula Es posible activar una función de valorización de los campos añadidos por medio de fórmula. La convención de escritura prevé la posibilidad de parametizar la fórmula incluyendo campos diferentes presentes en la pantalla utilizando la forma &Nombre_Formato_Vídeo.Nombre_Campo : (&T21SFL.DNUMER * T21SFL.DPREZE) 2.7.3 Valorización de los campos a partir de Programas exteriores Para quien sabe programar, es posible crear un programa, que puede ser llamado como EXIT PROGRAM, cuyo resultado valorizará la columna. La convención de los parámetros de llamada es la siguiente: Valor del campo Buffer vídeo Descripción del buffer vídeo puntador a una estructura de tipo WGTDBENTRY_CUSTOM_FIELDS_EXITPGM_PARMS_t. Estándard en lenguaje „C‟ typedef struct { char WGFLDE[10]; /* Field name . . . . . . . . . */ char WGBUFF[5]; /* Buffer start position. . . . */ char WGFLDB[5]; /* Field length in bytes. . . . */ char WGFLDD[2]; /* Digits . . . . . . . . . . . */ char WGFLDP[2]; /* Decimal positions. . . . . . */ char WGFLDT[1]; /* Field type ADFIMNSWXYEJOG. . */ char WGFTYP[1]; /* Type simple A=char S=zoned . */ char WGCSID[5]; /* CSSID */ } WGTDBENTRY_SIMPLE_FIELD_DESCRIPTION_t; typedef struct { char WGNOFE[5]; /* Total Number of Entries */ char WGESIZ[5]; /* Size of each entries */ char WGLDIX[5]; /* Index of target field */ char WGOFST[5]; /* Offset from start of this struct to the first element of the list */ WGTDBENTRY_SIMPLE_FIELD_DESCRIPTION_t sfdList[1]; } WGTDBENTRY_CUSTOM_FIELDS_EXITPGM_PARMS_t; Estándard en lenguaje RPG DS WGNOFE S 50 WGESIZ S 50 WGLDIX S 50 Pagina 29 /* Simple field description List */ Herramientas de Customización – Manual de Analista de Sistema WGOFST S 50 WGFLDE A 10 /* Field name . . . . . . . . . */ WGBUFF S 5 /* Buffer start position. . . . */ WGFLDB S 5 /* Field length in bytes. . . . */ WGFLDD S 2 /* Digits . . . . . . . . . . . */ WGFLDP S 2 /* Decimal positions. . . . . . */ WGFLDT A 1 /* Field type ADFIMNSWXYEJOG. . */ WGFTYP A 1 /* Type simple A=char S=zoned . */ WGCSID S 5 /* CSSID */ DS 2.7.4 Tratamiento de los campos UNICODE (tipo G) Los campos de tipo G soportados son aquellos que contienen datos en UNICODE. Estos datos son memorizados en las tablas de tránsito en formato UTF-EBCDIC, para que sean lo más eficientes en la fase de construcción y ejecución de las query, que por lo tanto son tratadas en cualquier caso en el CCSID 037. La particular característica de codificación de UTF-EBCDIC permite conservar el orden alfabético utilizando una “sort” secuencias adecuada. 2.7.5 Añadidura de columnas LINK y/o Imagen Hay muchas posibilidades de tipos de campos a utilizar cuando se vaya a añadir columnas. Es posible añadir campos “Link” que permiten enganchar un anexo DBLink a través de su recorrido, o bien campos “Imágenes” que inmediatamente aparecen en pantalla como si fueran fotografías o dibujos de artículos. Figura 2.7-VII (WGDSAHAND/GENERAL) Hay que definir estos campos con las siguientes características: Tiene que ser un campo alfanumérico Hidden bastante grande para contener el recorrido del anexo. En el cuadro titulado “Link” se define el nombre del campo; de hecho es un campo añadido que no se puede gestionar solo. Si se define un campo de tipo “LINK” que a través de un icono llama un documento DBLINK, hay que definir el código, la descripción y la dimensión del icono que está asociada al “Link” del anexo. Si se define un campo de tipo “IMAGEN” y por eso el valor de la columna añadida es el recorrido de una imagen, esa va a ser definida en el cuadro titulado “Imagen” indicando la dimensión de Alto y Ancho Pagina 30 Herramientas de Customización – Manual de Analista de Sistema A continuación hay un ejemplo de la pantalla con los campos de las columnas añadidas con “Link Anexo” e “Imagen” y de una instrucción SQL para extraer el recorrido de DBLINK para la imagen y/o para el documento anexo. Select XPALNK from linhe as a inner join links b on a.xkeyun=b.xkeyun and a.xflnam='PARAR' and a.xflk01='*BLNK' and a.xflk02='*BLNK' and a.xflk03='*BLNK' and a.xflk04='&t21sfl.VVCODAR' and b.xclsdo='ST' Para que todo sea más simple, las instrucciones SQL que encuentran documentos DBLINK, están disponibles también en las nuevas UDF la WUF_PAL que devuelve el recorrido del anexo Dblink teniendo como dato XKEYUN y WUF_PAH que devuelve el recorrido del anexo Dblink teniendo los extremos del registro de categorización (clave de LINHE). WUF_PAL(XKEYUN,XTPARE) Parámetro Formato Significado XKEYUN Alfanumérico Id Unívoco Anexo XTPARE Alfanumérico Tipo Parámetro Devuelto Valores Disponibles „P‟ Asumido por defecto= Recorrido documento Público (si existe PDF u otro) „E‟ = Recorrido Objeto Editable. Ejemplo donde se devuelve el recorrido Púbblico Select XCODAR, XCOCLI, WUF_PAL(XKEYUN,’P’) from OPERA WUF_PAH(XFLNAM,XFLK01,XFLK02,XFLK03,XFLK04,XFLK05,XFLK06,XFLK07,XFLK08,XFLK09,XFLK10,XCLSDO,X LIVME,XTPARE) Parámetro Formato Significado XFLNAM Alfanumérico Nombre File Valores Disponibles XFLK01-10 Alfanumérico Valor Campo Clave 1-10 XCLSDO Alfanumérico Clase Documento (opcional) XLIVME Alfanumérico Nivel de modificación Documento X.XX (ES. 1.01) = Especifica Revisión LAST = Última Revisión. DATA(fecha)larga 8 invertida = Revisión válida a la fecha indicada. XTPARE Alfanumérico Tipo Parámetro Devuelto „P‟ Asumido por defecto = Recorrido documento Público (si existe PDF u otro) „E‟ = Recorrido Objeto Editable. Ejemplo donde se devuelve el recorrido público del documento adjunto al file PARAR en el artículo indicado por el campo XCODAR para la clase documentos CO. Select XCODAR, XDSART, WUF_PAH(‘PARAR’,XCODAR,’’,’’,’’,’’,’’,’’,’’,’’,’’,’CO’,’LAST’,’P’) from PARAR 2.7.6 Añadidura de una columna ICONO Hay muchas posibilidades de tipos de campos a utilizar cuando se vaya a añadir columnas. Es posible introducir campos “ICONO” informativos a los que los usuarios pueden referirse en las líneas de Subfile. Aquí abajo mostramos un ejemplo realizado en el elaborado QC. Pagina 31 Herramientas de Customización – Manual de Analista de Sistema El cliente ha pedido que en la explosión de la lista de materiales sean señalados los componentes que provienen de Padre Ficticio. Figura 2.7-VIII (WGDSAHAND/GENERAL) La lógica de compilación de los campos es similar a lo que se ha descrito y explicado en el capítulo anterior con respecto a las columnas Link Imagen, cambia sólo la instrucción SQL que se va a iniciar. Aquella será libre y dependerá de la condición que se quiere controlar , si verdadera va a ser emitido el ICONO, si falsa (no encuentro registro) el campo añadido se queda vacío. Figura 2.7-IX (WGDSAHAND/STRSQL) 2.8 Command Services El mantenimiento de los “Command Service” se lanza desde la adecuada voz de Menù entrando por medio del perfil WEBGATECVT. Sirve para definir “Comandos” que puedan ser disponibles en las pantallas de la aplicación y también para que puedan ser disponibles las condiciones de entorno necesarias para su ejecución. Por entorno se entiende el conjunto de las variables presentes en el file vídeo, las visibiles y también las no visibles (hidden). Presuponiendo que un comando (por comodidad nos referimos a la llamada de un programa que habitualmente se ejecuta con un código operativo “CALL” en el interior de un programa RPG) puede ser ejecutado si están disponibles los valores necesarios para llenar sus parámetros obligatorios, en esta pantalla se van a definir los metodos para encontrar estos valores. Entonces es necesario identificar cada variable que contienen los valores de arriba y eso se obtiene compilando la sección “Nombre Campos” considerando las siguientes reglas: Un comando puede ejecutarse en un formato vídeo cuándo: Existen todas las variables indicadas (implícitamente necesarias). El campo satisface los requisitos (largo, tipo, posiciones decimales) Pagina 32 Herramientas de Customización – Manual de Analista de Sistema El campo, si obligatorio, no resulta cero o blanco. El campo satisface las reglas seleccionadas indicadas (ver el especifico help) Figura 2.8-I (WGCMDD/EC2) En este ejemplo, el comando se encuentra disponible en cada display files de la librería CLX que contienen los campos que acaban por FLAGA o FLAG y los campos que acaban por CODIC o COCLI. Ambos campos no pueden quedar vacíos (Obligatorio=Y) y el primer campo tendrá que contener el valor C. El comando será disponible clicando con el botón derecho del ratón en el campo o en la barra de comando y se ejecutará de manera interactiva en iSeries (según la definición del parámetro MODO). Antes de ejecutar el “Command”, va a ser lanzado el programa RQF00C de preparación entorno (facultativo, indicado sólo como ejemplo). El “Comando o Instrucción SQL” puede contener un comando en formato iSeries o en formato PC. Con respecto al iSeries, las modalidades de codificación del comando son las mismas que se utilizarían si el programa fuese lanzado de una línea comandos, mientras que con respecto a los comandos PC, son válidas las reglas definidas para el prompt “EJECUTA” de Windows. Los parámetros de los comandos ejecutados, pueden ser valorizados por los campos ( nombrados con referencias %1-%9) especificados en la adecuada sección “Variables”. Además de los comandos, se pueden introducir también instrucciones SQL que generan windows independientes y que contienen el output de la SQL. Ejemplo de un programa con más de un parámetro Este parámetro dispone de 5 parámetros. CALL PGM(SAMPLE) PARM(„ „ „%1‟ X'%2F' X„0%3F‟ X'00000000236F' X'00000000236F' „PARM‟) 1. Parámetro que se deja blanco 2. Parámetro alfanumérico valorizado desde el primer (%1) campo de la lista 3. Parámetro numérico largo 11 (impar) posiciones valorizado desde el segundo (%2) campo de la lista. 4. Parámetro numérico largo 10 (par) posiciones valorizado desde el tercer campo de la lista. 5. Parámetro numérico largo 11 posiciones constante. 6. Parámetro numérico largo 10 posiciones constante. 7. Parámetro alfanumérico constante. NB En un parámetro numérico, las posiciones pasadas siempre tienen que resultar pares (incluída la F final). Notar el 0 (cero) añadido antes del número o antes de la sintaxis de sustitución si el largo del número resulta par. Ejemplo de una instrucción SQL SQLI://SELECT DIGITS(XTIGES) AS "TIPO", XDEDES AS "DESCRIZIONE", DECIMAL(SUM(XESIDI), 10, 3) AS "GIACENZA" FROM SALPR INNER JOIN DECOD ON DIGITS(XTIGES)=XDECOD WHERE XDECAM='TIGES' AND XANNOC=0 AND XCODAR='%1' GROUP BY XTIGES, XDEDES Ejemplo de un comando para anexos DBLINKS CALL PGM(RLKM01) PARM(' ' ' ' 'filename' '%1' '%2' '%3' '%4' '*NULL' '*BLNK' ' ' ' ' ' ' ' ') 2.8.1 Command Services de tipo Drag and Drop Para entender su uso, vamos a ilustrar un ejemplo que utilizaremos como explicación. Se trata de copiar uno o más lazos de lista de materiales de una categoría a otra. El programa (ADDLEG) que ejecutará esta función tendrá que tener tre parámetros (todos alfanuméricos). 1. Código Artículo Enlace Padre de la cual copiar (%1) 2. Código Artículo Enlace Hijo de la cual copiar Pagina 33 (%2) Herramientas de Customización – Manual de Analista de Sistema 3. Código Artículo Padre en el que copiar la relación (&3) Desde el punto de vista operativo, tendrá que ser posible ejecutar una selección multiple en un subfile donde se pueda visualizar una lista de componentes asociados de una categoría y que se pueda arrastrar a otro vídeo que contenga un código artículo. Esta acción permite la ejecución del programa que a su vez ejecutará la operación descrita (utilizando los tres parámetros ) y luego la añadidura de los componentes arrastrados al código que ha sido identificado por la acción “Drop” (Solta). En el campo apropriado, tendrá que ser codificado el comando como sigue: CALL PGM(ADDLEG) PARM(‟*DS‟ „%1‟ „%2‟ „&3‟) Hay dos diferencias entre este y otros tipos de Command Service : Primer parámetro = „*DS‟ (largo 100 posiciones alfanumérico) Es un parámetro obligatorio que contiene el número total de los comandos que se están ejecutando y también contiene el número del comando en uso, que son utiles cuando se define una selección multiple en las líneas de subfile. De hecho, si el usuario copiará de una hoja a otra lista de materiales, por medio de una sola operación, 10 componentes, podría ser útil identificar (por ejemplo) la última repetición así que se pueda emitir un prompt para avisar del éxito de la operación o bien un prompt que permita modificar los coeficientes de utilización de los componentes copiados. La definición de este parámetro está descrita por una DS que tiene que ser codificada en el interior de un programa usuario. Pos. DE Pos. A 1 3 Número Total de las repeticiones 4 6 Número de la repetición corriente 7 9 Código acción común: DLT = Delete (Borra) EDT = Modifica PRT = Stampa (Imprime) 10 100 Reservado Parámetro &3 (Parámetro de Drop “solta”) Indica el campo que tiene que encontrarse en la posición de “drop”(solta) para que se pueda ejecutar el comando. Por eso los parámetros necesarios para habilitar la operación de “drag” (arrastra) se identifican por el prefijo % y los parámetros necesarios para habilitar la operación de “drop” se identifican por el prefijo &. Sigue el ejemplo de command service copia/borra lazos lista de materiales. Figura 2.8-II (WGCMDD/EC2) En la sección teclas y acciones comunes, es posible, por ese tipo de comando, configurar la visualización de una ventana en el momento del arrastro. Esa ventana visualiza algunos iconos (seleccionables) que se refieren a las acciones comunes, como por ejemplo Anulación (Delete), Impresión (Print) y Modifica Edit. Seleccionando un icono se ejecuta el comando valorizando el parámetro *DS en la porción llamada “código acción común” con el valor atinente al icono elegido (DLT, EDT, PRT …..). Pagina 34 Herramientas de Customización – Manual de Analista de Sistema Características de ejecución del comando : Los comandos ejecutados durante la operación de Arrastra y Solta (Drag and Drop), será ejecutados en secuencia en el interior de un único job. Por eso si el programa objeto del comando será cerrado con “return” (obligatorio), todas las variables del mismo se guardarán. Los posibles comandos “PRE” y “POST” serán ejecutados una sola vez antes del primer comando (repetición) y después del último. La “Tecla Post”, será ejecutada una sola vez , evadida la última repetición. 2.8.2 Tips Se aconseja, para los comandos que preven un prompt de confirmación, introducir un parámetro que permita omitir lo si el usuario lo necesita , por razones de eficiencia. En este caso será suficiente volver a definir en la sección custom el mismo comando con su parámetro compilado de manera adecuada. 2.9 Sintaxis de las Variables y de los Campos El NOMBRE que se atribuye a una variable, siempre se codifica sin caracteres especiales en el prefijo como por ejemplo CLIENTE, PRECIO, IMPORTE, ARTÍCULO. En cambio si nos referimos al “Valor / Contenido” de la variable, el NOMBRE tiene que ser prefijado con el carácter % como por ejemplo %CLIENTE, %PRECIO, %IMPORTE, %ARTÍCULO. En las condiciones WHERE de las instrucciones SQL, hay que poner atención en el formato del campo de comparación. Para los campos númericos la variable de comparación no hace falta de sintaxis particulares como por ejemplo PREZE<>%PRECIO mientras que para los campos alfanuméricos la variable de comparación tiene que estar cerrada entre apices como XCODIC=‟%CLIENTE‟. Cuando es necesario pasar valores de las variables a programas llamados, hay que adoptar algunas medidas. Mostramos aquí todas las posibilidades a través de un ejemplo. CALL PGM(SAMPLE) PARM(„ „ „%CLIENTE‟ X'%PRECIOF' X„0%IMPORTEF‟ X'00000000236F' X'00000000236F' „CONSTANTE‟) 1. Parámetro que se deja blanco 2. Parámetro alfanumérico valorizado por la variable%CLIENTE 3. Parámetro numérico largo 11 (impar) posiciones valorizado por la variable %PRECIO 4. Parámetro numérico largo 10 (par) posiciones valorizado por la variable %IMPORTE 5. Parámetro numérico largo 11 posiciones valorizado con una constante numérica 6. Parámetro numérico largo 10 posiciones valorizado con una constante numérica 7. Parámetro alfanumérico valorizado con una constante En un parámetro numérico, las posiciones pasadas siempre tienen que resultar pares (incluída la F final). Notar el 0 (cero) añadido delante del número o antes de la sintaxis de sustitución si el largo del número resulta par. 2.10 Sesión Base de Datos (STRDBMON) Con la tecla Enter de la base de datos (STRDBMON) da 5250 podemos iniciar la recopilacion de estadísticas sobre la prestación de la base de datos para un trabajo especifico, para todos los trabajos sobre el sistema o para un grupo seleccionado de puestos de trabajo. Las estadísticas se insertan en un archivo específico de cada usuario. Si el archivo no existe, se crea uno basado en el file QAQQDBMN en la librería QSYS. Si el archivo existe, se verifica que el formato de registro sea el mismo. Para cada monitor iniciado utilizando STRDBMON, el sistema genera una ID monitor que puede ser utilizada para identificar inequivocamente cada sesión de modo individual. El ID monitor (identificador de sesión) se puede utilizar en el comando ENDDBMON para identificar cual es el monitor que se debe terminar. El ID monitor se facilita en el mensaje informativo CPI436A que se genera en cada comando STRDBMON ejecutado. El ID monitor se puede encontrar en la columna QQC101 del registro de la base de datos QQQ3018 del monitor. Presentamos a continuacion algunos ejemplos de uso del comando Ejemplo1 : Inicio de Monitorización de la base de datos para todos los procesos. STRDBMON OUTFILE(QGPL/FILE1) OUTMBR(MEMBER1 *ADD) JOB(*ALL) FRCRC D(10) Esta orden inicia la monitorización de la base de datos para todos los procesos del sistema. Las estadísticas sobre prestaciones se adjuntan al elemento llamado member1 en el archivo llamado FILE1 en la librería QGPL. Quedan grabados 10 registros en la memoria antes de empezar a sobreescribir los archivos. Pagina 35 Herramientas de Customización – Manual de Analista de Sistema Ejemplo 2: Inicio de Monitarización de la base de datos para un trabajo concreto. STRDBMON OUTFILE(*LIBL/FILE3) OUTMBR(MEMBER2) JOB(134543/QPGMR/DSP01) FRCRCD(20) Esta orden inicia la monitorización de la base de datos para el número de trabajo 134543. El nombre del trabajo es DSP01 y ha sido iniciado por el usuario llamado QPGMR. Las estadísticas sobre prestaciones se adjuntan al miembro MEMBER2 en el archivo denominado FILE3 . Quedan grabados 20 registros en la memoria antes de empezar a sobreescribir los archivos. Ejemplo 3: Inicio de Monitorización de la base de datos para un trabajo concreto en un archivo en una librería en un ASP STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(134543/QPGMR/DSP01) Esta orden inicia la monitorización de la base de datos para el numero de trabajo 134543. El nombre del trabajo es DSP01 y ha sido iniciado por el usuario llamado QPGMR. La estadísticas sobre las prestaciones se adjuntan al miembro DBMONFILE (no habiendose especificado OUTMBR) en el archivo DBMONFILE en la librería LIB41. Ejemplo 4 : Inicio de Monitorización de la base de datos para todos los procesos que inician con 'QZDA' STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALLALL/QZDA*) Esta orden inicia la monitorización de la base de datos para todos los números de trabajo, para todos los usuarios y para el nombre del trabajo que empieza por 'QZDA'. Las estadísticas de las prestaciones (record monitor) se adjuntan al valor DBMONFILE ( no habiendose especificado OUTMBR) en el archivo DBMONFILE en la librería LIB41. Ejemplo 5: Inicio de Monitorización de la base de datos para todos los trabajos y Filtro de las instrucciones SQL, cuyo tiempo estimado de ejecución supera los 10 segundos. STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) RUNTHLD(10) Ejemplo 6: Inicio de Monitorización de la base de datos para el trabajo en curso y aplicación de filtros sobre un archivo especifico. STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*) FTRFILE(LIB41/TABLE1) Esta orden inicia la monitarización de la base de datos para el trabajo en curso. Los registros del Monitor son creados exclusivamente para los comandos SQL que utilizan el archivo LIB41/TABLE1. Ejemplo 7: Inicio de Monitorización de la base de datos para el trabajo en curso y el usuario actual. STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*) FTRUSER(*CURRENT) Esta orden inicia la monitorización de la base de datos para el trabajo en curso. Los registros del Monitor son creados solo para aquellas instrucciones SQL que son ejecutadas por el usuario actual. Ejemplo 8: Inicio de Monitorización de la base de datos para trabajos que empiezan por 'QZDA' con Filtro del tiempo de ejecución y archivo. STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL/*ALL/QZDA*) RUNTHLD(10) + FTRUSER(DEVLPR1) FTRFILE(LIB41/TTT*) Esta orden inicia la monitorización de la base de datos de todos los trabajos cuyos nombres empiezan por „QZDA‟. Los datos del Monitor se podrán escribir sólo si las ordenes SQL cumplen las siguientes condiciones : o El tiempo estimado de trabajo, calculado por la Query Optimizer, es igual o mayor de 10 segundos. o Ha sido ejecutado por el usuario “DEVLPR1” o Utiliza archivos cuyos nombres empiezan por “TTT” y están en la librería LIB41 Para profundizar más sobre el uso del comando y de todos los parámetros disponibles, se remite a la Help en línea de AS400 y al manual IBM de AS400. 2.11 Interrogación LOG de Applet Se puede recuperar de dos modos diferentes, de “Herramientas ” “System Utilities” “Display job Log”, o bien directamente del icono de la barra de herramientas de la applet. Para que esté activa la opción elegida, debe estar abierto al menos un trabajo. (es. “VA”) Pagina 36 Herramientas de Customización – Manual de Analista de Sistema Los datos visualizados al abrir la función, se refieren al trabajo que está activo en ese momento. En el presente ejemplo vemos el LOG del elaborado “VA”. Figura 2.11-I (RODM01FM/T2CTL) Una vez recuperada la función, se puede modificar los criterios de busqueda y analizar el LOG de cualquier trabajo. Normalmente se graban los mensajes hasta tres meses. En el interior del LOG encontramos grabados tanto los mensajes de AS400, como los mensajes escritos de los procedimientos SQL (empiezan por Lxxxxxxx), estos ultimos subrayados en azul. Figura 2.11-II (RODM01FM/T2CTL) No indicando el “Nombre del Trabajo” ni el “Número” se puede analizar el LOG, por ejemplo de un solo usuario, que puede ser distinto del que ha abierto la applet. Es conveniente indicar un intervalo de fechas para evitar que la búsqueda sea demasiado larga y se expongan demasiados datos. Si se conoce la parte del texto del mensaje que se quiere buscar o el código del mensaje, es posible usar los filtros “Búsqueda” y/o “Id Mensaje”. Seleccionando también el “Tipo” (incluso más de uno) Pagina 37 se reduce nuevamente la lista. Herramientas de Customización – Manual de Analista de Sistema Activando “SÓLO Mensajes Especiales” se enumeran unicamente los mensajes generados por el procedimiento SQL (aquellos subrayados en azul). Para analizar el detalle del mensaje seleccionar la línea con la opción “5” Figura 2.11-III (RODM01FM/W1) Pagina 38