<< Clic para mostrar Tabla de Contenidos >> Manejando entidades de Subprocesos |
Dependiendo en el Subproceso, puede tener o no la misma Entidad de Proceso que su Proceso padre. Por lo tanto, para acceder a la información del caso padre desde el Subproceso se debe tener en cuenta el contexto de los procesos para evaluar cómo navegar el modelo de datos.
Los Subprocesos reutilizables pueden o no tener la misma Entidad de Proceso que el Proceso padre.
•Si el Subproceso tiene la MISMA Entidad de Proceso que el padre, la información del proceso padre estará disponible exactamente en el mismo XPath. La navegación de datos no cambia de un proceso al otro.
•Si NO tienen la misma Entidad de Proceso, los datos del proceso padre no están disponibles desde el Subproceso. Para poder acceder a esta información, se pueden crear atributos en la Entidad de Proceso del subproceso y asignarles el valor del proceso padre por medio de un mapeo. Este mapeo se debe definir antes de que empiece el subproceso.
Acceder a la información del Proceso Padre desde el Subproceso
Suponga que tenemos los siguientes Procesos:
•Proceso Padre: Invoice (cuya Entidad de Proceso es Invoice).
•Subproceso Reusable: Payments (cuya Entidad de Proceso es Payment).
En el Proceso Padre los atributos se acceden navegando: <Invoice.InvoiceAmount>
En el Subproceso, los atributos se acceden navegando: <Payment.PaymentAmount>
Observe que el punto de partida es diferente debido a que la entidad de Proceso es diferente. Por esto decimos que el Contexto es diferente.
Para hacer que la información necesaria del Proceso Invoice esté disponible desde el Subproceso Payment, siga estos pasos:
1.Usted necesita una relación entre las entidades de ambos Procesos en el Modelo de Datos.
Cree el atributo Payment en la Entidad Invoice y relaciónelo a la entidad del Subproceso (Payment):
2.Identifique los atributos del Proceso Padre que se deben mostrar en el Subproceso. Créelos en la entidad principal del Subproceso.
En este caso, queremos mostrar el Invoice amount y el Invoice Due Date del Proceso Padre, en las formas del Subproceso.
Por lo tanto, creamos dos nuevos atributos en la entidad Payment, llamados Payment Amount y Payment Due Date para mapearlos.
3.Cree una expresión como una acción a la entrada(On enter) del Subproceso (presionando la tecla shift mientras hace clic sobre el Subproceso).
4.Cree un elemento de expresión. Asocie (mapee) la información del Proceso Padre que se utilizará en el Subproceso.
5.Finalmente, asocie la instancia de la entidad del Subproceso, al atributo en la entidad del proceso padre utilizado para referenciarlo.
//Asocie la información a reutilizar
<Invoice.Payment.PaymentAmount>=<Invoice.InvoiceAmount>;
<Invoice.Payment.PaymentDueDate>=<Invoice.InvoiceDueDate>;
//Asocie la instancia del Sub-Proceso al Proceso Padre
<Payment> = <Invoice.Payment>;
La información del Proceso Padre podrá accederse ahora desde el Subproceso.
Si se necesita actualizar información del proceso padre con datos ingresados en el subproceso, es necesario crear una regla a la salida del Subproceso y mapear la información requerida. Por ejemplo si queremos actualizar el atributo InvoiceAmount la expresión será la opuesta al mapeo de entrada, y se verá asì:
<Invoice.InvoiceAmount> = <Payment.PaymentAmount>
Adicionalmente, si en su negocio hay información del proceso padre que cambia y esta información debe ser actualizada en un subproceso, puede hacer uso de un evento de mensaje para enviar información entre los procesos. |
Last Updated 7/17/2024 10:34:54 AM