Al finalizar esta Etapa deberá estar familiarizado con los siguientes conceptos:
Nociones de modelado:
Nombres de ranuras (reservados y definidos por el usuario)
Técnicas de modelado:
Agregar vistas a la aplicación
Procesar un fila seleccionada en una tabla
Actualizar la información guardada en la base de datos
Plantillas útiles:
Update
Plantillas de vista útiles:
<Selected Row>
En esta Etapa usted agregará una nueva vista a la aplicación. Además de la vista inicial, usada para ingresar solicitudes, la nueva vista será utilizada por encargados para aprobar solicitudes.
El modelado de esta etapa puede ser ejecutado en el proyecto Tutorial 5-6 que usted importó al final de la etapa previa.
Podemos ahora agregar una segunda vista a nuestra aplicación, Requisition Approval. Esta vista será utilizada por los encargados para ver las solicitudes ingresadas por sus empleados y decidir cuáles aprobar (o, en la siguiente Etapa, rechazar).
Agrande el modelo de raíz (Requisition Management System).
Seleccione la plantilla Display/View () de la Paleta y arrástrela a continuación de la vista Open Requisitions.
Llámela Requisition Approval.
El modelo debería ahora verse similar al siguiente:
La vista Requisition Approval deberá contener una lista de solicitudes abiertas y botones para Aprobar/Rechazar solicitudes.
Ya hemos modelado una lista de solicitudes abiertas en una etapa previa, entonces vamos a reutilizarla:
Arrastre la Requisition List desde el Repository (o del Outline) y ubíquela en la vista Requisition Approval.
El modelo debería lucir similar al siguiente:
Guarde su trabajo y vaya al navegador para ver su aplicación. Note que hay una lengüeta Requisition Approval a la derecha de la vista Open Requisitions.
Si hace clic en Requisition Approval, verá lo siguiente (la tabla Requisition List se muestra pero aún está vacía):
La tabla Requisition List está vacía puesto que no hemos reutilizado el proceso que la llena originalmente (en la vista Open Requisitions) - Populate Open Requisitions List.
Veamos el proceso para recordar qué hace:
El proceso Populate Open Requisitions List incluye un proceso Generate Requisition List que crea un elemento de datos Requisition List que se llena con Requisitions de la base de datos. El elemento Requisition List generado es enviado para llenar la tabla mediante la referencia al ancestro Open Requisitions.
Es casi lo mismo que queremos ejecutar ahora, excepto que la tabla de destino se encuentra en la vista Requisition Approval (la nueva vista que acabamos de definir) en vez de en la vista Open Requisitions (la vista original). Por lo tanto, debemos crear un nuevo proceso Populate Requisition Approval List (Llenar la Lista de Solicitudes Aprobadas) en la vista actual, reutilizando el proceso Generate Requisition List.
Agrande Requisition Approval.
Seleccione Basic/Action de la paleta y arrástrelo dentro de Requisition Approval.
Llámelo Populate Requisition Approval List.
Para reutilizar Generate Requisition List, arrástrelo desde el outline y ubíquelo dentro de Populate Requisition Approval List.
Con un clic derecho en el elemento Populate Requisition Approval List, seleccione Add Ancestor Reference del menú, y a continuación Requisition Approval.
Use la herramienta Conector para unir la salida de Generate Requisition List a Requisition Approval/Requisition List.
Guarde su trabajo y vaya al navegador para ver la aplicación.
Si hace clic en la lengüeta Requisition Approval, debería ver lo siguiente:
Usted puede verificar que la lista de solicitudes aparece en ambas vistas y se actualiza cuando una nueva solicitud es ingresada en la vista Open Requisitions.
La vista Requisition Approval debería darle al encargado la posibilidad de seleccionar una fila en la tabla y marcarla como Aprobada (o Rechazada).
Empecemos creando el botón. Para guardar la consistencia de esta vista con la de Open Requisitions, ubique el botón encima de la tabla:
Seleccione Display/Button de la paleta y ubíquelo en Requisition Approval (encima de Requisition List).
Llámelo Approve Requisition.(Aprobar solicitud)
El modelo Requisition Approval debería ahora lucir similar al siguiente:
Ahora, modelemos la lógica del botón, que consistirá en lo siguiente:
Recibir la fila seleccionada de la tabla
Cambiar el valor del campo Status de la fila a Approved
Actualizar el registro correspondiente en la base de datos
Actualizar la tabla Requisition List para mostrar el registro actualizado
Para recibir la fila seleccionada de una tabla en pantalla, necesitamos primero incluir una referencia a la pantalla.
Agrande Approve Requisition.
Con un clic derecho en Approve Requisition, seleccione Add Ancestor Reference del menú y seleccione Requisition Approval.
El modelo Approve Requisition debería lucir ahora como sigue:
El elemento de datos <Selected Row> está incluido por defecto en cualquier elemento basado en una plantilla Tabla Simple (o Table). Siempre que el usuario haga clic en una fila en la tabla (en tiempo de ejecución), el elemento <Selected Row> contendrá la información de esa fila.
El elemento <Selected Row> soporta cualquier estructura de fila definida en el modelo padre (la tabla). Esta posibilidad en si misma esta basada en el tipo de datos Anything.
El elemento <Selected Row> devuelve la fila seleccionada como una estructura de datos Requisition. Podemos ahora crear un proceso que cambia el estatus de la solicitud seleccionada a Approved.
Seleccione Basic/Action en la paleta y arrástrelo cerca de la referencia a Requisition Approval.
Llámelo Change Requisition Status.
El proceso Change Requisition Status que estamos creando debe recibir la Requisition seleccionada:
Seleccione la ranura Trigger () de la paleta y arrástrela hasta el marco de Change Requisition Status.
Agregue un Conector que una Requisition Approval/Requisition List/<Selected Row> al trigger que acabamos de agregar a Change Requisition Status.
En un momento agregaremos ranuras adicionales, por lo que sería una buena idea darle un nombre a la que acabamos de agregar para que su propósito (y contenido) sea claro para cualquiera que mire el modelo.
Seleccione el trigger que acabamos de agregar y presione [F2].
En la caja de edición que aparece, ingrese Original Requisition como nombre para el trigger.
El modelo Approve Requisition debería lucir ahora como el siguiente:
Una entrada adicional para Change Requisition Status debería ser el nuevo valor de Status:
Seleccione Constants/Text en la paleta y colóquelo cerca del nuevo trigger (fuera de Change Requisition Status). Llámelo Approved.
Agregue otro Trigger a Change Requisition Status. Selecciónelo y presione [F2] para renombrarlo como Updated Status.
Agregue un Conector que una la constante “Approved” al trigger Change Requisition Status/Updated Status.
Finalmente, el proceso debe devolver el registro Requisition actualizado:
Agregue una ranura Exit () al marco de Change Requisition Status. Selecciónelo y presione [F2] para renombrarlo como Updated Requisition.
El modelo Approve Requisition debe lucir similar al siguiente:
Ahora ingresemos dentro de Change Requisition Status para modelar la actualización del campo Status de Requisition.
Agrande Change Requisition Status.
Arrastre el registro Requisition dentro de Change Requisition Status.
Agregue un Conector que una el trigger Original Requisition a la estructura de datos Requisition.
Agregue un Conector que una el trigger Updated Status al campo Requisition/Status.
Agregue un Conector que una la estructura de datos Requisition a la salida Updated Requisition.
El modelo Change Requisition Status debería lucir similar al siguiente:
La salida Updated Requisition regresa una solicitud aprobada, la cual debe ser actualizada en la base de datos. Debemos utilizar la plantilla Update para este fin.
Agrande el modelo del botón Approve Requisition.
Seleccione la plantilla Database/Update () y ubíquela cerca del proceso Change Requisition Status.
Cree un Conector que una la salida Change Requisition Status/Updated Requisition al trigger Update/<Record>.
El modelo Approve Requisition debe lucir como sigue:
Debemos asegurarnos que la tabla es actualizada en pantalla y la actualización en la base de datos fue exitosa, entonces la pantalla se mantendrá sincronizada con la base de datos. Si la actualización se realizó exitosamente, el proceso Update devuelve una respuesta por medio de la salida <Updated>:
Arrastre una plantilla Basic/Action cerca de Update. Nómbrela Refresh Requisition List.
Estamos creando un nuevo modelo de proceso, con un nombre idéntico a un proceso existente (este es similar al proceso Refresh Requisition List de Submit Requisition). Esto es posible pues los modelos están en diferentes “paquetes” en el repository. Dar a un nuevo modelo el nombre de uno existente en el mismo paquete esta prohibido.
Con un clic derecho en Refresh Requisition List seleccione Add Element desde el menú y del sub menú Control.
Cree un Conector que una la salida Update/<Updated> al trigger Refresh Requisition List.
Y por último, reutiliza el proceso Populate Requisition Approval List que hemos creado al principio de esta Etapa:
Arrastre el proceso Populate Requisition Approval List del outline dentro del proceso Refresh Requisition List.
Guarde su trabajo y vea su aplicación en el navegador.
Haga clic en la lengüeta Requisition Approval.
Haga clic en el botón Approve Requisition antes de seleccionar una solicitud.
Nada debería ocurrir, puesto que no hay ninguna solicitud seleccionada.
Haga clic en una de las nuevas solicitudes en la lista.
La fila seleccionada es marcada por un color de fondo más oscuro, como en la siguiente captura de pantalla (3ra fila):
Haga clic en el botón Approve Requisition.
La tabla debería ser actualizada y la solicitud seleccionada debería cambia su estatus a Approved, como en la siguiente captura de pantalla:
Importe el proyecto ejemplo Tutorial 6-7 y utilícelo como base para el próximo paso del tutorial.
Para recordar cómo importar un proyecto ejemplo, vea la sección Importando un Proyecto Ejemplo al final de la Etapa 2.
Este proyecto ejemplo contiene toda la funcionalidad modelada hasta ahora.
Usted puede ahora proceder a la Etapa 7, en la que modelaremos botones similares al botón Approve Requisition modelado en esta etapa, reconstruyendo (cambiando) partes del modelado y reutilizándolo para cancelar y rechazar solicitudes.
To use the full functionality of this web site, JavaScript needs to be turned on.
For best results, use the Firefox browser..
Copyright © 2003-2017 - Tersus Software Ltd., All rights reserved. Terms of Use License Graphic design by EmaraDesign