You are on page 1of 51

Smart Devices & GAM

Práctico

Octubre de 2012

Práctico – Actualización 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 explícito de Artech Consultores S.R.L. La información 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 demás marcas mencionadas en este documento son propiedad de sus respectivos dueños.

Página 1

Práctico – Actualización a GeneXus X Evolution 2

1. 2. 3. 4. 5.

Primeros pasos .................................................................................................................3 Aplicación 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 Ejecución en el dispositivo [opcional]................................................................................. 41 GAM [opcional] ............................................................................................................... 42 Generando para otras plataformas [opcional] ..................................................................... 45 Glosario ......................................................................................................................... 50

Página 2

Práctico – Actualización a GeneXus X Evolution 2

1. Primeros pasos
A lo largo de este práctico desarrollaremos una aplicación para una Inmobiliaria, haciendo foco en la parte para Smart Devices. Prototiparemos por simplicidad en Android, pero al final probará la aplicación también en el emulador de Blackberry. Si tiene algún dispositivo (Android, BlackBerry o iOS) podrá probar la aplicación en él. Si usted:  Sólo desea experimentar lo básico: o o o  no realice los puntos identificados como “[avanzado]”. Si además quiere probar el módulo de seguridad (GAM), una vez finalizado lo básico, pase al punto 8. Si además desea probar lo hecho también en Blackberry e iOS realice el punto 9.

No cuenta con algún dispositivo, saltéese las partes del práctico que lo requieren (son opcionales).

En nuestro sitio de capacitación encontrará videos que tratan todos estos temas:   Básico (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 práctico la versión Trial de GeneXus X Ev2. Por esta razón ud. no podrá elegir prototipar en otro environment distinto de .Net, ni hacerlo local (automáticamente se prototipará en la nube). Si cuenta con una versión 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:

Página 3

Práctico – Actualización 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 versión full, la URL que vería sería: http://apps3.genexusx.com.

3) Observe las propiedades del Data Store Default.

Página 4

La mayoría corresponden a dominios semánticos. Luego constatará que se disparan también en el Smart Device. ¿Qué significa esto? Ingrese regla “Default” para PropertyListingDate. Página 5 .Práctico – Actualización a GeneXus X Evolution 2 2. Se abrirá una ventana pidiéndole que se loguee con su usuario de GXTechnical. y regla “Error” si se deja la dirección vacía. que toma 2 valores: Rent o Sale. Name = Character(30). Operation = Character(1).  Cree la transacción Neighborhood  Haga F5. Cree dominio Id Autonumber. enumerado. Aplicación Web  Cree la transacción Property. Observe los dominios predefinidos y los tipos de datos.

3. En un momento dado verá que va informando la cantidad de kbytes que se van subiendo a la nube. Observe el look & feel. Ingrese algunos. Ejecute la reorganización para crear las tablas en la base de datos (en la nube). se desplegará el reporte de análisis de impacto.  Al finalizar se abrirá el Developer Menu en el navegador. con los links para ingresar propiedades inmobiliarias y vecindarios. Aplicando el Pattern Work With for Smart Devices  Aplique el pattern “Work With for Smart Devices” a la transacción Property. Asegúrese de tener la ventana de output abierta.Práctico – Actualización a GeneXus X Evolution 2  Luego de logueado. Para ello: o Sección Patterns de la transacción: o Elegir el patrón apropiado y “Apply this pattern on save”: Página 6 .

especifíquelo (suele ser: C:\Program Files\Android\android-sdk)  Aplique el pattern también a la transacción Neighborhood Página 7 .Práctico – Actualización a GeneXus X Evolution 2   Familiarícese con los nodos List. viendo en cada caso la pantalla que aparece. Grabe y observe qué pasa con los siguientes elementos:  Propiedades de la transacción: 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. Detail y Section(General) de la instancia.

no tendrá qué ejecutar.Práctico – Actualización a GeneXus X Evolution 2  ¿Qué falta para poder probar la aplicación? Si hace ahora F5. como no tiene ningún objeto main para la parte de Smart Devices de la aplicación.  De la misma manera. Página 8 . agregue un ítem para invocar al WorkWithDevicesNeighborhood. crear un Dashboard y agregar un ítem para invocar al “trabajar con” Property: o Asóciele una imagen a la opción instructores le proveerán): (puede utilizar la del folder Images/Icons que los o Observe el evento asociado a esta opción: Observe que aquí está invocando al Work With de Propiedades recién creado. Por tanto. ¿A qué parte del mismo? Al List. antes de hacer F5.

Dependerá de si se tiene “Startup objetc” configurado y de la modalidad de ejecución que se empleó (si F5. En el Developer Menu. como el emulador Android. por lo que aparecen deshabilitados. Recuerde todo lo estudiado sobre la arquitectura. tanto para Android como para Blackberry.gxtechnical. los otros contendrán la aplicación para Smart Devices compilada.) En este caso aún no tenemos archivo compilado.Net). Ahora puede hacer F5 para generar y ejecutar la aplicación en el emulador. Aquí no estará ejecutando un compilado. como la de Smart Devices (Android). No siempre se creará el archivo compilado.Práctico – Actualización a GeneXus X Evolution 2  Grabe y observe que la propiedad Main Program está en “True”. Notas:  Dado que no hemos especificado ningún “Startup Object”. aparecerán 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).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 aplicación (único objeto main que tenemos hasta el momento). además de los links para ejecutar los objetos de la aplicación Web. Run with this only. para que podamos probar tanto la aplicación Web (. GeneXus abrirá tanto el Developer Menu web en el navegador predeterminado. sino un intérprete (el KBN) Página 9 .  Vea más sobre esto en http://wiki. etc.

Página 10 . Vaya a GeneXus a buscar en el pattern el Layout de este List.Práctico – Actualización 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 sección 2). Observe los atributos que se están mostrando de cada propiedad. para ver la correspondencia.

y vea cómo aparece el detalle de la misma (¿este es el Layout correspondiente al modo View o al Edit?): o Observe qué sucede cuando hace tap sobre el ícono que aparece en el campo de dirección (recuerde aquello de los dominios semánticos: ¿con quién se está interactuando para lograr esa funcionalidad? Recuerde uno de los pilares: la integración con funcionalidades nativas del dispositivo) Vuelva con el botón de back: o o Edite la propiedad inmobiliaria que está visualizando (para ello observe el ícono que aparece arriba a la derecha) Página 11 .Práctico – Actualización a GeneXus X Evolution 2 o Haga tap sobre una cualquiera de las propiedades listadas.

¿Le permitió grabar los cambios? Debería obtener una pantalla como la siguiente: o Cancele. Página 12 .Práctico – Actualización a GeneXus X Evolution 2 Al hacerlo ¿qué Layout se le estará desplegando para esta sección general del detalle? ¿El del modo View o Edit? o Elimine el contenido del campo de dirección y grabe.

Página 13 . y visualice el MENU. Al hacer tap sobre el campo de la imagen del frente de la propiedad. Ahora vuelva a la “List of Properties” (con botón back mostrado antes). puede modificarlo. o o Inserte una nueva propiedad. pero. se le ofrece la posibilidad de tomar una foto con la cámara del dispositivo (en el emulador se podrá tomar una imagen ficticia) o seleccionar una de la galería de imágenes. la fecha aparece con el valor que especificó en la regla Default de la transacción. Observe que:     El Id es autonumber. como siempre con esta regla. Por ejemplo: modifique la fecha (observe el Date Picker). así que no tiene que ingresar valor. automáticamente se despliega el teclado. Cuando edita el campo Name.Práctico – Actualización a GeneXus X Evolution 2 o Vuelva a intentar modificar la Propiedad Inmobiliaria. pero esta vez sin involucrar regla error. Modifique la Operación (de Rent por Sale. o viceversa) y grabe.

El efecto será el mismo que en el caso anterior. propiedad “Startup Object”). sólo la aplicación para Smart Devices cuyo menú es el dashboard. es decir. Trate de ubicar en el pattern en GeneXus el lugar donde se encuentran especificados estos filtros y searchs. En el próximo F5 compilará sólo la aplicación que depende de este objeto.  Página 14 . Luego haga otro por dirección. en nuestro caso. ejecute en el emulador el compilado. Filtre las propiedades por Operation (Sale o Rent) o o Back. Elegir esta opción.Práctico – Actualización a GeneXus X Evolution 2 o o Grabe y observe cómo aparece la nueva propiedad en la lista. Hacer botón derecho sobre la pestaña del Dashboard y elegir la opción “Run With this Only”. y ahora haga un Search por nombre.  Especificar el Dashboard como Startup Object. No abrirá el Developer Menu web.  Ahora vaya a GeneXus. y en lugar de interpretar la aplicación a través del KBN. sino sólo el Emulador con el dashboard compilado ejecutándose. ¿Cómo lo hacía? o Tiene varias alternativas. (botón derecho sobre la pestaña del mismo / Set As Startup Object o Preferences/Ruby Environment.

aparecerá en el Developer Menu el QR Code correspondiente. 4. Búsquelas en el wiki. de lo contrario le fallará la reorganización) y grabe: o Vuelva a observar la instancia del pattern Neighborhood (si lo tenía abierto de antes. Recuerde que al compilar.  o Existen más alternativas. reorganice y constátelo. Entidades interrelacionadas o Observe la instancia del Pattern aplicado a Neighborhood o Relacione las entidades Property y Neighborhood (cada propiedad pertenece a un vecindario) o Para ello agregue en la transacción Property los atributos NeighborhoodId y NeighborhoodName (permitiendo nulos en NeighborhoodId. ¿Por qué aparece ese nuevo nodo bajo Detail? ¿Qué significa? o Para corroborar. vuélvalo a abrir para refrescarlo).Práctico – Actualización a GeneXus X Evolution 2 así el F5 nos sigue generando la aplicación web y la de Smart Devices interpretada. ¿Qué Layout se está desplegando para ello?): Página 15 . También puede obtenerlo mediante View / Show QR Codes. 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. presione F5.

puede realizarlo a través del Developer Menu web).  ¿Qué Layout se está desplegando para seleccionar el vecindario por el que queremos filtrar? o Verificar: Página 16 . Vuelva al “List of Properties” y observe que se agregó un filtro por vecindario.Práctico – Actualización a GeneXus X Evolution 2  Agréguele de igual modo el vecindario a las demás propiedades que tenga ingresadas (si quiere hacerlo más rápido. Véalo en GeneXus.

  Hacer tap sobre una de las propiedades listadas. Haga tap sobre él y observe la circularidad. ¿Cómo consigue que los tabs tengan imágenes? (si está ejecutando el KBN.Práctico – Actualización a GeneXus X Evolution 2  A través del “List of Neighborhoods” ingresar a uno de los vecindarios y observar las propiedades inmobiliarias. para ver las imágenes): Página 17 . ¿Dónde se configura esta opción? (vaya al Layout del Detail y observe el control “<All Sections Control>”) .  Observe que las dos sections bajo el Detail del pattern correspondiente a Neighborhood aparecen como tabs. puede que tenga que dar “back” y volver a entrar. deténgase en el Neighborhood. ¿Qué Layout le abrió? En la propiedad.

¿Y si quiere que la columna de la izquierda (la de la foto) ocupe el 30% de la pantalla? Página 18 . El Layout deberá quedar como se muestra (para quitarle el Label ¿qué propiedad del control atributo debe modificar?) o o Ejecutar la aplicación presionando F5 y verificar los cambios realizados. 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.Práctico – Actualización a GeneXus X Evolution 2 Una vez hecho este recorrido. 5. Estamos en condiciones de pasar a la siguiente etapa: personalizar. ya hemos reconocido a un nivel básico dónde está cada cosa y cómo funciona.

en la propiedad Title Attribute puede especificarle el atributo PropertyName y en Subtitle Attribute. expanda la imagen para ocupar las dos filas. Página 19 . Pruebe todo lo modificado. ingresando como Data Attribute el que contiene la foto (PropertyFrontImage) y si lo desea. NeighborhoodName. configurar la propiedad Control Type = SD Image Gallery. o En el Grid del List.Práctico – Actualización a GeneXus X Evolution 2 o Si lo desea.

NeighborhoodId). Página 20 . y elija ver el detalle de alguna.Práctico – Actualización a GeneXus X Evolution 2 o Ejecutar la aplicación (F5) y observar el cambio en la visualización de la lista de propiedades inmobiliarias. no se muestren los ids (PropertyId. y que éstos sólo se muestren cuando se está en Edit. Editando el Detail o Se desea que cuando se está visualizando una propiedad inmobiliaria. A su vez. volviendo al listado default del grid (por líneas). Impleméntelo. en Edit no se desea mostrar el NeighborhoodName. o Deshacer lo hecho. Desplácese por las propiedades.

Página 21 . View. para plataforma Android. o Vuelva al Section(General) / View.Práctico – Actualización a GeneXus X Evolution 2 o o Ejecutar la aplicación presionando F5 y verificar los cambios realizados. o inicializarlo vacío. ¿Por qué? Quítelo del Layout del nodo Detail. Agregue un Layout. Observe que el nombre aparece dos veces. Any Orientation) o el de Edit. Any Size. Observe que puede inicializar el nuevo Layout con uno igual al que estaba trabajando antes (el por default: Any Platform. Elija la opción que se presenta en la siguiente imagen y haga clic donde se indica “click here”.

¿Qué puede inferir acerca del default de la plataforma “Android” para “Any Size”? Página 22 . ¿Por qué y dónde está configurada esta propiedad? (posiciónese sobre cualquier atributo del Layout y observe el valor de la propiedad Label Position.Práctico – Actualización a GeneXus X Evolution 2 o Observe las diferencias en la ubicación de las etiquetas.

si estuviéramos generando para iPad o Blackberry. Tab. ¿qué Layout se mostraría?): o Ahora edite el pattern “Work With for Smart Devices” de Neighborhood. Inline y Link. o o Note que mientras el Layout de Section(General) será plano. mover la imagen para arriba) y observe el cambio en ejecución (dado que estamos generando para Android. 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. ―además de Platform Default―. como un link? Página 23 .Práctico – Actualización a GeneXus X Evolution 2 o Haga algún cambio en este Layout para Andoid (por ejemplo. Observe las diferencias entre el Layout de Section(General) y el de Section(Property). ¿Cómo haría para que la lista de propiedades inmobiliarias del vecindario se mostrara en lugar de como tab. el de Section(Property) contendrá un grid para mostrar las propiedades.

deberá eliminar <All Sections Content> del Layout. Su Layout se crea vacío. que no puede contener espacios). Modifique el tamaño de las filas como se muestra (hemos quitado el atributo NeighborhoodName): o [OPCIONAL] Agregue a la estructura de la transacción Neighborhood un atributo NeighborhoodInfo de tipo de datos Varchar(1024). o Observe en la solapa Style que no está mostrando la Section Property ¿Por qué? Observe la propiedad Rows Style de las columnas. [OPCIONAL] Posiciónese sobre el nodo Detail y con botón derecho haga AddSection.Práctico – Actualización a GeneXus X Evolution 2 Nota: Recuerde que para que pueda manipular los contenedores de secciones individualmente. tras lo cual aparecerá en la toolbox junto con un contenedor por cada sección. Debe lucir: o o Página 24 . [OPCIONAL] Inserte allí un text block y el atributo NeighborhoodInfo recién creado cambiándole la propiedad AutoGrow a True. Elimínelo. Observe que automáticamente el atributo se agrega al Layout de Section(General). Observe cómo se agregará una nueva sección (Section Code será el nombre.

¿Por qué? Observe que el control Section se encuentra en la Toolbox para poder ser utilizado. No fue agregada la nueva sección automáticamente. Asóciele una imagen a cada ítem del tab control: o Nota: asegúrese que la fila que contiene al tab control ocupe el 100% de la pantalla. o [OPCIONAL] Pruébelo en ejecución. configurando los Captions de los ítems de la siguiente manera y arrastre a cada ítem el control <Section> correspondiente. [OPCIONAL] Observe el nodo Detail. [OPCIONAL] Pruebe agregar un control Tab.Práctico – Actualización a GeneXus X Evolution 2 o o [OPCIONAL] Agregue a la sección la regla Parm para que se filtre por el vecindario. Página 25 .

pueden utilizarse para la visualización los mismos User Controls vistos para el List. especificando el atributo PropertyGeolocation como el “Location attribute”. Por ejemplo: o [OPCIONAL] Dado que en el Layout de Section (Property) se encuentra un grid. Obsérvese que asumirá como tipo de datos el dominio semántico Geolocation.Práctico – Actualización a GeneXus X Evolution 2 o [OPCIONAL] ¿Y si desea que las propiedades aparezcan como un link. para que entre toda la información en la pantalla. Luego vaya al Section(Property) del Work With para Neighborhood y en el grid modifique la propiedad Control Type. a SD Maps. pero dentro de la información presentada en el tab General? Nota: Recuerde editar las propiedades de la tabla interna al tab General. o Agregue un atributo PropertyGeolocation a la estructura de la transacción Property. para almacenar la longitud y latitud de la propiedad inmobiliaria. o Página 26 .

Asigne Geolocations a las propiedades que tiene ingresadas (puede utilizar google maps para obtener latitud y longitud de las direcciones) y pruebe lo realizado. no permitían configurar aspectos de diseño de los controles. puede probar la utilización de themes en su aplicación. como mostramos (luego grabe): Página 27 . Los Layouts con los que hemos trabajado hasta el momento. y si se hace tap sobre esta información. y modifíquele alguna propiedad. Themes [OPCIONAL] Si dan los tiempos (consulte al instructor). Para ello: o o Modifique el theme predeterminado para Android “SimpleAndroid” Cree una subclase del nodo Attribute. Observe que haciendo tap sobre una de las ubicaciones.Práctico – Actualización a GeneXus X Evolution 2 o Haga F5 (tendrá que reorganizar). se muestra todo el detalle. Para poder hacerlo. se muestran los datos del grid. con el nombre que desee. tenemos los themes.

propiedades a configurar para cada plataforma de Smart Devices posible: o Las mismas propiedades se encuentran bajo Preferences/Patterns. en una instancia que configura las propiedades de los Work With for Smart Devices. Página 28 . tendrá la posibilidad de configurar un theme diferente.Práctico – Actualización a GeneXus X Evolution 2 o Observe que en el Folder View tenemos bajo el nodo Customization. Para cada nodo bajo Platforms.

el nombre de la misma salga amarillo.Práctico – Actualización a GeneXus X Evolution 2    ¿Y si quisiera un diseño diferente cuando se trata de tabletas de 7”. o Pruébelo en ejecución: Página 29 . ¿cuál tomará la aplicación? Ahora querrá configurar que cuando se está visualizando una propiedad inmobiliaria (Detail). de 10” o de teléfonos? Si tiene un theme configurado para “Any Platform” y uno para “Any Android” y usted está generando para Android. Vaya a Section(General) y elija para el atributo PropertyName la clase YellowAttribute (asegúrese de estar en el Layout para Android y no para “Any Platform”).

o por vecindario.Práctico – Actualización a GeneXus X Evolution 2 Agregando Órdenes y Filtros o Agregar un Order al WorkWithDevicesProperty. Para ello: o Seleccionar la pestaña Conditions dentro del List: o Agregar un Orden por el atributo NeighborhoodName: Página 30 . para que el usuario pueda elegir si mostrar las propiedades inmobiliarias ordenadas por nombre.

observando el resultado. y mostrar las Propiedades agrupadas por vecindario. o Ahora modificar un poco lo anterior. bajo la opción de filter. Página 31 . Para ello. elija en “Filter” ordenar por Neighborhood. edite: Y en ejecución.Práctico – Actualización a GeneXus X Evolution 2 o Dar F5 y probar en ejecución.

¿A quién se está invocando? Página 32 . 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: o Aplicarle el “Work With for Smart Devices” a la transacción PropertyAppointment y verificar que se añade al WorkWithDevicesProperty la Section(Property Appointment) o Observe en el List la Action Bar. PropertyAppointmentDate y PropertyAppointmentTime. a la propiedad– con la estructura que se muestra (podemos crear un índice de usuario unique con los atributos PropertyId. y con botón derecho sobre el botón Insert. vaya a ver la programación del evento. y crear la transacción PropertyAppointment –para agendar visitas de posibles clientes.Práctico – Actualización a GeneXus X Evolution 2 Agregando Acciones o Volver a GeneXus.

Aquí no se está ofreciendo la posibilidad de insertar una nueva visita (appointment): sólo se listan las visitas preexistentes de esa propiedad. la Image) y acortar el Caption de la sección para que no sea tan largo (por ejemplo: Appointments). Para comprobar el comportamiento.  Página 33 .Práctico – Actualización a GeneXus X Evolution 2 o Ahora vaya al nodo Section(PropertyAppointment). Si quiere agregar o quitar atributos del Layout. hágalo. Aquí se mostrará una lista de appointments agendadas para la propiedad seleccionada. También puede asociarle una imagen a cada Section (observe entre sus propiedades. haga F5 (reorganice).  Observe que la Action Bar está vacía y que tampoco dentro del Layout existen botones. Ingrese algunas visitas a través del Developer Menu web y pruebe en el emulador que esas visitas aparecen listadas para la propiedad correspondiente.

Observe lo que sucede automáticamente con el teléfono (está utilizando la funcionalidad nativa del dispositivo) Página 34 . Esta será la acción por defecto (Default Action). se visualiza su información (utilizando el Layout de WorkWith de PropertyAppointment correspondiente). Observe también que el atributo elegido como descriptor es el que se muestra en este Layout arriba del todo (en nuestro caso. al hacer tap sobre una de las visitas desplegadas.Práctico – Actualización a GeneXus X Evolution 2 o Observe que sin programar nada. En la pantalla que sigue se ve este Layout personalizado. la fecha de la appointment). Puede cambiarlo por el apellido del prospect (propiedad “Caption” del nodo Detail).

o ¿A quién debe invocar la acción? ¿En qué modo? Para ello deberá ir a la sección Events: Necesita invocar al Detail del Work With de PropertyAppointment. AddAppointment). así como la prioridad (al cambiarlo a High. pero puede cambiarlo.g. Observe que el botón por default adquiere el mismo caption que la acción.Práctico – Actualización a GeneXus X Evolution 2 o Agréguele al nodo Section(PropertyAppointment) del Work With de Property. en modo Insert. el botón aparecerá siempre visible). Para ello: Necesitamos enviarle como parámetro PropertyId. Para ello: o o Botón derecho sobre la Action Bar/ Insert Action Ingrese el nombre de la acción (e. Página 35 . Para ello debemos cargar una variable BC de tipo PropertyAppointment y pasarla por parámetro. una nueva acción que permita insertar una nueva visita para esa propiedad.

F5. Puede arrastrar el objeto AddressBook del folder SmartDevicesApi o tipearlo. con valor vacío. Observe los parámetros que recibe. se ingresen los datos del prospect en la libreta de direcciones. Ingrese una nueva visita. Página 36 .Práctico – Actualización a GeneXus X Evolution 2 Pruébelo. deberá especificarlo de todos modos. Por ejemplo. deberá agregar el comando Composite. o Haga F5 e intente ingresar una nueva visita. queremos que al hacer Save de una nueva visita. o Ahora queremos interactuar con algunas funcionalidades del dispositivo. Utilizaremos su método AddContact. Recuerde que los parámetros son posicionales y obligatorios. por lo que si no tiene un parámetro. Para ello: o Como va a establecer una secuencia de acciones.

de manera tal que el usuario pueda ingresar valor para la misma) A su lado haga botón derecho e ingrese una nueva acción (vea cómo el botón quedará dentro del Layout.Práctico – Actualización a GeneXus X Evolution 2 o Luego de salvar la visita. podría también agendar la visita en el calendario del dispositivo. Agregue una variable &appointmentDate y luego insértela en el Layout (asegúrese que la propiedad Readonly quede en False. esta vez). se le abrirá la aplicación de contactos: o Si cuenta con un dispositivo (el emulador no contiene Calendar). 6. Por lo que necesitamos que el usuario ingrese esa fecha y entonces proceder a mostrar las visitas. Paneles para pedir datos al usuario [avanzado] o Queremos poder listar solamente las visitas agendadas para un día determinado. o o o Página 37 . Para ello: Cree un objeto del tipo “Panel for Smart Devices” de nombre AskDate.

Página 38 . vamos a tener que modificarlo. para que ahora reciba un parámetro: la fecha. Hagámoslo: o Creamos ese nuevo Level con un nodo List. que es en el que diseñaremos el Layout para este caso.Práctico – Actualización a GeneXus X Evolution 2 o ¿A quién invocará esta acción? ¿Al Work With for Smart Devices de la transacción PropertyAppointment? Si invocamos a este panel. entonces una posibilidad es crear un Level paralelo en el Work With de PropertyAppointment. Si no deseamos hacerlo.

pasándole el parámetro &appointmentDate (la variable) La invocación quedará: Página 39 . con un break by PropertyName. y hemos personalizado el Layout. así nos salen agrupadas las visitas por propiedad. hemos agregado un order por PropertyName. para que nos salga la información así: o ¿Qué nos resta? Ir al panel que permite ingresar una fecha. Nota: además. y en el evento asociado a la acción invocar al Level que acabamos de crear.Práctico – Actualización a GeneXus X Evolution 2 Y especificamos parm(PropertyAppointmentDate). PropertyAppointmentTime.

podremos ver en ejecución lo deseado: Página 40 .Práctico – Actualización a GeneXus X Evolution 2 o Agregue al Dashboard este panel: o Así.

Automáticamente se descargará el compilado en su dispositivo y podrá instalarlo y ejecutar. o Página 41 . que aparece (que contiene codificada la URL del compilado donde fue subida la aplicación Smart Device en la nube). Haga View/Show QR Codes. especifique al dashboard como “Startup Object” y haga F5. Ejecute la aplicación Barcode Scanner de su dispositivo y realice la lectura del Código QR. Ejecución en el dispositivo [opcional] o Si cuenta con un dispositivo Android.Práctico – Actualización a GeneXus X Evolution 2 7. o directamente haga botón derecho sobre la pestaña del dashboard y “Run With This Only”.

Para ello: Configure la propiedad Enable Integrated Security en True. para tener un respaldo del estado actual de la KB. GAM [opcional] o Antes de proseguir. (View/Freeze sobre la versión). presione Yes: Página 42 . congele la versión actual de desarrollo.Práctico – Actualización a GeneXus X Evolution 2 8. View/Versions. o Incorporar el GeneXus Access Manager (GAM) para obtener un control de acceso automático.

Práctico – Actualización a GeneXus X Evolution 2 Observe las propiedades que se abren: o Observe todo lo que se importa en la KB tras el cambio anterior (en el Folder View encontrará dos nuevas carpetas). Página 43 .

ingrese los siguientes datos para la conexión: usuario: admin password: admin123 o Vaya al Developer Menu. Página 44 . e intente ejecutar una transacción. Pruébelo. Confirme que desea crear la base de datos del GAM: o Al ejecutar la aplicación en el Smart Device. No podrá. sin pasar antes por el Login.Práctico – Actualización a GeneXus X Evolution 2 o o ¿Qué objetos son los que se configuran automáticamente en las propiedades “Login Object for Web” y “Login Object for SD” en las propiedades mostradas más arriba? Haga Rebuild All y luego F5.

com/commwiki/servlet/hwiki?My+First+BlackBerry+Application. Página 45 . En este caso notaremos que la aplicación no corre automáticamente en el emulador. en nuestro Wiki encontrará los prerrequisitos y un ejemplo de ejecución de una aplicación para Blackberry. ¿cómo haría? 9. pero no todos.  Entre las propiedades del generador para Smart Devices. Generando para otras plataformas [opcional]  Genere la aplicación ahora para Blackberry.Práctico – Actualización a GeneXus X Evolution 2 o Desde el Developer Menu ejecute el Web panel GAM Home y observe el Backend para administrar la seguridad: o Si sólo quisiera que algunos objetos fueran seguros. http://wiki.gxtechnical. ingrese las siguiente propiedades: o o Generate Android = false Generate BlackBerry = true Corremos la aplicación y vemos cómo GeneXus levanta en esta instancia el emulador de BlackBerry.com/commwiki/servlet/hwiki?BlackBerry+Requirements. http://wiki. Para ello.gxtechnical.

3. 2.gxtechnical. tiene la aplicación compilada para blackberry. Loguearse y ejecutar la aplicación. Presionar el botón “Menú” del emulador. RealEstateApplication. puede probar la aplicación en él. 4.Práctico – Actualización a GeneXus X Evolution 2 Para ejecutarla seguir las instrucciones: 1. vea nuestra documentación: http://wiki. y clickearlo. al igual que lo hizo con Android.com/commwiki/servlet/hwiki?My+First+Apple+Application Página 46 . Puede elegir ejecutarla. Para ello. Si cuenta con un dispositivo iOS. indicado abajo por la flecha. o. puede utilizar el KBN (verlo en la pantalla más a la derecha). Localizar el Icono “Downloads”. Como ha efectuado un Rebuild All.

aparecerán todos los dispositivos en los cuáles haya implementado este procedimiento. Ejecútelo y loguéese con su usuario de GXTechnical. Recuerde que haciendo en GeneXus View/Show QR Codes: 2. Página 47 . Descárguese el KBN en su dispositivo. Luego.Práctico – Actualización a GeneXus X Evolution 2 1. verá que en el tab “Associated Smart Devices”. si accede desde cualquier navegador a su cuenta de GxTechnical. y en las propiedades del generador Smart Devices especifique que desea que la aplicación se genere ahora en iOS (poniendo en False Blackberry). 3. Vaya a GeneXus.

4.Práctico – Actualización a GeneXus X Evolution 2 En Execution Type elija el KBN. En el ejemplo. Página 48 . Ahora sólo deberá regenerar la aplicación y hacer F5. hemos elegido el dispositivo llamado Test-iPad. Aparecerá en el dispositivo Test-iPad la siguiente notificación. tras lo cuál podrá ejecutar la aplicación. como se muestra. con lo cuál deberá elegir el dispositivo que tiene asociado a su cuenta.

Práctico – Actualización a GeneXus X Evolution 2 Página 49 .

com/commwiki/servlet/hwiki?HowTo%3A+Defining+Panels+in+Smart+Devices. My First Apple Application http://wiki.com/commwiki/servlet/hwiki?My+First+Android+Application.gxtechnical.gxtechnical.com/commwiki/servlet/hwiki?My+First+BlackBerry+Application.gxtechnical.genexus. Orders & Group By http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Applying+Work+With+Pattern+for+Smart+Devices. Dashboard Object http://wiki. encontrará diversa documentación en nuestro Wiki: My First BlackBerry Application http://wiki. Panel for Smart Devices Object http://wiki.com/cursos/todos-los-cursos?es).com/commwiki/servlet/hwiki?My+first+Apple+Application. Página 50 .gxtechnical. My First Android Application http://wiki.com/commwiki/servlet/hwiki?Dashboard+Object.gxtechnical. Applying Work With Pattern for Smart Devices http://wiki.Práctico – Actualización a GeneXus X Evolution 2 10.com/commwiki/servlet/hwiki?Ordering+Lists+in+Smart+Devices.com/commwiki/servlet/hwiki?Knowledge+Base+Navigator.gxtechnical. Glosario Además de los videos en nuestro sitio de capacitación (http://training. Knowledge Base Navigator http://wiki.gxtechnical.