XLSForm es un estándar ampliamente utilizado para definir cuestionarios de recopilación de datos móviles. ActivityInfo utiliza un modelo de datos más cercano al de una base de datos relacional, lo que conlleva algunas diferencias importantes entre un XLSForm y un formulario de ActivityInfo, especialmente en lo que respecta a las preguntas complejas de selección y los grupos de repetición.
Los formularios que contienen características no compatibles pueden importarse con éxito en ActivityInfo, pero las preguntas y Fórmulas con características no compatibles se omiten.
Tipos de preguntas compatibles
Tipo de pregunta | Tipo de Campo de ActivityInfo | Limitaciones |
---|---|---|
integer | Cantidad | ActivityInfo permite la entrada de fracciones. |
decimal | Cantidad | |
range | Cantidad | La apariencia de calificación no es compatible. |
select_one | Selección Única o Campo de referencia |
|
select_multiple | Selección Múltiple | Limitado a 100 elementos. No se admite la adición de or_other. |
select_one_from_file | No compatible. | |
select_multiple_from_file | No compatible. | |
rank | No compatible | |
note | No compatible | |
geopoint | Geopunto | |
geotrace | No compatible | |
geoshape | No compatible | |
date | Fecha | |
time | No compatible | |
dateTime | No compatible | |
image | Adjunto | ActivityInfo permite cualquier tipo de archivo, no solo imágenes. |
audio | Adjunto | ActivityInfo permite cualquier tipo de archivo, no solo audio. El parámetro de calidad de audio no es compatible. |
background-audio | No compatible | |
video | Adjunto | ActivityInfo permite cualquier tipo de archivo, no solo vídeo. |
file | Adjunto | |
barcode | No compatible | |
calculate | Cálculo | |
acknowledge | Selección Única | |
hidden | Texto, con "Ocultar en la Entrada de Datos" | |
xml-external | No compatible | |
metadata (start, end, today, deviceid, phonenumber, username, email, audit) | No compatible. Tenga en cuenta que ActivityInfo registra información sobre quién ha cambiado qué para todos los Formularios. |
Preguntas de selección
Las preguntas de tipo "select_one" en los XLSForms se convierten en campos de Selección Única en ActivityInfo, o en un Campo de referencia, dependiendo de los siguientes criterios:
- Si hay más de 100 opciones, el Campo se convierte en un Campo de referencia.
- Si la lista de opciones tiene columnas de "atributos" adicionales, por ejemplo, como las que se utilizan para crear selecciones en cascada en XLSForm, entonces cualquier pregunta que utilice esa lista de opciones se convierte en un Campo de referencia en ActivityInfo. Además, la lista de opciones se importa como un Formulario independiente, con un Campo para cada atributo de la opción.
- Si la lista de opciones es referenciada por otros choice_filters, se convierte en un nuevo Formulario de ActivityInfo, que es referenciado por otras listas de opciones.
Operador / Función | Explicación | Compatibilidad |
---|---|---|
+, -, *, div | Aritmética básica | Totalmente compatible |
=, != | Igualdad | Totalmente compatible |
+, -, *, div | Aritmética básica | Totalmente compatible |
=, != | Igualdad | Totalmente compatible |
>, <, >=, <, <= | Comparación | Totalmente compatible |
and, or | Operadores booleanos | Totalmente compatible |
. | Valor de la pregunta actual | Totalmente compatible |
.. | Grupo principal de la pregunta actual | Será compatible en el futuro. |
if | Totalmente compatible | |
position() | No compatible. Los registros en ActivityInfo no están ordenados. | |
once() | No compatible. | |
selected() | Compatible. | |
selected-at() | No compatible | |
count-selected() | Será compatible en el futuro. | |
jr:choice-name() | No compatible | |
indexed-repeat | No compatible | |
count() | Será compatible en el futuro. | |
count-non-empty() | Será compatible en el futuro. | |
sum() | Será compatible en el futuro. | |
max() | Será compatible en el futuro. | |
min() | Será compatible en el futuro. | |
regex() | Traducido como MATCHREGEX() | |
contains() | Será compatible en el futuro. | |
starts-with() | Será compatible en el futuro. | |
ends-with() | Será compatible en el futuro. | |
substr() | Será compatible en el futuro. | |
substring-before() | ||
substring-after() | Será compatible en el futuro. | |
translate() | Será compatible en el futuro. | |
string-length() | Será compatible en el futuro. | |
normalize-space() | Será compatible en el futuro. | |
concat() | Será compatible en el futuro. | |
join() | Será compatible en el futuro. | |
boolean-from-string() | Será compatible en el futuro. | |
string() | Será compatible en el futuro. | |
round() | Será compatible en el futuro. | |
int() | Será compatible en el futuro. | |
number() | Será compatible en el futuro. | |
digest() | No compatible | |
pow() | Será compatible en el futuro. | |
log() | Será compatible en el futuro. | |
log10() | Será compatible en el futuro. | |
abs() | Será compatible en el futuro. | |
sin() | Será compatible en el futuro. | |
cos() | Será compatible en el futuro. | |
tan() | Será compatible en el futuro. | |
asin() | Será compatible en el futuro. | |
acos() | Será compatible en el futuro. | |
atan() | Será compatible en el futuro. | |
atan2() | Será compatible en el futuro. | |
sqrt() | Será compatible en el futuro. | |
exp() | Será compatible en el futuro. | |
exp10() | Será compatible en el futuro. | |
pi() | Será compatible en el futuro. | |
today() | Compatible | |
now() | Será compatible en el futuro. | |
decimal-date-time() | No compatible | |
date() | Parcialmente compatible. Admite la sintaxis DATE("2020-01-01") |
|
decimal-time() | No compatible | |
format-date() | Será compatible en el futuro. | |
format-date-time() | Será compatible en el futuro. | |
area() | No compatible | |
distance() | No compatible | |
random() | No compatible | |
randomize() | No compatible | |
uuid() | No compatible | |
boolean() | Será compatible en el futuro. | |
not(x) | Compatible. not(x) se convierte en !x en ActivityInfo | |
coalesce() | Compatible | |
checklist() | No compatible | |
weighted-checklist() | No compatible | |
true() | Compatible. Se convierte en "TRUE" en ActivityInfo |
|
false() | Compatible. Se convierte en "FALSE" en ActivityInfo |
Otras limitaciones
- En la mayoría de los casos, ActivityInfo no respeta la columna de apariencia de las preguntas.
- ActivityInfo no admite valores por defecto.
- ActivityInfo no admite desencadenadores
- ActivityInfo admite restricciones, pero no mensajes de restricción personalizados.