Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20 Repuestas a Práctica del Capítulo 20 SW-ORA-20110126 SW-ORA-20110126 Revisión: 1 Revisión: 1 Fecha: 26/01/2011 Fecha: 26/01/2011 Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Respuestas a Práctica del Capítulo 20 Respuestas a Práctica del Capítulo 20 1. Introducción a la Práctica del Capítulo 20: Introducción a la Práctica del Capítulo 20: Esta práctica cubre los tópicos siguientes: • Completa automáticamente los IDs de órdenes usando una secuencia • Completa automáticamente los IDs de items agregando id de órden actual mas alto • Personaliza los mensajes de confirmación en el formulario “CUSTOMERS” • Personaliza la pantalla de acceso y autenticación de usuario en el formulario “CUSTOMERS” En esta práctica, agrega disparadores transaccionales al formulario “ORDG01” para proporcionar automáticamente números de secuencia a los registros-filas en el momento de almacenamiento. También personaliza los mensajes de confirmación y la pantalla de acceso en el formulario “CUSTG01”. • Completa automáticamente los IDs de órdenes usando una secuencia • Completa automáticamente los IDs de items agregando el ID de órden actual mas alto • Personaliza los mensajes de confirmación en el formulario “CUSTOMERS” • Personaliza la pantalla de acceso en el formulario “CUSTOMERS” 2. Proceso: Práctica del Capítulo 20 Proceso: Práctica del Capítulo 20 2.1. En el formulario “ORDG01” escriba un disparador transaccional sobre el bloque de datos “S_ORD” que complete “S_ORD.ID” con el valor siguiente de la secuencia “S_ORD_ID_SK”. Cree un disparador “Pre-Insert” que asigne un valor desde esta secuencia. Si ocurre una excepción en el disparador, éste falla con un mensaje. 1/ 40 40
40
Embed
SW-OrA-20110126 - Oracle Developer Build Forms 1 Respuestas a Practica Del Capitulo 20
Oracle Developer 6i Build Forms 1 Respuestas a Practica del Capitulo 20
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Respuestas a Práctica del Capítulo 20Respuestas a Práctica del Capítulo 20
1. Introducción a la Práctica del Capítulo 20:Introducción a la Práctica del Capítulo 20: Esta práctica cubre los tópicos siguientes:
• Completa automáticamente los IDs de órdenes usando una secuencia • Completa automáticamente los IDs de items agregando id de órden actual
mas alto• Personaliza los mensajes de confirmación en el formulario “CUSTOMERS” • Personaliza la pantalla de acceso y autenticación de usuario en el formulario
“CUSTOMERS” En esta práctica, agrega disparadores transaccionales al formulario “ORDG01” para proporcionar automáticamente números de secuencia a los registros-filas en el momento de almacenamiento. También personaliza los mensajes de confirmación y la pantalla de acceso en el formulario “CUSTG01”.
• Completa automáticamente los IDs de órdenes usando una secuencia• Completa automáticamente los IDs de items agregando el ID de órden
actual mas alto• Personaliza los mensajes de confirmación en el formulario “CUSTOMERS” • Personaliza la pantalla de acceso en el formulario “CUSTOMERS”
2. Proceso: Práctica del Capítulo 20Proceso: Práctica del Capítulo 20
2.1. En el formulario “ORDG01” escriba un disparador transaccional sobre el
bloque de datos “S_ORD” que complete “S_ORD.ID” con el valor siguiente de la secuencia “S_ORD_ID_SK”.Cree un disparador “Pre-Insert” que asigne un valor desde esta secuencia. Si ocurre una excepción en el disparador, éste falla con un mensaje.
11//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb33
Click en “File → Connect...” Ingresar el “User Name”, “Password”, “Database” y click en [ Connect ] Mediante la aplicación de símbolo de sistema, utilizar “sqlplus” para conectarse a la Base de Datos y crear la secuencia “S_ORD_ID_SK”:“SQL> CREATE SEQUENCE S_ORD_ID_SK INCREMENT BY 1 START WITH 1”
44//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.1 - “Oracle Forms Builder” - ORDG01.fmb2.1 - “Oracle Forms Builder” - ORDG01.fmb66
En el Editor PL/SQL escribir las sentencias: “SELECT S_ORD_ID_SK.NEXTVALINTO :S_ORD.IDFROM SYS.DUAL;EXCEPTION WHEN OTHERS THEN MESSAGE('Failed to assign Order Id'); RAISE FORM_TRIGGER_FAILURE;”Cerrar el Editor PL/SQL
2.2. En el bloque de datos “S_ORD”, configure la propiedad “Enabled” para
el item “ID” con el valor “No”.
77//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.2 - “Oracle Forms Builder” - ORDG01.fmb2.2 - “Oracle Forms Builder” - ORDG01.fmb11
En el Navegador de Objetos seleccionar el nodo del item “S_ORD.ID” y click en “Tools → Property Palette” En la Paleta de Propiedades del item “S_ORD.ID” configurar:
• “Enabled” con el valor “No” Cerrar la Paleta de Propiedades
2.3. Guarde, Compile, y Ejecute el formulario para testear los cambios.
Inserte una órden nueva. El ID único para la órden debería aparecer cuando lo guarda.
88//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.3 - “Oracle Forms Builder” - ORDG01.fmb2.3 - “Oracle Forms Builder” - ORDG01.fmb33
Se observa un mensaje de error y no se puede guardarSe cierra el entorno de tiempo de ejecución y no se realiza otra modificación al formulario
2.4. Cree un disparador similar en el bloque de datos “S_ITEM” que asigne el
item “ITEM_ID” cuando se guarda un registro-fila nuevo.Derive este número agregando al “ITEM_ID” actual más alto para la órden. Efectúe la acción en un disparador “Pre-Insert”. Configure la propiedades “Required” y “Enabled” con el valor “No” para el item “ITEM_ID”.
1111//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.4 - “Oracle Forms Builder” - ORDG01.fmb2.4 - “Oracle Forms Builder” - ORDG01.fmb44
Doble click sobre el nodo del item “S_ITEM.ITEM_ID” y configurar en la Paleta de Propiedades:
• “Required” con el valor “No” • “Enabled” con el valor “No”
Cerrar la Paleta de Propiedades
2.5. Guarde, Compile, y Ejecute el formulario para testear los cambios.Inserte un registro-fila nuevo de línea de item, en el bloque “S_ITEM”, luego guardelo.Nota del Instructor: La solución 20:4 no es la forma mas segura. La mejor solución es mantener el número total de registros-filas en otra tabla que pueda bloquear, pero esta solución es demasiado avanzada para esta fase de aprendizaje.
1515//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.5 - “Oracle Forms Builder” - ORDG01.fmb2.5 - “Oracle Forms Builder” - ORDG01.fmb22
Se observa otro mensaje de error causado por el disparador “WHEN-VALIDATED-ITEM” en el campo “S_ITEM.ITEM_ID” Cerrar el entorno de tiempo de ejecución
2.6. Abra el módulo de formulario “CUSTG01”. Cree tres variables globales
llamadas “GLOBAL.INSERT”, “GLOBAL.UPDATE”, y “GLOBAL.DELETE”.Estas variables indican respectivamente el número de inserciones, actualizaciones, y eliminaciones. Necesita escribir disparadores “POST-INSERT”, “POST-UPDATE”, y “POST-DELETE” para inicializar e incrementar el valor de cada variable global.
1717//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb11
En el Navegador de Objetos click en “Open” Seleccionar el archivo de módulo de formulario “CUSTG01.fmb” Seleccionar el nodo “Triggers” correspondiente al bloque de datos “S_CUSTOMER” y click en “Create”
1818//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb33
En el Editor PL/SQL escribir las sentencias:“DEFAULT_VALUE('0', 'GLOBAL.INSERT');:GLOBAL.INSERT := TO_CHAR( TO_NUMBER( :GLOBAL.INSERT ) + 1 );”Cerrar el Editor PL/SQL
2020//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb66
En el Editor PL/SQL escribir las sentencias:“DEFAULT_VALUE('0', 'GLOBAL.UPDATE');:GLOBAL.UPDATE := TO_CHAR( TO_NUMBER( :GLOBAL.UPDATE ) + 1 );”Cerrar el Editor PL/SQL
2323//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.6 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb99
En el Editor PL/SQL escribir las sentencias:“DEFAULT_VALUE('0', GLOBAL.DELETE);:GLOBAL.DELETE := TO_CHAR( TO_NUMBER( :GLOBAL.DELETE ) + 1 );”Cerrar el Editor PL/SQL
2.7. Cree un procedimiento llamado “HANDLE_MESSAGE”. Importe el
archivo “pr20_10.txt”. Este procedimiento recibe dos argumentos. El primero es un número de mensaje, y el segundo es un indicador de error Booleano. Este procedimiento usa las tres variables globales para mostrar un mensaje de confirmación personalizado y entonces borra las variables globales.
2626//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
END; Invoque el procedimiento cuando ocurra un error. Pase el código de error y “TRUE”. Invoque al procedimiento cuando ocurra un mensaje. Pase el código de mensaje y “FALSE”.
2727//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.7 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.7 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb11
En el Navegador de Objetos seleccionar el nodo “Program Units” y click en “Create” Seleccionar “Procedure”, ingresar el nombre “HANDLE_MESSAGE” y click en [ OK ]
2828//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.7 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.7 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb88
En el Editor PL/SQL escribir la sentencia:“HANDLE_MESSAGE( MESSAGE_CODE, FALSE );”Cerrar el Editor PL/SQL
2.8. Abra el módulo de formulario “CUSTG01”. Escriba un disparador
“ON-LOGON” para controlar el número de intentos de conexión. Use la función incorporada “LOGON_SCREEN” para simular la pantalla de acceso predefinida y acceda para conectarse a la Base de Datos. Puede importar el archivo “pr20_11.txt”.“ON-LOGON” a nivel de formulario
3535//4040
Oracle Developer Build Forms 1 Oracle Developer Build Forms 1 Repuestas a Práctica del Capítulo 20Repuestas a Práctica del Capítulo 20
2.8 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmb2.8 - “Oracle Forms Builder” - ORDG01.fmb y CUSTG01.fmbCerrar el Editor PL/SQLCerrar los módulos de formularioDesconectar de la Base de DatosSalir del Constructor de Formularios de Oracle
3. Referencias:Referencias:
ItemItem Referencia y URLReferencia y URL11 Oracle Developer: Build Forms 1