Saltar al contenido

Mapeo Condicional

Introducción

La asignación condicional le permite especificar que un registro en una transformación se asigna en función de una condición definida. La condición determina (sí o no) si el registro está mapeado. Como parte de esa determinación, puede incluir lógica para establecer qué valores se utilizan en la asignación. Por ejemplo, un registro podría usarse sólo si el tamaño de un campo de texto es menor que un máximo especificado.

El mapeo condicional se logra agregando un elemento de datos especial llamado nodo de condición a una carpeta de destino. El contenido del nodo de condición 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.

Sólo puede haber un nodo de condición en una carpeta de destino. Por tanto, toda la lógica de la condición debe residir en esa condición.

El nodo de condición siempre se evalúa antes de evaluar cualquier campo de destino. Esto significa que toda la lógica para crear o determinar los valores para esos campos de destino debe estar en el nodo de condición si el nodo de condición requiere esos valores para completar su determinación.

Si hay varias condiciones presentes, se evalúan en el orden del nodo externo al nodo interno; si están en el mismo nivel, se evalúan en orden de arriba a abajo.

Nota

Los nodos de condición se aplican solo a carpetas de destino opcionales o de bucle (también conocidas como nodos de bucle de destino o TLN).

Crear un Nodo de Condición

Para definir una condición:

  1. Seleccione la carpeta a la que se aplicará la condición:

    adjunto

  2. Debajo del mapeo de transformación, haga clic en el ícono de varias carpetas adjunto para mostrar el cuadro de diálogo Opciones de asignación. Para obtener información sobre todas las opciones disponibles, consulte Agregar carpetas adicionales en Asignación de estructuras planas a jerárquicas.

  3. Seleccione Habilitar condición en la carpeta actual y haga clic en Aceptar.

    adjunto

  4. La carpeta que seleccionó ahora mostrará un nuevo elemento de datos de condición debajo del nodo al que aplicó la condición:

    adjunto

Aplicar una Fórmula al Nodo de Condición

Ahora tienes una condición aplicada a tu objetivo. Para que esté operativo se debe aplicar una fórmula:

  1. Haga doble clic en la condición en el árbol de destino:

    adjunto

  2. Se abrirá el Creador de fórmulas. En el área de secuencia de comandos en la parte superior izquierda, ingrese una expresión que sea apropiada para su condición usando una combinación de fórmulas, valores de elementos de datos de origen y operadores matemáticos.

  3. La fórmula debe devolver true (1) o false (0) para determinar si se produce la asignación para el registro dado.

Ejemplos

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

<trans>
bool(Publish_To_Community__c) == true
</trans>

Establecer una condición tal que un registro se use solo si es menor que un tamaño máximo, asumiendo que el texto del artículo está en el elemento json$results$item.body$view$value$:

<trans>
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;
</trans>

Una fórmula de condición también puede establecer valores utilizados en otros nodos. Usando el ejemplo anterior, el nodo de condición puede, como parte de su lógica, establecer el contenido previsto de un campo en una variable global:

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

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

<trans>
$articleDetails;
</trans>