Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
IdRetail – Migración Mobile a Smart Device con PXTools
1. IdRetail - Migración Mobile
a Smart Device con PXTools
Ing. Andrea Zilelian
Jefe de Proyecto
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. IdRetail
RETAIL TRADING ÁREAS
SF TRACKING
FACING
CENSUS
CHECK POINT
MAILING
AUDIT FORCE
OUT STOCK
FOCUS
SALES
Control dede mercado en Punto
Análisis de gestión de
Medición desempeño
Censo Nacional de Comercios
Sistema de losofertas quiebres
Directorio Ejecución y cobertura
Auditoría temprana de en
Detección deExhibición de el
Concentra estudios
del
en áreas de distribución técnica
Distribudores
Punto de a
reponedorestravés
de Venta Venta. de la
realizados
Distribuidor
cualitativa de grupos de
discusión.
4. Los Objetivos
1 Migrar aplicación Mobile a SD
2 Potenciar nuestra herramienta
3 GeneXus Evolution 2
4 GeneXus Tilo
9. Rediseño Operativo
Cambio en el uso de Acciones
• Win - Mobile
– Selector de línea
– Acciones fuera de la grilla
• Web – Smart Device (OnLine)
– Selección de línea pasando al View (Defail)
– Acceso a elementos subordinados con un solo click
– Limitante de las Acciones “In Grid”
10. Rediseño Operativo
Implicancias
• Rediseño Operativo
• Dividir un Trabajar con en:
– List
– Detail
– Section Tabular (Acciones al registro)
– Sections Grids (Acciones a elemetos subordinados)
12. Rediseño Operativo
Interacción con Transacción
• Versión Mobile interactúa los ABM con:
– WorkPanels y Procedimientos
– Transacción
• Impacto para el Programador
– Web se trabaja con la Transacción
15. Puntos a Tener en Cuenta
Rediseño Operativo
Aprovechar la Potencia
Conocer las limitantes
16. Rediseño Operativo
Potencia del WorkWithSD
• Múltiples Ordenes
• Búsqueda contra múltiples Atributos (Search)
• Búsqueda avanzada (Advanced Search)
• Requiere que sea una Navegación con Tabla Base
• Migrar WorkPanels sin TB a WWSD con TB
20. Rediseño Operativo
Código que podemos poner en una Acción
• Confirm
• Message
• Llamar a otro Objeto (Panel, List o Detail)
• Llamar a un Procedimiento
• If Else con Condicion con &var/att de tipo Boolean
• For Each Selected Line con invocación a un
Procedimiento
21. Rediseño Operativo
Código que no podemos poner en una Acción
• If con Condiciones con Expresiones Regulares
• For Each sobre tablas
• Subrutinas
25. Rediseño Operativo
Subrutinas
• No se soportan subrutinas.
• Ni en el evento Start, Refresh y Load.
• Pasar las subrutinas a procedimientos.
• Sustituir el código de la Subrutina en las invocaciones
– Tener cuidado con Anidamientos no deseados
– Se duplica el código que estaba encapsulado.
27. 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
• Desarrollando para Smart Devices con PXTools
Sala 3F, Lunes, hora: 17:15
• 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.
Notas del editor
Antes que nada vamos a dar una breveintroducción a nuestra empresa PuntoExe Consultores.
IdRetail es una empresa especializada en generar plataformas de captura, procesamiento y análisis de información de los puntos de venta para las grandes distribuidoras.Se ha especializado en brindar cada vez más soluciones a estas distribuidoras como para automatizar la captura de información para mejorar el procesamiento y análisis de la información.En particular cuenta con un producto para la fuerza de venta para organizar la toma de pedidos llamado Sales Force.Este producto es el que estamos colaborando en el proceso de migración a la plataforma Smart Device.
Los puntos a tener en cuenta podemos agruparlos en tres grandes temas: El rediseño operativo de la aplicación para adaptarla a la nueva plataforma Tratar de hacer los cambios necesarios para aprovechar al máximo la potencia de la nueva plataforma Conocer sus limitantes
Enlos dispositivos mobilelasaplicacionesteníanmuchos controles de pequeñotamaño y muy juntos el uno conelotro, laprecisiónlaobteníamos mediante el uso delstylus.Enlos dispositivos smartdevices, usamos el dedo, conlocualtenemos que tener controles más grandes para lograr la misma precisión, y como consecuencia nos quedamos con mucho menos espacio.
Lasaplicacionesmobilesonwin, conlos típicos WorkPanelscongrilla y accionesfuera de lagrilla, algunasdependendel registro seleccionado y otras no. Por ejemplo si teníamos una grillaconelcabezal de las facturas, luegoteníamosbotones para lasacciones de insertar, modificar y borrar, otro por ejemplo para ver las líneas, otro para los pagos. Entoncescon cada botónveolosdatos que quiero de ese registro, locuales una ida y vueltaal servidor cada vez que abro una de esaspantallas.Lasaplicacionessmartdevicesejecutanenel servidor mediante web services, por lo tanto migrar una aplicaciónmobile a smartdevicesesmuy similar a migrar una aplicaciónwin a web, conalgunasrestricciones. Tenemos que minimizar lacantidad de veces que vamos al servidor, por elloes que usamos eldetail y section para ver todos losdatosconun solo click.Lo que si tenemos que tener em cuentaes que lasacciones “In Grid” no sonaconsejables porque no nos daríael lugar. Lomejoresponerlas todas enelTab general delDetail.
¿Que implica todo esto? Que en muchos casos tenga que re diseñar la aplicación original y pasar a usar el list del workwithSD, detail para mostrar los datos del registro seleccionado, sections para las acciones que dependen del registro, y sections con grids para los elementos subordinados.
Ejemplo de como um WorkPanelde tipo WorkWithwin se convierteenobjetos SmartDevices
Enlaversiónmobile, los ABM se hacían o bien mediante WorkPanelsy procedimientos para dar de alta, baja o modificar los registros; o utilizando lastransacciones.En web es conveniente usar el dialogo transaccional, con todas las reglas de negocio en la transacción
Ejemplo de como era enmobilelamanipulación de losdatos
Ensamartdevices uso elsectionen modo edit, conlocuallosdatos se manipulan mediante business componentEsun cambio bastante brusco para el programador ya que estanacostumbrados a hacerlodirectamenteenlatransacción. Enpxtools se mantuvoel concepto de usar latransacción, y eselpatternel que pasaesa lógica a sectionenedit.Por experienciaaconsejamos a usar un solo sectionenedit, si tenemosmuchosdatos para manipular en una sola pantallaaconsejamosusar unsectionconelcontroltab para distribuir esosdatos.
Como podemos aprovechar al máximo la potencia de la plataforma?
El detail no es la úncia potencia que tiene el WorkWithSD, sino que además tenemos otras cosas que nos facilita a la hora de migrar, como ser el search (que funciona como el de google, donde tengo una cajita de texto y busca en los atributos que le especifiquemos) el advancedsearch, orders, etc.ParaestoesnecesariopasarnuestrosWorkPanelssin tabla base a objetos WWSD con tabla base
Por último es necesario considerar las limitaciones de esta plataforma para ver que cosas tenemos que cambiar de nuestra aplicación mobile
El evento start, load y refresh se ejecutan en el servidor, por lo cual tenemos prácticamente la misma potencia que teníamos en una aplicación web tradicional. La diferencia está en las acciones y eventos de controles (tap y slide), que se ejecutan en el dispositvo, y es donde generalmente tenemos la mayoría del código.
Código de unaacción anular documento de laaplicaciónmobile.
Cómodebe ser al migrar el código anular documento de laaplicaciónmobileComo elif original no es válido debemostenerunprocedimientoal principio que devuelve una variable booleana por cada if que tenemos.Otro cambio es que enelconfirm solo puede ir un texto, no podemos concatenar string conel valor de una variable de tipo char.
Este eselprocedimiento que usamos para devolver lasvariables booleanas que uso luegoenlosif
Em PXTools para el programador el uso de subrutinassigue estando, y eselpropiopattern que se encarga de sustituiren todos lados donde es usada lasubrutina por el código que debeejecutar. Hay que tenerelmismo cuidado en este caso de que si no quieronavegaciones no deseadaslomejores usar lasubrutina como procedimiento.