Todo_sobre_Forms10G

Embed Size (px)

Citation preview

Nombre del manual

TODO SOBRE FORMS 1OG

TODO SOBRE FORMS 10G

Fecha 01/11/2007

Versin 1.0

Cambios Versin Inicial

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 1

Nombre del manual

TODO SOBRE FORMS 1OG

1 TABLA DE CONTENIDO

1 2

TABLA DE CONTENIDO............................................................................ 2 FICHERO INI GENERAL ............................................................................ 4

3 INFRAESTRUCTURA PARA DESARROLLOS EN ICM BAJO FORMS 10G 53.1 3.2 3.3 3.4 3.5 3.6 3.73.7.1 3.7.2 3.7.3 3.7.4 3.7.5

Sentencias DDL ........................................................................................... 5 Estandar General de Fuentes y Colores .................................................... 5 Documentacin ........................................................................................... 6 Nomenclatura estandar de Directorios y Ficheros ................................... 6 Librera de Objetos...................................................................................... 6 Librera de PL/SQL ...................................................................................... 8 Templates (plantillas) a partir de Libreras de Objetos............................. 9MENU BASE.......................................................................................................... 10 APL_BASE ............................................................................................................ 11 FORM_BASE......................................................................................................... 12 F60_MANT1 .......................................................................................................... 14 F60_MANT2 .......................................................................................................... 15

3.8

Plantilla Lista de Valores .......................................................................... 18

4

EMPLEO DE LAS PLANTILLAS.............................................................. 194.1 4.2 Form de Gestin de Perfiles - F60_USU .................................................. 20 Form Calendario........................................................................................ 21

5 ADAPTACIN DE PROCEDIMIENTOO - MENSAJE DE LIBRERA PL/SQL DE FORMS 10G - ICM_PLL.pll ......................................................... 23 6 CREACIN DE WEB PARA ALOJAR PGINA ESTTICA INICIAL DE LA APLICACIN ............................................................................................. 256.1 6.2 Creacin del web....................................................................................... 26 Estructura del web que aloja la pgina esttica inicial de la aplicacin 26

7

CREACIN DE WEB PARA AYUDA ....................................................... 267.1 7.2 Creacin del web....................................................................................... 26 Estructura de ayuda de la aplicacin en el web...................................... 26

8 9 10 11 12

VISUALIZACIN DE AYUDA EN DEVELOPER 10G............................. 27 TRATAMIENTO DE IMGENES EN DEVELOPER 10G ......................... 28 EJECUCIN DE PROCESOS EN BATCH ........................................... 31 VISUALIZACIN DE TRABAJOS BATCH........................................... 36 VISUALIZACIN DE TRABAJOS BATCH EN MQUINAS UNIX....... 37rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 2

Nombre del manual

TODO SOBRE FORMS 1OG

13 1414.1 14.2 14.3 14.4 14.5 14.6

FUSIN DE DOCUMENTOS DESDE FORMS 10G ............................. 38 TRATAMIENTO DE CAMPOS LOB ..................................................... 41Carga de Archivos de Texto a campos CLOB -upload- .......................... 42 Carga de Archivo de Texto a campo CLOB y campo BLOB................... 44 DESCARGA y VISUALIZACION de campos CLOB .................................. 46 CARGA de cualquier tipo de Archivo a campos BLOB -upload- ........... 49 DESCARGA y VISUALIZACION de campos BLOB .................................. 51 CARGA DE BLOB DESDE URL................................................................. 53

15 16 1717.1 17.2 17.3

CREACIN DE TABLA ORACLE CON CAMPOS BLOB.................... 60 ACCESO A ESTACIN DE ESCANER................................................ 61 ENVO DE CORREO DESDE FORMS.................................................. 62Envo de correo desde Forms v4.5 (Unix) ............................................... 62 Envo de correo desde Forms6i -sin archivos adjuntos-........................ 63 Envo de correo desde Forms 6i -con archivos adjuntos....................... 64

18

Empleo de Frames en Aplicaciones Forms....................................... 67

19 UTILIZACIN DE FRAME OCULTO EN PGINA HTML CON FRAMES VERTICALES................................................................................................... 70 2020.1 20.2

EJECUCIN DE INFORMES CRYSTAL REPORTS............................ 72Obtener el token de business Objects..................................................... 72 Ejecucin de Informe Crystal Report ....................................................... 72

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 3

Nombre del manual

TODO SOBRE FORMS 1OG

2 FICHERO INI GENERALEl fichero ini de aplicaciones en Forms 10g contiene las siguientes opciones: [General] BaseDatos=icm21_dexxxxx ; *** Tipo de Ejecucin, posibles valores: -Web -Windows TipoEjecucion=Web ; *** Variable ejemplo para cargar en cuadro de informacin en men inicial Entorno=Consejera de xxxxxxxx [Ayudas HTML] ; *** Ubicacin de las pginas html de ayuda WebAyuda=http://icmaplicd01/xxxx/Forms/ [ReportBuilder] ; *** Parmetros vlidos solamente para Reports bajo TipoEjecucion=Web Report_cache=d:\icm\web\web_reps\ Report_mapping=http://NTICMAPL11/web_reps/ Cola1=REPLIGERAD01 ;Cola2=REPMEDIANAD01 ; *** Para realizar impresin directa de Pdf's desde el mdulo LIS_REP.fmx Impresion_pdf=http://nticmapl11.icm.es/impresionpdf/cgi-bin/ImpresionPDF.exe [GLIS] ; *** Parmetros vlidos solamente para la ejecucin del GLIS GlisHost=nticmdes01 GlisDir=d:\icm\web\web_reps\ GlisCola=NORMAL GlisMapping=http://nticmdes01/web_reps/ GlisExe=d:\icm\oas\general\etc\GlisBatchListado.exe GlisExe_Cubo=d:\icm\oas\general\etc\GlisBatchCubo.exe GlisExe_Sql=d:\icm\oas\general\etc\GlisBatchSql.exe GlisTemp=d:\temp\ GlisAyuda=http://nticmdes01/Glis_Ayuda/Forms/ [UPLOAD] ; *** Parmetros vlidos solamente para le ejecucin del Servlet Upload Upload_Exe= http://icmweb01.icm.es/util/upload/servlet/Servidor [DOCX] ; *** Parmetros vlidos solamente para la ejecucin de Fusin de documentos DocxHost=nticmdes01 DocxDir=d:\icm\web\web_reps\ DocxCola=NORMAL DocxMapping=http://nticmdes01/web_reps/ DocxExe=d:\icm\oas\general\etc\docx.exerea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 4

Nombre del manual

TODO SOBRE FORMS 1OG

DocxTemp=d:\temp\ [BUSINESS OBJECTS] ;*** Parmetros vlidos solamente para obtener token de B.O bo_usuario=EJPL_Usu bo_clave=C7FFB972B34AB66E2C45124586507E4F

3 INFRAESTRUCTURA PARA DESARROLLOS EN ICM BAJO FORMS 10GLa ubicacin donde podemos encontrar todos los componentes que a continuacin se detallan para su posterior localizacin es la siguiente: - \\nwicmofi01\Vol2\Formsv10g (para las empresas que van a realizar desarrollos para ICM se les faciltar un CDROM con idntico contenido y con posteriores entregas en caso de actualizaciones posteriores) Por otro lado documentacin y ejemplos se encuentran accesibles en la siguiente URL: http://icmweb01.icm.es/soporte/entornos_desarrollo.htm

3.1 Sentencias DDLNo se podrn utilizar sentencias SQL- DDL desde el cdigo.

3.2 Estandar General de Fuentes y ColoresNormas a nivel General: Las propiedades de los Objetos en Forms relativas a los textos que se visualizan como pueden ser entre ellas (Nombre, Tamao, Grosor, estilo, espaciado, color,..) deben ser: . Esto se consigue posicionandose en la Propiedad y pulsar el botn heredar . sta operacin aplica los valores por defecto que normalmente dran como resultado textos en color negro y color de fondo de objetos en blanco, si no es as se debe cambiar a stos valores. Para los Tipos de Grfico tipo Marco (Rectngulo con Texto) tambin se aplica sta Norma excepto en las siguientes propiedades: Nombre de Fuente de Ttulo del Marco : MS Sans Serif Tamao de Fuente de Ttulo de Marco : 9 En los Tipos de Grfico como (Rectngulo, Marco,..) el bisel debe ser Sin Relieve y como Color de Fondo Ningn Relleno.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 5

Nombre del manual

TODO SOBRE FORMS 1OG

Los Colores de Fondo de las ventanas ,Lienzos y botones debern llevar el valor teniendo en cuenta que al realizar sta operacin nos aplica un Color de fondo por defecto que normalmente es el Gris, si nos aplica otro color por defecto lo cambiaremos a Gris Se puede aplicar en los Tipos de Objeto Elemento Mostrado (Display Item) el atributo visual VIS_ATR_CAMPO_DISP siempre y cuando se visualicen en bloques con 1 solo registro de vsiualizacin En los bloques multiregistro para resaltar el registro sobre el que estamos posicionados durante la navegacin se consigue aplicando el atributo visual REGISTRO_CURRENT (disponible en las plantillas) sobre la propiedad CURRENT_RECORD_ATTRIBUTE del bloque. Los botones Icnicos como norma general tienen una dimensin de 18x18 En la configuracin del Forms Server hay que indicar que se va a trabajar con unas dimensiones del AppletViewer del modo siguiente, en los parmetros del fichero formsweb.cfg : widht=800 height=600

3.3 DocumentacinAdems de la documentacin especfica de los diferentes unidades de programa, triggers, objetos, .. La Documentacin a nivel general de la Pantalla (que funcin realiza el Form, a que tablas accede, en qu Modo (lectura, escritura), .) as como Comentarios y Observaciones se indicar en la Propiedad Comentarios a nivel de Form

3.4 Nomenclatura estandar de Directorios y FicherosLos Directorios deben ir en Minscula El Nombre de Fichero debe ir en Mayscula y la extensin en Minscula

3.5 Librera de Objetos- ICM_OBJ, librera de Objetos que contiene los objetos comunes que componen los distintos mdulos genricos o plantillas a partir de las cuales iniciaremos nuestros programas. Esta librera ha de encontrarse almacenada en una ubicacin que sea accesible en todo momento a travs del contenido de la variable FORMS90_PATH, de este modo los mdulos sern cargados correctamente a la hora de ser abiertos desde FormBuilder.rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 6

Nombre del manual

TODO SOBRE FORMS 1OG

Contiene entre otros: - Grupo de objetos GRP_FORM_BASE compuesto de Trigger de carcter general que realizan los distintos controles de activacin de perfiles, control de errores etc. ( Trigger When-new-form-instance, On-message, On-error, Canvas y Windows) Este grupo de objetos ser referenciado por la plantilla FORM_BASE que se detalla en otro punto dentro de este documento. - Grupo de objetos GRP_APL_BASE compuesto de Trigger de carcter general para la interceptacin de conexin a Oracle, perfiles para opciones de men etc. (Trigger On-Log, When-new-form-instance, bloques, campos, Canvas y Windows) Este grupo de objetos ser referenciado por la plantilla FORM_APL que se detalla en otro punto dentro de este documento. - Atributos visuales genricos para campos de entrada, prompt, campos de display y de opciones de men. - Alarma de carcter general.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 7

Nombre del manual

TODO SOBRE FORMS 1OG

NOTA: Estn Prohibidas la utiizacin de referencias de objetos de un Form a otro Form, cuando se nececsiten realizar referencias a objetos se utilizar una librera de objteos (olb)

3.6 Librera de PL/SQL- ICM_PLL, librera de PL/SQL que contiene procedimientos de carcter general. Contiene entre otros: - APLICAR_PERFIL, para habilitar/deshabilitar objetos dentro de un form en funcin del perfil del usuario de entrada a la aplicacin. - GENERAR_MENU, iden. a nivel de opciones del men activo para la aplicacin. - CIFRA, para realizar la encriptacin de la password del usuario de entrada. - LEER_FICH_INI, utilidad para leer claves incluidas en el ficheros de .ini para la aplicacin - y otras de carcter general. Es necesario a la hora de desarrollar un nuevo proyecto, lo primero, fijar la variable de entorno del regedit: \HKEY_LOCAL_MACHINE\Software\Oracle FORMS90_PATH a la carpeta donde se encuentre ubicada dicha librera ya que al abrir cualquiera de los mdulos que contengan referencias a la misma nos obligar a que est localizada, bien en el directorio en donde vamos a desarrollar nuestra aplicacin, bien en la carpeta de red donde se encuentran los archivos generales de infraestructura, opcin esta ltima la ms aconsejada ya que as no nos tendremos que ocupar de actualizar los cambios que se realicen sobre la misma. (La correcta localizacin de esta librera ser el primer paso que hagamos antes de crearnos alguno de los siguientes forms desde plantilla)

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 8

Nombre del manual

TODO SOBRE FORMS 1OG

NOTA: Hay que tener encuenta que la librera ICM_PLL ya tiene incorporada la librera F6_PROCS_SIS.pll . Por lo tanto al atachar a nuestro form la librera ICM_PLL automticamente tendremos tambin la librera F6_PROCS_SIS.pll . Posteriormente no se debe atachar la librera F6_PROCS_SIS.pll No deben atacharse las libreras generales a las Libreras de Aplicacin .

3.7 Templates (plantillas) a partir de Libreras de ObjetosSe han creado una serie de mdulos genricos o plantillas los cuales ya contienen objetos referenciados a la librera de objetos ICM_OBJ, tambin llevan incorporadas referencias a la librera de PL/SQL ICM_PLL (localizada en disco). Estos mdulos se encuentran disponibles en la carpeta general de infraestructura y son los siguientes:

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 9

Nombre del manual

TODO SOBRE FORMS 1OG

3.7.1 MENU BASESe utilizar para la creacin del men inicial de la aplicacin. Contiene: - Unas opciones de men de prueba simulando una llamada a un programa como estndar de llamada, va CALL_FORM(XXX,NO_HIDE, NO_REPLACE); - Incorporacin de opciones de ayuda con acceso dinmico a pginas HTML - Opcin de abandono de aplicacin - Cdigo de ejecucin inicial Startup Code para controlar la ejecucin de las llamadas a programas (para evitar el actual bug de la actual versin cuando ejecutamos ms de un Form a la vez desde el men y se nos cuelga al realizar un acceso a base de datos). - Incorporacin de la librera de utilidades generales ICM_PLL.pll Este menu a la hora de salvarlo se realizar con la nomenclatura : (Por ejem: PRY1_MENU.mmb) nombre_de_aplicacin_MENU.mmb

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 10

Nombre del manual

TODO SOBRE FORMS 1OG

3.7.2 APL_BASEPara la creacin del form de entrada a la aplicacin, en este form lo primero que se ha de hacer es modificar el Trigger When-New-Form-Instance personalizndolo para la nueva aplicacin, se modificar: :GLOBAL.COD_APLICACION := 'XXXX'; -- con el valor de nuestra aplicacin :GLOBAL.FICH_INI := 'XXXX.ini'; -- con el nombre del fich. de ini de la aplicacin. Igualmente se modificar el nombre de men asociado indicando el men anteriormente generado: nombre_de_aplicacion_MENU Contiene los siguientes puntos de inters: - Se intercepta la conexin inicial a Oracle (ON-LOGON) para posteriormente realizar por programa el control de dicha conexin. - Lectura del fichero de .ini para la aplicacin especificando entre otros datos la base de datos a la cual realizaremos la conexin. - Actualizacin de opciones de men segn el perfil del usuario de entrada (PROC. GENERAR_MENU). - Incorporacin de la librera de utilidades generales ICM_PLL.pll - Muchos de los objetos aqu creados se encuentran referenciados mediante un grupo de objetos de la librera de Objetos general ICM_OBJ.olb Este mdulo al salvarlo se realizar con la siguiente nomenclatura: nombre_de_aplicacion_APL.fmb (Por ejem: PRY1_APL.fmb) Los siguientes objetos no pueden cambiarse: Trigger ON-LOGON Procdure PROC_BACEPTAR Si fuera necesario introducir cdigo adicional en la conexin se deber meter en el Trigger WHEN-BUTTON-PRESSED del botn BACEPTAR- En el trigger WHEN-NEW-FORM-INSTANCE no debe tocarse el Bloque de cdigo relativo a la conexin

-

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 11

Nombre del manual

TODO SOBRE FORMS 1OG

NOTA: - Se permite realizar conexiones con distintas aplicaciones incluso entre distintas bases de datos- sin necesidad de autentificacin por parte del usuario, no se mostrara la ventana inicial de autentificacin. Esta funcionalidad requiere, por supuesto, que el usuario y la password de acceso para conectar con otra aplicacin sea la misma con la que se autentific inicialmente el usuario. La llamada a otra/s aplicaciones se realiza del siguiente modo: NEW_FORM(XXXX_APL,FULL_ROLLBACK);

3.7.3 FORM_BASEPara la creacin del resto de programas de nuestra aplicacin, contiene: -Procedimiento para realizar la actualizacin de objetos del programa en base al perfil del usuario de entrada a la aplicacin (PROC. APLICAR_PERFIL) - Procedimiento para la interceptar los mensajes no controlados por aplicacin y obtenerlos mediante una ventana de dilogo en lugar de mostrarlos en la linea de estado, muchas veces inapreciable. - Incorporacin de la librera de utilidades generales ICM_PLL.pll - Contiene alarma general, atributos visuales etc.referenciados mediante un grupo de objetos de la librera de objetos generales ICM_OBJ.olb

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 12

Nombre del manual

TODO SOBRE FORMS 1OG

Inicialmente no se ha incluido ningn bloque en el mdulo de modo que para poder ejecutarlo lo primero que se requiere es la creacin del al menos un bloque y un campo. Al guardar el modulo se realizar con la siguiente nomenclatura: nombre_de_aplicacion + letra_identif. + cadena_numerica_dentro_de_la_aplicacion.fmb (Por ejem: PRY1_M001.fmb)

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 13

Nombre del manual

TODO SOBRE FORMS 1OG

3.7.4 F60_MANT1Se utilizar como plantilla para la creacin de forms de mantenimiento de catlogos. Dentro del propio Form plantilla en la propiedad Comentario se pueden consultar los pasos a seguir para obtener una form personalizado para la tabla a mantener. Pasos a seguir para la creacin del Form de Mantenimiento 1: 1.- Crear un nuevo bloque asociado a la tabla a mantener 2.- Copiar los triggers del bloque 'BLOQUE_TRIGGERS_DE_TABLA' al nuevo bloque recien creado (posteriormente borrar el bloque 'BLOQUE_TRIGGERS_DE_TABLA'). 3.- En el Trigger WHEN-NEW-FORM-INSTANCE asignar el nombre del nuevo bloque a la variable: :BOPCION.BLOQUE_TABLA := 'NUEVO_BLOQUE'; 4.- Asociar a los campos del nuevo bloque el menu desplegable 'MENU_MANT' 5.- Incluir los filtros oportunos, si se necesitan, en pantalla y la programacin de los mismos en el procedimiento 'PROC_FILTRO'. 6.- Incluir las validaciones necesarias para la actualizacin de los registros del nuevo bloque en el procedimiento 'PROC_VALIDACIONES'.

Este form en concreto realiza el mantenimiento basandose en una nica ventana, es decir mantenemos los datos en sobre el mismo bloque que se presenta para la consulta inicial. Contiene todos los controles a nivel de perfiles e incorporacin de plls al igual que el form anterior Form_Base.fmb.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 14

Nombre del manual

TODO SOBRE FORMS 1OG

3.7.5 F60_MANT2Se utilizar como plantilla para la creacin de forms de mantenimiento de catlogos. Dentro del propio Form plantilla en la propiedad Comentario se pueden consultar los pasos a seguir para obtener una form personalizado para la tabla a mantener. Pasos a seguir para la creacin del Form de Mantenimiento 2: 1.- Crear dos bloques asociados a la misma tabla a mantener: - Un nuevo bloque a visualizar en estilo 'multiregistro' - Otro bloque asociado a la misma tabla a visualizar en 'registro nico'. 2.- Copiar los triggers de los bloques: 'BLOQUE_TRIGGERS_TABLA1'-'BLOQUE_TRIGGERS_TABLA2' a los bloques creados anteriormente 'multiregistro' y 'registro nico' respectivamente (posteriormente borrar estos bloques).

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 15

Nombre del manual

TODO SOBRE FORMS 1OG

3.- En el Trigger WHEN-NEW-FORM-INSTANCE asignar el nombre de los nuevos bloques a las variables: :BOPCION.BLOQUE_TABLA1 := 'NOMBRE_DEL_NUEVO_BLOQUE_MULTIREGISTRO'; :BOPCION.BLOQUE_TABLA2 := 'NOMBRE_DEL_NUEVO_BLOQUE_UNICO_REGISTRO'; 4.- Asociar a los campos del bloque multiregistro el menu desplegable 'MENU_MANT' ya existente en el modelo. 5.- Fijar en el bloque 'registro nico', en el Trigger Pre-Query la igualdad de claves para realizar el acceso adecuado entre ambos bloques. 6.- Incluir los filtros oportunos, si se necesitan, en pantalla y la programacin de los mismos en el procedimiento 'PROC_FILTRO'. 7.- Incluir las validaciones necesarias para la actualizacin de los registros del nuevo bloque en el procedimiento 'PROC_VALIDACIONES'. Es similar al form anterior tan solo que para el mantenimiento del catlogo se tienen dos ventanas en lugar de una como el anterior, de manera que cuando entramos por las opciones de actualizacin de informacin nos aparecer una nueva ventana mostrndonos tan slo la informacin del registro a procesar y cuando aceptamos o cancelamos los cambios regresamos a la ventana principal.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 16

Nombre del manual

TODO SOBRE FORMS 1OG

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 17

Nombre del manual

TODO SOBRE FORMS 1OG

3.8 Plantilla Lista de ValoresSe han realizado pruebas con listas de valores(LOV) accediendo a tablas con un volumen importante de registros obteniendose tiempos de respuesta bastante lentos. Cuando ejecutamos una LOV lo que internamente realiza es una bajada de la totalidad de los registros que obtiene la consulta al cliente con el consecuente coste de la accin, es decir si accedemos a una tabla, por ejemplo, la de Interesados con un volumen aproximado de 100.000 registros la operacin se lleva un tiempo ms que considerable (aproximadamente tarda el minuto). Por lo tanto para este tipo de LOV sobre tablas de un volumen superior a los 2.000 registros se aconseja emplear un form para este fin tomando como base del mismo un Form (plantilla) que se ha realizado simulando el aspecto de la LOV estndar (de Web). Este form acta con la lista de valores con un bloque asociado a tabla y la gestin del array de registros que forms nos ofrece, en este caso al realizar una bsqueda (ExecuteQuery) tan solo se bajar al cliente un array de registros igual al nmero de registros definidos para el multiregistro del bloque y posteriormente segn bajamos por el grid nos va recuperando bloque a bloque de informacin pero nunca se baja la totalidad del query de una vez. El template se encuentra disponible en la carpeta: \plantillas con el siguiente nombre: LOV_GEN.fmb dentro de la infraestructura disponible para Forms. Modificaciones a realizar para personalizar el form Lista de Valores : -En el objeto Ventana modificar la propiedad Titulo indicando el correspondiente valor. -En el bloque BTABLA modificar la propiedad Nombre del Origen de datos de Consulta indicando la tabla de la cual deseamos obtener la informacin. -Dentro de los elementos del bloque BTABLA acceder a la propiedad Base de Datos - Nombre de Columna e indicar el nombre del campo correspondiente a visualizar (debe de tener el mismo nombre que el nombre del campo definido en base de datos para la tabla anteriormente seleccionada).

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 18

Nombre del manual

TODO SOBRE FORMS 1OG

Aqu se permite poner o el nombre del campo o bien una expresin compuesta por varios campos de la tabla, por ejemplo para obtener el Cdigo de Expte. formateado: cddeptno || '-' || cdtexp || '-' ||LPAD(cdnexp,5,'0') ||'.'||cddigito||'/'||cdaexp -Tambin hay que modificar la etiqueta que queremos que aparezca como cabeceras de campos de la lista para ello modificamos la propiedad Prompt de los elementos del Bloque. - Y por ltimo cambiar las propiedades de los elementos del bloque BTABLA en cuanto al tamao de y ancho de visualizacin de los mismos. Ejemplo de llamada a un Form tipo Lista de valores : Call ( 'LOV_INTE' , NO_HIDE , NO_REPLACE ) ; --- Si se obtiene informacin de la lista de valores la siguiente global contendr S -IF :GLOBAL.LOV_RESULT = 'S' THEN -- se obtiene el valor de la lista sobre un campo de nuestro form :B10.INTERESADO := :GLOBAL.LOV_V1; END IF;

4 EMPLEO DE LAS PLANTILLASLa utilizacin de cualquiera de estas plantillas para los nuevos desarrollos se realizar del siguiente modo: - seleccionar la opcin del men principal: Nuevo Form con Plantilla Acceso a mdulo de fichero navegaremos a nivel de carpetas hasta posicionarnos en la ubicacin donde se encuentran los forms de infraestructura y seleccionaremos el mdulo del que se desea partir. Por el hecho de que estas plantillas contienen referencias a mdulos, cualquier modificacin que se realice sobre ellos quedar reflejada en el momento de abrir de nuevo el mdulo -en caso de modificaciones en la librera de objetos lCM_OBJ- y tan slo tendremos que compilar y automticamente en el caso de modificacin de cualquier procedimiento/funcin de la librera PL/SQL ICM_PLL.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 19

Nombre del manual

TODO SOBRE FORMS 1OG

4.1 Form de Gestin de Perfiles - F60_USUEste es un mdulo estndar que permite realizar la gestin de perfiles para aplicaciones desarrolladas en Developer v10g y que se puede incorporar a cualquier aplicacin simplemente con la implementacin de una opcin de men dedicada a tal efecto que realice una llamada al form: - F60_USU En el siguiente men de ejemplo:Opcion1 Opcion2 Opcion3 Acceso Autorizaciones

la llamada CALL al form F60_USU se realizar desde el punto de men Autorizaciones.

Cuando el mdulo se incorpora a una aplicacin con el mtodo anteriormente indicado tan solo se permite la modificacin de perfiles para la aplicacin en curso no pudiendo modificar perfiles de otras aplicaciones. La aplicacin con la que se actuar ser la definida en la variable global GLOBAL.COD_APLICACION definida en el form de identificacin de entrada a la aplicacin APL_XXX.rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 20

Nombre del manual

TODO SOBRE FORMS 1OG

sta pantalla va a permitir : Crear Grupos (perfiles) de Aplicacin Asignar y desasignar Usuarios a los Grupos Crear Opciones de Men en las que se indicar: Cod. Men: el codigo de item men Desc. Men: Descripcin de la Opcin de Men Tipo de Accin: Visible, Oculto y Desactivado Asignar Opciones de Men a los Perfiles Dar de Alta Programas: Dar de alta un form. Esto nos permitir posteriormente crear acciones sobre stos programas (forms). Crear Acciones de Programa. Las acciones de programa son aquellos objetos de un form susceptibles de ser modificados sus propiedades de visibilidad, activacion, Antes de crear una accin de Programa se debe seleccionar siempre el programa (form) al que va a pertener la accin (objeto). Tambin cuando se desea consultar las acciones de los perfiles se debe seleccionar siempre el programa (form) Para crear una accin se indicar: Cod. Accin: el objeto que se desea restringir por ejemplo: BLOQUE.BT_ALTA Desc. Accin: Descripcin del objeto Tipo de Accin: Desactivado Oculto No modificable No permitida la insercin No permitida la consulta No modificable No permitida la insercin Entre los tipos de objeto que se pueden restringir estn: Items , botones, radiogroup, pestaas, Por defecto todos los objetos de la Aplicacin (mens, Acciones) estn accesibles. Por lo tanto, lo habitual va a ser aadir restricciones de Opciones de men y Acciones.

4.2 Form CalendarioSe ha creado un form que actua como calendario contemplando los festivos segn la tabla catlogo CATA_FESTIVOS. La llamada a este se realiza a partir del procedimiento FCALENDARIO, incluido en la librera general de PL/SQL ICM_PLL.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 21

Nombre del manual

TODO SOBRE FORMS 1OG

Los parmetros de llamada son: -FECHA_CAL ..: Devuelve la fecha seleccionada del calendario -FIESTA_CAL..: Devuelve uno de los siguientes valores: 'L' - Da laboral 'F' - Da festivo 'D' - Domingo -DIA_SEM_CAL.: Devuelve el nmero del da de la semana (1-Lunes ...7-Domingo) -CAL_X ......: Coordenada x de visualizacin de la ventana del form Calendario -CAL_Y ......: Coordenana y de visualizacin de la ventana del form Calendario Un ejemplo de llamada a este sera: FCALENDARIO(:B10.FECHA,:B10.FIESTA,:B10.DIA_SEM, GET_ITEM_PROPERTY('FECHA',X_POS), GET_ITEM_PROPERTY('FECHA',Y_POS) );

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 22

Nombre del manual

TODO SOBRE FORMS 1OG

5 ADAPTACIN DE PROCEDIMIENTOO - MENSAJE DE LIBRERA PL/SQL DE FORMS 10G - ICM_PLL.pllSolamente para la migracin de los forms (v3) de procedimientos de carcter general se ha producido la situacin de encontrarnos con dos procedimientos que se llaman de igual nombre contenidos en dos PLLs distintas ambas de carcter general. - MENSAJE perteneciente a F6_PROCS_SIS.pll - MENSAJE perteneciente a ICM_PLL.pll el fin de ambos procedimientos es el mismo, mostrar un mensaje por pantalla, pero lo hacen de forma distinta: - el primero migrado de Forms v3 muestra un mensaje mediante la ejecucin de la built-in message por lo tanto este aparecer en la linea de estatus de pantalla y adems el texto a mostrar lo obtiene de base de datos en funcin de los parmetros recibidos en la llamada. La llamada actual es del tipo: MENSAJE(I,9999); - el segundo tambin muestra un mensaje en pantalla pero este aparecer contenido en una ventana (el modo habitual para cualquier mensaje de Windows) sin embargo no obtiene valor alguno de la base de datos simplemente muestra en la ventana el texto que se la pasa por parmetro. La llamada actual es del tipo: MENSAJE(Texto);

Entonces para evitar tener dos procedimientos con idntica nomenclatura y tomar de cada uno de estos su mxima funcionalidad se han realizado los siguientes cambios: F6_PROCS_SIS.MENSAJE cambia de nombre y pasa a llamarse F6_PROCS_SIS.MENSAJE_BD y adems pasa a ser una funcin en lugar de un procedimiento con lo cual se obtiene el texto del mensaje de base de datos (a partir de ahora esta funcin no se llamar directamente, ser llamada desde ICM_PLL.MENSAJE) ICM_PLL.MENSAJE cambia el interface de llamada, pero no hace falta adaptacin alguna en los programas que actualmente utilizan dicho procedimiento, aadiendole un nuevo parmetro y queda del siguiente modo: MENSAJE(TEXTO, [NUMERO] );

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 23

Nombre del manual

TODO SOBRE FORMS 1OG

siendo este ltimo parmetro opcional con lo cual con el cambio obtenemos la siguiente funcionalidad: - podemos utilizar la procedure como se utilizaba hasta ahora, para mostrar cualquier texto: MENSAJE(Texto a mostrar); - utilizar la procedure para obtener un mensaje a partir de la tabla de mensajes de base de datos (ya que internamente la procedure detecta por el nmero de parmetros recibidos que en este caso ha de realizar una llamada a PROCS_SIS.MENSAJE_BD para obtener el texto final a mostrar): MENSAJE(I,9999); - todos los procedimientos migrados de Forms v3 a PLLs a la hora de mostrar mensajes no utilizarn la antigua procedure MENSAJE utilizarn esta nueva de ICM_PLL y por lo tanto los textos se mostrarn siempre bajo una ventana de mensaje utilizando el interface de siempre. MENSAJE(I,9999);

Adems aprovechando que se modificaban las libreras se borran de ICM_PLL.pll los siguientes procedimientos: - GLOBALES_MONEDA - N2EDITAMONEDA - N2EDITANUM2 ya que actualmente estn disponibles en la librera F6_PROCS_GENERAL. En la librera ICM_PLL.pll se encuentra disponible el procedimiento MENSAJE_I que proporciona la siguiente funcionalidad: MENSAJE_I Tiene la misma funcionalidad que MENSAJE y adems permite escoger el Estilo(Icono) de Alerta que se va a visualizar indicandole el estilo en el parmetro Tipo_Alerta Parmetros del Procedimiento MENSAJE_I: TEXTO :Texto a visualizar en la Alerta NUM_ADAPT :N del Mensaje de Base de Datos correspondiente a la tabla Mensajes (se incluye como compatibilidad y es opcional) a visualizar en la Alerta TIPO_ALERTA :Valores Permitidos (1,2,3), Valor por Defecto 1 1Estilo: Pararrea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 24

Nombre del manual

TODO SOBRE FORMS 1OG

23-

Estilo: Nota Estilo: Precaucin

EJEMPLOS: Las siguientes llamadas al Procedimiento generarn una visualizacin de la Alerta como sigue: MENSAJE_I('Mensaje visualizado con Estilo de Alerta PARAR'); MENSAJE_I('Mensaje visualizado con Estilo de Alerta PARAR', 1);

MENSAJE_I('Mensaje visualizado con Estilo de Alerta NOTA', 2);

MENSAJE_I('Mensaje visualizado con Estilo de Alerta PRECAUCIN', 3);

6 CREACIN DE WEB PARA ALOJAR PGINA ESTTICA INICIAL DE LA APLICACIN

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 25

Nombre del manual

TODO SOBRE FORMS 1OG

La pgina esttica inicial de la Aplicacin contiene informacin ,descripcin o presentacin de la Aplicacin y un enlace de ejecucin de la Aplicacin, se incluir cuando sea necesaria. Si nuestra aplicacin contiene una pgina esttica inicial de aplicacin:

6.1 Creacin del webSe crear un web con FrontPage con la siguiente estructura: http://Host/nombre_del_modulo

6.2 Estructura del web que aloja la pgina esttica inicial de la aplicacinColgando directamente del web estar la pgina esttica html index.htm Si lleva imgenes se crear una carpeta images para contenerlas http://host/modulo ---------------------- index.htm /images------------- imgenes que pertenecen a index.htm

7 CREACIN DE WEB PARA AYUDASi nuestra aplicacin incorpora ayuda :

7.1 Creacin del webSe crear un web con FrontPage con la siguiente estructura: http://Host/Nombre_del_Modulo No es necesario crear el web si ya existe un web que contiene la pgina esttica inicial de la aplicacin . Se utilizar el ya existente

7.2 Estructura de ayuda de la aplicacin en el webDebajo del web se crea una carpeta ayuda que contendr las pginas htm Debajo de la carpeta ayuda una subcarpeta images, que contiene todas las imgenes de la ayuda http://Host/Modulo /ayuda/ ------------- pginas htm de ayuda /ayuda/images--- imgenes que pertenecen a las pginas htm de ayuda NOTA: Independientemente del tipo de ejecucin la ayuda se realizar en pginas html y se mostrar con el navegador que tenga el puesto definido por defecto.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 26

Nombre del manual

TODO SOBRE FORMS 1OG

8 VISUALIZACIN DE AYUDA EN DEVELOPER 10G

Se ha modificado la librera general de Procedimientos/Funciones ICM_PLL.pll para implementar en el procedimiento de visualizacin de ayudas PROC_AYUDA la posibilidad de mostrar estas tanto ejecutando nuestras aplicaciones desde un entorno Web como en ejecuciones en Cliente/Servidor Windows (este caso solamente para versin Forms6i, en 10g ya no existe cliente/servidor). Independientemente del tipo de ejecucin la ayuda se realizar en pginas html y se mostrar con el navegador que tenga el puesto definido por defecto. Para implementar el tipo de ejecucin en que nos encontramos se ha de incluir en el fichero .ini de la aplicacin el siguiente parmetro: TipoEjecucion=XXXX Pudiendo tomar los siguientes: - Web - para ejecuciones en OAS bajo Web - Windows - para ejecuciones en Cliente/Servidor Windows Para ubicar el Web en el que se van a buscar las pginas htm de ayuda para nuestra aplicacin se utilizar el siguiente parmetro en el fichero .ini de la aplicacin: ; por ejem. WebAyuda=http://host/Modulo/ Para poder realizar la visualizacin de la ayuda en ejecuciones tipo Cliente/Servidor Windows se ha de tener el programa lanzador de las mismas: -ShowHtml.exe en el directorio en donde se encuentren el resto de los forms de la aplicacin. El procedimiento de llamada para las ayudas PROC_AYUDA no ha cambiado la Interface, tan solo a nivel de cdigo interno, aprovecho para recordar la llamada al mismo: PROC_AYUDA( XXXXX IN VARCHAR2) ; El parmetro de entrada puede tener los siguientes valores: - NULL, la ayuda a mostrar ser la del form activo en ese momento - Nombre_de_Form, se visualizar la ayuda del form indicado en el parmetro.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 27

Nombre del manual

TODO SOBRE FORMS 1OG

Os recuerdo que para poder recoger el cdigo actualizado de la librera ICM_PLL.pll tenis la ltima versin en la carpeta: \Pll donde se encuentran el resto de forms de infraestructura de Forms.

NOTA: Independientemente del tipo de ejecucin la ayuda se realizar en pginas html y se mostrar con el navegador que tenga el puesto definido por defecto.

9 TRATAMIENTO DE IMGENES EN DEVELOPER 10GTratamiento de Iconos - Gif mediante el programa de diseo de imgenes Microangelo Inicialmente y como recordatorio simplemente comentaros que en aplicaciones forms en tipo de ejecucin Cliente/Servidor Windows las imgenes asociadas a los botones han de ser ficheros de iconos (.ico) y sin embargo cuando ejecutamos nuestras aplicaciones en modo Web las imgenes asociadas a los botones han de ser ficheros Gif (.gif). Por lo tanto se necesita una herramienta de fcil manejo que permita disear este tipo de imgenes y establecer de modo rpido el cambio entre ambos formatos (en versin v10g al no existir ejecucin Cliente/Servidor solamente necesitamos gif). Con el empleo del programa Microangelo se permiten crear nuevos iconos y una vez creados estos pasar a formato Gif realizando los siguientes pasos: Creacin de un nuevo icono - accedemos mediante el men: File - New y seleccionamos Icon como en la figura siguiente:

Se aconseja como estandar de Developer v10g la definicin de los botones con un ancho-alto de 18X18 por lo tanto a la hora de crear el icono no se han de superar estas coordendas (aunque las coordenadas que nos aparezcan sean de 32X32) para no perder imagen a la hora de cargar esta sobre el botn.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 28

Nombre del manual

TODO SOBRE FORMS 1OG

Al grabar el fichero creado se recuerda que el nombre ha de contener el prefijo de la aplicacin y no superar los 8 caract. ( por ejem. usu_xxxx.ico) Creacin de ficheros Gif (.gif) a partir de ficheros de Iconos (.ico) - en una ventana abrimos el fichero de icono y seleccionamos el area de imagen ( 18X18 de mximo) para ello con la porcin seleccionada realizaremos un Copy de la misma. - abrimos una nueva ventana (File - New Windows) en la que definimos una imagen con unos valores predeterminados en cuanto a color y tamao, para ello accedemos a: Tools - New Image Format y nos aparece la siguiente ventana en la que indicaremos los valores que a continuacin se han fijado:

- automticamente la herramienta nos genera una pantalla con las dimensiones establecidas dispuesta a alojar la nueva imagen, para ello y sobre esta nueva ventana hacemos Paste de la seleccin anterior. Se aconseja ajustar la imagen al borde izquierdo de la ventana ya que al cargar esta en el botn en la ejecucin en Web automticamente nos deja un pequeo margen vertical en la izquierda. Este margen automtico hace que perdamos las 2 ltimas coordenadas a nivel de columna del fichero por lo tanto se aconseja que sobre estas no haya porcin de imagen alguna. En la figura siguiente se muestra en gris la porcin de imagen que se mostrar sobre el botn y en blanco la que nunca se visualizar:

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 29

Nombre del manual

TODO SOBRE FORMS 1OG

- una vez realizadas estas consideraciones se pasar a salvar, en este momento se define el formato de la nueva imagen que ser del tipo Gif.

Se ha realizado la solicitud de adquisicin del programa Microangelo hasta que lo que tengamos el que este interesado en la herramienta poneros en contacto con nosotros y os dejamos una versin de evaluacin del mismo. Nota: a nivel de diseo con Forms se han encontrado casos en los que al asociar un icono a un botn lo alinea incorrectamente (alineamiento inferior) y por mucho que intentemos solucionarlo no se consigue dejar correctamente, en estos casos la solucin que hemos observado es, y aunque parezca un pocorea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 30

Nombre del manual

TODO SOBRE FORMS 1OG

estrao, renombrar simplemente el fichero .ico y asociando el nuevo fichero al botn lo alinea correctamente (Forms debe de heredar alguna propiedad de alineamiento del fichero que caus el problema inicialmente que por mucho que lo intentemos asociar a otro botn nos repite el alineaminento incorrecto).

10 EJECUCIN DE PROCESOS EN BATCHPara la ejecucin de procesos en batch desde Forms6i bajo Web se ha implementando unos paquetes en el nucleo de Oracle mediante los cuales se permite realizar una peticin de trabajo e inmediatamente se puede consultar el estado de la misma. Los siguientes procedimientos se utilizan para:

-Peticin de un proceso: - QUJB_PAQ_GENERAL.PETICION(Parametros) Parmetros: - Host:mquina donde va a correr el trabajo - Cola: cola que gestionar el trabajo -Shell: ejecutable a lanzar -Param: parmetros a pasar al ejecutable -Usuario: usuario que encarga el trabajo -Mensaje: (salida) mensaje de error en una peticin errnea Devuelve: -el numero de peticin (WPETI) que nos ha generado -en el caso de ERROR devuelve -1 -Ejecucin del mismo: - QUJB_PAQ_GENERAL.EJECUCION(WPETI,WHOST) Parmetros: - N.Peticin:que hemos obtenido en la funcin QUJB_PAQ_GENERAL.PETICION. -Host:- Host:mquina donde va a correr el trabajo Devuelve: -el el caso de ejecucin correcta devuelve 0 . -en el caso de ERROR devuelve -1. -Consultar el estado de la peticin QUJB_PAQ_GENERAL.ESTADO(WPETI)

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 31

Nombre del manual

TODO SOBRE FORMS 1OG

Parmetros: -N.peticin: num. de peticin que vamos a comprobar. Devuelve: Uno de los siguientes literales: - En cola - En ejecucin - Terminada - Peticin desconocida

Ejemplo de cmo Realizar Una Peticin al Servicio Pipe_Batch 1.- Realizar Peticin PROCEDURE EJECUTA_BATCH IS WPARAM VARCHAR2(250); WMENS VARCHAR2(250); WHOST VARCHAR2(25); WCOLA VARCHAR2(25); WSHELL VARCHAR2(99); WUSER VARCHAR2(12); WLIN1 VARCHAR2(50); WLIN2 VARCHAR2(50); WLIN3 VARCHAR2(50); timer_id Timer; un_segundo NUMBER(5) := 1000; BEGIN -- Extensin ".w2z" para el nuevo visor WordPerfect/Word (anterior extension ".wpz") :GLOBAL.FICH_DOC := to_char(sysdate,'YYYYMMDDHH24MISS')||'_'||:B20.CDDOCUM||'.w2z'; -- Se rellenan los parmetros de ejecucin del ejecutable (b.d. del fich.ini)

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 32

Nombre del manual

TODO SOBRE FORMS 1OG

WPARAM := 'bd='||USER||'/'||:GLOBAL.PASSWD||'@icm21_denivel2 operacion='||:B30.RG_OPC||' '|| 'codigo='||:B20.CDDOCUM||' '|| 'copias='||NVL(TO_CHAR(:B30.COPIAS),'1')||' '|| 'fichero='||LEER_FICH_INI(:GLOBAL.FICH_INI,'DocDir')||:GLOBAL.FICH_DOC;

-- Parmetros requeridos para el lanzamiento del trabajo en PipeBatch WHOST := LEER_FICH_INI(:GLOBAL.FICH_INI,'DocHost');-- Host que ejecutar el trabajo WCOLA := LEER_FICH_INI(:GLOBAL.FICH_INI,'DocCola');-- Cola dedicada a este WSHELL := LEER_FICH_INI(:GLOBAl.FICH_INI,'DocExe'); -- Nombre del ejecutable a lanzar WUSER := USER; -- Usuario peticionario -- Se realiza la Peticin :B00.WNUMPET := QUJB_PAQ_GENERAL.PETICION( WHOST, WCOLA, WSHELL, WPARAM, WUSER, WLIN1, WLIN2, WLIN3, WMENS); -- Control de la peticin solicitada IF :B00.WNUMPET < 0 THEN MENSAJE('Error al realizar la peticin de impresin del documento'); ELSE -- Si la peticin es correcta es necesario realizar Commit -- (el Servicio PipeBatch es un proceso externo) COMMIT; -- Se realiza la Ejecucin de la peticin anterior IF QUJB_PAQ_GENERAL.EJECUCION(:B00.WNUMPET,WHOST) < 0 THEN MENSAJE('Error al ejecutar la peticin QUJB_PAQ_GENERAL.MENSAJE'); END IF; END IF; -- Control de la existencia del Timer IF Not Id_Null(Find_Timer('MI_TIMER')) THEN

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 33

Nombre del manual

TODO SOBRE FORMS 1OG

Delete_Timer('MI_TIMER'); END IF; -- Creacin del Timer para controlar cuando finaliza el programa ejecutado -- desde el Trigger "When-Timer-Expired" Timer_Id := CREATE_TIMER('MI_TIMER', un_segundo, REPEAT);

END;

2.- Controlar el Estado de una Peticin [Trigger When-Timer-Expired] DECLARE WESTAD VARCHAR2(25); WURL VARCHAR2(100); tm_id Timer; wmaxtime number(3) := 60; -- 1 minutos BORRAR_TIMER EXCEPTION; BEGIN --- El Timer se activa cada 1seg. Si se ejecuta mas de wmaxtime(60 veces) (60 * 1seg. = 1min.) -- automticamente se desactivar el Timer -:b00.nm_veces := :b00.nm_veces + 1; IF UPPER( QUJB_PAQ_GENERAL.ESTADO(:B00.WNUMPET) ) = 'TERMINADA' THEN -- Se construye la URL a visualizar -- (DocMapping, definido en el ini invoca un VirtualPath donde se depositan los fich.de salida) WURL := LEER_FICH_INI(:GLOBAL.FICH_INI,'DocMapping')||:GLOBAL.FICH_DOC; -- Se invoca la URL WEB.SHOW_DOCUMENT(WURL,'_blank'); RAISE BORRAR_TIMER; END IF; --- El Timer bien finaliza por peticion 'TERMINADA' o por maxtime -IF :b00.nm_veces > wmaxtime THEN RAISE BORRAR_TIMER;

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 34

Nombre del manual

TODO SOBRE FORMS 1OG

END IF; EXCEPTION WHEN BORRAR_TIMER THEN Delete_Timer('MI_TIMER'); END;

Ejemplo de fich. de configuracin (Seccin "Documentos") [Documentos] DocHost=nticmdesXX DocCola=NORMAL DocDir=D:\icm\web\web_reps\ DocMapping=http://nticmdes01/web_reps/ DocExe=d:\icm\oas\general\etc\ImpreOfi_Batch_New.exe

Nota: Cuando el servicio PipeBatch ejecuta una peticin le aade a la lista de parmetros propia del ejecutable los siguientes parmetros: Np = 99999 (Nmero de proceso) Lg = c:\temporal\ (Carpeta de Log.) (es decir cuando se lanze un ejecutable fuera del entorno de ejecucin del servicio PipeBatch es necesario el aadirle estos dos parmetros al final) Pruebas en vuestra instalacin (empresas externas)

Para probar la ejecucin de los paquetes QUJB.* es necesario insertar la informacin bsica en los catlogos: QUJB_HOST QUJB_COLAS

(NORMAL,URGENTE)

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 35

Nombre del manual

TODO SOBRE FORMS 1OG

11 VISUALIZACIN DE TRABAJOS BATCHHaciendo una llamada a la pantalla general ICM_TRABAJOS, sta nos mostrar informacin de todos los trabajos lanzados con el Pipe_Batch por el usuario conectado. La pantalla permite hacer bsquedas de trabajos filtrando los campos Consulta 1 y Consulta2 que contienen una breve descripcin del Trabajo lanzado. Con el botn ver Detalle adems de los campos que aparecen en la pantalla con la informacin de Peticin, Fecha de Solicitud, Fecha de Lanzamiento, Estado, Consulta 1, Consulta 2, nos permite visualizar informacin adicional del trabajo seleccionado. El botn Ver Documento abre con el navegador el fichero indicado en el campo Documento (ste campo se visualiza a travs de la opcin de men Detalle citada anteriormente). El botn Borrar elimina el trabajo seleccionado de la tabla de Histrico y realiza el borrado del fichero asociado al trabajo siempre y cuando en el campo Documento est inidicada la URL al fichero,

Ejemplo de llamada: CALL_FORM(ICM_TRABAJOS, NO_HIDE, NO_REPLACE);); Pantalla ICM_TRABAJOS:

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 36

Nombre del manual

TODO SOBRE FORMS 1OG

12 VISUALIZACIN DE TRABAJOS BATCH EN MQUINAS UNIXHaciendo una llamada a la pantalla general ICM_TRBUNIX, sta nos mostrar informacin de los trabajos lanzados por el Usuario en mquina Unix. sta informacin se recoge de la tabla GAT_SEG_PETICION . La pantalla permite visualizar los trabajos lanzados en el da , los trabajos lanzados desde hace 7 das o todos los trabajos. Con el botn ver Detalle adems de los campos que aparecen en la pantalla con la informacin de Peticin, Fecha de Solicitud, Fecha de Lanzamiento, Fecha de Inicio, Fecha de Finalizacin y el Estado nos permite visualizar informacin adicional del trabajo seleccionado.

Ejemplo de llamada: CALL_FORM(ICM_TRBUNIX, NO_HIDE, NO_REPLACE););rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 37

Nombre del manual

TODO SOBRE FORMS 1OG

Pantalla ICM_TRBUNIX:

13 FUSIN DE DOCUMENTOS DESDE FORMS 10GLa Visualizacin de Fusin de Documentos consiste en la Fusin de una Plantilla Word o WordPerfect salvada en la base de datos con un fichero de datos. Desde forms se llama al programa delphi encargado de generar un fichero zip que contiene la plantilla, el fichero de datos y un fichero ini indicando la operacin a realizar, una vez generado ste fichero zip, desde Forms se abre ste fichero cargandose automticamente el visor Word_WordPerfect que realiza la fusin.

La visualizacin de Fusin de Documentos consta de los siguientes Programas/Productos: 1. Visor Word_WordPerfect instalado en el Puesto Clienterea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 38

Nombre del manual

TODO SOBRE FORMS 1OG

2. Programa Delphi: zip (con

- genera una serie de ficheros dentro de un fichero extensin W2Z)

3. Programa Forms:

- Realiza la llamada al programa delphi - Visualiza el Fichero (generado por el programa

delphi)

1. Visor Word_WordPerfect instalado en el Puesto Cliente La instalacin se puede realizar a travs de la intranet en la siguiente URL: http://nticmdes01/Forms6/software_base/visor_de_wordperfect_word.htm o ejecutando el fichero de instalacin visorwpword.exe . El visor se carga automticamente al abrir cualquier documento con la extensin W2Z. Se encarga de realizar la fusin de la plantilla con el fichero de datos dbf y realiza la operacin indicada en elfichero ini (Visualizacin o Impresin del Documento, N de copias a imprimir)

2. Programa Delphi Recibe del programa forms una cadena con los siguientes parmetros: bd= Usuario, Password y Cadena de Conexin con el formato Usuario/Password@cadena_conexion operacion= Operacin a realizar, puede ser Visualizar (V) o Imprimir (I) codigo= Cdigo de Plantilla copias= N de copias fichero= El path y nombre del fichero que se va a generar, el nombre del fichero debe llevar la extensin W2Z. dl= Directorio Temporal Ejemplo: bd=ADMON/PASSWORD@imc21_denivel2 operacion=V codigo=2 copias=1 fichero=d:\icm\web\web_reps\ADMON_200021120_171106.W2Z dl=d:\temp\

Va a generar un fichero zip (con extensin W2Z) que contiene los siguientes ficheros: Plantilla Word o WordPerfect, es obtenida de base - Plantilla: de datos consultando un tabla por codigo de Plantilla, que hemos recibido como parmetro del programa Forms - Fichero de datos: Fichero dbf

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 39

Nombre del manual

TODO SOBRE FORMS 1OG

- Fichero ini: Contiene los siguientes parmetros: FORMULARIO= Nombre de la plantilla DATOS= Nombre del fichero de datos (dbf) OPERACION= Visualizar (V)o Imprimir (I) COPIAS= N de copias. Ejemplo: FORMULARIO=W2ZP.doc DATOS=W2ZP.dbf OPERACION=V COPIAS=1 3. Programa Forms Consta de las siguientes componentes: Fichero Ini Adems de los parmetros standard de una aplicacin Forms , el fichero ini de la aplicacin debe llevar los parmetros predeterminados para la ejecucin de programas en batch, que son los siguientes: DocxHost = Mquina dnde va a correr el programa delphi. DocxDir = Direccin Fsica dnde el programa delphi depositar el fichero que genera. DocxCola = Cola en la que se ejecutar el programa delphi. DocxMapping =URL que apunta a la direcccin fsica dnde el programa delphi deposita el fichero que genera. DocxExe = Direccin fsica del programa delphi. DocxTemp = Directorio temporal. Ejecucin del programa Delphi La ejecucin de un programa en batch desde forms se realiza a travs de las funciones del paquete QUJB_PAQ_GENERAL: PETICION Obtiene un n de Peticin. EJECUCION Se lanza la ejecucin del proceso. ESTADO Devuelve si ha finalizado el proceso. Para ms informacin sobre ejecucin de programas en batch desde forms consultar el documento Ejemplo_Pipe_Batch.doc . Al programa delphi se le enva una cadena con los siguientes parmetros bd= Usuario, Password y Cadena de Conexin con el formato Usuario/Password@cadena_conexion operacion= Operacin a realizar, puede ser Visualizar (V) o Imprimir (I) codigo= Cdigo de Plantilla copias= N de copias fichero= El path y nombre del fichero que se va a generar. El path se captura del parmetro DocxDir del fichero ini, el nombre del fichero se

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 40

Nombre del manual

TODO SOBRE FORMS 1OG

construye con el Nombre del Uusario de base de datos, fecha actual y con la extensin W2Z. dl= Directorio Temporal Ejemplo: bd=ADMON/PASSWORD@imc21_denivel2 operacion=V codigo=2 copias=1 fichero=d:\icm\web\web_reps\ADMON_200021120_171106.W2Z dl=d:\temp\

Visualizacin del fichero (generado por el programa delphi) Comprobado con la Funcin QUJB_PAQ_GENERAL.Estado que el proceso ha terminado se visualiza el fichero generado realizando un WEB.Show_Document a la URL dnde se encuentra el fichero, el path del fichero se captura del parmetro DocxMapping del fichero ini. Ejemplo: v_Url := http://nticmdes01/web_reps/ ADMON_200021120_171106.W2Z; WEB.SHOW_DOCUMENT(v_Url,'_blank');

14 TRATAMIENTO DE CAMPOS LOBLa carga y descarga de ficheros al Server (upload y download respectivamente) cada vez est siendo ms habitual en los proyectos Forms en WEB. Para facilitar los desarrollos y la puesta en produccin de las aplicaciones se ha desarrollado un Servlet genrico para realizar este tipo de operaciones. Modelo de datos.Se han creado tres tablas nuevas de GAT donde el Servlet almacenar la informacin de los ficheros a tratar a modo temporal para que las distintas aplicaciones puedan procesar esta informacin, de este modo el Servlet depositar o recoger siempre la informacin de ficheros de estas tablas temporales, son las siguientes GAT_UPLOAD_FICHERO .contiene la informacin general de cada archivo. GAT_UPLOAD_LINEA .- dnde se almacenan los ficheros de texto a cargar, tendremos un registro por cada lnea del archivo, aqu se almacenarn los campos de tipo CLOB. GAT_UPLOAD_BLOB .- dnde se almacenan los ficheros en binario a cargar/visualizar, aqu se almacenarn los campos de tipo BLOB.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 41

Nombre del manual

TODO SOBRE FORMS 1OG

Conexin a base de datos.No nos hemos de preocupar de la conexin ya que existen una cuenta preestablecida para cada base de datos con la cual se conecta el Servlet.

14.1 Carga de Archivos de Texto a campos CLOB -uploadLos archivos para hacer UPLOAD tendrn que ser archivos de texto, formato TXT y la estructura de cada registro ser la que cada aplicacin defina y/o requiera. Funcionamiento General: Desde un punto determinado de una aplicacin se realiza la llamada el servlet genrico de upload. Aparece una ventana de peticin de la localizacin del fichero a cargar. El servlet sube el fichero al servidor y lo carga en las tablas temporales. El archivo ya cargado ser tratado por nuestra aplicacin. Una vez procesada esta informacin los datos se borrarn de las tablas temporales por nuestra aplicacin. Se realizarn los siguientes pasos: 1.- Generacin de una Clave Externa. Se genera en nuestra aplicacin, desde el mdulo que llame al servlet con un criterio de clave nica, por ejemplo del tipo: USER_YYYYMMDD_HH24:MI:SS 2.- Llamada al Servlet La llamada al Servlet debe ser como se describe a continuacin:rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 42

Nombre del manual

TODO SOBRE FORMS 1OG

http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=&user=&apli=&clave= &plantilla=&opcclob=C Los parmetros del querystring son los siguientes: 1. - base de datos donde se va a dejar la informacin del fichero 2. - usuario que realiza la operacin (no se utiliza para la conexin) 3. - aplicacin que hace la carga 4. - clave de referencia para localizar el registro 5. - plantilla htm a utilizar (opcional, existe una plantilla por defecto) 6. - Valores vlidos: C - Carga de Fichero de texto a campo CLOB Por defecto si no aparece el parmetro opcclob tambin realiza la carga de fichero de texto a campo clob Ejemplos de llamadas: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm1003_orcl8&user=U SU1&apli=USUG&clave= USU1_20021217_101330&plantilla=defecto http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm1003_orcl8&user=U SU1&apli=USUG&clave=USU1_20021217_101330&plantilla=defecto&opcclob= C http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm21_denivel2&user=G AT1&apli=GAT&clave= GAT1_20021217_101330&plantilla=azul Una vez finalizado el Programa Servlet ya se han cargado las tablas Temporales y se ha generado un registro por cada lnea del Fichero de texto en la tabla GAT_UPLOAD_LINEA 3.- Leer de la Tabla Temporal A travs de un cursor se leen los registros(uno para cada lnea del fichero) generados por el programa Servlet. El cursor nos permite operar con cada registro(lnea del fichero) y realizar la operacin que necesitemos. NOTA: No se debe realizar la lectura de los registros hasta que el programa Servlet no ha finalizado. 4.- Borrado de Registros de Tablas Temporales Una vez finalizada la lectura de los registros en las tablas temporales GAT_UPLOAD_.... se realizar el borrado de nuestros registros.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 43

Nombre del manual

TODO SOBRE FORMS 1OG

14.2 Carga de Archivo de Texto a campo CLOB y campo BLOBLos archivos para hacer UPLOAD tendrn que ser archivos de texto, formato TXT y la estructura de cada registro ser la que cada aplicacin defina y/o requiera. Funcionamiento General: Desde un punto determinado de una aplicacin se realiza la llamada el servlet genrico de upload. Aparece una ventana de peticin de la localizacin del fichero a cargar. El servlet sube el fichero al servidor y lo carga en las tablas temporales tanto en lneas como en fichero. El archivo ya cargado ser tratado por nuestra aplicacin. Una vez procesada esta informacin los datos se borrarn de las tablas temporales por nuestra aplicacin. Se realizarn los siguientes pasos: 1.- Generacin de una Clave Externa. Se genera en nuestra aplicacin, desde el mdulo que llame al servlet con un criterio de clave nica, por ejemplo del tipo: USER_YYYYMMDD_HH24:MI:SS 2.- Llamada al Servlet La llamada al Servlet debe ser como se describe a continuacin: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=&user=&apli=&clave= &plantilla=&opcclob=T Los parmetros del querystring son los siguientes: - base de datos donde se va a dejar la informacin del fichero - usuario que realiza la operacin (no se utiliza para la conexin) - aplicacin que hace la carga - clave de referencia para localizar el registro - plantilla htm a utilizar (opcional, existe una plantilla por defecto) 6. - Valores vlidos: T - Carga de Fichero de texto a campo CLOB y campo BLOB Ejemplos de llamadas:

1. 2. 3. 4. 5.

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 44

Nombre del manual

TODO SOBRE FORMS 1OG

http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm1003_orcl8&user=U SU1&apli=USUG&clave=USU1_20021217_101330&plantilla=defecto&opcclob= T http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm21_denivel2&user=G AT1&apli=GAT&clave= GAT1_20021217_101330&plantilla=azul &opcclob=T

Una vez finalizado el Programa Servlet ya se han cargado las tablas Temporales y se ha generado un registro por cada lnea del Fichero de texto en la tabla GAT_UPLOAD_LINEA y un registro en la tabla GAT_UPLOAD_BLOB con el fichero blob 3.-Carga de Blob a tablas de nuestra aplicacin Transferencia del registro recin insertado en tablas temporales a la tabla de nuestra aplicacin XXXX ( XXXX_TABLA_BLOB) con una sentencia insert del siguiente estilo: insert into XXXX_TABLA_BLOB (pk1, ., campo_blob) (select :pk1, , b.it_contenido from GAT_UPLOAD_BLOB b, GAT_UPLOAD_FICHERO a where a.nm_fichero = b.nm_fichero and a.cod_aplicacion = :global.cod_aplicacion and a.cod_usuario = USER and b.cd_cl_externa = :cla) siendo: :pk1 campo clave de la tabla XXXX_TABLA_BLOB de la aplicacin XXXX. :cla campo clave externa que se envi en paso 2 en la llamada al Servlet upload.exe (en caso de que la tabla contenga ms de un campo clave u otros campos se cumplimentarn en la sentencia insert anterior) En este pto. ya tenemos el archivo BLOB almacenado en la tabla de nuestra aplicacin XXXX_TABLA_BLOB 4.- Leer de la Tabla Temporal A travs de un cursor se leen los registros(uno para cada lnea del fichero de la tabla GAT_UPLOAD_CLOB) generados por el programa Servlet. El cursor nos permite operar con cada registro(lnea del fichero) y realizar la operacin que necesitemos. NOTA: No se debe realizar la lectura de los registros hasta que el programa Servlet no ha finalizado. 5.- Borrado de Registros de Tablas Temporales

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 45

Nombre del manual

TODO SOBRE FORMS 1OG

Una vez finalizada la lectura de los registros en las tablas temporales GAT_UPLOAD_.... se realizar el borrado de nuestros registros.

14.3 DESCARGA y VISUALIZACION de campos CLOBFuncionamiento General Se realiza la transferencia de un Clob o conjunto de registros de mi aplicacin a tablas temporales a travs de la funcin GAT_FUNC_CARGA_CLOB Se ejecuta el programa servlet que descarga y visualiza del Clob o conjutnos de registros de la tabla temporal Finalizada la descarga-visualizacin, la aplicacin borrar de las tablas temporales la informacin recin tratada. Se realizarn los siguientes pasos: 1.- Generacin de una Clave Externa. Se genera en nuestra aplicacin, desde el mdulo que llame al servlet con un criterio de clave nica, por ejemplo del tipo: USER_YYYYMMDD_HH24:MI:SS

2.- Paso de CLOB o del conjuntos de registros de nuestra aplicacin a tablas temporales 2.1- Paso de CLOB de nuestra aplicacin a tablas temporales Se transfiere 1 registro a la tabla de nuestra aplicacin XXXX (XXXX_TABLA_CLOB) que contiene el campo CLOB a tablas temporales GAT_UPLOAD_... mediante la ejecucin de la siguiente funcin de carcter general del ncleo de Oracle GAT_FUNC_CARGA_CLOB: La funcin obtiene el n de registros que recupera la sentencia where que pasamos como parmetro. Parmetros de entrada de la Funcin: w_Cod_Aplicacion: Cdigo de aplicacin w_Cd_Cl_Externa: Clave generada por la aplicacin w_Nom_Archivo: Nombre del archivo a generar para su posterior descarga w_Tabla_Apl: Nombre de la tabla de la aplicacin (XXXX_TABLA_CLOB) w_Clave_Tabla_Apl: Sentencia where para localizar el registro nico que contiene el CLOB Por ejemplo: WHERE ID_CLOB=9877 and CDTIPO=Area de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 46

Nombre del manual

TODO SOBRE FORMS 1OG

w_Campo_Clob:

Nombre del campo CLOB a extraer de la anterior tabla

Parmetros de salida de la Funcin: z_Mensaje_Err: Mensaje de Error si se produce.

En ste punto se debe realizar COMMIT; para confirmar la insercin del campo CLOB en las tablas temporales y que el proceso externo Servlet pueda obtener sta informacin

2.2- Paso de un conjunto de registros de nuestra aplicacin a tablas temporales Se transfiere el conjunto de registros a la tabla de nuestra aplicacin XXXX (XXXX_TABLA) a tablas temporales GAT_UPLOAD_... mediante la ejecucin de la siguiente funcin de carcter general del ncleo de Oracle GAT_FUNC_CARGA_CLOB: La funcin obtiene el n de registros que recupera la sentencia where que pasamos como parmetro. Parmetros de entrada de la Funcin: w_Cod_Aplicacion: Cdigo de aplicacin w_Cd_Cl_Externa: Clave generada por la aplicacin w_Nom_Archivo: Nombre del archivo a generar para su posterior descarga w_Tabla_Apl: Nombre de la tabla de la aplicacin (XXXX_TABLA) w_Clave_Tabla_Apl: Sentencia where para localizar el registro nico que contiene el conjunto de registros Por ejemplo: WHERE ID_EXPETE=9877 and CDTIPO=A w_Campo_Clob: Nombre del campo a extraer de la anterior tabla w_Campo_Nm_Linea: Nombre del Campo de la tabla que contiene el nmero de lnea Parmetros de salida de la Funcin: z_Mensaje_Err: Mensaje de Error si se produce.

En ste punto se debe realizar COMMIT; para confirmar la insercin del conjunto de registros en las tablas temporales y que el proceso externo Servlet pueda obtener sta informacin

3.- Ejecucin del Servlet para realizar la descarga-visualizacin del campo CLOB

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 47

Nombre del manual

TODO SOBRE FORMS 1OG

La llamada al servlet debe ser como se describe a continuacin: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=&user=&apli=&clave= &plantilla=&opcclob=V Los parmetros del querystring son los siguientes: 1. 2. 3. 4. 5. - base de datos donde se va a dejar la informacin del fichero - usuario que realiza la operacin (no se utiliza para la conexin) - aplicacin que hace la carga - clave de referencia para localizar el registro - plantilla htm a utilizar (opcional, existe una plantilla por defecto) 6. - Valores vlidos: V - Descarga/Visualizacin de campos CLOB a fichero para su posterior visualizacin 7. - Valores Vlidos: S - El fichero se almacenar comprimido N - El fichero no se almacenar comprimido. (Opcional, no es necesario aadir ste parmetro, por defecto no se comprime). Ejemplos de llamadas: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm1003_orcl8&user=U SU1&apli=USUG&clave=USU1_20021217_101858&plantilla=defecto&opcclob= V http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm21_denivel2&user=G AT1&apli=GAT&clave=GAT_20021217_101858&plantilla=azul&opcclob=V&zip =S Automticamente el Servlet realizar la descarga del CLOB generando un archivo en disco y posteriormente proceder a visualizar el documento correspondiente con su aplicacin asociada.

4.- Borrado de Registros de Tablas Temporales Una vez visualizado el fichero debemos realizar el borrado de las tablas temporales GAT_UPLOAD para el registro recin tratado. NOTA: No se debe realizar el borrado hasta que el programa Servlet ha terminado

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 48

Nombre del manual

TODO SOBRE FORMS 1OG

14.4 CARGA de cualquier tipo de Archivo a campos BLOB uploadFuncionamiento General: Desde un punto determinado de una aplicacin se realiza la llamada el servlet genrico de upload. Aparece una ventana de peticin de la localizacin del fichero a cargar. El servlet sube el fichero al servidor y carga las tablas temporales Se transfiere el Blob de la tabla temporal a la tabla de mi aplicacin Finalizada la transferencia se borra de las tablas temporales los registros asociados al fichero cargado Se realizarn los siguientes pasos: 1.- Generacin de una Clave Externa. Se genera en nuestra aplicacin, desde el mdulo que llame al servlet con un criterio de clave nica, por ejemplo del tipo: USER_YYYYMMDD_HH24:MI:SS

2.- Ejecucin del Servlet de carga de ficheros con la opcin BLOB opcblob-. La llamada al servlet debe ser como se describe a continuacin: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=&user=&apli=&clave= &plantilla=&opcblob=C Los parmetros del querystring son los siguientes: 1. 2. 3. 4. 5. - base de datos donde se va a dejar la informacin del fichero - usuario que realiza la operacin (no se utiliza para la conexin) - aplicacin que hace la carga - clave de referencia para localizar el registro - plantilla htm a utilizar (opcional, existe una plantilla por defecto) 6. - Valores vlidos: C - Carga de archivos a tablas temporales V - Descarga/Visualizacin de campos BLOB a fichero para su posterior visualizacin 7. - Valores Vlidos S - El fichero se almacenar comprimido

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 49

Nombre del manual

TODO SOBRE FORMS 1OG

N - El fichero no se almacenar comprimido. (Opcional, no es necesario aadir ste parmetro, por defecto no se comprime).

Ejemplos de llamadas: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm1003_orcl8&user=U SU1&apli=USUG&clave=USU1_20021217_101858&plantilla=defecto&opcblob =C http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm21_denivel2&user=G AT1&apli=GAT&clave=GAT_20021217_101858&plantilla=azul&opcblob=C&zip =S En este pto. ya tenemos el archivo BLOB cargado en las tablas temporales GAT_UPLOAD_...

3.- Carga de Blob a tablas de nuestra aplicacin Transferencia del registro recin insertado en tablas temporales a la tabla de nuestra aplicacin XXXX ( XXXX_TABLA_BLOB) con una sentencia insert del siguiente estilo: insert into XXXX_TABLA_BLOB (pk1, ., campo_blob) (select :pk1, , b.it_contenido from GAT_UPLOAD_BLOB b, GAT_UPLOAD_FICHERO a where a.nm_fichero = b.nm_fichero and a.cod_aplicacion = :global.cod_aplicacion and a.cod_usuario = USER and b.cd_cl_externa = :cla) siendo: :pk1 campo clave de la tabla XXXX_TABLA_BLOB de la aplicacin XXXX. :cla campo clave externa que se envi en paso 2 en la llamada al Servlet upload.exe (en caso de que la tabla contenga ms de un campo clave u otros campos se cumplimentarn en la sentencia insert anterior) En este pto. ya tenemos el archivo BLOB almacenado en la tabla de nuestra aplicacin XXXX_TABLA_BLOB

4.- Borrado de Registros de Tablas Temporales

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 50

Nombre del manual

TODO SOBRE FORMS 1OG

Una vez almacenado el campo BLOB en nuestra aplicacin debemos realizar el borrado de las tablas temporales GAT_UPLOAD para el registro recin tratado. NOTA: No se debe realizar el borrado hasta que el programa Servlet ha terminado

14.5 DESCARGA y VISUALIZACION de campos BLOBFuncionamiento General Se realiza la transferencia de un Blob de mi aplicacin a tablas temporales a travs de la funcin GAT_FUNC_CARGA_BLOB Se ejecuta el programa servlet que descarga y visualiza el Blob de la tabla temporal Finalizada la descarga-visualizacin la aplicacin borrar de las tablas temporales la informacin recin tratada. Se realizarn los siguientes pasos: 1.- Generacin de una Clave Externa. Se genera en nuestra aplicacin, desde el mdulo que llame al servlet con un criterio de clave nica, por ejemplo del tipo: USER_YYYYMMDD_HH24:MI:SS

2.- Paso de BLOB de nuestra aplicacin a tablas temporales Se transfiere el registro de la tabla de nuestra aplicacin XXXX (XXXX_TABLA_BLOB) que contiene el campo BLOB a tablas temporales GAT_UPLOAD_... mediante la ejecucin de la siguiente funcin de carcter general del ncleo de Oracle GAT_FUNC_CARGA_BLOB: La funcin obtiene el n de registros que recupera la sentencia where que pasamos como parmetro. Parmetros de entrada de la Funcin: w_Cod_Aplicacion: Cdigo de aplicacin w_Cd_Cl_Externa: Clave generada por la aplicacin w_Nom_Archivo: Nombre del archivo a generar para su posterior descarga w_Tabla_Apl: Nombre de la tabla de la aplicacin (XXXX_TABLA_BLOB)rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 51

Nombre del manual

TODO SOBRE FORMS 1OG

w_Clave_Tabla_Apl: Sentencia where para localizar el registro nico que contiene el BLOB Por ejemplo: WHERE ID_BLOB=9877 and CDTIPO=A w_Campo_Blob: Nombre del campo BLOB a extraer de la anterior tabla Parmetros de salida de la Funcin: z_Mensaje_Err: Mensaje de Error si se produce. En ste punto se debe realizar COMMIT; para confirmar la insercin del campo BLOB en las tablas temporales y que el proceso externo Servlet pueda obtener sta informacin

3.- Ejecucin del Servlet para realizar la descarga-visualizacin del campo BLOB La llamada al servlet debe ser como se describe a continuacin: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=&user=&apli=&clave= &plantilla=&opcblob=V Los parmetros del querystring son los siguientes: 1. 2. 3. 4. 5. - base de datos donde se va a dejar la informacin del fichero - usuario que realiza la operacin (no se utiliza para la conexin) - aplicacin que hace la carga - clave de referencia para localizar el registro - plantilla htm a utilizar (opcional, existe una plantilla por defecto) 6. - Valores vlidos: C - Carga de archivos a tablas temporales V - Descarga/Visualizacin de campos BLOB a fichero para su posterior visualizacin

7. - Valores Vlidos: S - El fichero se almacenar comprimido N - El fichero no se almacenar comprimido. (Opcional, no es necesario aadir ste parmetro, por defecto no se comprime). Ejemplos de llamadas: http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm1003_orcl8&user=U SU1&apli=USUG&clave=USU1_20021217_101858&plantilla=defecto&opcblob =V

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 52

Nombre del manual

TODO SOBRE FORMS 1OG

http://icmweb01.icm.es/util/upload/servlet/Servidor?bd=icm21_denivel2&user=G AT1&apli=GAT&clave=GAT_20021217_101858&plantilla=azul&opcblob=V&zip =S Automticamente el Servlet realizar la descarga del BLOB generando un archivo en disco y posteriormente proceder a visualizar el documento correspondiente con su aplicacin asociada.

4.- Borrado de Registros de Tablas Temporales Una vez visualizado el fichero debemos realizar el borrado de las tablas temporales GAT_UPLOAD para el registro recin tratado. NOTA: No se debe realizar el borrado hasta que el programa Servlet ha terminado

14.6 CARGA DE BLOB DESDE URLFuncionamiento General: Desde un punto determinado de una aplicacin se realiza la llamada el servlet genrico de upload pasandole entre otros parmetros la url donde est ubicado el fichero. El servlet deposita el fichero en la tabla gat_upload_blob Se transfiere el Blob de la tabla temporal a la tabla de mi aplicacin Finalizada la transferencia se borra de las tablas temporales los registros asociados al fichero cargado Se realizarn los siguientes pasos: 1.- Generacin de una Clave Externa. Se genera en nuestra aplicacin, desde el mdulo que llame al servlet con un criterio de clave nica, por ejemplo del tipo: USER_YYYYMMDD_HH24:MI:SS

2.- Ejecucin del Servlet de carga de ficheros con la opcin BLOB opcblob-. La llamada al servlet debe ser como se describe a continuacin: http://icmweb01.icm.es/util/upload/servlet/Servidor?opcion=CargarDeURL &bd=&user=&apli=&clave=&plantilla= &nombre_fich=&urlfichero=&zip=rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 53

Nombre del manual

TODO SOBRE FORMS 1OG

Los parmetros del querystring son los siguientes: 1. CargarDeURL 2. - base de datos donde se va a dejar la informacin del fichero 3. - usuario que realiza la operacin (no se utiliza para la conexin) 4. - aplicacin que hace la carga 5. - clave de referencia para localizar el registro 6. - plantilla htm a utilizar (opcional, existe una plantilla por defecto) 7. - Nombre del fichero a cargar 8. - url del fichero a cargar 7. - Valores Vlidos S - El fichero se almacenar comprimido N - El fichero no se almacenar comprimido. (Opcional, no es necesario aadir ste parmetro, por defecto no se comprime).

Ejemplos de llamadas: http://icmweb01.icm.es/util/upload/servlet/Servidor?opcion=CargarDeURL&bd=i cm21_denivel2&user=ADMON&apli=USUI&clave=ADMON_20021217_101858 &plantilla=&nombre_fich=ADMON_20071108_121949_73.pdf&urlfichero=http:// NTICMAPL11/web_reps/ADMON_20071108_121949_73.pdf&zip=N En este pto. ya tenemos el archivo BLOB cargado en las tablas temporales GAT_UPLOAD_...

3.- Carga de Blob a tablas de nuestra aplicacin Transferencia del registro recin insertado en tablas temporales a la tabla de nuestra aplicacin XXXX ( XXXX_TABLA_BLOB) con una sentencia insert del siguiente estilo: insert into XXXX_TABLA_BLOB (pk1, ., campo_blob) (select :pk1, , b.it_contenido from GAT_UPLOAD_BLOB b, GAT_UPLOAD_FICHERO a where a.nm_fichero = b.nm_fichero and a.cod_aplicacion = :global.cod_aplicacion and a.cod_usuario = USER and b.cd_cl_externa = :cla) siendo: :pk1 campo clave de la tabla XXXX_TABLA_BLOB de la aplicacin XXXX. :cla campo clave externa que se envi en paso 2 en la llamada al Servlet upload.exerea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 54

Nombre del manual

TODO SOBRE FORMS 1OG

(en caso de que la tabla contenga ms de un campo clave u otros campos se cumplimentarn en la sentencia insert anterior) En este pto. ya tenemos el archivo BLOB almacenado en la tabla de nuestra aplicacin XXXX_TABLA_BLOB

4.- Borrado de Registros de Tablas Temporales Una vez almacenado el campo BLOB en nuestra aplicacin debemos realizar el borrado de las tablas temporales GAT_UPLOAD para el registro recin tratado. NOTA: No se debe realizar el borrado hasta que el programa Servlet ha terminado

NOTA: Tanto en la carga de Blob como de Clob el nombre de Fichero que se indique debe ser nico , para ello se puede utlizar la nomenclatura USER_DDMMYYYY_HHMMSS

NOTA: Funciones GAT_FUNC_CARGA_BLOB y GAT_FUNC_CARGA_CLOB

CREATE OR REPLACE FUNCTION GAT_FUNC_CARGA_BLOB (w_Cod_Aplicacion IN GAT_UPLOAD_FICHERO.Cod_Aplicacion%TYPE , w_Cd_Cl_Externa IN GAT_UPLOAD_FICHERO.Cd_Cl_Externa%TYPE, w_Nom_Archivo GAT_UPLOAD_FICHERO.Nom_Archivo%TYPE, w_Tabla_Apl IN Varchar2, w_Clave_Tabla_Apl IN Varchar2, w_Campo_Blob IN Varchar2, z_Mensaje_Err OUT Varchar2) RETURN Integer IS /****************************************************************************************** * FUNCIN: GAT_FUNC_CARGA_BLOB DESCRIPCIN: Realiza Descarga Blob desde la tabla Origen 'Tabla de larea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras Pgina: 55

Nombre del manual

TODO SOBRE FORMS 1OG

Aplicacin' a la tabla de Trabajo. La funcin obtiene el N de Registros que recupera la Clave de la Tabla de la Aplicacin Se obtiene 1 la funcin ha funcionado correctamente Se obtiene 0 >= 2 La Clave de la tabla de la Aplicacin es errnea no recupera 1 Registro Si devuelve -1 se ha producido un error en la Funcin Si devuelve -2 se ha detectado parmetros obligatorios de Entrada con valor Nulo ******************************************************************************************* */ v_Nm_Fichero GAT_UPLOAD_FICHERO.Nm_Fichero%TYPE; v_Cuenta Integer; BEGIN -- Validaciones de Parmetros IF w_Cod_Aplicacion IS NULL OR w_Cd_Cl_Externa IS NULL OR w_Nom_Archivo IS NULL OR w_Tabla_Apl IS NULL OR w_Campo_Blob IS NULL THEN z_Mensaje_Err := 'Los parmetros de entrada de la Funcin no pueden ser Nulos.'; RETURN (-2); END IF; -Select GAT_SEQ_UPLOAD.NEXTVAL INTO v_Nm_Fichero FROM DUAL; -INSERT INTO GAT_UPLOAD_FICHERO (Nm_Fichero, Cod_Aplicacion, Cod_Usuario, Fc_Carga, Cd_Cl_Externa, Nom_Archivo) VALUES(v_Nm_Fichero, w_Cod_Aplicacion, USER, SYSDATE, w_Cd_Cl_Externa, w_Nom_Archivo); EXECUTE IMMEDIATE 'INSERT INTO GAT_UPLOAD_BLOB (Nm_Fichero, It_Contenido) Select '|| v_Nm_Fichero||', '||w_Campo_Blob||' FROM '||w_Tabla_Apl||' '||w_Clave_Tabla_Apl; -- Valida que Clave Principal recupera un registro ----------v_Cuenta := SQL%ROWCOUNT; IF v_Cuenta = 0 THEN z_Mensaje_Err := 'La Clave Principal No ha obtenido ningn registro.'; RETURN(v_Cuenta); ELSIF v_Cuenta >= 2 THEN z_Mensaje_Err := 'La Clave Principal ha obtenido Ms de 1 registro.'; RETURN(v_Cuenta); END IF; -------------------------------------------------------------

rea de Integracin y Arquitectura de Aplicaciones Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdireccin General de Desarrollo, Tecnologa e Infraestructuras

Pgina: 56

Nombre del manual

TODO SOBRE FORMS 1OG

RETURN(v_Cuenta); EXCEPTION WHEN OTHERS THEN z_Mensaje_Err := SQLERRM; RETURN(-1); END; /

CREATE OR REPLACE FUNCTION GAT_FUNC_CARGA_CLOB (w_Cod_Aplicacion IN GAT_UPLOAD_FICHERO.Cod_Aplicacion%TYPE , w_Cd_Cl_Externa IN GAT_UPLOAD_FICHERO.Cd_Cl_Externa%TYPE, w_Nom_Archivo GAT_UPLOAD_FICHERO.Nom_Archivo%TYPE, w_Tabla_Apl IN Varchar2, w_Clave_Tabla_Apl IN Varchar2, w_Campo_Clob IN Varchar2, z_Mensaje_Err OUT Varchar2, w_Campo_Nm_Linea IN Varchar2 DEFAULT Null ) RETURN Integer IS /****************************************************************************************** * FUNCIN: GAT_FUNC_CARGA_CLOB DESCRIPCIN: Realiza Descarga Clob desde la tabla Origen 'Tabla de la Aplicacin' a la tabla de Trabajo. La funcin obtiene el N de Registros que recupera la Clave de la Tabla de la Aplicacin Se obtiene 1 la funcin ha funcionado correctamente Se obtiene 0 >= 2 La