esofitec. CoreDocs

esofitec. CoreDocs

Instalación y soporte

Datos que registra la app

Además de los datos del trabajo, como partes, servicios o materiales, la app recoge información sobre quién lo hace, dónde y con qué dispositivo. Este artículo reúne qué recoge, cuándo, dónde acaba y qué permisos del dispositivo pide, para responder a las preguntas de un cliente o de su responsable de protección de datos sin tener que ir al código.

Ubicación al marcar#

Cada vez que se inicia o se para un servicio desde el marcaje, la app toma la posición del dispositivo y la guarda en el servicio, en SERVICIOS_PARTE:

Momento Campos
Al iniciar el servicio GEO_LATITUDENTRADA, GEO_LONGITUDENTRADA
Al parar el servicio GEO_LATITUDSALIDA, GEO_LONGITUDSALIDA

No hay ningún ajuste para desactivarlo. La app pide la posición con la máxima precisión que permita el dispositivo; si el usuario solo ha concedido la ubicación aproximada, se guarda esa. Espera a tenerla antes de crear el servicio, sin tiempo límite, así que con mala señal de GPS el inicio puede tardar; la hora de inicio es la del momento en que se pulsa. Funciona igual sin conexión. Si no consigue la posición, porque el permiso está denegado o la ubicación del dispositivo está apagada, el servicio se guarda sin coordenadas y sin avisar a nadie. Los campos GEO_IPENTRADA, GEO_IPSALIDA, GEO_NAVEGADORENTRADA y GEO_NAVEGADORSALIDA existen en la entidad, pero la app no los rellena.

La app también usa la posición para centrar el mapa del calendario, pero esa no la guarda.

Firmas#

Al recoger una firma, la app crea un registro en DOCUMENTACION con el guion API_GuardarDocumento y sube la imagen al campo contenedor DOCUMENTO. El registro guarda:

Campo Contenido
DNI_FIRMANTE El DNI del firmante. Es obligatorio, aunque la app no comprueba su formato
OBSERVACIONES_FIRMA Las observaciones que se escriban
DESCRIPCION «Firma capturada desde la app móvil el», con la fecha, la hora y el nombre de la persona de la app que la ha recogido
CONFORME_FIRMA Siempre 1
ES_FIRMA, ES_MOVIL, DESDE_APP 1

La app no pide el nombre del firmante.

FIRMADO, en el parte o en el presupuesto, es un campo calculado de FileMaker a partir de sus documentos de firma: el registro cuenta como firmado en cuanto su firma llega a FileMaker. Sin conexión, la firma y su imagen se guardan en el dispositivo y se envían al sincronizar, y después la app vuelve a leer el parte o el presupuesto para que su copia local también conste como firmada. Mientras la firma está pendiente, la app la tiene en cuenta para dejar iniciar servicios y salir del parte, pero no marca nada como firmado.

Fotos y documentos#

Las fotos del marcaje se guardan como documentos del parte, en DOCUMENTACION, con la descripción «Foto - Capturada desde la app móvil el», la fecha, la hora y el nombre de la persona. Se suben a la resolución de la cámara, sin comprimir, así que con mala cobertura pueden tardar o no llegar a subirse; en ese caso la app guarda una copia y la reintenta al sincronizar. Sin conexión, la foto se guarda en el dispositivo y se envía al sincronizar.

Los documentos se eligen con el selector de ficheros del sistema y pueden ser de cualquier tipo. Van al mismo campo contenedor DOCUMENTO, salvo los recibos de gasto, que van al campo RECIBO de GASTOS_PARTE.

Dictado por voz#

Los campos de descripción de la tarea y de descripción del trabajo y observaciones internas del parte, y el parte rápido del calendario, se pueden dictar. El audio lo transcribe el reconocedor de voz del propio sistema, el de Google en Android o el de Apple en iOS, que puede enviarlo a sus servidores. La app solo guarda el texto resultante, en el campo correspondiente.

Inicio de sesión#

En cada inicio de sesión, la app consulta su IP pública al servicio ipify y envía al guion AuthApp, junto con el usuario y la contraseña, la versión de la app, la IP pública, la IP local del dispositivo y el nombre de la empresa. Cuando las credenciales son buenas, el guion crea un registro en LOG_SESION con:

Campo Contenido
Desde_App 1
AccountName El usuario
AppVersion La versión de la app
SystemIPAddress_User La IP pública
SystemIPAddress_Host La IP local del dispositivo
Empresa El nombre de la empresa
ConectaA3erp, ConectaA3factura Si la empresa tiene la integración activada
CurrentHostTimestamp Fecha y hora del servidor

LOG_SESION es también la forma más rápida de saber qué versión de la app usa cada persona.

Registro de errores#

Cuando algo falla, la app guarda el error en el dispositivo y lo envía a LOG_ERRORES_APP, por la presentación API_LOG_ERRORES, en la siguiente sincronización. Registra los errores que la propia app captura y también los cierres inesperados.

Campo Contenido
ID_EMPRESA, ID_PERSONA Quién estaba trabajando
ORIGEN Dónde se produjo el error, por ejemplo la operación de la cola que falló
MENSAJE, STACK_TRACE El error y su traza, recortados a 4.000 caracteres
TIPO CAPTURADO o NO_CAPTURADO, que es un cierre inesperado
VERSION_APP Versión y compilación, por ejemplo 3.8.5+132
PLATAFORMA, MODELO_DISPOSITIVO, VERSION_SO El dispositivo
CONEXION ONLINE u OFFLINE, en el momento del error
FECHA_HORA_APP Fecha y hora del dispositivo

Antes de guardar el mensaje y la traza, la app quita lo que pueda parecer una credencial: tokens, cabeceras de autorización y valores de campos de contraseña. Un mismo error no se registra más de una vez cada 10 minutos. Si el dispositivo acumula más de 200 errores sin enviar, descarta los más antiguos.

Permisos del dispositivo#

Permiso Cuándo lo pide la app Para qué
Ubicación, mientras se usa la app Al iniciar o parar un servicio, al abrir el mapa y, en Android, al buscar impresoras Bluetooth Registrar dónde se marca, centrar el mapa y buscar impresoras
Cámara Al hacer una foto o leer un código de barras Fotos del marcaje y documentos, y lectura de códigos de artículos
Micrófono y reconocimiento de voz Al abrir el calendario después de iniciar sesión, no al pulsar el micrófono Dictar descripciones y observaciones
Bluetooth Al imprimir Conectar con la impresora portátil de tickets
Fotos Al adjuntar una imagen de la galería Adjuntar imágenes como documentos

Si el usuario deniega la cámara, la app le avisa y le ofrece abrir los ajustes del sistema. Si deniega la ubicación, el marcaje funciona igual, pero sin coordenadas.

En iOS, los textos que ve el usuario al concederlos explican para qué se usa cada permiso. En la configuración de iOS figuran además la ubicación «siempre», la fototeca y la biblioteca de música, aunque la app no las use.

Servicios externos#

Aparte de FileMaker, la app se comunica con estos servicios:

Servicio Para qué y cuándo
ipify Obtener la IP pública, en cada inicio de sesión
OpenStreetMap Las teselas del mapa del calendario
Geocodificador del sistema Traducir entre direcciones y coordenadas en el mapa
Reconocedor de voz del sistema El dictado
Google Play y App Store Comprobar si hay una versión nueva, al arrancar
Web de Esofitec Descargar el PDF del contrato de licencia, en cada arranque
Google Maps y el portal de Gabilos Solo se abren si el usuario pulsa la dirección de un cliente o el acceso al fichaje
Aplicación de correo del dispositivo Enviar el PDF de un documento o la solicitud de cuenta

Datos que quedan en el dispositivo#

El dispositivo guarda una copia de los datos con los que trabaja y los cambios pendientes de enviar, que pueden incluir firmas con el DNI del firmante. Las credenciales y la configuración de acceso van en el almacenamiento seguro del sistema. El detalle está en Sincronización y caché local.