Fórmulas específicas para inserción y/o modificación de datos en campos tipo tabla
1. Formula INSERT_IN_TABLE(mode, row 1, column 1, value 1, row 2, column 2, value 2, ...)
Esta fórmula se utiliza para la inserción de datos en campos tipo tabla, bien mediante su uso en conectores de importación (importación genérico, etc.) bien mediante su utilización en la modificación en bloque de elementos accesible a través del menú de acciones de Sales Layer Cloud.


Siempre aplica al campo actual definido (el conectado en un conector de entrada, o el seleccionado en la modificación en bloque), por lo que no es necesario indicar el campo al que aplica como un parámetro.
La fórmula tiene tres modos de actuación diferenciados:
En función del modo seleccionado en la fórmula, los datos a introducir afectarán de una u otra forma al contenido que ya pudiera existir en el momento en el campo tabla afectado.
Los parámetros
Se pueden definir tantas ternas de parámetros row x, column x, value x como se deseen. Si la cuenta de estos parámetros no es múltiplo de tres, la fórmula retornará un error de sintaxis.
En algunos modos de operación de la fórmula es posible dejar los valores de row y column en blanco entrecomillados, “” , de modo que se podrán realizar inserciones de filas o columnas nuevas en el campo de tabla que se esté operando. Esto es útil para conectar una estructura de datos nuevos como se verá más adelante.
Seguidamente se explican los tres modos de operación con los que funcionará esta fórmula y cuyo efecto tiene en cuenta el valor de contenido que actualmente almacena el campo de tipo tabla sobre el que se va a realizar la operación de manipulación de datos
1.1. Modo INSERT
En el modo Insert, se respeta el valor del contenido que pudiera existir anteriormente en el campo tabla en proces. Dada una terna de fila, columna y valor el funcionamiento será: Si se encuentran el nombre indicado en el parámetro fila y columna en la primera columna y primera fila respectivamente del valor actual de la tabla, la celda coincidente con la dimensión se actualizará con el valor aportado. Si alguna de ellas no se encontrara, se creará la correspondiente dimensión (fila, columna, o ambas) al final de la tabla y se insertará el valor aportado. Si se omite un valor para fila o columna ( “” entrecomillado vacío) , se creará una nueva fila o columna al final de la tabla.
Se pueden suministrar valores de índice en filas o columnas (comenzando por 0), en cuyo caso se intentará actualizar el valor de la celda coincidente con dicha dimensión (para indicar índices, no hay que entrecomillar los parámetros fila ni columna). En caso de utilizar índices numéricos para acceder a una celda solo se podrán actualizar datos, nunca insertar nuevas filas o columnas.
Veámoslo con algunos ejemplos sobre la siguiente tabla:
Este sería el contenido actual del campo de tipo tabla: Features
Feature Name |
Value |
Modified |
|
Voltage (V) |
120 |
Review by John |
14/11/2018 |
IP Protection |
IP20 |
Review By Marcy |
13/11/2018 |
Resultado al aplicar la fórmula:
INSERT_IN_TABLE(“insert” , “IP Protection”, “Value”, “IP66” , 0, 2 , “Review By”, “Frequency” , “Value”, 50, “”, “Web Available”, “”)
Feature Name |
Value |
Review By |
Modified |
Web Available |
Voltage (V) |
120 |
Review by John |
14/11/2018 |
|
IP Protection |
IP66 |
Review By Marcy |
13/11/2018 |
|
Frequency |
50 |
En colores está marcado el efecto de cada una de las ternas [fila , columna, valor] aplicadas como parámetro a la fórmula en el modo insert sobre el contenido original del campo Features.
Como caso particular, marcado en rojo , se puede observar la forma de añadir una columna nueva a la tabla, sin valores.
También, marcado en naranja, otra particularidad interesante del modo insert, para añadir nuevas filas (como en este caso), o nuevas columnas cuando no existieran previamente.
1.2. Modo UPDATE
El modo Update funciona de forma similar al modo Insert, salvo que en el modo Update nunca se crearán nuevas filas o nuevas columnas sobre el contenido previo del campo tabla, cuando no somos capaces de encontrar una correspondencia de fila/columna en los datos actuales.
Veámos el resultado de aplicar la misma fórmula en modo update sobre el mismo valor previo del campo Features:
Feature Name |
Value |
Modified |
|
Voltage (V) |
120 |
Review by John |
14/11/2018 |
IP Protection |
IP20 |
Review By Marcy |
13/11/2018 |
Resultado al aplicar la fórmula:
INSERT_IN_TABLE(“update” , “IP Protection”, “Value”, “IP66” , 0, 2 , “Review By”, “Frequency” , “Value”, 50, “”, “Web Available”, “”)
Feature Name |
Value |
Review By |
Modified |
Voltage (V) |
120 |
Review by John |
14/11/2018 |
IP Protection |
IP66 |
Review By Marcy |
13/11/2018 |
Como se puede observar, solamente tendrían lugar las acciones de actualización sobre filas o columnas existentes, pero nunca las de actualización.
1.3. Modo DELETE
El modo delete, se comporta exactamente igual que el modo insert, salvo por que inicialmente se produce una eliminación del contenido previo en el campo tabla en proceso. Por tanto las acciones de las ternas [fila, columna, valor] comienzan sobre un contenido vacío. Es decir que previo a la inserción de datos existe un “reseteado” del contenido del campo tabla.
Este modo es útil cuando deseamos suministrar todos los valores del campo tabla en la operación en curso y eliminar el contenido anterior.
Atento: es importante tener en cuenta que si se ha configurado un template para el campo tabla, este será tenido en cuenta a la hora de comenzar a rellenar los valores.
Veamos el mismo ejemplo anterior cuando procesamos esta función en el modo Delete, para un campo como Features, para el cual NO hemos configurado ningún template cuando creamos el campo y con un template/plantilla básico definido a nivel de campo.
Feature Name |
Value |
Modified |
|
Voltage (V) |
120 |
Review by John |
14/11/2018 |
IP Protection |
IP20 |
Review By Marcy |
13/11/2018 |
Resultado al aplicar la fórmula (sin template/plantilla definida a nivel de campo):
INSERT_IN_TABLE(“delete” , “IP Protection”, “Value”, “IP66” , 0, 2 , “Review By”, “Frequency” , “Value”, 50, “”, “Web Available”, “”)
Value |
Web Available |
|
IP Protection |
IP66 |
|
Frequency |
50 |
Resultado cuando el campo Features (en el idioma de proceso) tiene definido un template como el siguiente:
Feature Name |
Value |
Resultado:
Feature Name |
Value |
Web Available |
IP Protection |
IP66 |
|
Frequency |
50 |
Tanto los modos Insert como Delete, como hemos podido ver , son capaces de realizar cambios a nivel de inserción de filas y columnas nuevas. Cuando se defina un template/plantilla a nivel de configuración de un campo tipo tabla, estas plantillas serán tenidas en cuenta por la fórmula INSERT_IN_TABLE, en aquellas ocasiones que el campo tabla en proceso no tiene contenido , es decir está vacío. Esta situación siempre se produce en el modo Delete, obviamente.