Crear una aplicación para los trabajadores de primera línea con el fin de optimizar la actualización del estado de un contenedor

Completado

Crear una aplicación de lienzo en Power Apps

El objetivo es optimizar el trabajo de los trabajadores de primera línea. Crearemos una aplicación de lienzo de Power Apps (consulte ¿Qué son las aplicaciones de lienzo en Power Apps?) que permitirán hacer una foto, detectar automáticamente el identificador del contenedor y ofrecer una experiencia guiada para actualizar, el estado y las fechas de envío y llegada.

Use "Crear" en el menú izquierdo de Power Apps y luego "Aplicación de lienzo en blanco", asígnele el nombre Registro de contenedor de Contoso, seleccione "Teléfono" y luego haga clic en "Crear".

Recuperar identificadores de una foto

Vamos a permitir que John y Chandra hagan una foto de un contenedor y recuperen automáticamente los identificadores del contenedor. En el menú "Insertar" y en la barra de "AI Builder", seleccione "Reconocedor de texto". Este es el control que permitirá tomar o cargar una imagen y detectar automáticamente el identificador del contenedor.

El menú de A I Builder se expande para mostrar las opciones Lector de tarjetas comerciales, Procesador de formularios, Detector de objetos y Reconocedor de texto.

Cambie el tamaño del control para que se ajuste a la pantalla e insertarlo en la parte superior una etiqueta, editando la propiedad "Text" a "Registro de contenedores", con fondo azul y texto blanco centrado.

Proporcionar comentarios

Tenemos que proporcionar comentarios al usuario sobre lo que se ha reconocido. Seleccione Insertar en la parte inferior de la nueva etiqueta y cambie la propiedad "Text" a "Contenedor seleccionado:".

A continuación, inserte una entrada de texto y cambie la propiedad "Default" a TextRecognizer1.SelectedText.

Nota

Puede recuperar todos los textos reconocidos con TextRecognizer1.OcrObjects y vincularlos a una tabla.

Esto mostrará el texto que el usuario ha seleccionado manualmente en la lista de textos reconocidos por AI Builder.

Por último, el usuario necesita un botón para ver los detalles de este contenedor e introducir a la experiencia de actualización guiada.

Insertar un botón

  • Cambiar la propiedad "Text" a "Enviar"
  • Cambiar la propiedad "Fill" a azul
  • Cambiar la propiedad "Align" a Centro
  • Para dirigirse a la siguiente pantalla cuando el usuario haga clic en Enviar, cambie "OnSelect" a Navigate(Screen2) (Aparecerá un error hasta que se cree la siguiente pantalla)

Debería aparecer esto:

La pantalla de registro del contenedor tiene botones Escanear y Enviar y un campo Contenedor seleccionado.

Optimizar el trabajo

Para optimizar el trabajo de los trabajadores de primera línea, minimizando la información solicitada, proporcionaremos una experiencia guiada que permita al usuario actualizar los datos de la tabla, pero solicitándole solo la información relevante en esta etapa del envío. Inserte una nueva Pantalla de formulario (consulte Agregar una pantalla a una aplicación de lienzo y navegar por diferentes pantallas)

La pantalla Nuevo formulario ofrece opciones En blanco, Desplazable, Lista, Formulario, Éxito y Tutorial.

Cambie la propiedad "Text" de título a "Actualizar envío".

Edite EditForm1 (consulte Mostrar, editar o agregar un registro en una aplicación de lienzo)

  • Para vincular el formulario de edición a la tabla creada anteriormente, haga clic en Conectarse a los datos en la vista y seleccione "Container Shipments" en el panel izquierdo**

  • Cambiar la propiedad "DataSource" a "Container Shipments"

Introducir los campos que se mostrarán en el formulario

En el panel derecho, haga clic en "Editar campos" y agregue "Origen", "Fecha de envío", "Destino", "Fecha de llegada", "Es frágil" y "Estado de entrega" mientras elimina "Creado el".

Proporcionar una experiencia guiada

Necesitamos mostrar y permitir únicamente cambios en los campos relevantes en función del estado del envío. En este caso, el usuario cambiará la "Fecha de envío" al enviar el contenedor y la "Fecha de llegada" al recibir el contenedor; otros campos estarán ocultos en el estado No se puede actualizar.** Cambie la opción "DisplayMode" de "Nombre", "Origen "," Destino "," Es frágil "y" Estado de entrega " a Ver.

Mostrar la información adecuada del contenedor

Recupere la información correspondiente al texto previamente seleccionado por el usuario.** Para ello, establezca la propiedad "Item" de EditForm1 en First(Filter('Container Shipments', Name = TextInput1.Text)) en las propiedades avanzadas.

La pantalla se comportará de manera diferente según el estado del contenedor. Cuando esté a la espera de enviarse, el usuario podrá cambiar la "Fecha de envío" y cuando esté a la espera de recibirlo la "Fecha de llegada".

Edite "Fecha de envío_DataCard1" (para desbloquear las propiedades en el panel izquierdo, consulte Desbloquear y personalizar una tarjeta).

  • Para obligar al usuario a rellenar la fecha de envío, cambie la propiedad "Required" a Verdadero

  • El usuario no debe cambiar la fecha de envío después del envío. Vamos a hacerlo editable solo cuando esté a la espera de enviarse. Para ello, cambie la propiedad "DisplayMode" a:

    If(ThisItem.'Delivery State' <> ContainerStates.Waiting, DisplayMode.View, DisplayMode.Edit)

Editar "Fecha de llegada_DataCard1" (desbloquear las propiedades en el panel izquierdo)

  • Los datos de llegada son relevantes solo cuando se está recibiendo o entregando el contenedor, por lo que debemos mostrarlos solo en este caso. Cambiar la propiedad "Visible" a ThisItem.'Delivery State'<> ContainerStates.Waiting

  • Para obligar al usuario a completar la fecha de envío al recibir el contenedor**, cambie la propiedad "Required" a lo siguiente:

    ThisItem.'Delivery State'<> ContainerStates.Waiting

  • Esta fecha de llegada debe cambiarse cuando se reciba el contenedor; de lo contrario, solo debe mostrarse. Cambie la propiedad "DispayMode" a:

    If(ThisItem.'Delivery State'= ContainerStates.Delivered,DisplayMode.View, DisplayMode.Edit)

Ahora necesitamos crear la lógica para actualizar el estado cuando el usuario envíe el cambio y evitar que se produzcan cambios después de que se haya entregado el contenedor.

Edit "IconAccept1"

  • Para cambiar el estado a En tránsito cuando se envíe el contenedor y Entregado cuando se reciba y se envíen los cambios, cambie la propiedad "OnSelect" a

    If(First(Filter('Container Shipments', Name = TextInput1.Text)).'Delivery State'= ContainerStates.Waiting, Set(valState, ContainerStates.'In Transit'), Set(valState, ContainerStates.Delivered));SubmitForm(EditForm1);

  • Para no mostrar el botón de envío si el contenedor ya se ha entregado, cambie la propiedad "Visible" a:

    'Delivery State_DataCard1'.Default <> ContainerStates.Delivered

  • Para actualizar el estado del contenedor automáticamente,

    *edit "Delivery State_DataCard1" (unlock the properties on the left pane) change the "Update" property to valState

Una vez que se ha enviado o cancelado correctamente un cambio, debemos dirigirnos a la pantalla anterior. También debemos asegurarnos de que el formulario se restablezca cada vez que accedamos a la pantalla.

  • Para actualizar el formulario al obtener acceso a la pantalla,

    ** edit "Screen2" and change "OnVisible" property to Refresh('Container Shipments');ResetForm(EditForm1);

  • Para volver a la pantalla de escaneo cuando se hayan aplicado los cambios, edite

    "EditForm1"

    y cambie

    "OnSuccess" property to Navigate('Screen1')

  • Para volver a la pantalla de escaneo cuando el usuario pulse el botón de cancelar,** edite "IconCancel1" y cambie la propiedad "OnSelect" a Navigate('Screen1')

Debería aparecer esto:

La actualización del envío muestra los valores proporcionados para Nombre, Origen, Fecha de envío, Destino, Datos de llegada, Es frágil y Estado de entrega.

Resumen

Hemos creado correctamente una aplicación para dispositivos móviles para optimizar la tarea de los trabajadores de primera línea y actualizar los envíos de contenedores gracias a un flujo guiado. Ya estamos listos para administrar el negocio.