Cuando tenemos un atributo de tipo Image logramos tener el siguiente picker:
Luego de elegirlo confirmamos la transacción y eso lo lleva al servidor.
Pero no siempre queremos enviar imágenes desde una instancia de un Work With for Smart Devices.
Para resolver esto tenemos dos objetos Externos que nos permiten interactuar con dos recursos de nuestros dispositivos:
Podríamos llegar a tener las siguientes opciones en pantalla para poder enviar una imagen al servidor.
El problema...
...es que mediante un procedimiento expuesto como servicio rest no podemos enviar una imagen por parámetro. Esto tiene varias razones que no son el objetivo de este post.Entonces no podríamos enviar al server las imágenes que tomemos con la cámara o que elijamos de nuestra liberaría.
¿Como podemos hacerlo?
Vamos a utilizar los servicios automáticamente generados de los BC para enviar imágenes.
1. Crear una Trn que tenga al menos un atributo Image
2. Crear el siguiente SDPanel:
Layout:
Variables:
ImageTrn --> Variable basada en BC de la TRN del paso 1.
imgChooser --> Variable de tipo Image
Eventos:
Event 'Take Picture'
Composite
&imgChooser = CameraAPI.TakePhoto()
&ImageTrn.ImageTrnImage = &imgChooser
&ImageTrn.Save()
EndComposite
Endevent
Event 'Choose From Library'
Composite
&imgChooser = PhotoLibraryAPI.ChooseImage()
&ImageTrn.ImageTrnImage = &imgChooser
&ImageTrn.Save()
EndComposite
Endevent
Nota:
Esto funciona en iOS a partir del Upgrade 2 y en Android a partir del Upgrade 3, de GeneXus X
Evolution 2.
Olá Franklin, parabéns pelo post!
ResponderEliminarNo exemplo vc não utiliza o Load no BC ou o commit, até pq não da para utilizar o commit na trn, então como posso especificar a chave do BC em SD. Tentei aqui mais recebo a mensagem "os dados com a chave especificada não foram encontrado"... desde já agradeço.
Hola, estoy actualmente con la versión Ev3 U3 build 90655, y estoy precisando en un sdpanel cargar una imagen en una variable y pasarla al server de alguna manera, hay actualmente alguna forma más natural sin usar un BC?
ResponderEliminarGracias!
Laura.
Me da error este renglon &ImageTrn.ImageTrnImage = &imgChooser ya que me dice que la propiedad ImagenTrnImagen esta mal. No existe
ResponderEliminarTambien me da error con la funcion save. Saludos
ResponderEliminarcomo puedo hacer esto si la imagen esta en una transacción de segundo nivel
ResponderEliminar