You are on page 1of 51

Smart Devices & GAM

Prctico

Octubre de 2012

Prctico Actualizacin a GeneXus X Evolution 2

Copyright Artech Consultores S. R. L. 1988-2012. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explcito de Artech Consultores S.R.L. La informacin contenida en este documento es para uso personal nicamente.

Marcas Registradas Artech y GeneXus son marcas o marcas registradas de Artech Consultores S.R.L. Todas las dems marcas mencionadas en este documento son propiedad de sus respectivos dueos.

Pgina 1

Prctico Actualizacin a GeneXus X Evolution 2

1. 2. 3. 4. 5.

Primeros pasos .................................................................................................................3 Aplicacin Web .................................................................................................................5 Aplicando el Pattern Work With for Smart Devices .................................................................6 Entidades interrelacionadas .............................................................................................. 15 Personalizando el Pattern Work With for Smart Devices [avanzado] ................................. 18 Editando el List ...................................................................................................................... 18 Editando el Detail ................................................................................................................... 20 Themes................................................................................................................................. 27 Agregando rdenes y Filtros .................................................................................................... 30 Agregando Acciones ............................................................................................................... 32

6. 7. 8. 9. 10.

Paneles para pedir datos al usuario [avanzado] .................................................................. 37 Ejecucin en el dispositivo [opcional]................................................................................. 41 GAM [opcional] ............................................................................................................... 42 Generando para otras plataformas [opcional] ..................................................................... 45 Glosario ......................................................................................................................... 50

Pgina 2

Prctico Actualizacin a GeneXus X Evolution 2

1. Primeros pasos
A lo largo de este prctico desarrollaremos una aplicacin para una Inmobiliaria, haciendo foco en la parte para Smart Devices. Prototiparemos por simplicidad en Android, pero al final probar la aplicacin tambin en el emulador de Blackberry. Si tiene algn dispositivo (Android, BlackBerry o iOS) podr probar la aplicacin en l. Si usted: Slo desea experimentar lo bsico: o o o no realice los puntos identificados como [avanzado]. Si adems quiere probar el mdulo de seguridad (GAM), una vez finalizado lo bsico, pase al punto 8. Si adems desea probar lo hecho tambin en Blackberry e iOS realice el punto 9.

No cuenta con algn dispositivo, saltese las partes del prctico que lo requieren (son opcionales).

En nuestro sitio de capacitacin encontrar videos que tratan todos estos temas: Bsico (de X Ev2): http://training.genexus.com/actualizacion-de-gx-ev1-a-ev-2/cursoactualizacion-de-gx-ev-1-a-gx-ev-2-es?es Avanzado de Smart Devices: http://training.genexus.com/GeneXus-para-SmartDevices/GeneXus-para-Smart-Devices?es

Utilizaremos para este prctico la versin Trial de GeneXus X Ev2. Por esta razn ud. no podr elegir prototipar en otro environment distinto de .Net, ni hacerlo local (automticamente se prototipar en la nube). Si cuenta con una versin full de GeneXus, podr probar en otros ambientes.

1) Cree una nueva KB (se crear con Environment .Net, con generador Default C# Web). 2) Observe las propiedades del generador Default( C# Web), en particular las del grupo Execution:

Pgina 3

Prctico Actualizacin a GeneXus X Evolution 2

Se har Deploy to cloud. Observe que la URL del servidor es http://trialapps.genexus.com. Si estuviera desarrollando con la versin full, la URL que vera sera: http://apps3.genexusx.com.

3) Observe las propiedades del Data Store Default.

Pgina 4

Prctico Actualizacin a GeneXus X Evolution 2

2. Aplicacin Web
Cree la transaccin Property.

Cree dominio Id Autonumber, Name = Character(30), Operation = Character(1), enumerado, que toma 2 valores: Rent o Sale. Observe los dominios predefinidos y los tipos de datos. La mayora corresponden a dominios semnticos. Qu significa esto? Ingrese regla Default para PropertyListingDate, y regla Error si se deja la direccin vaca. Luego constatar que se disparan tambin en el Smart Device. Cree la transaccin Neighborhood

Haga F5. Se abrir una ventana pidindole que se loguee con su usuario de GXTechnical.

Pgina 5

Prctico Actualizacin a GeneXus X Evolution 2

Luego de logueado, se desplegar el reporte de anlisis de impacto. Ejecute la reorganizacin para crear las tablas en la base de datos (en la nube). Asegrese de tener la ventana de output abierta. En un momento dado ver que va informando la cantidad de kbytes que se van subiendo a la nube.

Al finalizar se abrir el Developer Menu en el navegador, con los links para ingresar propiedades inmobiliarias y vecindarios. Ingrese algunos. Observe el look & feel.

3. Aplicando el Pattern Work With for Smart Devices


Aplique el pattern Work With for Smart Devices a la transaccin Property. Para ello: o Seccin Patterns de la transaccin:

Elegir el patrn apropiado y Apply this pattern on save:

Pgina 6

Prctico Actualizacin a GeneXus X Evolution 2

Familiarcese con los nodos List, Detail y Section(General) de la instancia, viendo en cada caso la pantalla que aparece. Grabe y observe qu pasa con los siguientes elementos: Propiedades de la transaccin: o o o Business Component = True Expose as Web Service = True Web Services Protocol = ReST Protocol

Folder View / Property: aparece subnodo:

Generador para Smart Devices como generador secundario

Si no aparece el path del directorio del SDK de Android, especifquelo (suele ser: C:\Program Files\Android\android-sdk)

Aplique el pattern tambin a la transaccin Neighborhood

Pgina 7

Prctico Actualizacin a GeneXus X Evolution 2

Qu falta para poder probar la aplicacin? Si hace ahora F5, como no tiene ningn objeto main para la parte de Smart Devices de la aplicacin, no tendr qu ejecutar. Por tanto, antes de hacer F5, crear un Dashboard y agregar un tem para invocar al trabajar con Property:

Asciele una imagen a la opcin instructores le proveern):

(puede utilizar la del folder Images/Icons que los

Observe el evento asociado a esta opcin:

Observe que aqu est invocando al Work With de Propiedades recin creado. A qu parte del mismo? Al List. De la misma manera, agregue un tem para invocar al WorkWithDevicesNeighborhood.

Pgina 8

Prctico Actualizacin a GeneXus X Evolution 2

Grabe y observe que la propiedad Main Program est en True. Ahora puede hacer F5 para generar y ejecutar la aplicacin en el emulador.
Notas: Dado que no hemos especificado ningn Startup Object, GeneXus abrir tanto el Developer Menu web en el navegador predeterminado, como el emulador Android, para que podamos probar tanto la aplicacin Web (.Net), como la de Smart Devices (Android). En el Developer Menu, adems de los links para ejecutar los objetos de la aplicacin Web, aparecern QR codes: uno que encapsula la URL para poder ejecutar desde el KBN en el dispositivo que corresponda (a la derecha aparecen links para descargar el KBN de acuerdo a cada plataforma); los otros contendrn la aplicacin para Smart Devices compilada, tanto para Android como para Blackberry. No siempre se crear el archivo compilado. Depender de si se tiene Startup objetc configurado y de la modalidad de ejecucin que se emple (si F5, Run with this only, etc.) En este caso an no tenemos archivo compilado, por lo que aparecen deshabilitados.

Vea ms sobre esto en http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18260

En nuestro caso el emulador est abriendo el KBN (Knowledge Base Navigator) que muestra la URL para ejecutar el dashboard de la aplicacin (nico objeto main que tenemos hasta el momento). Recuerde todo lo estudiado sobre la arquitectura. Aqu no estar ejecutando un compilado, sino un intrprete (el KBN)

Pgina 9

Prctico Actualizacin a GeneXus X Evolution 2

Al hacer tap sobre la URL, se muestra el layout correspondiente al Dashboard:

Haga tap sobre List of Properties o o Observe que aparecen las mismas propiedades que ingres antes cuando ejecut el Developer Menu web (al final de la seccin 2). Observe los atributos que se estn mostrando de cada propiedad. Vaya a GeneXus a buscar en el pattern el Layout de este List, para ver la correspondencia.

Pgina 10

Prctico Actualizacin a GeneXus X Evolution 2

Haga tap sobre una cualquiera de las propiedades listadas, y vea cmo aparece el detalle de la misma (este es el Layout correspondiente al modo View o al Edit?):

Observe qu sucede cuando hace tap sobre el cono que aparece en el campo de direccin (recuerde aquello de los dominios semnticos: con quin se est interactuando para lograr esa funcionalidad? Recuerde uno de los pilares: la integracin con funcionalidades nativas del dispositivo) Vuelva con el botn de back:

Edite la propiedad inmobiliaria que est visualizando (para ello observe el cono que aparece arriba a la derecha)

Pgina 11

Prctico Actualizacin a GeneXus X Evolution 2

Al hacerlo qu Layout se le estar desplegando para esta seccin general del detalle? El del modo View o Edit?

Elimine el contenido del campo de direccin y grabe. Le permiti grabar los cambios? Debera obtener una pantalla como la siguiente:

Cancele.

Pgina 12

Prctico Actualizacin a GeneXus X Evolution 2

Vuelva a intentar modificar la Propiedad Inmobiliaria, pero esta vez sin involucrar regla error. Por ejemplo: modifique la fecha (observe el Date Picker). Modifique la Operacin (de Rent por Sale, o viceversa) y grabe. Ahora vuelva a la List of Properties (con botn back mostrado antes), y visualice el MENU.

Inserte una nueva propiedad.

Observe que: El Id es autonumber, as que no tiene que ingresar valor. Cuando edita el campo Name, automticamente se despliega el teclado. la fecha aparece con el valor que especific en la regla Default de la transaccin, pero, como siempre con esta regla, puede modificarlo. Al hacer tap sobre el campo de la imagen del frente de la propiedad, se le ofrece la posibilidad de tomar una foto con la cmara del dispositivo (en el emulador se podr tomar una imagen ficticia) o seleccionar una de la galera de imgenes.

Pgina 13

Prctico Actualizacin a GeneXus X Evolution 2

o o

Grabe y observe cmo aparece la nueva propiedad en la lista. Filtre las propiedades por Operation (Sale o Rent)

o o

Back, y ahora haga un Search por nombre. Luego haga otro por direccin. Trate de ubicar en el pattern en GeneXus el lugar donde se encuentran especificados estos filtros y searchs.

Ahora vaya a GeneXus, y en lugar de interpretar la aplicacin a travs del KBN, ejecute en el emulador el compilado. Cmo lo haca? o Tiene varias alternativas. Especificar el Dashboard como Startup Object. (botn derecho sobre la pestaa del mismo / Set As Startup Object o Preferences/Ruby Environment, propiedad Startup Object). En el prximo F5 compilar slo la aplicacin que depende de este objeto, es decir, en nuestro caso, slo la aplicacin para Smart Devices cuyo men es el dashboard. No abrir el Developer Menu web, sino slo el Emulador con el dashboard compilado ejecutndose. Hacer botn derecho sobre la pestaa del Dashboard y elegir la opcin Run With this Only. El efecto ser el mismo que en el caso anterior. Elegir esta opcin,

Pgina 14

Prctico Actualizacin a GeneXus X Evolution 2

as el F5 nos sigue generando la aplicacin web y la de Smart Devices interpretada. o Existen ms alternativas. Bsquelas en el wiki.

Recuerde que al compilar, aparecer en el Developer Menu el QR Code correspondiente. Tambin puede obtenerlo mediante View / Show QR Codes.

4. Entidades interrelacionadas
o Observe la instancia del Pattern aplicado a Neighborhood

Relacione las entidades Property y Neighborhood (cada propiedad pertenece a un vecindario) o Para ello agregue en la transaccin Property los atributos NeighborhoodId y NeighborhoodName (permitiendo nulos en NeighborhoodId, de lo contrario le fallar la reorganizacin) y grabe:

Vuelva a observar la instancia del pattern Neighborhood (si lo tena abierto de antes, vulvalo a abrir para refrescarlo). Por qu aparece ese nuevo nodo bajo Detail? Qu significa?

Para corroborar, presione F5, reorganice y consttelo. o Pruebe en el List of Properties: Editar una propiedad para ingresarle el vecindario (observe que se le ofrece elegir el vecindario entre los existentes. Qu Layout se est desplegando para ello?):

Pgina 15

Prctico Actualizacin a GeneXus X Evolution 2

Agrguele de igual modo el vecindario a las dems propiedades que tenga ingresadas (si quiere hacerlo ms rpido, puede realizarlo a travs del Developer Menu web). Vuelva al List of Properties y observe que se agreg un filtro por vecindario. Valo en GeneXus.

Qu Layout se est desplegando para seleccionar el vecindario por el que queremos filtrar? o Verificar:

Pgina 16

Prctico Actualizacin a GeneXus X Evolution 2

A travs del List of Neighborhoods ingresar a uno de los vecindarios y observar las propiedades inmobiliarias.

Hacer tap sobre una de las propiedades listadas. Qu Layout le abri? En la propiedad, detngase en el Neighborhood. Haga tap sobre l y observe la circularidad.

Observe que las dos sections bajo el Detail del pattern correspondiente a Neighborhood aparecen como tabs. Dnde se configura esta opcin? (vaya al Layout del Detail y observe el control <All Sections Control>) . Cmo consigue que los tabs tengan imgenes? (si est ejecutando el KBN, puede que tenga que dar back y volver a entrar, para ver las imgenes):

Pgina 17

Prctico Actualizacin a GeneXus X Evolution 2

Una vez hecho este recorrido, ya hemos reconocido a un nivel bsico dnde est cada cosa y cmo funciona. Estamos en condiciones de pasar a la siguiente etapa: personalizar.

5. Personalizando el Pattern Devices [avanzado]


Editando el List
o

Work

With

for

Smart

Editar el Layout del List del WorkWithDevicesProperty y agregar el atributo PropertyAddress. El Layout deber quedar como se muestra (para quitarle el Label qu propiedad del control atributo debe modificar?)

o o

Ejecutar la aplicacin presionando F5 y verificar los cambios realizados. Y si quiere que la columna de la izquierda (la de la foto) ocupe el 30% de la pantalla?

Pgina 18

Prctico Actualizacin a GeneXus X Evolution 2

Si lo desea, expanda la imagen para ocupar las dos filas. Pruebe todo lo modificado.

En el Grid del List, configurar la propiedad Control Type = SD Image Gallery, ingresando como Data Attribute el que contiene la foto (PropertyFrontImage) y si lo desea, en la propiedad Title Attribute puede especificarle el atributo PropertyName y en Subtitle Attribute, NeighborhoodName.

Pgina 19

Prctico Actualizacin a GeneXus X Evolution 2

Ejecutar la aplicacin (F5) y observar el cambio en la visualizacin de la lista de propiedades inmobiliarias. Desplcese por las propiedades, y elija ver el detalle de alguna.

Deshacer lo hecho, volviendo al listado default del grid (por lneas).

Editando el Detail
o Se desea que cuando se est visualizando una propiedad inmobiliaria, no se muestren los ids (PropertyId, NeighborhoodId), y que stos slo se muestren cuando se est en Edit. A su vez, en Edit no se desea mostrar el NeighborhoodName. Implemntelo.

Pgina 20

Prctico Actualizacin a GeneXus X Evolution 2

o o

Ejecutar la aplicacin presionando F5 y verificar los cambios realizados. Observe que el nombre aparece dos veces. Por qu? Qutelo del Layout del nodo Detail.

Vuelva al Section(General) / View. Agregue un Layout, para plataforma Android. Observe que puede inicializar el nuevo Layout con uno igual al que estaba trabajando antes (el por default: Any Platform, Any Size, View, Any Orientation) o el de Edit, o inicializarlo vaco. Elija la opcin que se presenta en la siguiente imagen y haga clic donde se indica click here.

Pgina 21

Prctico Actualizacin a GeneXus X Evolution 2

Observe las diferencias en la ubicacin de las etiquetas. Por qu y dnde est configurada esta propiedad? (posicinese sobre cualquier atributo del Layout y observe el valor de la propiedad Label Position. Qu puede inferir acerca del default de la plataforma Android para Any Size?

Pgina 22

Prctico Actualizacin a GeneXus X Evolution 2

Haga algn cambio en este Layout para Andoid (por ejemplo, mover la imagen para arriba) y observe el cambio en ejecucin (dado que estamos generando para Android, si estuviramos generando para iPad o Blackberry, qu Layout se mostrara?):

Ahora edite el pattern Work With for Smart Devices de Neighborhood. Observe las diferencias entre el Layout de Section(General) y el de Section(Property).

o o

Note que mientras el Layout de Section(General) ser plano, el de Section(Property) contendr un grid para mostrar las propiedades. Observe ahora el nodo Detail y las propiedades del control que aparece por defecto <All Sections Content>:

o o

Qu significa la propiedad Display? Observe que los valores que ofrece son, adems de Platform Default, Tab, Inline y Link. Cmo hara para que la lista de propiedades inmobiliarias del vecindario se mostrara en lugar de como tab, como un link?

Pgina 23

Prctico Actualizacin a GeneXus X Evolution 2

Nota: Recuerde que para que pueda manipular los contenedores de secciones individualmente, deber eliminar <All Sections Content> del Layout, tras lo cual aparecer en la toolbox junto con un contenedor por cada seccin.

Observe en la solapa Style que no est mostrando la Section Property Por qu? Observe la propiedad Rows Style de las columnas. Modifique el tamao de las filas como se muestra (hemos quitado el atributo NeighborhoodName):

[OPCIONAL] Agregue a la estructura de la transaccin Neighborhood un atributo NeighborhoodInfo de tipo de datos Varchar(1024). Observe que automticamente el atributo se agrega al Layout de Section(General). Elimnelo. [OPCIONAL] Posicinese sobre el nodo Detail y con botn derecho haga AddSection. Observe cmo se agregar una nueva seccin (Section Code ser el nombre, que no puede contener espacios). Su Layout se crea vaco. [OPCIONAL] Inserte all un text block y el atributo NeighborhoodInfo recin creado cambindole la propiedad AutoGrow a True. Debe lucir:

Pgina 24

Prctico Actualizacin a GeneXus X Evolution 2

o o

[OPCIONAL] Agregue a la seccin la regla Parm para que se filtre por el vecindario. [OPCIONAL] Observe el nodo Detail. No fue agregada la nueva seccin automticamente. Por qu? Observe que el control Section se encuentra en la Toolbox para poder ser utilizado. [OPCIONAL] Pruebe agregar un control Tab, configurando los Captions de los tems de la siguiente manera y arrastre a cada tem el control <Section> correspondiente. Asciele una imagen a cada tem del tab control:

Nota: asegrese que la fila que contiene al tab control ocupe el 100% de la pantalla.

[OPCIONAL] Prubelo en ejecucin.

Pgina 25

Prctico Actualizacin a GeneXus X Evolution 2

[OPCIONAL] Y si desea que las propiedades aparezcan como un link, pero dentro de la informacin presentada en el tab General?

Nota: Recuerde editar las propiedades de la tabla interna al tab General, para que entre toda la informacin en la pantalla. Por ejemplo:

[OPCIONAL] Dado que en el Layout de Section (Property) se encuentra un grid, pueden utilizarse para la visualizacin los mismos User Controls vistos para el List. o Agregue un atributo PropertyGeolocation a la estructura de la transaccin Property, para almacenar la longitud y latitud de la propiedad inmobiliaria. Obsrvese que asumir como tipo de datos el dominio semntico Geolocation. Luego vaya al Section(Property) del Work With para Neighborhood y en el grid modifique la propiedad Control Type, a SD Maps, especificando el atributo PropertyGeolocation como el Location attribute.

Pgina 26

Prctico Actualizacin a GeneXus X Evolution 2

Haga F5 (tendr que reorganizar). Asigne Geolocations a las propiedades que tiene ingresadas (puede utilizar google maps para obtener latitud y longitud de las direcciones) y pruebe lo realizado.

Observe que haciendo tap sobre una de las ubicaciones, se muestran los datos del grid, y si se hace tap sobre esta informacin, se muestra todo el detalle.

Themes
[OPCIONAL] Si dan los tiempos (consulte al instructor), puede probar la utilizacin de themes en su aplicacin. Los Layouts con los que hemos trabajado hasta el momento, no permitan configurar aspectos de diseo de los controles. Para poder hacerlo, tenemos los themes. Para ello: o o Modifique el theme predeterminado para Android SimpleAndroid Cree una subclase del nodo Attribute, con el nombre que desee, y modifquele alguna propiedad, como mostramos (luego grabe):

Pgina 27

Prctico Actualizacin a GeneXus X Evolution 2

Observe que en el Folder View tenemos bajo el nodo Customization, propiedades a configurar para cada plataforma de Smart Devices posible:

Las mismas propiedades se encuentran bajo Preferences/Patterns, en una instancia que configura las propiedades de los Work With for Smart Devices. Para cada nodo bajo Platforms, tendr la posibilidad de configurar un theme diferente.

Pgina 28

Prctico Actualizacin a GeneXus X Evolution 2

Y si quisiera un diseo diferente cuando se trata de tabletas de 7, de 10 o de telfonos? Si tiene un theme configurado para Any Platform y uno para Any Android y usted est generando para Android, cul tomar la aplicacin?

Ahora querr configurar que cuando se est visualizando una propiedad inmobiliaria (Detail), el nombre de la misma salga amarillo. Vaya a Section(General) y elija para el atributo PropertyName la clase YellowAttribute (asegrese de estar en el Layout para Android y no para Any Platform).

Prubelo en ejecucin:

Pgina 29

Prctico Actualizacin a GeneXus X Evolution 2

Agregando rdenes y Filtros


o Agregar un Order al WorkWithDevicesProperty, para que el usuario pueda elegir si mostrar las propiedades inmobiliarias ordenadas por nombre, o por vecindario. Para ello: o Seleccionar la pestaa Conditions dentro del List:

Agregar un Orden por el atributo NeighborhoodName:

Pgina 30

Prctico Actualizacin a GeneXus X Evolution 2

Dar F5 y probar en ejecucin, bajo la opcin de filter.

Ahora modificar un poco lo anterior, y mostrar las Propiedades agrupadas por vecindario. Para ello, edite:

Y en ejecucin, elija en Filter ordenar por Neighborhood, observando el resultado.

Pgina 31

Prctico Actualizacin a GeneXus X Evolution 2

Agregando Acciones
o Volver a GeneXus, y crear la transaccin PropertyAppointment para agendar visitas de posibles clientes, a la propiedad con la estructura que se muestra (podemos crear un ndice de usuario unique con los atributos PropertyId, PropertyAppointmentDate y PropertyAppointmentTime, para indicar que conforman una clave candidata). Veamos que se registran los datos del prospect que realizar la visita en la fecha y hora fijadas:

Aplicarle el Work With for Smart Devices a la transaccin PropertyAppointment y verificar que se aade al WorkWithDevicesProperty la Section(Property Appointment)

Observe en el List la Action Bar, y con botn derecho sobre el botn Insert, vaya a ver la programacin del evento. A quin se est invocando?

Pgina 32

Prctico Actualizacin a GeneXus X Evolution 2

Ahora vaya al nodo Section(PropertyAppointment). Aqu se mostrar una lista de appointments agendadas para la propiedad seleccionada.

Observe que la Action Bar est vaca y que tampoco dentro del Layout existen botones. Aqu no se est ofreciendo la posibilidad de insertar una nueva visita (appointment): slo se listan las visitas preexistentes de esa propiedad. Si quiere agregar o quitar atributos del Layout, hgalo. Tambin puede asociarle una imagen a cada Section (observe entre sus propiedades, la Image) y acortar el Caption de la seccin para que no sea tan largo (por ejemplo: Appointments). Para comprobar el comportamiento, haga F5 (reorganice). Ingrese algunas visitas a travs del Developer Menu web y pruebe en el emulador que esas visitas aparecen listadas para la propiedad correspondiente.

Pgina 33

Prctico Actualizacin a GeneXus X Evolution 2

Observe que sin programar nada, al hacer tap sobre una de las visitas desplegadas, se visualiza su informacin (utilizando el Layout de WorkWith de PropertyAppointment correspondiente). Esta ser la accin por defecto (Default Action). En la pantalla que sigue se ve este Layout personalizado.

Observe tambin que el atributo elegido como descriptor es el que se muestra en este Layout arriba del todo (en nuestro caso, la fecha de la appointment). Puede cambiarlo por el apellido del prospect (propiedad Caption del nodo Detail). Observe lo que sucede automticamente con el telfono (est utilizando la funcionalidad nativa del dispositivo)

Pgina 34

Prctico Actualizacin a GeneXus X Evolution 2

Agrguele al nodo Section(PropertyAppointment) del Work With de Property, una nueva accin que permita insertar una nueva visita para esa propiedad. Para ello: o o Botn derecho sobre la Action Bar/ Insert Action Ingrese el nombre de la accin (e.g. AddAppointment). Observe que el botn por default adquiere el mismo caption que la accin, pero puede cambiarlo, as como la prioridad (al cambiarlo a High, el botn aparecer siempre visible).

A quin debe invocar la accin? En qu modo? Para ello deber ir a la seccin Events:

Necesita invocar al Detail del Work With de PropertyAppointment, en modo Insert. Para ello:

Necesitamos enviarle como parmetro PropertyId. Para ello debemos cargar una variable BC de tipo PropertyAppointment y pasarla por parmetro.

Pgina 35

Prctico Actualizacin a GeneXus X Evolution 2

Prubelo. F5. Ingrese una nueva visita.

Ahora queremos interactuar con algunas funcionalidades del dispositivo. Por ejemplo, queremos que al hacer Save de una nueva visita, se ingresen los datos del prospect en la libreta de direcciones. Para ello: o Como va a establecer una secuencia de acciones, deber agregar el comando Composite. Puede arrastrar el objeto AddressBook del folder SmartDevicesApi o tipearlo. Utilizaremos su mtodo AddContact. Observe los parmetros que recibe.

Recuerde que los parmetros son posicionales y obligatorios, por lo que si no tiene un parmetro, deber especificarlo de todos modos, con valor vaco.

Haga F5 e intente ingresar una nueva visita.

Pgina 36

Prctico Actualizacin a GeneXus X Evolution 2

Luego de salvar la visita, se le abrir la aplicacin de contactos:

Si cuenta con un dispositivo (el emulador no contiene Calendar), podra tambin agendar la visita en el calendario del dispositivo.

6. Paneles para pedir datos al usuario [avanzado]


o Queremos poder listar solamente las visitas agendadas para un da determinado. Por lo que necesitamos que el usuario ingrese esa fecha y entonces proceder a mostrar las visitas. Para ello: Cree un objeto del tipo Panel for Smart Devices de nombre AskDate. Agregue una variable &appointmentDate y luego insrtela en el Layout (asegrese que la propiedad Readonly quede en False, de manera tal que el usuario pueda ingresar valor para la misma) A su lado haga botn derecho e ingrese una nueva accin (vea cmo el botn quedar dentro del Layout, esta vez).

o o

Pgina 37

Prctico Actualizacin a GeneXus X Evolution 2

A quin invocar esta accin? Al Work With for Smart Devices de la transaccin PropertyAppointment? Si invocamos a este panel, vamos a tener que modificarlo, para que ahora reciba un parmetro: la fecha. Si no deseamos hacerlo, entonces una posibilidad es crear un Level paralelo en el Work With de PropertyAppointment. Hagmoslo:

Creamos ese nuevo Level con un nodo List, que es en el que disearemos el Layout para este caso.

Pgina 38

Prctico Actualizacin a GeneXus X Evolution 2

Y especificamos parm(PropertyAppointmentDate);
Nota: adems, hemos agregado un order por PropertyName, PropertyAppointmentTime, con un break by PropertyName, as nos salen agrupadas las visitas por propiedad; y hemos personalizado el Layout, para que nos salga la informacin as:

Qu nos resta? Ir al panel que permite ingresar una fecha, y en el evento asociado a la accin invocar al Level que acabamos de crear, pasndole el parmetro &appointmentDate (la variable)

La invocacin quedar:

Pgina 39

Prctico Actualizacin a GeneXus X Evolution 2

Agregue al Dashboard este panel:

As, podremos ver en ejecucin lo deseado:

Pgina 40

Prctico Actualizacin a GeneXus X Evolution 2

7. Ejecucin en el dispositivo [opcional]


o

Si cuenta con un dispositivo Android, especifique al dashboard como Startup Object y haga F5, o directamente haga botn derecho sobre la pestaa del dashboard y Run With This Only. Haga View/Show QR Codes. Ejecute la aplicacin Barcode Scanner de su dispositivo y realice la lectura del Cdigo QR, que aparece (que contiene codificada la URL del compilado donde fue subida la aplicacin Smart Device en la nube). Automticamente se descargar el compilado en su dispositivo y podr instalarlo y ejecutar.

Pgina 41

Prctico Actualizacin a GeneXus X Evolution 2

8. GAM [opcional]
o Antes de proseguir, congele la versin actual de desarrollo, para tener un respaldo del estado actual de la KB. View/Versions. (View/Freeze sobre la versin).

Incorporar el GeneXus Access Manager (GAM) para obtener un control de acceso automtico. Para ello:

Configure la propiedad Enable Integrated Security en True, presione Yes:

Pgina 42

Prctico Actualizacin a GeneXus X Evolution 2

Observe las propiedades que se abren:

Observe todo lo que se importa en la KB tras el cambio anterior (en el Folder View encontrar dos nuevas carpetas).

Pgina 43

Prctico Actualizacin a GeneXus X Evolution 2

o o

Qu objetos son los que se configuran automticamente en las propiedades Login Object for Web y Login Object for SD en las propiedades mostradas ms arriba? Haga Rebuild All y luego F5. Confirme que desea crear la base de datos del GAM:

Al ejecutar la aplicacin en el Smart Device, ingrese los siguientes datos para la conexin: usuario: admin password: admin123

Vaya al Developer Menu, e intente ejecutar una transaccin. No podr, sin pasar antes por el Login. Prubelo.

Pgina 44

Prctico Actualizacin a GeneXus X Evolution 2

Desde el Developer Menu ejecute el Web panel GAM Home y observe el Backend para administrar la seguridad:

Si slo quisiera que algunos objetos fueran seguros, pero no todos, cmo hara?

9. Generando para otras plataformas [opcional]


Genere la aplicacin ahora para Blackberry. Para ello, en nuestro Wiki encontrar los prerrequisitos y un ejemplo de ejecucin de una aplicacin para Blackberry. http://wiki.gxtechnical.com/commwiki/servlet/hwiki?BlackBerry+Requirements,

http://wiki.gxtechnical.com/commwiki/servlet/hwiki?My+First+BlackBerry+Application,

Entre las propiedades del generador para Smart Devices, ingrese las siguiente propiedades: o o Generate Android = false Generate BlackBerry = true

Corremos la aplicacin y vemos cmo GeneXus levanta en esta instancia el emulador de BlackBerry. En este caso notaremos que la aplicacin no corre automticamente en el emulador.

Pgina 45

Prctico Actualizacin a GeneXus X Evolution 2

Para ejecutarla seguir las instrucciones:

1. Presionar el botn Men del emulador, indicado abajo por la flecha. 2. Localizar el Icono Downloads, y clickearlo. 3. Como ha efectuado un Rebuild All, tiene la aplicacin compilada para blackberry. Puede elegir ejecutarla, RealEstateApplication, o, puede utilizar el KBN (verlo en la pantalla ms a la derecha), al igual que lo hizo con Android.

4. Loguearse y ejecutar la aplicacin.

Si cuenta con un dispositivo iOS, puede probar la aplicacin en l. Para ello, vea nuestra documentacin:

http://wiki.gxtechnical.com/commwiki/servlet/hwiki?My+First+Apple+Application

Pgina 46

Prctico Actualizacin a GeneXus X Evolution 2

1. Descrguese el KBN en su dispositivo. Recuerde que haciendo en GeneXus View/Show QR Codes:

2. Ejectelo y loguese con su usuario de GXTechnical. Luego, si accede desde cualquier navegador a su cuenta de GxTechnical, ver que en el tab Associated Smart Devices, aparecern todos los dispositivos en los cules haya implementado este procedimiento.

3. Vaya a GeneXus, y en las propiedades del generador Smart Devices especifique que desea que la aplicacin se genere ahora en iOS (poniendo en False Blackberry).

Pgina 47

Prctico Actualizacin a GeneXus X Evolution 2

En Execution Type elija el KBN, con lo cul deber elegir el dispositivo que tiene asociado a su cuenta, como se muestra.

En el ejemplo, hemos elegido el dispositivo llamado Test-iPad.

4. Ahora slo deber regenerar la aplicacin y hacer F5. Aparecer en el dispositivo Test-iPad la siguiente notificacin, tras lo cul podr ejecutar la aplicacin.

Pgina 48

Prctico Actualizacin a GeneXus X Evolution 2

Pgina 49

Prctico Actualizacin a GeneXus X Evolution 2

10.

Glosario

Adems de los videos en nuestro sitio de capacitacin (http://training.genexus.com/cursos/todos-los-cursos?es), encontrar diversa documentacin en nuestro Wiki:

My First BlackBerry Application


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?My+First+BlackBerry+Application,

My First Apple Application


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?My+first+Apple+Application,

My First Android Application


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?My+First+Android+Application,

Applying Work With Pattern for Smart Devices


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Applying+Work+With+Pattern+for+Smart+Devices,

Knowledge Base Navigator


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Knowledge+Base+Navigator,

Dashboard Object
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Dashboard+Object,

Panel for Smart Devices Object


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?HowTo%3A+Defining+Panels+in+Smart+Devices,

Orders & Group By


http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Ordering+Lists+in+Smart+Devices,

Pgina 50