Saltar al contenido

Conector Variable

Resumen

El conector de variable para Harmony Cloud Studio proporciona una interfaz para ingresar un nombre de variable para crear una conexión de variable. Esa conexión proporciona la base para configurar actividades asociadas del conector de variables que interactúan con la conexión. En conjunto, una conexión variable específica y sus actividades se denominan extremo variable.

Descripción General del Conector

Este conector se utiliza primero para configurar una conexión variable, estableciendo acceso a una variable de proyecto o una variable global en memoria, y luego se usa para configurar una o más actividades variables asociadas con esa conexión como origen o destino dentro de una operación:

  • Leer: Lee datos de un extremo variable y está diseñado para usarse como fuente en una operación.
  • Escribir: Escribe datos en un extremo variable y está diseñado para usarse como destino en una operación.

Accediendo al Conector

Se accede al conector Variable desde la pestaña Conexiones de la paleta de componentes de diseño (consulte Paleta de Componentes de Diseño).

actividades variables

Almacenamiento Variable Versus Temporal

Dos de los tipos de almacenamiento temporal más comunes en Harmony son los extremos variables y los extremos de almacenamiento temporal. Hay varias consideraciones a tener en cuenta a la hora de elegir uno u otro.

Extremo Variable

extremos variables (Leer y Actividades de escritura, no confundir con secuencias de comandos variables globales) son fáciles de codificar y reducen la complejidad, como se describe más adelante en esta página. Sin embargo, tienen ciertas limitaciones.

Para un escenario en el que una integración funciona con conjuntos de datos pequeños (típicos de solicitudes y respuestas de servicios web, o archivos pequeños de unos pocos cientos de registros), sugerimos utilizar un extremo variable.

Cuando el conjunto de datos está en el rango de megabytes, el extremo variable se vuelve más lento que el extremo de almacenamiento temporal equivalente. Esto comienza a suceder cuando los datos superan los 4 MB de tamaño.

Cuando el conjunto de datos está en el rango mayor de varios megabytes, existe el riesgo de truncamiento de datos. Recomendamos un límite de 50 MB para ser conservador y evitar cualquier riesgo de truncamiento.

El uso de extremos variables en operaciones asincrónicas es un caso de uso que requiere una consideración especial. Hay un límite de 7 KB en el tamaño de un conjunto de datos utilizado en un extremo variable que se utiliza en una operación asincrónica. En este escenario, exceder ese límite puede resultar en el truncamiento. Ver el RunOperation() función para obtener una descripción de cómo llamar a una operación asincrónica.

Extremo de Almacenamiento Temporal

Los conjuntos de datos más grandes, como los utilizados en escenarios ETL con recuentos de registros de miles, deben manejarse mediante extremos de almacenamiento temporal.

A diferencia de los extremos variables, no hay degradación en el rendimiento ni truncamiento cuando se utilizan extremos de almacenamiento temporal, incluso con conjuntos de datos muy grandes. Sin embargo, el uso de extremos de almacenamiento temporal puede requerir secuencias de comandos adicionales. Al utilizar extremos de almacenamiento temporal, no puede aprovechar la reutilización y la simplicidad de los extremos variables, como se describe más adelante en esta página.

Tenga en cuenta que Agentes en Nube tienen un límite de tamaño de archivo de extremo de almacenamiento temporal de 50 GB por archivo. Aquellos que necesiten crear archivos temporales de más de 50 GB necesitarán un Agente Privado.

El Uso de Extremos Variables Puede Aumentar la Reutilización y Reducir la Complejidad

El uso de un extremo variable para conjuntos de datos pequeños puede aumentar la reutilización y reducir la complejidad. Por ejemplo, al crear operaciones encadenadas con acciones de operación, cada operación puede tener actividades que funcionan como fuentes (actividades de lectura) y objetivos (actividades de escritura). En lugar de crear combinaciones de origen o destino individuales para cada operación, es fácil utilizar un destino y una fuente variables comunes (descritos en rojo en el siguiente ejemplo):

operación de conexión variable

Para aumentar la reutilización y la estandarización, puede crear un secuencia de comandos reutilizable que registre el contenido de la variable (el secuencia de comandos Write to Operation Log en el ejemplo anterior, resaltado en verde). Este enfoque también se puede lograr utilizando almacenamiento temporal, pero se necesitan secuencias de comandos adicionales para inicializar la ruta y el nombre del archivo.

Cuando se utiliza un extremo variable, su alcance es la cadena (el hilo) de operaciones. Por lo tanto, los valores de los extremo variables son exclusivos de un subproceso en particular y se destruyen cuando el subproceso finaliza. Este no es el caso con un extremo de almacenamiento temporal; como resultado, requiere más manejo para garantizar la singularidad. La mejor práctica es inicializar un GUID al inicio de una cadena de operación y luego pasar ese GUID a cada uno de los nombres de archivos de almacenamiento temporal en la cadena, como se describe en Persistir datos para procesamiento posterior usando almacenamiento temporal. (Aunque ese documento es para Design Studio, los mismos conceptos se pueden aplicar a Cloud Studio).

Al realizar pruebas unitarias de operación, resulta útil cargar datos de prueba. El uso de un origen o destino variable simplifica esto: agrega un secuencia de comandos previo a la operación para escribir los datos de prueba en un destino:

  $memory = "a,b,c";

Por el contrario, escribir datos en un extremo de almacenamiento temporal tiene este aspecto:

  WriteFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_write/Write</TAG>", "a,b,c");

  FlushFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_write/Write</TAG>");

Asimismo, la lectura de datos es más sencilla con un extremo variable:

  myLocalVar= $memory;

Por el contrario, así es como se leen los datos desde un extremo de almacenamiento temporal:

  myLocalVar = ReadFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_read/Read</TAG>");

En resumen, usar extremos variables para leer, escribir y registrar entradas y salidas de operación es sencillo, pero se debe tener mucha precaución para asegurarse de que los datos tengan el tamaño adecuado.

Solución de Problemas

Si tiene problemas con el conector variable, se recomiendan estos pasos de solución de problemas:

  1. Asegúrese de que la Conexión variable se realiza correctamente utilizando el botón Probar en la pantalla de configuración. Si la conexión no se realiza correctamente, el error devuelto puede proporcionar una indicación del problema.

  2. Verifique los registros de operación para cualquier información escrita durante la ejecución de la operación.

  3. Habilite el registro de depurar de operación (para Agentes en Nube o para Agentes Privados) para generar archivos de registro y datos adicionales.

  4. Si utiliza Agentes Privados, puede consultar los registros de agentes para más información.