El trabajo que vas a facilitar
Una persona de Barrio Demo recorre las estanterías al abrir la tienda. Necesita identificar el artículo, ver su ubicación y registrar el recuento físico. La app mostrará también qué productos están en el mínimo o por debajo.
Esta versión sirve para un recuento controlado por un operador. Un sistema que descuente ventas simultáneas necesita movimientos de inventario y control de concurrencia en el servidor; no basta con restar un número desde varios móviles.
1. Crear la pantalla de trabajo
En la solución del caso 01, crea una aplicación de lienzo llamada Barrio Demo Stock, en formato tablet. Añade las tablas Tienda Productos y Tienda Proveedores como orígenes de Dataverse.
Distribuye la pantalla en dos zonas: catálogo a la izquierda y ficha del producto a la derecha. Utiliza controles clásicos para que coincidan los nombres de propiedades indicados.
Inserta una galería vertical llamada galProductos. Su propiedad Items será:
'Tienda Productos'
Dentro de la plantilla, muestra:
| Etiqueta | Propiedad Text |
|---|---|
| Código | ThisItem.SKU |
| Artículo | ThisItem.Producto |
| Ubicación | ThisItem.Ubicacion |
| Unidades | ThisItem.Existencias |
Comprueba los ocho códigos antes de añadir más lógica.
2. Mostrar los productos que necesitan reposición
Añade un interruptor clásico llamado tglReposicion, con el texto Solo productos para reponer. Cambia Items de la galería:
If(
tglReposicion.Value,
Filter('Tienda Productos', Existencias <= Minimo),
'Tienda Productos'
)
Los ejemplos usan comas como separadores. Si tu editor utiliza punto y coma, sustituye las comas de argumentos por punto y coma.
Al activar el interruptor deben quedar cuatro artículos, incluido LEC-1L, que está exactamente en su mínimo.
Esta comparación entre dos columnas puede no delegarse al origen. Aquí se trabaja con ocho registros. Revisa las advertencias de delegación: para un catálogo grande conviene resolver el indicador en el origen o en una consulta delegable, y comprobarlo con más registros que el límite local.
3. Añadir la ficha y el recuento
Inserta un formulario de edición llamado frmStock:
- DataSource: la tabla Tienda Productos.
- Item:
galProductos.Selected. - Campos: SKU, Producto, Existencias, Minimo, Precio, Ubicacion y Proveedor.
Conserva las tarjetas generadas de Dataverse, especialmente la búsqueda de proveedor. Añade estos botones:
| Botón | OnSelect |
|---|---|
| Editar recuento | EditForm(frmStock) |
| Guardar recuento | SubmitForm(frmStock) |
| Descartar cambios | ResetForm(frmStock) |
En OnSuccess del formulario, utiliza Refresh('Tienda Productos'). La actualización debe ocurrir tras el guardado correcto. Añade debajo una etiqueta con Text igual a frmStock.Error para mostrar errores.
No cambies de pantalla ni presentes «Guardado» inmediatamente después de SubmitForm. El envío puede tardar o fallar.
4. Ejecutar un recuento completo
- Selecciona CAF-250 y verifica sus cuatro unidades iniciales.
- Pulsa Editar recuento. Introduce 9 porque has encontrado una caja en la posición A-01.
- Guarda y comprueba la fila directamente en Dataverse.
- Activa el filtro de reposición: deben quedar ACE-1L, LEC-1L y GAL-200.
- Edita LEC-1L, introduce 20 y descarta los cambios. Debe seguir guardado con 12.
- Intenta guardar una cantidad negativa y verifica el rechazo.
- Cierra y vuelve a abrir la app. CAF-250 debe conservar 9, no volver a 4.
La suma de unidades, tras guardar únicamente el cambio del café, será 106.
Entrega del caso
Entrega la app, una captura del filtro con tres resultados y la fila persistida de CAF-250. Anota el entorno y la conexión utilizados. Antes de compartirla con otros empleados, configura tanto el acceso a la app como los permisos sobre sus datos; el permiso de creación no concede todos los privilegios de Dataverse.
Restaura el café a 4 si vas a comparar resultados con el catálogo original de otros casos.
La conversación sigue aquí
Preguntas y experiencias
¿Te has atascado en un paso o has encontrado otra forma de hacerlo? Comparte lo que has probado y ayuda a quienes lleguen después.
Lee los comentarios o entra para participar.
Cargando comentarios…
Para una pregunta sobre otro tema, abre una conversación en la comunidad. Normas de participación y privacidad.