• No results found

Future Training Programs

In document CHAPTER ONE 1. Rationale (Page 110-115)

CHAPTER FOUR

4.6. Future Training Programs

Política con Evidencias

Página 37 Uso de políticas de firma y evidencias en mensajes

} ] } ] }

Usaremos el parámetro type para indicar el tipo de evidencia imagen.

"type": "ANNOTATION"

Los parámetros que podemos usar en esta evidencia para su configuración son los siguientes: { "type": "ANNOTATION", "helpText": "Foto del cliente", "typeFormatSign": "XADES_EPES_ENVELOPED", "certificateAlias": "viafirmadocuments", "certificatePassword": "12345", "positions": [ { "page": 1, "rectangle": { "width": 100, "height": 145, "x": 417, "y": 330 } } ] } Key Descripción

type Tipo de evidencia, y debemos indicar “FINGER_PRINT”

helpText Ayuda contextual que aparecerá en modo “alert” en la pantalla del

dispositivo móvil antes de iniciar la captura.

typeFormatSign Formato en el que se firmará el XML que contendrá la evidencia

capturada. Los valores posibles se describen en el capítulo “Firma del XML”.

certificateAlias Alias del certificado que se usará para la firma; este certificado Evidencia del tipo Imagen

Página 38 Uso de políticas de firma y evidencias en mensajes

debe estar instalado previamente en servidor y asociado a las credenciales gestionadas por viafirma manager.

certificatePassword Password del certificado que se usará para la firma; este

certificado debe estar instalado previamente en servidor y asociado a las credenciales gestionadas por viafirma manager.

positions Array de posiciones, pudiendo indicar una o varias posiciones en la que

deseamos representar la imagen capturada. Para cada posición, indicaremos el número de la página, la posción dentro de la página y el tamaño.

positions: page Número de la página en la que se va a insertar la imagen

capturada.

positions: rectangle Usaremos las coordenadas X,Y para determinar el vértice

superior izquierdo del rectángulo imaginario para representar la imagen, e indicaremos ancho (width) y alto (height) del mismo.

Usaremos el parámetro type para indicar el tipo de evidencia huella, y el parámetro deviceType para indicar el vendor del dispositivo que vamos a utilizar para la captura. Al indicar un vendor relacionado con la captura de huellas, el dispositivo móvil cederá el control al accesorio para inciar la captura.

"type": "FINGER_PRINT", "deviceType": "vendorID"

Por ejemplo, para conectar con un lector de huella de Tactivo, Precise Biometric, usaremos el siguiente identificador: "deviceType": "iFMID"

Los parámetros que podemos usar en esta evidencia para su configuración son los siguientes: { "type": "FINGER_PRINT", "helpText": "Huella del cliente", "deviceType": "iFMID", "typeFormatSign": "XADES_EPES_ENVELOPED", "certificateAlias": "viafirmadocuments", "certificatePassword": "12345", "metadataCipherPublicKey": "MIIFbDCCBFSgAwIBAgIIGtUapa ...", "positions": [ { "page": 1,

Evidencia del tipo huella

Página 39 Uso de políticas de firma y evidencias en mensajes

"rectangle": { "width": 100, "height": 145, "x": 417, "y": 330 } } ] } ` Key Descripción

type Tipo de evidencia, y debemos indicar “FINGER_PRINT”

helpText Ayuda contextual que aparecerá en modo “alert” en la pantalla del

dispositivo móvil antes de iniciar la captura.

deviceType ID del vendor que usaremos para la captura. Por ejemplo, para

Tactivo, usaremos “iFMID”

typeFormatSign Formato en el que se firmará el XML que contendrá la evidencia

capturada. Los valores posibles se describen en el capítulo “Firma del XML”.

certificateAlias Alias del certificado que se usará para la firma; este certificado

debe estar instalado previamente en servidor y asociado a las credenciales gestionadas por viafirma manager.

certificatePassword Password del certificado que se usará para la firma; este

certificado debe estar instalado previamente en servidor y asociado a las credenciales gestionadas por viafirma manager.

metadataCipherPublicKey clave pública con la que será cifrado el contenido del

atributo metadata de la evidencia utilizando un cifrado RSA/None/NoPadding en UTF-8 al cual se le aplicará un base64.

positions Array de posiciones, pudiendo indicar una o varias posiciones en la que

deseamos representar la huella capturada. Para cada posición, indicaremos el número de la página, la posción dentro de la página y el tamaño.

positions: page Número de la página en la que se va a insertar la representación

de la huella capturada.

positions: rectangle Usaremos las coordenadas X,Y para determinar el vértice

superior izquierdo del rectángulo imaginario para representar la huella, e indicaremos ancho (width) y alto (height) del mismo.

Página 40 Uso de políticas de firma y evidencias en mensajes

El sistema permite crear formularios para ser usados como entrada de datos desde el propio dispositivo móvil. Su funcionamiento se describen en los siguientes pasos:

Crear una plantilla a partir de un .odt o .docx Generar formulario para la plantilla seleccionada.

Esta generación construirá un JSON con tantos elementos como variables hayan sido detectadas en la plantilla.

También se podrán crear nuevos formularios de forma directa haciendo uso del diseñador de formularios.

Cuando un formulario es informado (rellenado) desde el dispositivo móvil,

automáticamente se solicitará al servidor (mobile services) un nuevo mensaje que dará lugar al envio de una notificación, la cual nos llegará inmediatamente al mismo

dispositivo desde el que se completó el formulario.

Una vez recibida dicha notificación, el PDF ya se mostrará ajustado a la plantilla que fue vinculada al FORM, y con los datos informados por el usuario desde el propio

dispositivo móvil.

En los formularios que mostraremos en el dispositivo móvil se podrán usar los siguientes tipos de datos:

Caja de texto que valida si el texto introducido es un email con formato correcto.

Uso: { "key": "email", "type": "text", "label": "Email", "placeHolder": "insert email", "size": "33",

Uso de formularios

Tipos de Datos

Email Página 41 Uso de formularios

"validation": "email" }

Como se muestra en la imagen, el teclado muestra la @ para facilitar la introducción del correo.

Caja de texto que habilita el teclado númerico para facilitar al usuario la introducción del número. Uso: { "key": "number", Teléfono Página 42 Uso de formularios

"type": "tel", "label": "Teléfono",

"placeHolder": "insert phone", "size": "33"

}

Como se muestra en la imagen, se habilita el teclado de teléfono.

Muestra calendario para que el usuario seleccione la fecha.

Uso: { "key": "date", Fecha Página 43 Uso de formularios

"type": "date", "label": "Date", "placeHolder": "date", "size": "33"

}

El usuario no podrá introducir tipo de dato incorrecto, sólo podrá seleccionar una fecha desde el objeto calendario mostrado.

Muestra calendario, hora y minutos para que el usuario la seleccione.

Uso:

Fecha y Hora

Página 44 Uso de formularios

{ "key": "datetime", "type": "datetime", "label": "Datetime", "placeHolder": "date time", "size": "33" }

El usuario no podrá introducir tipo de dato incorrecto, sólo podrá seleccionar una fecha y hora desde el objeto calendario mostrado.

Muestra hora y minutos para que el usuario los seleccione.

Hora

Página 45 Uso de formularios

Uso: { "key": "time", "type": "time", "label": "Time", "placeHolder": "time", "size": "33" }

El usuario no podrá introducir tipo de dato incorrecto, sólo podrá seleccionar una hora y minuto desde el objeto time mostrado.

Fecha Actual

Página 46 Uso de formularios

Carga la fecha actual del dispositivo, y no permite su edición. Uso: { "key": "today", "type": "todayText", "format": "%w - %d %n %y", "monthNames": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "dayNames": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }

Formato por defecto: "%d/%m/%y"

Posibles Valores: d: Day m: Month number n: Month name w: Day name y: Full year H: Hours M: Minutes S: Seconds i: ISO date

Caja de texto que habilita el teclado númerico para facilitar al usuario la introducción del número. Uso: { "key": "number", "type": "number", "label": "Number", "placeHolder": "insert number", "size": "33" } Número Página 47 Uso de formularios

Este tipo de datos habilitará el teclado numérico del dispositivo móvil. Área de texto. Uso: { "key": "textarea", "type": "textarea", "label": "Textarea", "size": "100", "height": "120", "placeHolder" : "This is a textarea" } Textarea Página 48 Uso de formularios

height: se mide en píxeles, y por defecto es de 100.

Muestra el conjunto de valores contenidos en la lista informada dentro del JSON.

Uso: { "key": "select1", "type": "select", "label": "Select Sample", "list" : "combos" }

Lista precargada para el Select

La lista que alimentará al select del ejemplo 1 deberá definirse al principio del JSON tal y como se muestra en el siguiente ejemplo:

"lists" : {

"combos" : ["Value 1", "Value 2", "Value 3"] }

Muestra el conjunto de valores contenidos en la lista informada dentro del JSON.

Uso: { "key": "checkbox1", "type": "checkbox", "label": "Checkboxes", "list" : "checkboxes" }

Devolvemos string de lista de los valores seleccionados separados por ' | '

Lista precargada para el Checbox Select

Checkbox

Página 49 Uso de formularios

La lista que alimentará al checkbox anterior deberá definirse al principio del JSON tal y como se muestra en el siguiente ejemplo:

"lists" : {

"checkboxes" : ["Value 1", "Value 2", "Value 3"] }

Muestra el conjunto de valores contenidos en la lista informada dentro del JSON.

Uso: { "key": "radios1", "type": "radio", "label": "Radios", "list" : "radios" }

Lista precargada para el Radio

La lista que alimentará la lista de valores del radio del ejemplo anterior deberá definirse al principio del JSON tal y como se muestra en el siguiente ejemplo:

"lists" : {

"radios" : ["Value 1", "Value 2", "Value 3"] }

¿Cómo definir varias listas precargadas?

Para alimentar varias listas que serán usadas en distintos elementos del formularios, y siguiendo los ejemplos anteriores, se podrán informar de la siguiente forma:

"lists" : { "combos" : ["Value 1", "Value 2", "Value 3"], "checkboxes" : ["Value 1", "Value 2", "Value 3"], "radios" : ["Value 1", "Value 2", "Value 3"] } Radio Página 50 Uso de formularios

Listas Vinculadas

Los selects pueden estar vinculados de forma que los valores mostrados en cada uno dependan de los seleccionados en un select anterior, como la típica selección de provincia y con ella se recarga el select de municipios que pertenecen a esa provincia.

Para su uso nos ayudaremos del siguiente ejemplo:

En 1er lugar definimos la lista padre:

"lists" : {

"listaPaises" : ["España", "Colombia"] }

En segundo lugar definimos la listas hijas:

"nestedLists" : { "listaComunidades" : { "España" : ["Andalucía", "Galicia", "Aragón"], "Colombia" : ["Atlántico", "Antioquia", "Cundinamarca"] } }

Y por último definimos los combos (select):

"items" : [ { "key": "comboPaises", "type": "select", "label": "Países", "update": "comunidades", "list" : "listaPaises" }, { "key": "comboComunidades", "type": "select", "label": "Comunidades", "nestedList" : "listaComunidades" }]

Observar que en el segundo combo no es necesario el atributo update porque este combo no actualiza a ningún otro combo hijo. Observar también que este segundo

Página 51 Uso de formularios

combo se usa el atributo nestedList en lugar de list, como sí se usa en su combo padre.

Todos los items permiten el atributo "disabled" para que el valor introducido sólo sea de lectura y no permita su edición.

{ "key": "name", "type": "text", "label": "Name", "placeHolder": "insert name", "size": "33", "disabled": true }

Para los items del tipo "text" se permiten el atributo "match" para indicar en la validación del formulario que el valor aquí indicado debe ser igual que el introducido en el item referenciados, tal y como se muestra en el siguiente

Ejemplo: { "key": "email", "type": "text", "label": "Email", "placeHolder": "insert email", "required": true, }, { "key": "emailRepeat", "type": "text", "label": "Repeat Email", "placeHolder": "repeat email", "required": true, "match": email } ##### Tipo Link Este tipo de elemento se podrá usar para incluir enlaces html para llevar al usuario a contenidos externos de la app.

{ "key": "help", "type": "link", "text": "help", "href": "http://www.viafirma.com" }

Item de Sólo Lectura

Repetir valor de campo

Página 52 Uso de formularios

#### Validación de Datos

Los tipos de datos descritos en el punto anterior podrán ser validados de la siguiente forma:

Validación: requerido

Todos los tipos de datos podrán incorporar la validación required . Ejemplo:

{ "key": "name", "type": "text", "label": "Name", "placeHolder": "insert name", "size": "33", "required": true }

##### Validación: email

Supone una validación de un formato "conocido", y usamos una expresión regular para controlar que el texto introducido corresponda a un correo electrónico.

{ "key": "email", "type": "text", "label": "Email", "placeHolder": "insert email", "size": "33", "validation": "email" }

Observar que el tipo de dato es text, pero la validación del tipo email llamará a una expresión regular email.

##### Validación con Expresión Regular

Para cualquier otro tipo de dato que se desee validar se podrá usar, de forma explícita, una expresión regular a la hora de definir el componente.

Para incluir una expresión regular como validación en cualquier componente que queramos montar en nuestro formulario lo podremos hacer tal y como se muestra en el siguiente ejemplo haciendo uso de validationRegex :

{ "key": "age", "type": "text", "label": "Age", "placeHolder": "insert age", "size": "33", "validationRegex": "[0-9]+" } En el código anterior montamos un tipo texto para solicitar la Edad del Usuario, y en la validación usamos una expresión regular para que sólo admita valores del 0 al 9. ##### Validación Longitud de Campos Se podrá valida la longitud máxima y mínima de los campos de formularios del tipo text. Para ello, se usará maxlength y minlength según proceda. Para incluir una expresión regular como validación en cualquier componente que queramos montar en nuestro formulario lo podremos hacer tal y como se muestra en el siguiente ejemplo haciendo uso de validationRegex : Página 53 Uso de formularios

{ "key": "age", "type": "text", "label": "Age", "placeHolder": "insert age", "size": "33", "validationRegex": "[0-9]+" } ````

En el código anterior montamos un tipo texto para solicitar la Edad del Usuario, y en la validación usamos una expresión regular para que sólo admita valores del 0 al 9.

Página 54 Uso de formularios

El sistema de plantillas immplementado en mobile services soporta formato Word (.docx) y formato openOffice (.odt), y está basado en la inclusión de variables de forma cómoda e intuitiva, tal y como se describe a continuación:

Para insertar en nuestro documento una variable sólo será neceario insertar en el lugar deseado el nombre de la variable precedida de "$", por ejemplo $client_surname .

Nombre de cliente: $client_name Apellidos del cliente: $client_surname Importe de la compra: $purchase_amount

Uso de plantillas para la generación de

In document CHAPTER ONE 1. Rationale (Page 110-115)

Related documents