Saltar al contenido

Mapeo Condicional

Introducción

La creación de una condición en un nodo de destino, denominada mapeo condicional, le permite especificar si un registro de origen que se está procesando debe enviarse al destino en función de una condición definida. La condición determina (sí o no) si el registro se asigna. Como parte de esa determinación, puede incluir lógica para establecer qué valores se utilizan en el mapeo. Por ejemplo, un registro podría usarse solo si el tamaño de un campo de texto es menor que un máximo especificado.

Notas Importantes

Al utilizar un secuencia de comandos de condición en un nodo de destino, tenga en cuenta estas notas:

  • Se pueden agregar condiciones a los nodos de destino con una cardinalidad de [0+], [0, 1], o [1+] en cualquier nivel de estructura. Si se requiere un nodo ([1+]) y la condición se evalúa como false, la operación puede fallar en tiempo de ejecución.
  • Los nodos de destino que pueden tener una condición solo pueden tener una condición para cada nodo. Por lo tanto, toda la lógica de la condición debe residir en esa condición.
  • El secuencia de comandos de condición siempre se evalúa antes de que se evalúen los campos de destino. Esto significa que toda la lógica para crear o determinar los valores de esos campos de destino debe estar en el secuencia de comandos de condición si secuencia de comandos requiere esos valores para completar su determinación.
  • Si existen múltiples condiciones, se evalúan en orden desde el nodo externo al nodo interno; si están en el mismo nivel, se evalúan en orden de arriba hacia abajo.

Agregar una Condición

Puede agregar condiciones como secuencias de comandos en nodos de destino con una cardinalidad de [0+], [0, 1], o [1+]. Desde cualquiera de los dos modos de mapeo o modo secuencia de comandos, pase el cursor sobre el nombre del nodo y haga clic en el icono del menú de acciones para abrir el menú de acciones. En el menú, seleccione Agregar condición al nodo:

condición de adición del nodo de destino

Al seleccionar esta opción, si aún no está en modo secuencia de comandos, accederá al modo secuencia de comandos para crear una condición ingresando un secuencia de comandos en el nodo seleccionado:

condición vacía

El contenido del secuencia de comandos especifica la condición para generar el registro. Una condición debe devolver un true(1) o false (0) valor. Puede contener otra lógica y un efecto secundario de esa lógica puede ser establecer el valor de otros nodos en la transformación.

Nota

Si el nodo es obligatorio ([1+]) y la condición se evalúa como false, la operación puede fallar en tiempo de ejecución.

Ejemplo 1

El secuencia de comandos a continuación requiere que el objeto de origen code evalúa a true para que el expediente sea procesado. Si code evalúa a false, entonces se omite el nodo y este registro en particular no se procesa:

condición si

Ejemplo 2

También puedes utilizar el == el operador igual se utiliza como abreviatura para escribir secuencias de comandos de condiciones. Por ejemplo, la misma condición utilizada en el Ejemplo 1 podría escribirse de la siguiente manera:

condición abreviada

Ejemplo 3

Para establecer una condición tal que un registro se use solo si se estableció un indicador para publicarlo, puede usar un secuencia de comandos como este:

bool(Publish_To_Community__c) == true

Ejemplo 4

Establecer una condición de modo que un registro se utilice solo si es menor que un tamaño máximo, suponiendo que el texto del artículo está en el elemento json$results$item.body$view$value$ Podrías usar un secuencia de comandos como este:

pass = true;

// Log article size
$articleDetailsSize = Length(json$results$item.body$view$value$);
WriteToOperationLog('Current article:' +
    json$start$ + ' articleDetailsSize:' + $articleDetailsSize);

// Checks if the article size > $MaxArticleDetailSize;
// if so, the article is ignored
if($articleDetailsSize > $MaxArticleDetailSize,
    WriteToOperationLog("Ignoring Id " + json$results$item.id$ +
        " as too large (" + $articleDetailsSize + ")");
    pass = false;
);

pass;

Ejemplo 5

Un secuencia de comandos de condición también puede establecer valores utilizados en otros nodos. A partir del Ejemplo 4, el nodo de condición puede, como parte de su lógica, establecer el contenido deseado de un campo en una variable global:

...
$articleDetails = Replace(json$results$item.body$view$value$,
                          'href="/','href="https://example.com/');
...

Luego, se utiliza la variable global para establecer el valor en el campo de destino deseado. Article_Details__c:

$articleDetails;

Editar una Condición

Desde cualquiera de los dos modos de mapeo o modo secuencia de comandos, haga clic en el botón naranja icono de condición que se muestra a la derecha del nodo de destino:

icono de condición del nodo de destino

O pase el cursor sobre el nombre del nodo y haga clic en el icono del menú de acciones para abrir el menú de acciones. En el menú, seleccione Editar condición:

condición de edición del nodo de destino

Si aún no se encuentra en el modo de secuencia de comandos, se lo lleva al modo de secuencia de comandos para editar la condición editando el secuencia de comandos en el nodo seleccionado.

Eliminar una Condición

Desde cualquiera de los dos modos de mapeo o modo secuencia de comandos, pase el cursor sobre el nombre del nodo y haga clic en el icono del menú de acciones para abrir el menú de acciones. En el menú, seleccione Eliminar condición:

condición de eliminación del nodo de destino

Se borra el contenido del secuencia de comandos, eliminando la condición.

También puede eliminar una condición editando manualmente el secuencia de comandos de condición para borrar el contenido del secuencia de comandos.