Fórmulas específicas para extracción de datos en campos tipo tabla

1. Formula GET_CELL_VALUE({field}, row, column, lang)

 

Devuelve el contenido de una celda en el campo tipo tabla especificado por field, y en función de las coordenadas indicadas por los parámetros row y column.

Los parámetros field, row y columnson obligatorios. Si el parámetro indicado para field no fuera un campo de tipo tabla, se producirá un error de sintaxis en la fórmula.

Los parámetros row y column, aceptan un valor de tipo texto, o un valor de tipo numérico. 

Si se especifica un valor de tipo numérico (no entrecomillado), se intentará obtener el valor de celda resultado de la coordenada especificada por row y column, comenzando a contar desde 0 tanto para filas como para columnas.

Si se especifica un valor de tipo texto en estos parámetros se intentará obtener el valor de coordenada de celda, como  resultado de la búsqueda: Para el parámetro row, en el contenido de la primera columna de la tabla, y para el parámetro column en el contenido de la primera fila de la tabla.

Si la fórmula no es capaz de encontrar una coordenada válida, esta devolverá un valor vacío.

Algunos ejemplos para la clara comprensión, basados en la siguiente tabla de muestra:

Tabla de muestra
GET_CELL_VALUE({features}, 2, 1)    //Resultado: 230
GET_CELL_VALUE({features}, “IP Protection”,”Available in Web”)    //Resultado: Yes
GET_CELL_VALUE({features}, “Voltage”, 1) //Resultado: 230
GET_CELL_VALUE({features}, “Voltage”, “No existe”) //Resultado: 

El parámetro lang es opcional. Si se especifica, y el campo field, es un campo tabla multiidioma, intentará recuperar el valor de coordenadas especificado en el contenido del campo en el idioma indicado.

GET_CELL_VALUE({features}, “Voltage”, 1, “en”) //Resultado: 230

Acerca del comportamiento del parámetro lang :

Este parámetro es opcional. Si el campo de tipo tabla del cual se está intentando obtener la información de celda , está configurado como campo multidioma, y se omite el parámetro lang de la fórmula, la expulsión de datos queda determinada por la configuración del conector en el que se está utilizando la fórmula. Es decir se serán expulsados tantos campos conectados, como idiomas existan configurados en el conector.

Imaginemos un conector que utiliza un campo de tipo tabla como el del ejemplo y configurado en Sales Layer como campo multi idioma. Lo conectamos como un valor de salida de columna llamado features y en el cual utilizamos la fórmula GET_CELL_VALUE. Si omitimos el valor para el campo idioma y el conector está configurado para expulsar datos en 3 idiomas (supongamos “es”, “en” y “fr”), el resultado de salida del conector para la tabla y fórmula de ejemplo sería:

GET_CELL_VALUE({features}, 2, 1)  

Columnas de salida del conector:

features_en  //Resultado : 230

features_es //El valor de coordenadas de la tabla en idioma Español

features_fr //El valor de coordenadas de la tabla en idioma Francés

Sin embargo si especificamos un valor válido para el parámetro idioma, solamente obtendremos una columna expulsada en el conector con el idioma especificado, independientemente de los idiomas definidos en el conector.

GET_CELL_VALUE({features}, 2, 1, “en”)

Columnas de salida del conector:

features  //Resultado : 230

 Apunta: es aconsejable omitir este parámetro cuando ejecutemos la fórmula sobre un campo de tipo tabla NO configurado como multidioma.

 

2. Formula PRINT_TABLE_FIELD (field, format, options, lang)

 

Esta fórmula de extracción de datos se puede utilizar en conectores de salida tales como los conectores de expulsión Excel, CSV, Genérico, etc. El resultado de aplicar esta fórmula es una normalización o formateado del contenido completo de un campo de tipo tabla, atendiendo a los parámetros suministrados en format options.

Los posibles formatos estandarizados de salida, y que se indican como valor del parámetro format son: JSON, XML y HTML.

Los parámetros options y lang, son parámetros opcionales

* El comportamiento del parámetro lang  es similar al que se describió anteriormente para la fórmula GET_CELL_VALUE. Salvo casos puntuales, se recomienda omitir el valor de este parámetro y dejarlo a expensas de la propia configuración de idiomas del conector donde se utiliza la fórmula.

El parámetro optionsacepta los siguientes posibles valores, que pueden ser indicados como una lista de elementos, lo que permitirá a la fórmula aplicar uno más parámetros al mismo tiempo.

Los valores introducidos en el parámetro options solo tienen efecto sobre los formatos JSON y XML, y no producen ningún impacto sobre el formato HTML.

FIRST_ROW_AS_COLUMN_TITLES: si se indica este parámetro, se tomará en cuenta la primera fila del campo tabla como títulos de columnas para componer la salida adecuada en los formatos afectados.

FIRST_COLUMN_AS_ROW_TITLES: similar a la opción anterior, pero se toma en cuenta los valores de la primera columna del campo tabla, como títulos de filas a la hora de generar la salida en el formato seleccionado.

REMOVE_COLUMS_WITH_EMPTY_COLUMN_TITLES: solo tiene efecto en caso de utilizar el parámetro FIRST_ROW_AS_COLUMN_TITLES. En ese caso se eliminarán de la salida, y de forma completa aquellas columnas para las cuales no exista un título definido en la primera fila. Es decir aquellas columnas, cuyo valor en la primera fila es vacío.

REMOVE_ROWS_WITH_EMPTY_ROW_TITLES: igual que la anterior, pero afecta a aquellas filas, cuyo valor en la primera columna está vacío.

Seguidamente se presentan algunos ejemplos para la mejor comprensión del resultado de esta fórmula.

Tabla de ejemplo Print_Table_Field

PRINT_TABLE_FIELD({Features},”HTML”)

​​​​​​​<table>
   <thead>
      <tr>
         <th>Feature name</th>
         <th>Value</th>
         <th></th>
         <th>Modified</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>Voltage (V)</td>
         <td>120</td>
         <td>Review by John</td>
         <td>14/11/2018</td>
      </tr>
      <tr>
         <td>IP Protection</td>
         <td>IP20</td>
         <td>Review by Marcy</td>
         <td>13/11/2018</td>
      </tr>
   </tbody>
</table>

 

PRINT_TABLE_FIELD({Features},”JSON”)

[
   [
      "Feature name",
      "Value",
      null,
      "Modified"
   ],
   [
      "Voltage (V)",
      "120",
      "Review by John",
      "14\/11\/2018"
   ],
   [
      "IP Protection",
      "IP20",
      "Review by Marcy",
      "13\/11\/2018"
   ]
]

PRINT_TABLE_FIELD({THIS}, "JSON", [FIRST_ROW_AS_COLUMN_TITLES, REMOVE_COLUMS_WITH_EMPTY_COLUMN_TITLES])

​​​​​​​{
   "row_1":{
      "Feature name":"Voltage (V)",
      "Value":"120",
      "Modified":"14\/11\/2018"
   },
   "row_2":{
      "Feature name":"IP Protection",
      "Value":"IP20",
      "Modified":"13\/11\/2018"
   }
}


PRINT_TABLE_FIELD({THIS}, "JSON", [FIRST_ROW_AS_COLUMN_TITLES, FIRST_COLUMN_AS_ROW_TITLES])

​​​​​​​{
   "Voltage (V)":{
      "Value":"120",
      "column_2":"Review by John",
      "Modified":"14\/11\/2018"
   },
   "IP Protection":{
      "Value":"IP20",
      "column_2":"Review by Marcy",
      "Modified":"13\/11\/2018"
   }
}

PRINT_TABLE_FIELD({THIS}, "XML", [FIRST_ROW_AS_COLUMN_TITLES, FIRST_COLUMN_AS_ROW_TITLES])

<?xml version="1.0"?>
<prod_features_en>
  <Voltage (V)>
    <Value>120</Value>
    <column_2>Review by John</column_2>
    <Modified>14/11/2018</Modified>
  </Voltage (V)>
  <IP Protection>
    <Value>IP20</Value>
    <column_2>Review by Marcy</column_2>
    <Modified>13/11/2018</Modified>
  </IP Protection>
</prod_features_en>