Consideraciones

Este documento est谩 dise帽ado para poder realizar paso a paso la implementaci贸n de Fuentes de datos consumidas por la plataforma Arkbox.

Arkbox es una soluci贸n que integra diferentes tecnolog铆as, una de ellas es realizar consultas a fuentes XML en la red, permitiendo mostrar campos din谩micos de manera autom谩tica sin necesidad de cambiar los dise帽os personalizados.

Otra forma de hacer consultas de informaci贸n por medio de Arkbox es instalando un Cliente de Datos (Suministrado por Tekus S.A.S.) en un servidor que est茅 ubicado en la misma Red en la que se encuentra el Player o Dispositivo con Arkbox (o que sea visible por 茅ste). As铆, el player podr谩 recibir informaci贸n que tenga guardada de manera local, ya sea en formato Excel( .xlsx, .xls), texto plano (.txt, .csv) o bases de datos que soporten conexiones por drivers ODBC.

La evaluaci贸n de contenidos se realiza sobre fuentes XML que puedan ser consultadas desde el Player, para esto te sugerimos abrir un navegador en el player y validar que la URL del recurso XML sea accesible. 



1. Sintaxis de sentencias para consulta de datos din谩micos a trav茅s de una fuente XML

1.1. Estructura de sentencia

La evaluaci贸n sobre una fuente de datos XML se debe realizar utilizando sentencias que tengan la siguiente estructura.

( ruta . nodo1 . subnodo1 ) . Funcion 

La primer parte de la sentencia es una expresi贸n que describe la ruta del nodo de inter茅s. La segunda parte es una funci贸n que indica qu茅 dato tomar del nodo consultado.

1.1.1 Funciones disponibles

Funciones disponibles

Actualmente se soporten 3 funciones para extraci贸n de informaci贸n. Si no se provee una funci贸n se tomar谩 la funci贸n text() por defecto

  • text() = obtiene el texto del contenido del nodo indicado.

  • attr("nombre_atributo") = obtiene el valor del atributo en el nodo indicado.

  • price() = Provee funciones de transformaci贸n sobre n煤meros para desplegar la informaci贸n con un formato de precios. 


1.2. Ruta completa en editor de dise帽o personalizado.

Cuando est茅s realizando la edici贸n de los datos dentro del disse帽o personalizado debes tener presente que hay que incluir la expresi贸n del nodo entre llaves {{ }}, de esta manera vas a garantizar que solo se eval煤en las expresiones deseadas.

Puedes ingresar varias sentencias en un mismo campo:

{{( ruta . nodo1 . subnodo1 ) . Funccion }} 

Si deseas referenciar m谩s de una fuente de datos puedes especificar de la siguiente manera:

 {{dataSourceId, ( ruta . nodo1 . subnodo1 ) . Funccion }}

 D贸nde dataSourceId corresponde al identificador de la fuente que se cre贸 en el dise帽o personalizado.

Expande para ver algunos ejemplos鈥 馃暤馃徎

Ejemplos

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="https://www.arkbox.co/xml/data-client-2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <item id="2" index="2">
        <field name="ID">2</field>
        <field name="DESC">Lavadora LG</field>
        <field name="PRICE">2.228.900</field>
    </item>
    <item id="3" index="3">
        <field name="ID">3</field>
        <field name="DESC">Prueba3</field>
        <field name="PRICE">2000</field>
    </item>
    <item id="4" index="4">
        <field name="ID">4</field>
        <field name="DESC">Prueba4</field>
        <field name="PRICE">1000</field>
    </item>
    <item.var id="4" index="4">
        <field name="ID">4</field>
        <field name="DESC">Prueba4</field>
        <field name="PRICE">1000</field>
    </item.var>

    <item:var id="4" index="4">
        <field name="ID">4</field>
        <field name="DESC">Prueba4</field>
        <field name="PRICE">1000</field>
    </item:var>
</data>
XML

- Ejemplo de Consulta nodo a nodo (obteniendo el contenido):

Expresi贸n

Expresi贸n alternativa

Resultado

Descripci贸n

(data.item.field).text()

(data.item.field)

2

Debes tomar el nodo data, el primer nodo item, el primer nodo field y tomar la propiedad text del nodo.

(data.item[1].field[1]).text()

(data.item[1].field[1])

3

Debes tomar el nodo data, el segundo nodo item (index = 1), el segundo nodo field (index = 1) y tomar la propiedad Text del nodo.


- Ejemplo de Consulta en nodo interno (obteniendo el contenido):

Cuando hay nodos comunes o que agrupan otros nodos, puedes realizar una omisi贸n de dicho nodo en la ruta.

Para este ejemplo omitimos el nodo data.

Expresi贸n

Resultado

Descripci贸n

(item.field).text()

2

Debes tomar el primer nodo item (index = 0), el primer nodo field y tomar la propiedad Text del nodo.

(item[0].field[0]).text()

2

Debes tomar el primer nodo item (index = 0), el primer nodo field (index = 0) y tomar la propiedad Text del nodo. 

(field[8]).text()

1000

Debes tomar el noveno nodo field (index = 8), y tomar la propiedad Text del nodo.


- Ejemplo de Consulta por atributo (obteniendo el contenido):

 Este tipo de consultas s贸lo aplica para contenidos XML

Expresi贸n

Resultado

Descripci贸n

(item['id=4'].field[0]).text()

4

Debes tomar el nodo item (donde el atributo id sea igual a 4), el primer nodo field (index = 0) y tomar la propiedad Text del nodo.


- Ejemplo de Consulta en nodo interno (obteniendo un atributo):

Expresi贸n

Resultado

Descripci贸n

(item.field).attr('name')

ID

Debes tomar el primer nodo item (index = 0), el primer nodo field y tomar el atributo name del nodo.

(item[0].field[0]).attr('name')

ID

Debes tomar el primer nodo item (index = 0), el primer nodo field (index = 0) y tomar el atributo name del nodo.


1.3. Generalidades 

鈼       El sistema de rutas de nodos se basa en un sistema DOT (Enrutamiento por nodos separados por puntos)     

鈼       Si no defines el 铆ndice se asumir谩 el primer elemento encontrado (Index = 0)          

鈼       Afecta MAYUS y MINUS      

鈼       Si no indicas una funci贸n se tomar谩 'text()' por defecto

1.4. Variantes

鈼       En el caso de que el nombre de un nodo contenga un punto como parte del caracter debes indicar el nodo entre comillas simples:

('item.var'[0])

鈼       En algunos casos en los que los nodos contienen el caracter dos puntos : puedes indicar el nodo de manera natural sin las comillas:

(item:var.field[1]).text();

1.5 URL's Din谩micas y variables locales del player

En ocasiones es necesario parametrizar las consultas de tal forma que el contenido de la misma dependa del player o dispositivo. Para esto, hemos habilitado unas variables locales que son resueltas por cada dispositivo seg煤n sus propias caracter铆sticas.

A continuaci贸n te mostramos una lista de las variables locales soportadas por un player:

Nombre

Descripci贸n

Ejemplo

serial

Identificador 煤nico del player

123456

platform

Indica el sistema operativo o el sistema base de la plataforma

ios, android, windows, linux

model

Modelo del player

MK808, IPHONE8

manufacturer

Marca de quien fabrica el player

samsung, apple, rockchip

name

Nombre del dispositivos (Arkbox)

Player 12

width

Indica el ancho de la pantalla

1920

height

Indica el alto de la pantalla

1080

time_h

La hora, usando un reloj de 12 horas de 1 a 12.

Data la fecha 2009-06-15T01:45:30 el valor ser铆a 1

time_hh

La hora, usando un reloj de 12 horas de 01 a 12.

Data la fecha 2009-06-15T01:45:30 el valor ser铆a 01

time_H

La hora, usando un reloj de 24 horas de 0 a 23.

Data la fecha 2009-06-15T5:45:30 el valor ser铆a 5

time_HH

La hora, usando un reloj de 24 horas de 00 a 23.

Data la fecha 2009-06-15T15:45:30 el valor ser铆a 15

time_m

Minutos, de 0 a 59.

Data la fecha 2009-06-15T15:05:30 el valor ser铆a 5

time_mm

Minutos, de 00 a 59.

Data la fecha 2009-06-15T15:45:30 el valor ser铆a 45

date_d

El d铆a del mes, de 1 a 31.

Dada la fecha 2009-06-01T13:45:30 el valor ser铆a 1

date_dd

El d铆a del mes, de 01 a 31.

Dada la fecha 2009-06-01T13:45:30 el valor ser铆a 01

date_M

El  mes, de 1 a 12

Dada la fecha 2009-06-01T13:45:30 el valor ser铆a 6

date_MM

El  mes, de 01 a 12

Dada la fecha 2009-06-01T13:45:30 el valor ser铆a 06

date_yyyy

El a帽o en 4 d铆gitos

Dada la fecha 2009-06-01T13:45:30 el valor ser铆a 2009

time_tt

El designador AM/PM.

Dada la fecha 2009-06-01T13:45:30 el valor ser铆a PM

ip

Indica la IP actual (IPv4)

192.168.0.50

time_s

segundos, de 0 a 59.

Data la fecha 2009-06-15T15:05:08 el valor ser铆a 8

time_ss

segundos, de 00 a 59.

Data la fecha 2009-06-15T15:45:30 el valor ser铆a 30


 Todas las variables se indican en min煤scula. Las variables pueden ser referenciadas en cualquier campo de texto, propiedad de texto y en URL's incluyendo la URL que se indica en la fuente de datos.

Las variables se expresan contenidos entre "::" (dos puntos doble), de la siguiente forma:

 ::nombre_variable::

 

Expande si deseas ver algunos ejemplos鈥

Ejemplos
  • Ejemplo 1:
    Para indicar el serial se utilizar铆a la siguiente expresi贸n: 
    ::serial:: 

  • Ejemplo 2:
    Si se deseas usar una variable local en una funci贸n puedes insertar la variable dentro de la misma:
    {{(ruta.nodo1.nodo2['ID=::serial::']).text()}}

  • Ejemplo 3:
    Tambi茅n puedes insertar en la URL de la fuente de datos algo como lo siguiente: 
    http://192.168.20.50:8181/data/50/?ID=::serial::

  • Ejemplo 4:
    Si se deseas indicar la fecha en formato HH:mm yyyy/MM/dd
    ::time_HH:::::time_mm:: ::date_yyyy::/::date_MM::/::date_dd::
    El resultado ser谩 09:00 2021/11/16

  • Ejemplo 5:
    Si se deseas indicar la fecha en formato yyyy-MM-dd hh:mm tt
     ::date_yyyy::-::date_MM::-::date_dd:: ::time_hh:::::time_mm:: ::time_tt::
    El resultado ser谩 2021/11/16 09:00 AM 


2. Definici贸n de las URL de las fuentes de datos ejemplo RSS.


2.1. Como primera medida debes poseer la URL de consulta de donde se van a obtener la fuente RSS, en este ejemplo utilizaremos la url de la p谩gina de El tiempo que previamente buscamos en google.

La plataforma Arkbox es compatible con formato XML y formato JSON, por ende, las fuentes que vayas a agregar deben estar en alguno de estos formatos. 


2.2. Ahora que tienes la url de consulta debes acceder a tu cuenta en la plataforma Arkbox y crear la Fuente de datos en el editor de tu dise帽o personalizado.

2.3. Una vez se abra la ventana para agregar la Fuente de datos, debes definirle Nombre, Per铆odo de comprobaci贸n, Formato, Codificaci贸n y finalmente la Url de consulta > y finalizar haciendo clic en Guardar.

 

  • Nombre: Nombre nemot茅cnico, por lo general se le da un nombre alusivo a la fuente de datos que vas a consultar.

  • Comprobaci贸n: Cada cuanto tiempo consultar谩 la url en busca de informaci贸n nueva.

  • Formato: El formato que soporta la plataforma Arkbox es XML.

  • Codificaci贸n: El formato de codificaci贸n de caracteres es el UTF-8.

  • Url de consulta: Corresponde a la url de donde vamos a consultar los datos, Url completa con esquema (Https | Http).

 


2.4. Una vez creada tu fuente de datos deber谩s ver algo as铆:

El ID es un valor 煤nico que identifica la fuente datos. Es 煤til en los casos en los que se tiene m谩s de una fuente de datos creada.

3. Agregar Sintaxis XML a la fuente de datos.

3.1. Una vez agregada la fuente puedes incluir la sintaxis XML a tu dise帽o personalizado. Para esto, debes asgregar controles de texto por cada dato que desees traer de la fuente de datos.

 

2.1. Posteriormente debes agregar el contenido respectivo en cada recuadro de texto. Para esto, debes seleccionar uno a uno los recuadros de texto y editar su contenido en el men煤 derecho Propiedades.

 

Recuerda que el primer n煤mero que aparece en la sintaxis hace referencia al ID de la fuente de datos creada. Esto se usa en caso de que exista m谩s de una fuente asociada a una mismo dise帽o personalizado.