SlideShare a Scribd company logo
1 of 34
Desarrollando para Smart
Devices con PXTools



    Ing. Juan Marcelo Bustamante
    Director PuntoExe Consultores
Nuestra Empresa
• Conocemos GeneXus desde su versión 3.3
• Comenzamos el trabajo en Web con GeneXus desde
  2002
• En el 2006 comenzamos a brindar soporte de
  migraciones de aplicaciones Win a Web y creamos
  nuestro producto PXTools.
• Tenemos Presencia en 8 países de America
• Tenemos más de 20 clientes que utilizan PXTools
• Superamos las 100 licencias otorgadas.
Evaluando el Pasado


     ¿Porqué hacer un
   generador para Smart
         Device?
Evaluando el Pasado



  1   Demostrar que el modelo filosófico
      es válido.

  2   Desarrollar una nueva plataforma
      con el menor impacto posible.
Evaluando el Pasado




      ¿Valió la Pena?
Evaluando el Pasado




     1   Definitivamente Sí.
Evaluando el Pasado




       ¿Qué se logró?
Evaluando el Pasado



  1   Un programador PXTools desarrolle
      SD con 2 días de entrenamiento.

  2   Minimizar el impacto del cambio de
      plataforma lo más posible.
Evaluando el Pasado




    ¿Cómo lo lograron?
Entendiendo la
nueva Plataforma
   Consultas
WorkWith for SD

1   List (Selection)


2   Detail (View)


3   Section (Tab)
Panel for SD

1   Data Entry Tabular


2   Data Show Tabular
Soporte de múltiples Layouts
Funcionalidades avanzadas

1   Search


2   Advanced Search


3   Orders


4   Group By
Entendiendo la
nueva Plataforma
     ABM
Transacción a través de Busines Component (ReST)




                   Ins

                           Detail


               Section General         Section
                                    Subordinados
                   Tabular
                                        Grid
                     View               View
                Upd      Dlt
Transacción a través de Busines Component (ReST)




                Ins

                      Detail


   Section General       Section
                      Subordinados               Business
       Tabular                       Section
                          Grid                 Component
         View             View         Edit
                                               Transacción
    Upd      Dlt
Sections type View y Edit



                     Ins

                            Detail


   Section General      Section
                     Subordinados
       Tabular                       Section 1   Section 2
                         Grid
         View            View          Edit        Edit
   Upd       Dlt
Sections type View y Edit



                        Ins

                                  Detail


 Section General      Section
                   Subordinados            Section 1        Section 2
     Tabular
                       Grid                  Edit             Edit
       View            View

 Upd       Dlt                       Save        Cancel   Save    Cancel
Visión de PXTools
      ABM
Sections Edit vs. Section Edit y Tabs




                        Ins

                                  Detail

                                                          Tabs
 Section General      Section
                   Subordinados            Section 1               Section 2
     Tabular
                       Grid                  Edit 1
                                             Tab                    Tab 2
                                                                     Edit
       View            View
                                                                         Section
  Upd      Dlt                       Save        Cancel          Save    Cancel
                                                                            Edit
Sections type View y Edit



                  Ins

                            Detail

                                                  Tabs
Section General      Section
    Tabular       Subordinados                                         Business
                      Grid              Tab 1            Tab 2       Component
      View            View                                           Transacción
                                                           Section
Upd       Dlt                        Save       Cancel        Edit
Visión desde PXWorkWith


                                               Transacción
                                                  Tabs
    Ins
                                       Tab 1                 Tab 2
            Detail

                                    Save       Cancel
Section General         Section
                     Subordinados
    Tabular
                         Grid
      View               View

Upd       Dlt
Funcionalidades
 Incorporadas
Funcionalidades básicas
•   Form en Transacciones.
•   Codes en Transacciones.
•   Accion Update y Delete en Section invocan a Trn.
•   Nodo Modes con Acción insert en Selection.
•   PXParameterRequest genera Panel for SD.
•   Confirm en Acciones.
•   Parseo de comandos estándares a comandos SD.
•   Soporte de Acciones Multirow
•   Acción “Enter” en Transacción para SD.
•   Separar manejo de clases para cada Plataforma.
•   Atributo Platform en preferencias de Contextos.
Funcionalidades avanzadas
• Templates
   –   Form
   –   Eventos
   –   Condiciones
   –   Variables
• Soporte de Subrutinas.
• Soporte de Títulos en Grilla.
• Carga automática de clase ReadOnly.
Funcionalidades
  a Incorporar
Funcionalidades a Incorporar



  1   Prompts.


  2   Filtros con Variables.
Si, valió la pena.
¿PREGUNTAS?
Referencias
• PXTools Demo en Google Play:
  https://play.google.com/store/apps/details?id=com.punt
  oexe.pxtoolsdemo
• PXTools Demo en GXServer:
• http://xev2.genexusserver.com/gxserver/home.aspx?PXTo
  olsDemo,0
• Conferencias relacionadas
    • PXTools (for X Evolution 1) 4.0 y PXTools (for X Evolution 2) 2.0
      Sala 4R, Martes, hora: 09:30
    • Café con PXTools - Sala 25TG, Miércoles, hora: 10:30
    • Stand de PuntoExe y PXTools en segundo piso.

More Related Content

More from GeneXus

More from GeneXus (20)

After Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsAfter Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) Bots
 
Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!
 
Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in Action
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuro
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y Plataformas
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivos
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industria
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 Students
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsive
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAP
 
Going mobile
Going mobileGoing mobile
Going mobile
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
 

Desarrollando para Smart Devices con PXTools

  • 1. Desarrollando para Smart Devices con PXTools Ing. Juan Marcelo Bustamante Director PuntoExe Consultores
  • 2. Nuestra Empresa • Conocemos GeneXus desde su versión 3.3 • Comenzamos el trabajo en Web con GeneXus desde 2002 • En el 2006 comenzamos a brindar soporte de migraciones de aplicaciones Win a Web y creamos nuestro producto PXTools. • Tenemos Presencia en 8 países de America • Tenemos más de 20 clientes que utilizan PXTools • Superamos las 100 licencias otorgadas.
  • 3. Evaluando el Pasado ¿Porqué hacer un generador para Smart Device?
  • 4. Evaluando el Pasado 1 Demostrar que el modelo filosófico es válido. 2 Desarrollar una nueva plataforma con el menor impacto posible.
  • 5. Evaluando el Pasado ¿Valió la Pena?
  • 6. Evaluando el Pasado 1 Definitivamente Sí.
  • 7. Evaluando el Pasado ¿Qué se logró?
  • 8. Evaluando el Pasado 1 Un programador PXTools desarrolle SD con 2 días de entrenamiento. 2 Minimizar el impacto del cambio de plataforma lo más posible.
  • 9. Evaluando el Pasado ¿Cómo lo lograron?
  • 11. WorkWith for SD 1 List (Selection) 2 Detail (View) 3 Section (Tab)
  • 12. Panel for SD 1 Data Entry Tabular 2 Data Show Tabular
  • 14.
  • 15. Funcionalidades avanzadas 1 Search 2 Advanced Search 3 Orders 4 Group By
  • 16.
  • 18. Transacción a través de Busines Component (ReST) Ins Detail Section General Section Subordinados Tabular Grid View View Upd Dlt
  • 19. Transacción a través de Busines Component (ReST) Ins Detail Section General Section Subordinados Business Tabular Section Grid Component View View Edit Transacción Upd Dlt
  • 20. Sections type View y Edit Ins Detail Section General Section Subordinados Tabular Section 1 Section 2 Grid View View Edit Edit Upd Dlt
  • 21. Sections type View y Edit Ins Detail Section General Section Subordinados Section 1 Section 2 Tabular Grid Edit Edit View View Upd Dlt Save Cancel Save Cancel
  • 23. Sections Edit vs. Section Edit y Tabs Ins Detail Tabs Section General Section Subordinados Section 1 Section 2 Tabular Grid Edit 1 Tab Tab 2 Edit View View Section Upd Dlt Save Cancel Save Cancel Edit
  • 24. Sections type View y Edit Ins Detail Tabs Section General Section Tabular Subordinados Business Grid Tab 1 Tab 2 Component View View Transacción Section Upd Dlt Save Cancel Edit
  • 25. Visión desde PXWorkWith Transacción Tabs Ins Tab 1 Tab 2 Detail Save Cancel Section General Section Subordinados Tabular Grid View View Upd Dlt
  • 26.
  • 28. Funcionalidades básicas • Form en Transacciones. • Codes en Transacciones. • Accion Update y Delete en Section invocan a Trn. • Nodo Modes con Acción insert en Selection. • PXParameterRequest genera Panel for SD. • Confirm en Acciones. • Parseo de comandos estándares a comandos SD. • Soporte de Acciones Multirow • Acción “Enter” en Transacción para SD. • Separar manejo de clases para cada Plataforma. • Atributo Platform en preferencias de Contextos.
  • 29. Funcionalidades avanzadas • Templates – Form – Eventos – Condiciones – Variables • Soporte de Subrutinas. • Soporte de Títulos en Grilla. • Carga automática de clase ReadOnly.
  • 30. Funcionalidades a Incorporar
  • 31. Funcionalidades a Incorporar 1 Prompts. 2 Filtros con Variables.
  • 32. Si, valió la pena.
  • 34. Referencias • PXTools Demo en Google Play: https://play.google.com/store/apps/details?id=com.punt oexe.pxtoolsdemo • PXTools Demo en GXServer: • http://xev2.genexusserver.com/gxserver/home.aspx?PXTo olsDemo,0 • Conferencias relacionadas • PXTools (for X Evolution 1) 4.0 y PXTools (for X Evolution 2) 2.0 Sala 4R, Martes, hora: 09:30 • Café con PXTools - Sala 25TG, Miércoles, hora: 10:30 • Stand de PuntoExe y PXTools en segundo piso.

Editor's Notes

  1. Antes que nada vamos a dar una breveintroducción a nuestra empresa PuntoExe Consultores.
  2. La primerapregunta quepuede ser natural hacersees ¿Porquéhacer um generador para Smart Device?La tecnología SD está basadaenlatecnologíapattern. Entonces ¿Porquéhacer que um patterngenere outro pattern?
  3. Lasiguientepregunta que nos hicimosfue ¿Valióla Pena?
  4. La siguientepreguntapodría ser ¿Qué se logró?
  5. La última pregunta que tendremos que responder es ¿Cómololograron?
  6. Este esel diagrama representando los elementos: Selection, Detail y Sections.Cuando vamos a incorporar Acciones para el ABM de los registros se distribuirán de lasiguientemanera.Vemos que elUpdate y el Delete solo están em elTab General del Detaul y no em elSelection.Estoesdebido a que larepresentación de lasacciones “InGrid” para elSeletion no esviable de implementarlo dentro de lagrilla por motivos de que no hay suficiente presición em este tipo de dispositivos para seleccionar controles dentro de um registro de lagrilla.Estamos evaluando alternativas para solucionar este problema:Soporte de Menú contextual al realizar um LongTap sobre el registro.Soporte de Selección de línea y ponerlasaccionesfuera de lagrilla.
  7. En esta plataforma no se interactúa directamente con la Transacción, sino con un elemento que, al confirmar, se comunicará con la transacción como Business Component exponiéndola como WebService y protocolo ReST (RepresentationalState Transfer).Este elemento que mencionábamos es considerado un Section con una propiedad type en Edit. Los Section que vimos anteriomnete tenían el type en View.
  8. Estanueva forma de encarar el ABM permite tener múltiples SectionscontypeView y también múltiples Sectionscontype Edit.
  9. Vamos a tratar de enteder como se visualizanestosSectons de distinto tipo.
  10. Partimos del List y el usuario seleciona un registro.Esto genera el pasaje al Detailposicionandose por defecto en el primer Sectioncomtype View.El usuario pordrá recorrer los distrintosSections.Cuando el usuario selecciona los botones Update o Delete cambia el estado del Detail a Edit y eso hace que desaparezcan los Sectionscon type View y comiencen a verse los Sectionscon type Edit.Cada Section tendrá un botón de Save para salvar los datos ingresados en el mismo con el BC y el Cancel para volver al estado View del Detail.
  11. Creemos que esta solución de múltiples Sections con typeEdit no es muy recomendable.Esto se soportó para poder representar Registros con muchos campos en distintas Secciones debido a la restricción de la plataforma.Pero esto trae consigo otros problemas. Por ejemplo: si estoy queriendo insertar un registro y confirmo el primer Section, si tuviera un atributo no nulo puesto en el segundo Section tendría errores generados por el BC que no me permitirán salvar el primer Section.Por lo tanto lo que nosotros planteamos es que tengamos un único Section con typeEdit y la distribución de los atributos los hagamos con un control Tabs dentro del Section.
  12. El modelo que estamos planteando completo sería el siguiente.Pero la realidad es que el concepto de SectiontypeEdit es complejo de entender por lo tanto lo que nos quedaría mucho más claro es visualizar el modelo de la siguiente manera…
  13. Este modelo se parece mucho más al modelo del pattern que estamos acostumbrados a trabajar con Web.Y por lo tanto es el que finalmente decidimos implementar en nuestro pattern de PXWorkWith…
  14. Form en Transacciones como recién hemos explicado.Codes en Transacciones para las dos plataformas. En Web lo generaremos en la Transacción mientras que en SD lo generaremos en el Sectiontype Edit.AccionUpdate y Delete que invoca automáticamente a la trn.Nodo Modes para SD. Por el momento en SD solo con el soporte de Insert.Nuestro patrón PXParameterRequest está generando el PanelSD.Confirm en Acciones de igual manera de cómo lo programamos para Web.Parseo de comandos estándares a comandos SD. En esta nueva plataforma se utilizan mucho los ExternalObjects y los comandos tradicionales no están soportados en la plataforma. Con PXTools estamos manteniendo el manejo de (Return y Refresh) a la manera tradicional.Soporte de acciones Multirow. Esta funcionalidad por el momento está bastante restringida en SD.Acción “Enter” en Transacción para SD. Teniendo en cuenta que se genera un SectiontypeEdit es que permitimos incorporar código previo a la invocación del Business Component como forma de interactuar con el mismo.Separar manejo de clases para cada Plataforma. Esto se hizo debido a que GeneXus representa distinto los anidamientos de clases. En Web cada clase se identifica con el nombre independientemente de que esté bajo otra clase. En la plataforma SD el nombre completo de una clase que está bajo de otra es <ClasePadre>.<Clasehija>Atributo Platform en preferencias de Contextos. Podemos tener Contextos distintos para la plataforma Web que para la SD.
  15. Por otro lado hemos incorporado funcionalidades que consideramos han sido trascendentales para automatizar el desarrollo:Soporte de Templates. Hemos incorporado toda la potencia que logramos en Web para la plataforma SD. Esto quiere decir que usamos la platilla para predefinir comportamientos no solo a nivel del Form sino a nivel de Eventos, Condiciones y Variables.Soporte de Subrutinas. Las subrutinas no están soportadas en SD. Nosotros las hemos soportado realizando la sustitución del código en los lugares donde estén las invocaciones. Inclusive está soportado la invocación anidada de subrutinas. Lo que hay que tener en cuenta es que como se realiza sustitución si tenemos ForEach sobre subrutinas podemos estar generando anidamientos no deseados.Soporte de títulos en Grilla. Hay que tomar en cuenta como vimos en el Demo que las grillas se comportan como Grid Free Style en Web. Por lo tanto lo que declaremos en un nodo Attributes del Layout será un form tabular.Hemos incorporado lógica para indicar cuando queremos una representación tabular o una representación con formato de Columnas para facilitar el proceso de entendimiento de un programador PXTools acostumbrado a la plataforma Web.En el caso de que se indique que se manejarán como Columnas es posible solicitar que la propiedad Description de cada atributo sea considerado como título y por lo tanto se diseñará una tabla arriba de la grilla con la titulos.Carga automática de la clase ReadOnly. En la plataforma Web estamos acostumbrados de que si a un atributo o variable le asociamos una clase, si la definimos con ReadOnly automáticamente el control quedará asociado a la clase con el nombre agregado Readonly al final. Esto es debido a que cuando es editable tenemos las cajas de texto y el comportamiento de diseño puede ser radicalmente diferente cuando está readonly. Este comportamiento no está soportado en SD por lo que decimimos que PXTools debía soportarlo. La única restricción es que solo aplica para cuando utilizamos la propiedad ReadOnly en tiempo de diseño. No aplica cuando cambiamos a la propiedad ReadOnly por Evento.