Nuevo pattern de PXTools - PXFlowController<br />#GX2487<br />Ing. Juan Marcelo Bustamante Lamas<br />jmbl@puntoexe.com.uy...
Nuestra Empresa<br />Conocemos GeneXus desde su versión 3.3<br />Comenzamos el trabajo en Web con GeneXus desde 2002<br />...
El Contexto inicial<br />Resolver el dialogo Modal en migraciones Win a Web.<br />El código posterior a una llamada de una...
Características de la solución<br />Definir el flujo de un proceso en una instancia de pattern.<br />Facilitar el salvado ...
Ejemplo<br />1 TClientes.Call(TrnMode.Update,&CliNro )<br /> 2 Do 'Cargo Nombre Cliente'<br /> 3 &CountDirecciones= 0<br /...
Ejemplo<br />21 Sub 'Cargo Nombre Cliente'<br />22    ForEach<br />23 	      WhereCliNro = &CliNro<br />24       &CliNom= ...
¿Cómo funciona?<br />Declarar bloques de Código<br />Cada bloque terminará invocando a una IG.<br />Cada IG puede ser un c...
¿Cómo funciona?<br /> 1 TClientes.Call(TrnMode.Update,&CliNro )<br /> 2 Do 'Cargo Nombre Cliente'<br /> 3 &CountDireccione...
¿Cómo funciona?<br />Declarar bloques de Código<br />Cada bloque terminará invocando a una IG.<br />Cada IG puede ser un c...
¿Cómo funciona?<br />
Algunas features<br />Integración con GXFlow.<br />Precarga de Variables.<br />Control de Cola de Mensajes.<br />Control d...
Algunas Features<br />
Algunas features<br />Integración con GXFlow.<br />Precarga de Variables.<br />Control de Cola de Mensajes.<br />Control d...
Algunas Features<br />
Algunas features<br />Integración con GXFlow.<br />Precarga de Variables.<br />Control de Cola de Mensajes.<br />Control d...
Algunas Features<br />
Conclusión<br />Ventajas<br />No es necesario realizar reingeniería de procesos.<br />Bajo tiempo de implementación.<br />...
¿Preguntas?<br />
Upcoming SlideShare
Loading in …5
×

133 nuevo pattern de px tools - pxflow-controller - control de flujo entre interfaces gráficas para la web

526 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
526
On SlideShare
0
From Embeds
0
Number of Embeds
70
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

133 nuevo pattern de px tools - pxflow-controller - control de flujo entre interfaces gráficas para la web

  1. 1. Nuevo pattern de PXTools - PXFlowController<br />#GX2487<br />Ing. Juan Marcelo Bustamante Lamas<br />jmbl@puntoexe.com.uy<br />
  2. 2. Nuestra Empresa<br />Conocemos GeneXus desde su versión 3.3<br />Comenzamos el trabajo en Web con GeneXus desde 2002<br />En el 2006 comenzamos a brindar soporte de migraciones de aplicaciones Win a Web y creamos nuestro producto PXTools.<br />Tenemos Presencia en 8 países de América<br />Tenemos más de 20 clientes que utilizan PXTools<br />Superamos las 100 licencias otorgadas.<br />
  3. 3. El Contexto inicial<br />Resolver el dialogo Modal en migraciones Win a Web.<br />El código posterior a una llamada de una IG se ejecuta antes de la IG.<br />Múltiples invocaciones a IGs se pierden quedando solo la última.<br />Posibles soluciones<br />Reingeniería de procesos.<br />Programación manual basado en máquina de estados.<br />
  4. 4. Características de la solución<br />Definir el flujo de un proceso en una instancia de pattern.<br />Facilitar el salvado de contexto de variables al pasar entre distintas interfaces.<br />Integración con GXFlow.<br />Poder invocar a más de una IG en una sola tarea del WorkFlow.<br />Precarga automática de ciertas variables del Flow.<br />Control de Cierre de Ventana.<br />Impresión de Texto en Cliente masivo.<br />Confirms.<br />
  5. 5. Ejemplo<br />1 TClientes.Call(TrnMode.Update,&CliNro )<br /> 2 Do 'Cargo Nombre Cliente'<br /> 3 &CountDirecciones= 0<br /> 4 ForEach<br /> 5 WhereCliNro = &CliNro<br /> 6 DefinedByCDrNro<br /> 7 &CountDirecciones += 1<br /> 8 EndFor<br /> 9 If&CountDirecciones > 0<br />10 &Msg = "¿Desea Actualizar las Direcciones de " + CliNom.Trim() + "?"<br />11Confirm(&Msg)<br />12IfConfirmed()<br />13ForEach<br />14WhereCliNro = &CliNro<br />15TCliDir.Call(TrnMode.Update ,&CliNro ,CDrNro )<br />16EndFor<br />17EndIf<br />18 EndIf<br />19 Do 'Verifico Contactos‘<br />20<br />
  6. 6. Ejemplo<br />21 Sub 'Cargo Nombre Cliente'<br />22 ForEach<br />23 WhereCliNro = &CliNro<br />24 &CliNom= CliNom<br />25 EndFor<br />26 EndSub<br />27<br />28 Sub 'Verifico Contactos'<br />29 &CountContactos= 0<br />30 ForEach<br />31 WhereCliNro = &CliNro<br />32 &CountContactos+= 1<br />33 EndFor<br />34 If&CountContactos<br />35 &Msg= "¿Desea Actualizar los Contactos de " + &CliNom.Trim() + "?"<br />36 Confirm(&Msg)<br />37 IfConfirmed()<br />38 ForEach<br />39 WhereCliNro = &CliNro<br />40 DefinedByCCtNro<br />41 TCliCon.Call(TrnMode.Update,&CliNro ,CCtNro )<br />42 EndFor<br />43 EndIf<br />44 EndIf<br />45 EndSub<br />
  7. 7. ¿Cómo funciona?<br />Declarar bloques de Código<br />Cada bloque terminará invocando a una IG.<br />Cada IG puede ser un conjunto de pantallas.<br />Solo una se ejecutará al finalizar el bloque <br />Los bloques son definidos con código GeneXus.<br />
  8. 8. ¿Cómo funciona?<br /> 1 TClientes.Call(TrnMode.Update,&CliNro )<br /> 2 Do 'Cargo Nombre Cliente'<br /> 3 &CountDirecciones= 0<br /> 4 ForEach<br /> 5 WhereCliNro = &CliNro<br /> 6 DefinedByCDrNro<br /> 7 &CountDirecciones += 1<br /> 8 EndFor<br /> 9 If&CountDirecciones > 0<br />10 &Msg = "¿Desea Actualizar las Direcciones de " + CliNom.Trim() + "?"<br />11Confirm(&Msg)<br />12IfConfirmed()<br />13ForEach<br />14WhereCliNro = &CliNro<br />15TCliDir.Call(TrnMode.Update ,&CliNro ,CDrNro )<br />16EndFor<br />17EndIf<br />18 EndIf<br />19 Do 'Verifico Contactos‘<br />20<br />
  9. 9. ¿Cómo funciona?<br />Declarar bloques de Código<br />Cada bloque terminará invocando a una IG.<br />Cada IG puede ser un conjunto de pantallas.<br />Solo una se ejecutará al finalizar el bloque <br />Los bloques son definidos con código GeneXus<br />Las IG son declaradas con Acciones especialmente consideradas en la instancia.<br />Las acciones se ejecutan en un Bloque con Comandos específicos del PXFLowController. Los comandos pueden ser:<br />ControllerAction <ActionName><br />ControllerConfirm <ConfirmName><br />ControllerGotoLine <Line Number><br />ControllerReturn<br />
  10. 10. ¿Cómo funciona?<br />
  11. 11. Algunas features<br />Integración con GXFlow.<br />Precarga de Variables.<br />Control de Cola de Mensajes.<br />Control de Cierre de Ventana.<br />Impresión de Texto en Cliente masivo.<br />Confirms.<br />
  12. 12. Algunas Features<br />
  13. 13. Algunas features<br />Integración con GXFlow.<br />Precarga de Variables.<br />Control de Cola de Mensajes.<br />Control de Cierre de Ventana.<br />Impresión de Texto en Cliente masivo.<br />Confirms.<br />Invocación a IG dentro de una iteración.<br />
  14. 14. Algunas Features<br />
  15. 15. Algunas features<br />Integración con GXFlow.<br />Precarga de Variables.<br />Control de Cola de Mensajes.<br />Control de Cierre de Ventana.<br />Impresión de Texto en Cliente masivo.<br />Confirms.<br />Invocación a IG dentro de una iteración.<br />Soporte de Subrutinas con IGs.<br />
  16. 16. Algunas Features<br />
  17. 17. Conclusión<br />Ventajas<br />No es necesario realizar reingeniería de procesos.<br />Bajo tiempo de implementación.<br />Futuro<br />Automatizar la generación de la instancia en migraciones Win a Web.<br />Parseosintáctico del Lenguaje GeneXus.<br />
  18. 18. ¿Preguntas?<br />

×