Saltar al contenido

Nueva Creación de Recetas

Introducción

Una receta de Citizen Integrator es una modelo de integración reutilizable que proporciona una guía paso a paso a través de Citizen Integrator, disponible a través del Portal de Harmony Jitterbit. Citizen Integrator las recetas pueden ser utilizadas por los miembros de una Organización Harmony para que puedan configurar un Design Studio integración para un caso de uso específico.

Este documento cubre la creación manual de recetas de Citizen Integrator. Las recetas también se pueden crear usando la interfaz de Citizen Integrator. Ver Citizen Integrator - Generar o Editar Receta para detalles.

Una receta de Citizen Integrator consta de dos partes:

  • un Design Studio Jitterpak (sufijo de archivo .jpk o .JPK); y
  • un archivo JSON de metadatos de receta de Citizen Integrator (sufijo de archivo .json o .JSON) que proporciona los pasos a el usuario pasa para configurar la integración.

Aquí hay un resumen de los pasos necesarios para crear una receta que luego puede estar disponible a través de Citizen Interfaz web del integrador:

Paso 1: Crea un Jitterpak

Crea un Jitterpak (JPK) usando Design Studio de Harmony Jitterbit. El Jitterpak será utilizado como base para la receta. Vea Crear Jitterpaks para Recetas.

Paso 2: Crea los metadatos de la receta

Cree un archivo de metadatos de receta (un archivo JSON). Los metadatos de receta incluyen los pasos que los usuarios completan a través de la interfaz web y asocia la información proporcionada por el usuario con el Jitterpak. Ver Creando metadatos de recetas para las mejores prácticas, un tutorial de muestra, una descripción de tipos de pasos de receta y documentación de los componentes de un archivo de metadatos de receta.

Paso 3: validar los metadatos de la receta

Valide el archivo de metadatos de su receta con el jbcli. Ver Validar una receta del Interfaz de línea de comando Jitterbit.

Paso 4: Cargue el Jitterpak y los metadatos de la receta

Cargue su Jitterpak y el archivo de metadatos de receta en su repositorio de receta. Ver Cargar una nueva receta y Jitterpak del Interfaz de línea de comando Jitterbit. También puede cargar recetas a través de la interfaz web de Citizen Integrator como se describe en la Citizen Integrator - Tablero o Citizen Integrator - Mis Recetas páginas.

Paso 5: Configure e desplegar la receta

Su nueva receta ya está disponible para que la usen los miembros de su organización a través de la web de Citizen Integrator interfaz. Ver Citizen Integrator - Configurar Receta para obtener instrucciones para el usuario sobre cómo configurar e desplegar recetas.

Creación de Jitterpaks para Recetas

Al crear una nueva receta de Citizen Integrator, recomendamos comenzar creando primero un Design Studio Jitterpak que contiene la estructura del proyecto para su modelo de receta.

Jitterpaks no son específicos para la funcionalidad de receta; son una función central de la aplicación completa de Design Studio. Se espera que los usuarios que deseen crear nuevas recetas ya estén familiarizados con Design Studio. Para más información, consulte los materiales en Design Studio y Jitterpaks.

Nota

Las recetas de Citizen Integrator se crean a partir de Design Studio proyectos. Para Cloud Studio, en su lugar utilice Recetas de Integración del Cloud Studio o Modelos de Proceso del Cloud Studio, disponible en Jitterbit Marketplace.

Prácticas Recomendadas de Jitterpak

Al crear un Jitterpak para usar con recetas de Citizen Integrator, recomendamos estas mejores prácticas para receta creación:

  • Defina su(s) caso(s) de uso típico

    Antes de comenzar con cualquier Jitterpak o receta, debe tener una buena idea de lo que quiere que sus usuarios puedan hacer lograr usando la receta. Tenga en cuenta que puede crear varias recetas si es necesario. El caso de uso será ayudarlo a decidir qué incorporar en su Jitterpak y los pasos que desea que complete un usuario a través de Citizen Interfaz de integrador.

  • Ejemplos de referencia para obtener ayuda para comenzar

    Consulte nuestros Jitterpaks públicos como referencia, o si encuentra uno similar a su caso de uso, incluso puede quiero empezar con eso. Para descargar cualquiera de los Jitterpaks creados para nuestras recetas públicas, siga Obtenga una receta específica y guarde el Jitterpak localmente en Interfaz de línea de comandos Jitterbit. O, haga referencia a nuestro Biblioteca Jitterpak.

  • Crear variables de proyecto siempre que sea posible

    Las variables del proyecto son clave para crear recetas que un usuario pueda completar fácilmente a través de Citizen Interfaz web del integrador. Piense en las variables del proyecto como campos con información específica que desea que los usuarios para proporcionar al usar su receta. Luego cree esos elementos como variables de proyecto en su Jitterpak. Por ejemplo, información de conexión para nuevos extremos.

  • Variables de proyecto de espacio de nombres para referencia posterior

    Cuando crea variables de proyecto, es una buena práctica ponerles un espacio de nombres. Por ejemplo, una variable de proyecto para alojar podría llamarse “db. alojar” para indicar que se refiere a un alojar de base de datos. Esto facilitará la lectura del variables de proyecto al crear los metadatos de su receta.

  • Coloque las operaciones en el nivel raíz si desea ejecutarlas a través de un paso de receta

    Cualquier operación que desee ejecutar a través de un paso RunOperation en su receta debe colocarse en el nivel raíz de la carpeta de operaciones dentro de Design Studio. Es decir, si tiene operaciones dentro de subcarpetas bajo su árbol de operaciones, estos no se ejecutarán cuando se expongan a través de un paso RunOperation. Esta advertencia es solo para operaciones. ejecutándose en un paso específico de la receta. Si sus operaciones se encuentran dentro de subcarpetas, estas seguirán ejecutándose cuando guardar y desplegar la receta.

  • Incluya WriteToOperationLog en las operaciones que desea ejecutar a través de un paso de receta

    Incluya WriteToOperationLog en las operaciones que desea ejecutar a través de un paso RunOperation en su receta (consulte Funciones de registro y error). El Los mensajes WriteToOperationLog se mostrarán en el panel debajo del botón RunOperation en Citizen Interfaz del integrador y proporciona retroalimentación al usuario de la receta sobre la operación ejecutada.

  • Utilice los valores de las variables del proyecto para probar, pero luego elimine los valores al exportar como un Jitterpak

    Siempre que utilice variables de proyecto en su Jitterpak, asegúrese de no incluir valores específicos cuando exporte el Jitterpak. Recuerde, los valores suelen estar en blanco para que el usuario pueda completarlos al configurar la receta. Siempre es una buena idea probar su proyecto de Design Studio con valores específicos, pero asegúrese de elimínelos antes de exportar. Aquí hay un par de opciones para eliminar valores:

    • Todos los valores: Para eliminar todos los valores de las variables del proyecto, cuando exporte como un Jitterpak, desmarque la casilla “Incluir valores de variables del proyecto”. Esta es la forma estándar y recomendada de eliminar la variable del proyecto valores.

    • Algunos valores: Para eliminar solo variables específicas del proyecto, simplemente elimine el valor predeterminado en el proyecto variable. Esta opción puede ser más apropiada que usar la casilla de verificación descrita anteriormente si desea mantener intencionalmente algunos valores de las variables del proyecto. Por ejemplo, si su receta es privada dentro de su , podría incluir información como una URL que no cambiará por cada usuario que complete el receta.

  • Toma nota de los horarios incorporados

    Si incluye un cronograma dentro del Jitterpak, tome nota de cuándo está programada la ejecución de la operación y haga asegúrese de documentar esto en los metadatos de la receta. De lo contrario, los usuarios no estarán al tanto del cronograma que se construye en el Jitterpak. Actualmente, los programas no están disponibles para configurarse dentro de una receta.

Creación de Metadatos de Recetas

Puede comenzar a crear metadatos de receta de Citizen Integrator mientras crea su Jitterpak, o crea los metadatos cuando termines. Los metadatos de la receta proporcionan dos funciones principales:

  1. Define los pasos que los usuarios deberán seguir para configurar la receta a través de la interfaz de Citizen Integrator.
  2. Conecta todos los valores proporcionados por el usuario al Jitterpak que acompaña a la receta para que el recién configurado las operación se ejecutan como se esperaba a través de Jitterbit.

Esta sección está organizada para proporcionar una lista de mejores prácticas para crear recetas, un tutorial de muestra para crear una receta, los tipos de pasos disponibles para usar en la receta y, finalmente, una lista completa de todos posibles partes del archivo de metadatos de la receta.

Mejores Prácticas de Metadatos

Al crear su archivo de metadatos de receta de Citizen Integrator, estas son las mejores prácticas que son útiles para aquellos que son nuevos en creando recetas.

  • Ejemplos de referencia para comparar la interfaz de Citizen Integrator con los metadatos de receta

    Mira cómo están estructuradas nuestras recetas públicas, comparando lo que ves en el Citizen Integrator interfaz con el archivo de metadatos de receta real para esa receta. Si encuentra uno que es similar a su caso de uso, es posible que incluso desee comenzar con él.

  • Construye tu receta en iteraciones

    Espere tener que hacer ajustes en su Jitterpak mientras trabaja en los metadatos de su receta, y viceversa. Puede Cargue siempre una primera versión, verifique cómo se muestra y funciona en la interfaz de Citizen Integrator y luego continúe actualizando sus archivos de receta desde el Citizen Integrator - Mis Recetas página, o siguiendo Cargar una nueva receta y Jitterpak y Actualizar una receta existente y Jitterpak de la Interfaz de línea de comandos de Jitterbit.

  • Incluya los pasos de Introducción y Revisión en los metadatos de la receta

    Se recomienda comenzar con un paso de Introducción y terminar con un paso de Revisión para mantener la consistencia de las recetas. Ambas secciones usan el org.jitterbit.integration.data.entity.Description tipo (descrito en Tipos de pasos).

    • La Introducción debe usarse para explicar para qué se usa la receta, describir cualquier limitación, enumerar campos estándar, y/o proporcionar información de prerrequisito que alguien que utilice la receta debería conocer.

    • El paso Revisar debe resumir y confirmar para el usuario el comportamiento esperado cuando la receta configurada es desplegado. Si incluye un cronograma dentro del Jitterpak, el paso Revisar es un buen lugar para documentar el hora programada para ejecutar la operación. Recuerde especificar la zona horaria (UTC es el valor predeterminado dentro de Design Studio, pero también puede convertir la hora a su zona horaria deseada dentro de Design Studio y especificar eso).

  • Estandarice los nombres dentro de los metadatos de su receta

    Estandarice el nombre de su receta, el nombre del proyecto, los nombres de los archivos y la estructura del directorio. Esto ayuda a prevenir errores al referirse a partes dentro de la receta y facilita el manejo de todas las partes de su receta.

  • Para la migración de extremo a extremo, ordene los extremos direccionalmente

    Para migraciones de un extremo a otro (p. ej., migrar cuentas de Salesforce a NetSuite Companies), solicite el extremos direccionalmente:

    • En archivo JSON: "name": "Migrate Salesforce Accounts to NetSuite Companies"
    • En archivo JSON: "projectName": "salesforce_accounts-to-netsuite_companies"
    • Directorio: salesforce-to-netsuite/accounts-to-companies/
    • Nombres de archivo: salesforce_accounts-to-netsuite_companies.jpk y salesforce_accounts-to-netsuite_companies.json
  • Para la sincronización de extremo, ordene los extremos alfabéticamente

    Para sincronizaciones de dos extremos (p. ej., sincronización de cuentas de Salesforce y empresas de NetSuite ), solicite el extremos en orden alfabético:

    • En archivo JSON: "name": "Synchronize NetSuite Companies and Salesforce Accounts"
    • En archivo JSON: "projectName": "netsuite_companies-salesforce_accounts"
    • Directorio: netsuite-salesforce/companies-accounts/
    • Nombres de archivo: netsuite_companies-salesforce_accounts.jpk y netsuite_companies-salesforce_accounts.json
  • Definir las variables del proyecto al final de los metadatos de la receta

    Cualquier variable de proyecto utilizada en su Jitterpak y a la que se haga referencia en los pasos de metadatos de su receta debe ser definido al final del archivo de metadatos de su receta.

  • Ocultar los pasos que desea incrustar en otros pasos

    Puede especificar un atributo oculto en un paso para que no se desgarre en la interfaz de Citizen Integrator , pero luego haga referencia a ese paso usando una ruta que apunta a una acción con “useStepAsRequest”. Esta es una buena idea si, por ejemplo, configura un paso para probar la información de conexión, pero desea incluirlo como una conexión de prueba dentro de otro paso.

  • Omita los campos que se generarán al cargar los metadatos de la receta

    Algunos campos en el archivo de metadatos de la receta no se especifican al cargar el archivo y, en cambio, los genera el sistema cuando se carga el archivo. Estos campos se encuentran al principio y al final del archivo de metadatos de la receta.

    • id: Este campo se completa cuando los metadatos de la receta se cargan en el depósito de receta. Después de cargar, puede averiguar el ID de receta generado utilizando Lista de todas las recetas del Interfaz de línea de comando Jitterbit.
    • guid: Obligatorio Este campo se completa cuando se carga un Jitterpak asociado a la receta repositorio. El GUID (identificador único global) se completa con el del Jitterpak asociado. Sin embargo, este campo es obligatorio, por lo que aún debe incluirlo en el archivo. El identificador real será actualizado al cargar.
    • createdAt: La marca de tiempo de la época de Unix en milisegundos de cuando se cargó la receta por primera vez.
    • actualizado en: La marca de tiempo de la época de Unix en milisegundos de cuando se actualizó la receta por última vez.
    • actualizado por

      • userId: El nombre de usuario de Harmony de la persona que actualizó la receta por última vez.
      • nombre: El nombre de la última persona que actualizó la receta.
      • orgName: El nombre de la organización a la que pertenece la última persona que actualizó la receta.
    • orgid: El ID de la organización a la que pertenece la persona que subió la receta. la receta es es propiedad de esta organización y solo el autor de la receta o un administrador de la organización pueden actualizar o eliminar la receta (ver Citizen Integrator - Mis Recetas o la Interfaz de línea de comandos Jitterbit).

    • autor

      • userId: El nombre de usuario de Harmony de la persona que cargó la receta.
      • nombre: El nombre de la persona que subió la receta.
      • orgName: El nombre de la organización a la que pertenece la persona que subió la receta.

    Después de cargar una receta, puede ver los valores generados para estos campos cuando usa Obtener una receta específica regresar los metadatos de la receta (consulte la Interfaz de línea de comandos de Jitterbit).

  • Usar HTML para texto enriquecido

    Si desea usar enlaces, listas, negrita, etc. dentro de los pasos de su receta, intente usar HTML. La mayoría de los campos en los que podría desea usar estos permiten el uso de HTML, lo que le otorga más control sobre el aspecto y la funcionalidad de la receta pasos.

  • Validar antes de cargar

    Siempre es una buena idea asegurarse de que los metadatos de su receta se validen antes de cargarlos. Hazlo usando Validar una Receta (ver el Interfaz de línea de comando Jitterbit). No deberías subir recetas que sí No validar, ya que tendrán errores para los usuarios que intenten configurar la receta.

  • Consulte los registros para solucionar problemas

    Después de cargar su receta, también puede probarla configurándola e implementándola a través de Citizen Interfaz de integrador. No olvide que todas las mismas herramientas para la depuración están disponibles al igual que para cualquier otro proyecto Jitterbit. Ver Citizen Integrator - Mis Recetas o consulte registros de operación, proyectos, actividades, etc. dentro del Management Console.

Tutorial de Muestra

Esta sección proporciona un tutorial para crear una receta para usar con la interfaz web de Citizen Integrator. Este ejemplo utiliza algunos de los elementos más comunes de las recetas que normalmente podría encontrar. Para obtener una lista completa de opciones que puede incluir dentro de las recetas, consulte Definiciones de metadatos de recetas.

Para este ejemplo, crearemos una receta que sincronice las cuentas de Salesforce y las inserte en Zendesk. Puede siga esta demostración descargando la receta más reciente para Salesforce en Zendesk siguiendo Obtener una receta específica y Guardar el Jitterpak localmente del Interfaz de línea de comandos Jitterbit.

Paso 1: Crear proyecto en Design Studio

El primer paso es configurar su proyecto en Design Studio. Al crear su proyecto, consulte el Prácticas recomendadas de Jitterpak anteriores que son específicos para crear Jitterpaks para usar con recetas.

Estos componentes del Jitterpak se utilizan para la receta de Salesforce to Zendesk:

  • Operaciones: Este Jitterpak está configurado para que, al ejecutar la operación RunNow, Jitterbit consultar Salesforce para obtener información sobre los casos (Query Cases) y luego usar esos casos de Salesforce para actualizar y insertar tickets en Zendesk (Crear tickets de Zendesk ). Si ha descargado el Jitterpak para seguir, puede hacer clic en cada elemento del gráfico para obtener más información sobre los componentes de las operaciones.

  • Transformaciones: Cada transformación se ha mapeado para que los campos estándar apropiados se incluyan en la receta. Muchas recetas implicarán la asignación de campos estándar de un extremo a otro. En este ejemplo, el La consultar de Salesforce utiliza solo los campos apropiados para esta receta específica (es decir, Número de caso, Origen, Asunto, Correo proporcionado, Nombre proporcionado). Si está creando su propia receta para usarla en una organización que usa Campos personalizados de Salesforce, también puede optar por integrarlos en su receta, siempre que la asignación sea definido aquí.

  • Orígenes y destinos: Defina cualquier origen y destino como lo haría normalmente para cualquier proyecto de Design Studio. Este una receta en particular usa almacenamiento temporal para cuentas de Salesforce y casos de Salesforce, y destinos HTTP como parámetros de conexión para Zendesk.

  • Métodos de servicio web y Extremos HTTP alojados: Este Jitterpak no utiliza ninguno de estos componentes, pero usted puede configurarlos como lo haría con cualquier otro proyecto de Design Studio.

  • Horarios: Este Jitterpak no incluye horario, pero puedes incluir uno aquí si por ejemplo quieres la operación para ejecutar diariamente. Dado que el horario no es configurable por el usuario de la receta, debe hacer Asegúrese de anotar dentro de un campo de texto de la receta cuándo está programada la ejecución de su operación. Un lugar típico para agregar este es el paso de revisión.

  • Mensajes de Correo: Este Jitterpak no incluye ningún mensaje de correo, pero puede elegir configurarlos usando variables del proyecto si desea que su receta genere notificaciones correo.

  • Secuencias de Comandos: En este Jitterpak, los secuencias de comandos se utilizan para escribir mensajes en el registro, incluido el éxito específico y mensajes de error.

  • Variables del proyecto: las variables del proyecto son clave para crear recetas configurables. Por lo general, las variables del proyecto se utilizan siempre que desee que los usuarios proporcionen valores durante la configuración de receta. En este Jitterpak, tenemos variables de proyecto para credenciales de Salesforce y Zendesk. Recuerda probar tu proyecto de Design Studio con valores, luego elimínelos antes de exportar el Jitterpak.

  • Jitterbit Connect: Dado que este Jitterpak usa Salesforce, las credenciales de conexión para la organización son incluidos en esta sección.

  • Conectores: Este Jitterpak no usa ningún conector, pero muchas otras recetas públicas sí. Si quieres cree una nueva receta usando un conector, puede ser una buena idea descargar un ejemplo diferente usando uno de los conectores como Autodesk.

Paso 2: probar el proyecto de Design Studio

Después de definir sus componentes, guarde, desplegar y ejecute su proyecto de Design Studio para asegurarse de que se ejecuta exitosamente.

Puede consultar el registro de operación para ver si hay mensajes de error.

Paso 3: exporte el proyecto de Design Studio

Elimine cualquier valor de variable del proyecto u otra información de credenciales que incorporará a su receta, y exporte su proyecto de Design Studio como un Jitterpak.

En este ejemplo, eliminamos las variables del proyecto y las credenciales en la etapa de exportación. Puede guardar en cualquier ubicación que deseo por ahora, ya que subirás el Jitterpak más tarde (ver Citizen Integrator - Mis Recetas o el Interfaz de línea de comandos Jitterbit.

Paso 4: crear metadatos de recetas

Ahora que ha creado un Jitterpak, puede adaptar los metadatos de su receta para que coincidan con los componentes en tu Jitterpak.

Consulte las Prácticas recomendadas de metadatos arriba para crear su archivo de metadatos de receta como así como los Tipos de pasos al comenzar una nueva receta. Para obtener una lista completa de definiciones de receta, consulte Definiciones de metadatos de recetas a continuación como referencia.

El archivo JSON completo utilizado para definir los metadatos de receta de Salesforce to Zendesk se proporciona a continuación, seguido de un desglose de cada sección del archivo de metadatos de receta.

Metadatos JSON: Salesforce a Zendesk
{
  "description": "Sync accounts from Salesforce and upsert to Zendesk",
  "name": "Salesforce to Zendesk",
  "guid": "8yg7df8a-b526-4d14-a49d-39090d63a426",
  "projectName": "Salesforce to Zendesk",
  "steps": [
    {
      "name": "Introduction",
      "description": "Sync accounts from Salesforce and upsert them to Zendesk",
      "label": "Introduction",
      "type": "org.jitterbit.integration.data.entity.Description",
      "hidden": false,
      "properties": [
        {
          "name": "template",
          "defaultValue": "<div><p>This <b>Recipe</b> Syncs accounts from Salesforce and upserts them to Zendesk.</p></div>"
        }
      ]
    },
    {
      "name": "Salesforce Endpoint Project Variables",
      "description": "Set-up the source Salesforce endpoint project variables",
      "type": "org.jitterbit.integration.data.entity.ProjectVariable",
      "hidden": false,
      "properties": [],
      "projectVariables": {
        "names": [
          "com.salesforce.username",
          "com.salesforce.password",
          "com.salesforce.token"
        ],
        "action": {
          "name": "test-endpoint-connection",
          "displayName": "Test Connection",
          "useStepAsRequest": "/Source/SalesforceEndpoint"
        }
      }
    },
    {
      "name": "Test Salesforce Connection Information",
      "description": "Test Salesforce endpoint connection information",
      "label": "Source Endpoint (Salesforce)",
      "type": "org.jitterbit.integration.data.entity.SalesforceConnector",
      "hidden": true,
      "path": "/Source/SalesforceEndpoint",
      "properties": [
        {
          "name": "version",
          "defaultValue": "37.0"
        },
        {
          "name": "host",
          "defaultValue": "https://login.salesforce.com"
        },
        {
          "name": "username",
          "defaultValue": "[com.salesforce.username]"
        },
        {
          "name": "password",
          "hidden": false,
          "defaultValue": "[com.salesforce.password]"
        },
        {
          "name": "token",
          "hidden": false,
          "defaultValue": "[com.salesforce.token]"
        },
        {
          "name": "sandbox",
          "defaultValue": "0"
        }
      ]
    },
    {
      "name": "Zendesk Endpoint Project Variables",
      "description": "Set-up the target Zendesk endpoint project variables",
      "type": "org.jitterbit.integration.data.entity.ProjectVariable",
      "hidden": false,
      "properties": [],
      "projectVariables": {
        "names": [
          "com.zendesk.username",
          "com.zendesk.password"
        ]
      }
    },
    {
      "name": "RunNow",
      "description": "The Run Now operation runs the integration right now.",
      "label": "RunNow",
      "type": "org.jitterbit.integration.data.entity.RunOperation",
      "hidden": false,
      "path": "/Operations/RunNow",
      "properties": [
        {
          "name": "operationName",
          "defaultValue": "RunNow",
          "description": "Run the recipe to get Salesforce accounts and upsert them to NetSuite right now."
        }
      ]
    },
    {
      "name": "Review",
      "description": "Push this recipe to the cloud",
      "label": "Review",
      "type": "org.jitterbit.integration.data.entity.Description",
      "hidden": false,
      "properties": [
        {
          "name": "template",
          "defaultValue": "<div><p>When you click <b>Save</b> this recipe will be ran daily at 3am indefinitely</p></div>"
        }
      ]
    }
  ],
  "projectVariables": [
    {
      "name": "com.salesforce.username",
      "displayName": "Salesforce Login",
      "description": "Please provide your Salesforce username or email."
    },
    {
      "name": "com.salesforce.password",
      "displayName": "Salesforce Password",
      "description": "Please provide your Salesforce password.",
      "type": "password"
    },
    {
      "name": "com.salesforce.token",
      "displayName": "Salesforce Security Token",
      "description": "Please provide your Salesforce security token.",
      "type": "password"
    },
    {
      "name": "com.zendesk.username",
      "displayName": "Zendesk Login",
      "description": "Please provide your Zendesk email."
    },
    {
      "name": "com.zendesk.password",
      "displayName": "Zendesk Password",
      "description": "Please provide your Zendesk password.",
      "type": "password"
    }
  ],
}
  • descripción: Obligatorio

    Este campo debe contener una descripción de la receta.

    "description": "Sync accounts from Salesforce and upsert to Zendesk"
    

  • guid: Requerido

    Este campo puede contener cualquier valor cuando la receta se carga por primera vez; al cargar con un Jitterpak asociado, el valor se reemplazará con el GUID (identificador único global) del Jitterpak asociado.

    "guid": "8yg7df8a-b526-4d14-a49d-39090d63a426"
    

  • nombre: Requerido

    Este campo debe contener el nombre de la receta.

    "name": "Salesforce to Zendesk"
    
    Se muestra como el título de la receta en la Lista de recetas:

    Se muestra como el título de la receta en Pasos de configuración:

  • nombre del proyecto: Obligatorio

    Este campo debe coincidir con el nombre del archivo Jitterpak (JPK).

    "projectName": "Salesforce to Zendesk"
    

  • pasos: Obligatorio

    Los pasos definen los Pasos de configuración en la interfaz de Citizen Integrator. Los atributos de paso utilizados en la receta de Salesforce to Zendesk se proporcionan a continuación, seguidos de una comparación de Citizen Integrator interfaz y los metadatos JSON para el paso.

    • nombre: Obligatorio Este campo es el nombre del paso.
    • descripción: Obligatorio Este campo es una descripción del paso.
    • etiqueta: Este campo es una etiqueta que se puede usar para representar un nombre de paso que es diferente del definido nombre del paso.
    • tipo: Obligatorio Este campo es el tipo asociado a este paso. Consulte Tipos de pasos para una explicación de los distintos tipos de pasos.
    • obligatorio: Este valor se puede establecer como verdadero o falso. Si es verdadero, se requerirá que se complete el paso de la receta. cuando la receta se configura antes de que se puedan realizar las acciones Probar conexión o Ejecutar operación. ser utilizado.
    • oculto: Este valor se puede establecer como verdadero o falso. Si es verdadero, el paso se ocultará en Citizen Integrator interfaz. Esto puede ser útil si tiene pasos que no desea mostrar, como para probar la conexión información. Si es falso, se mostrará el paso. El valor predeterminado es falso, lo que significa que los pasos se muestran de forma predeterminada.
    • ruta: Úselo si está ocultando pasos y desea hacer referencia a ellos en otros pasos. Este valor debe ser definido si planea incrustar un paso oculto en otro paso. Por ejemplo, si desea incluir una Prueba Botón de conexión dentro de un paso, puede ocultar el paso para probar la información de conexión y luego consultarlo en otro paso. La forma en que nos referimos a ella es definiendo un camino.
    • propiedades: Solo se puede usar si no se usan projectVariables. Estos incluyen propiedades asociadas a la paso. En un paso, puede tener propiedades o projectVariables asignadas, pero no ambas al mismo tiempo.
      • nombre: Obligatorio Este campo es el nombre de la propiedad que se define para este paso.
      • defaultValue: Este campo puede contener un valor predeterminado asociado a la propiedad. Típicamente esto es utilizado para insertar texto instructivo o informativo en un paso.
      • descripción: Este campo puede contener texto predeterminado que aparecerá dentro del cuadro de texto.
    • projectVariables: Solo se puede usar si no se usan propiedades. Estos incluyen una lista de variables del proyecto. agrupados que representan entidades configurables. En un paso, puede tener projectVariables o propiedades asignadas, pero no ambas al mismo tiempo.
      • nombres: Obligatorio Este campo contiene una lista de todas las variables del proyecto que se utilizan en este paso.
      • acción: Este campo define cualquier acción. Por lo general, estos se utilizan como botones dentro de un paso para realizar acciones que pueden definirse como pasos ocultos.
        • nombre: Obligatorio Este campo es el nombre de la acción.
        • displayName: Este campo se puede usar si desea que se muestre un nombre diferente en el Ciudadano Interfaz de integrador.
        • useStepAsRequest: Required Este campo se usa para proporcionar la ruta a las propiedades definidas en otro paso que no se procesa. Use el mismo valor que definió para “ruta” en el paso oculto.

    Paso 1: Introducción

    Metadatos JSON para el paso 1
    {
      "name": "Introduction",
      "description": "Sync accounts from Salesforce and upsert them to Zendesk",
      "label": "Introduction",
      "type": "org.jitterbit.integration.data.entity.Description",
      "hidden": false,
      "properties": [
        {
          "name": "template",
          "defaultValue": "<div><p>This <b>Recipe</b> Syncs accounts from Salesforce and upserts them to Zendesk.</p></div>"
        }
      ]
    },
    

    Paso 2: Variables del proyecto de Extremo de Salesforce

    Metadatos JSON para el paso 2
    {
      "name": "Salesforce Endpoint Project Variables",
      "description": "Set-up the source Salesforce endpoint project variables",
      "type": "org.jitterbit.integration.data.entity.ProjectVariable",
      "hidden": false,
      "properties": [],
      "projectVariables": {
        "names": [
          "com.salesforce.username",
          "com.salesforce.password",
          "com.salesforce.token"
        ],
        "action": {
          "name": "test-endpoint-connection",
          "displayName": "Test Connection",
          "useStepAsRequest": "/Source/SalesforceEndpoint"
        }
      }
    },
    

    Paso oculto: probar la información de conexión de Salesforce

    Metadatos JSON para el paso oculto
    {
      "name": "Test Salesforce Connection Information",
      "description": "Test Salesforce endpoint connection information",
      "label": "Source Endpoint (Salesforce)",
      "type": "org.jitterbit.integration.data.entity.SalesforceConnector",
      "hidden": true,
      "path": "/Source/SalesforceEndpoint",
      "properties": [
        {
          "name": "version",
          "defaultValue": "37.0"
        },
        {
          "name": "host",
          "defaultValue": "https://login.salesforce.com"
        },
        {
          "name": "username",
          "defaultValue": "[com.salesforce.username]"
        },
        {
          "name": "password",
          "hidden": false,
          "defaultValue": "[com.salesforce.password]"
        },
        {
          "name": "token",
          "hidden": false,
          "defaultValue": "[com.salesforce.token]"
        },
        {
          "name": "sandbox",
          "defaultValue": "0"
        }
      ]
    },
    

    Paso 3: Variables del proyecto de Extremo de Zendesk

    Metadatos JSON para el paso 3
    {
      "name": "Zendesk Endpoint Project Variables",
      "description": "Set-up the target Zendesk endpoint project variables",
      "type": "org.jitterbit.integration.data.entity.ProjectVariable",
      "hidden": false,
      "properties": [],
      "projectVariables": {
        "names": [
          "com.zendesk.username",
          "com.zendesk.password"
        ]
      }
    },
    

    Paso 4: Runnow

    Metadatos JSON para el paso 4
    {
      "name": "RunNow",
      "description": "The Run Now operation runs the integration right now.",
      "label": "RunNow",
      "type": "org.jitterbit.integration.data.entity.RunOperation",
      "hidden": false,
      "path": "/Operations/RunNow",
      "properties": [
        {
          "name": "operationName",
          "defaultValue": "RunNow",
          "description": "Run the recipe to get Salesforce accounts and upsert them to NetSuite right now."
        }
      ]
    },
    

    Paso 5: Revisar

    Metadatos JSON para el paso 5
    {
      "name": "Review",
      "description": "Push this recipe to the cloud",
      "label": "Review",
      "type": "org.jitterbit.integration.data.entity.Description",
      "hidden": false,
      "properties": [
        {
          "name": "template",
          "defaultValue": "<div><p>When you click <b>Save</b> this recipe will be ran daily at 3am indefinitely</p></div>"
        }
      ]
    }
    
  • projectVariables: Esta sección define cualquier variable de proyecto utilizada en los pasos de la receta. Tenga en cuenta que este es un nuevo sección del archivo de metadatos de la receta que se encuentra al final después de los pasos y no debe confundirse con el projectVariables utilizadas dentro de los propios pasos.

    • nombre: Obligatorio Este campo contiene el nombre de la variable del proyecto tal como se usa en su Jitterpak.
    • displayName: Este campo se puede usar si desea que se muestre un nombre diferente en Citizen Integrator interfaz.
    • descripción: Este campo se puede usar para insertar texto debajo del campo, por ejemplo, para proporcionar instrucciones sobre lo que deben ingresar los usuarios.
    • tipo: Este campo se puede utilizar para definir el tipo de valor que el usuario puede proporcionar. El valor predeterminado es cadena. También puede usar entero, flotante, doble, fecha, hora, booleano, contraseña, enumeración, menú desplegable, casillas de verificación o área de texto.
    • obligatorio: Este valor se puede establecer como verdadero o falso. Si es verdadero, el campo de la variable del proyecto deberá completarse cuando la receta esté configurada antes de la conexión de prueba o la operación de ejecución se pueden usar acciones.
    • regex: Este campo se puede usar para proporcionar una expresión regular (cadena) que el el valor de la variable del proyecto debe coincidir cuando la receta se configura antes de la conexión de prueba o la operación de ejecución se pueden usar acciones. Por ejemplo: .+@.+[.].+.
    • valor: Este campo se puede usar si desea asignar un valor predeterminado a su proyecto variable. Esto se puede usar para proporcionar un valor predeterminado con otros valores opcionales para la variable del proyecto. Un En el Ejemplo 2 a continuación se proporciona un ejemplo adicional de metadatos JSON que utilizan valores y opciones.
    • opciones: Este campo se puede usar para presentar valores posibles en un menú desplegable, texto o casillas de verificación. En el Ejemplo 2 se proporciona un ejemplo adicional de metadatos JSON que utilizan valores y opciones. a continuación.

    Ejemplo 1 de metadatos JSON

    "projectVariables": [
      {
        "name": "com.salesforce.username",
        "displayName": "Salesforce Login",
        "description": "Please provide your Salesforce username or email."
      },
      {
        "name": "com.salesforce.password",
        "displayName": "Salesforce Password",
        "description": "Please provide your Salesforce password.",
        "type": "password"
      },
      {
        "name": "com.salesforce.token",
        "displayName": "Salesforce Security Token",
        "description": "Please provide your Salesforce security token.",
        "type": "password"
      },
      {
        "name": "com.zendesk.username",
        "displayName": "Zendesk Login",
        "description": "Please provide your Zendesk email."
      },
      {
        "name": "com.zendesk.password",
        "displayName": "Zendesk Password",
        "description": "Please provide your Zendesk password.",
        "type": "password"
      }
    ]
    

    Ejemplo 2 de metadatos JSON

    "projectVariables": [
      {
        "name": "myDropdown",
        "displayName": "Dropdown Test",
        "value": "ProdOperation",
        "type": "dropdown",
        "description": "A field to test the dropdown feature",
        "options": [
          {
            "name": "Development",
            "value": "DevOperation"
          },
          {
            "name": "Production",
            "value": "ProdOperation"
          }
        ]
      },
      {
        "name": "myCheckboxes",
        "displayName": "Checkbox Test",
        "value": "ProdOperation",
        "type": "checkboxes",
        "description": "A field to test the checkbox feature",
        "options": [
          {
            "name": "Development",
            "value": "DevOperation"
          },
          {
            "name": "Production",
            "value": "ProdOperation"
          }
        ]
      },
      {
        "name": "myTextarea",
        "displayName": "Comments",
        "type": "textarea",
        "value": "This is a comment for the textarea",
        "description": "SAP Language"
      }
    ]
    

Tipos de Pasos

Cada paso dentro de los metadatos de receta de Citizen Integrator tiene un atributo de “tipo” que indica el tipo de paso. Estos pasos corresponden directamente con esos usuarios verán usando la interfaz de Citizen Integrator, y los tipos de esos pasos corresponden directamente con Design Studio.

Estos son los posibles tipos de pasos disponibles. A continuación se proporciona información adicional sobre cada tipo de paso. secciones.

Descripción

org.jitterbit.integration.data.entity.Description

Este tipo de paso debe usarse cuando es necesario proporcionar información detallada sobre una receta o un paso, o puede ser utilizado como una revisión al final de la receta.

  • Por ejemplo:

    {
    "name": "Introduction",
    "description": "Insert accounts into a postgres database",
    "label": "Introduction",
    "type": "org.jitterbit.integration.data.entity.Description",
    "properties": [
      {
        "name": "template",
        "defaultValue": "<div>...</div>"
      }
    
  • Si este paso es el último paso dentro de una receta (definido como un paso de revisión) y contiene “submitOperationsToRun” , luego el botón Guardar y finalizar aplicará esta lógica con respecto a las operaciones que deben enviarse para correr. Tenga en cuenta que si estas opciones no están configuradas, el botón Guardar y finalizar no enviará las operaciones para que se ejecuten.

    • No se enviarán operaciones para ejecución si:

      {
        "name": "submitOperationsToRun",
        "value": ""
      }
      
    • Solo se enviarán para ejecución las operaciones especificadas si:

      {
      "name": "submitOperationsToRun",
      "value": "Operation1;Operation2"
      }
      
    • Todas las operaciones se someterán a ejecución si la propiedad no está presente:

      {
      "name": "submitOperationsToRun",
      "value": "*"
      }
      

ProyectoVariable

org.jitterbit.integration.data.entity.ProjectVariable

Este tipo de paso se utiliza para agrupar un conjunto de variables de proyecto. También se puede utilizar para redefinir un extremo. definición. Se le puede adjuntar una “acción” opcional.

  • Por ejemplo:

       {
        "name": "Ftp Endpoint",
        "description": "Set-up the Source FTP Endpoint project variables",
        "type": "org.jitterbit.integration.data.entity.ProjectVariable",
        "projectVariables": {
          "names": [
            "acme.org.ftp.host",
            "acme.org.ftp.username",
            "acme.org.ftp.password",
            "acme.org.ftp.path",
            "acme.org.ftp.filename"
          ],
          "action": {
            "name": "test-endpoint-connection",
            "displayName": "Test Connection",
            "useStepAsRequest": "/Source/FtpSite"
          }
        }
      }
    
  • Se admiten estas “acciones”:

    • “test-endpoint-connection”: Se utiliza para probar una conexión de extremo. Debe usarse junto con un extremo.
    • “submit-http-form”: Debe usarse junto con un formulario HTTP (ver más abajo).

EjecutarOperación

org.jitterbit.integration.data.entity.RunOperation

Este tipo de paso se utiliza para ejecutar una operación a fin de permitir que el usuario pruebe.

  • Por ejemplo:

       {
        "name": "Run Now",
        "description": "Run Now operation - fetch the csv file, parse and insert into database",
        "label": "Run Now",
        "type": "org.jitterbit.integration.data.entity.RunOperation",
        "path": "/Operation/SyncAccounts",
        "properties": [
          {
            "name": "operationName",
            "defaultValue": "SyncAccounts",
            "description": "Synchronize Accounts"
          }
        ]
      }
    

ApiBinding

org.jitterbit.integration.data.entity.ApiBinding

Este tipo de paso se utiliza cuando existe la necesidad de externalizar operaciones como APIs.

  • “assignTo”: Esto le permite almacenar el URI en una variable de proyecto que se puede usar dentro del Jitterpak. Para ejemplo:

    {
        "name": "Review the WebHooks associated to this recipe",
        "description": "The following Web API will be registered as webhooks to your system",
        "type": "org.jitterbit.integration.data.entity.ApiBinding",
        "bindings": {
          "apis": [
            {
              "apiName": "FetchAccounts",
              "publicName": "citizen-fetchaccounts",
              "version": "v1",
              "sslOnly": "True",
              "timeout": "30",
              "enableCORS": "False",
              "assignTo": "acme.com.myservice.fetchaccounts.uri",
              "methods": [
                {
                  "method": "GET",
                  "operationName": "RunNow",
                  "responseType": "FINAL_TARGET" // possible - values "NO_RESPONSE", "FINAL_TARGET", "VARIABLE"
                }
              ]
            }
          ],
          "action": {
            "name": "import-api-packs",
            "displayName": "Bind API(s)",
            "useStepAsRequest": ""
          }
        }
      }
    

HttpForm

org.jitterbit.integration.data.entity.HttpForm

Este tipo de paso se utiliza cuando es necesario interactuar con un Extremo HTTP. Las variables del proyecto se pueden utilizar como entradas. para solicitud/encabezados.

  • Por ejemplo:

      {
        "name": "ConstantContact Endpoint Project Variables",
        "description": "Set up the target Constant Contact endpoint project variable. Enter one of com.constantcontact.listid or com.constantcontact.listname.",
        "type": "org.jitterbit.integration.data.entity.ProjectVariable",
        "projectVariables": {
          "names": [
            "com.constantcontact.apikey",
            "com.constantcontact.accesstoken",
            "com.constantcontact.listid",
            "com.constantcontact.listname"
          ],
          "action": {
            "name": "submit-http-form",
            "displayName": "Test Connection",
            "useStepAsRequest": "/Target/ConstantContactEndpoint"
          }
        }
       },
       ...
       {
        "name": "Test ConstantContact Connection Information",
        "description": "Test ConstantContact endpoint connection information",
        "label": "Target Endpoint (ConstantContact)",
        "type": "org.jitterbit.integration.data.entity.HttpForm",
        "hidden": true,
        "path": "/Target/ConstantContactEndpoint",
        "properties": [
          { "name": "verb", "defaultValue": "GET" },
          { "name": "url", "defaultValue": "https://api.constantcontact.com/v2/lists?api_key=[com.constantcontact.apikey]" },
          { "name": "headers", "defaultValue": "Authorization: Bearer [com.constantcontact.accesstoken]" },
          { "name": "httpRequest", "defaultValue": "" },
          { "name": "httpResponse", "defaultValue": "" }
        ]
       }
    

Conector

org.jitterbit.integration.data.connector.*

Estos se utilizan para los extremos respectivos enumerados:

  • org.jitterbit.integration.data.connector.FTPEndpoint
  • org.jitterbit.integration.data.connector.DBEndpoint
  • org.jitterbit.integration.data.connector.AutoDeskEndpoint
  • org.jitterbit.integration.data.connector.NetSuiteEndpoint
  • org.jitterbit.integration.data.connector.SapEndpoint
  • org.jitterbit.integration.data.connector.JMSEndpoint
  • org.jitterbit.integration.data.connector.MSAXEndpoint
  • org.jitterbit.integration.data.connector.Four51Endpoint
  • org.jitterbit.integration.data.connector.ClarizenEndpoint
  • org.jitterbit.integration.data.connector.QuickBooksEndpoint

Definiciones de Metadatos de Recetas

Estas subsecciones cubren las definiciones completas de metadatos para recetas si están definidas dentro de Jitterbit. Estas secciones describir todas las partes posibles del archivo de metadatos JSON. Todos los campos obligatorios se enumeran al final de cada sección.

Receta

  Recipe:
    type: object
    properties:
      id:
        type: string
        description: "The numerical ID of the recipe"
      guid:
        type: string
        description: "Unique identifier representing a recipe"
      author:
        See separate definition for Author
      orgId:
         type: string
         description: "The Organization ID"
      description:
        type: string
        description: "Description of Recipe"
      name:
        type: string
        description: "Name of Recipe"
      projectName:
        type: string
        description: "Name of the Jitterbit Project (or Jitterpak)"
      displayName:
        type: string
        description: "Display name of Recipe"
      summary:
        type: string
        description: "Short description of Recipe"
      tags:
        type: array
        items:
          See separate definition for Tag
        description: List of tags
      steps:
        type: array
        items:
          See separate definition for Step
      projectVariables:
         type: array
         items:
           See separate definition for property
      createdAt:
         type: number
         description: "Number of milliseconds since the UNIX epoch (Jan 1 1970 12am UTC)"
      updatedAt:
         type: number
         description: "Number of milliseconds since the UNIX epoch (Jan 1 1970 12am UTC)"
      updatedBy:
         See separate definition for Author
      version:
         type: string
         description: "Version of the recipe. Incremented when updated."
    required:
      - guid
      - description
      - name
      - projectName
      - steps

Paso

  Step:
    properties:
      name:
       type: string
       description: "Name of step"
      description:
        type: string
        description: "Description of the step"
      guid:
        type: string
        description: "A unique id associated to the step"
      label:
        type: string
        description: "A label that can be used for rendering instead of the name property"
      type:
        type: string
        enum:
         - org.jitterbit.integration.data.entity.Description
         - org.jitterbit.integration.data.entity.ProjectVariable
         - org.jitterbit.integration.data.entity.RunOperation
         - org.jitterbit.integration.data.connector.FTPEndpoint
         - org.jitterbit.integration.data.connector.DBEndpoint
         - org.jitterbit.integration.data.connector.AutoDeskEndpoint
         - org.jitterbit.integration.data.connector.NetSuiteEndpoint
         - org.jitterbit.integration.data.connector.SapEndpoint
         - org.jitterbit.integration.data.connector.JMSEndpoint
         - org.jitterbit.integration.data.entity.SalesforceConnector
         - org.jitterbit.integration.data.entity.GenericProperties
         - org.jitterbit.integration.data.entity.Schedule
         - org.jitterbit.integration.data.entity.ApiBinding
         - org.jitterbit.integration.data.entity.HttpForm
         - org.jitterbit.integration.data.entity.TemporaryStorage
         - org.jitterbit.integration.data.entity.FileShare
         - org.jitterbit.integration.data.connector.MSAXEndpoint
         - org.jitterbit.integration.data.connector.QuickBooksEndpoint
         - org.jitterbit.integration.data.connector.ClarizenEndpoint
         - org.jitterbit.integration.data.connector.Four51Endpoint
        description: |
           "Type associated with this step; these are possible values:
                    org.jitterbit.integration.data.entity.Description
                    org.jitterbit.integration.data.entity.ProjectVariable,
                    org.jitterbit.integration.data.entity.RunOperation,
                    org.jitterbit.integration.data.connector.FTPEndpoint,
                    org.jitterbit.integration.data.connector.DBEndpoint,
                    org.jitterbit.integration.data.connector.AutoDeskEndpoint,
                    org.jitterbit.integration.data.connector.NetSuiteEndpoint,
                    org.jitterbit.integration.data.connector.SapEndpoint,
                    org.jitterbit.integration.data.connector.JMSEndpoint,
                    org.jitterbit.integration.data.entity.SalesforceConnector,
                    org.jitterbit.integration.data.entity.GenericProperties,
                    org.jitterbit.integration.data.entity.ApiBinding,
                    org.jitterbit.integration.data.entity.Schedule,
                    org.jitterbit.integration.data.entity.HttpForm,
                    org.jitterbit.integration.data.entity.FileShare,
                    org.jitterbit.integration.data.entity.TemporaryStorage,
                    org.jitterbit.integration.data.connector.MSAXEndpoint,
                    org.jitterbit.integration.data.connector.QuickBooksEndpoint,
                    org.jitterbit.integration.data.connector.ClarizenEndpoint,
                    org.jitterbit.integration.data.connector.Four51Endpoint"
      hidden:
        type: boolean
        description: "Indicate if this step should be renderable or not"
      required:
        type: boolean
        description: "Whether the step requires validation or not"
      properties:
        type: array
        description: "Properties associated with this step; in a step you can have either properties or projectVariables but not both at the same time"
        items:
          See separate definition for property
      path:
        type: string
        description: "If this step maps to an entry in Jitterpak provide the path to; in general, this is valid for endpoints"
      projectVariables:
        type: object
        description: "A list of project variables grouped together to represent a configurable entities; this cannot be used if properties are defined"
        properties:
          names:
            type: array
            items:
             type: string
          action:
            See separate definition for Action
            description: "Describe an action that can be invoked using properties from specified step; example: test connection endpoint"
        required:
          - names
      bindings:
        type: object
        properties:
          apis:
            type: array
            items:
              See separate definition for API
          action:
            See separate definition for Action
    required:
      - name
      - description
      - type

Acción

  Action:
    properties:
      name:
        type: string
      displayName:
        type: string
      useStepAsRequest:
        type: string
        description: "Use properties from a specified steps within the recipe; usually such a step is defined as a hidden step that is not rendered"
    required:
      - name
      - useStepAsRequest

API

  API:
    properties:
      apiName:
        type: string
        description: "Name of the API"
      publicName:
        type: string
        description: "The public name of the API; this name would be part of the URI that will be public"
      description:
        type: string
        description: "A short description of the api"
      version:
        type: string
        description: "Version of the API"
      sslOnly:
        type: boolean
        description: "Indicate if should only listen over HTTPS only - defaults to true"
      timeout:
        type: number
        description: "Indicate after how many seconds to timeout; default is 30s"
      enableCORS:
        type: boolean
        description: "Indicate if the cors should be enabled or not; defaults to false"
      assignTo:
        type: string
        description: "Assign the API URL to a project variable defined within the associated JPK"
      methods:
        type: array
        items:
          See separate definition for API Method
    required:
      - apiName
      - publicName
      - description
      - version
      - methods

Método API

  APIMethod:
    properties:
      method:
        type: string
        description: "Indicate the HTTP verb for to use for this APIMethod (PUT|POST|DELETE|GET)"
        enum:
          - GET
          - DELETE
          - POST
          - PUT
      operationName:
        type: string
        description: "Name of operation that will be invoked when this APIMethod is invoked"
      responseType:
        type: string
        description: "Response type returned by the operation; defaults to NO_RESPONSE"
        enum:
          - VARIABLE
          - FINAL_TARGET
          - NO_RESPONSE
    required:
      - method
      - operationName

Propiedad

  Property:
    properties:
      name:
        type: string
        description: "Property name"
      defaultValue:
        type: string
        description: "Default value associated to this property"
      value:
        type: string
        description: "A value assigned by the user; if no value is provided by default the defaultValue will be assigned"
      type:
        type: string
        description: "Indicate the type of the value; integer, float, double, date, time, boolean, string, password, textarea, enum; default string"
      description:
        type: string
        description: "Provide a description of this property"
      hidden:
        type: boolean
        description: "Default value will be false"
      displayName:
        type: string
        description: "Name used for displaying; if not defined then the name property will be used"
      required:
        type: boolean
        description: "Whether the property requires a value or not"
      regex:
        type: boolean
        description: "Regex that the value should match"
    required:
      - name

Detalles de Despliegue de Jitterpak

  DeployJpkDetails:
    type: object
    properties:
      envId:
        type: string
        description: "Environment ID of the deployed recipe."
      envName:
        type: string
        description: "Environment name"
      projectId:
        type: string
        description: "Deployed recipe ID"
      projectGuid:
        type: string
        description: "Deployed project GUID"
      projectName:
        type: string
        description: "Deployed project name"
      oldProjectVariables:
        type: array
        items:
          See separate definition for property

Operación

  Operation:
    type: object
    properties:
      operationGuid:
        type: string
        description: "The GUID of the operation"
      operationName:
        type: string
        description: "The name of the operation"

Desplegar Respuesta

  DeployResponse:
    properties:
      deployJpkDetails:
        type: array
        items:
          See separate definition for Deploy JPK Details
      operations:
        type: array
        items:
          See separate definition for Operation

Integración de Recetas

  RecipeIntegration:
    allOf:
      - See separate definition for Recipe
      - properties:
         deployedRecipeId:
           description: "ID of the deployed configured recipe (this is the same as the ID of a Jitterbit project that is deployed to an environment)"
           type: string

Etiqueta

  Tag:
    type: object
    properties:
      key:
        type: string
        description: "A key that can be used for searching the recipe later; possible values: source, target, search"
      value:
        type: string
        description: "A value that can be in a search to match a recipe"
    required:
      - key
      - value

Autor

  Author:
    type: object
    properties:
      userId:
         type: string
         description: "ID of the recipe's author"
      name:
          type: string
          description: "Name of the recipe's author"
      orgName:
          type: string
          description: "Name of the organization that this user is part of"
    required:
      - userId
      - name

Ambiente

  Environment:
    type: object
    properties:
      id:
        type: string
        description: "A unique ID associated to environment"
      orgId:
        type: string
        description: "The ID of the org that this environment is part of"
      name:
        type: string
        description: "Name of the environment"
      agentGroupName:
        type: string
        description: "The agent group associated with this environment"
      agentGroupId:
        type: string
        description: "The ID of the agent group"
      urlPrefix:
         type: string
         description: "Prefix URL associated to environment"

Agente

  Agent:
    type: object
    properties:
      id:
        type: string
        description: "Unique ID of the agent"
      name:
        type: string
        description: "Name of the agent"
      os:
        type: string
        description: "Type of operating system where agent is running"
      osVersion:
        type: string
        description: "Type of operating system where agent is running"
      jitterbitVersion:
        type: string
        description: "Version of the Jitterbit Agent"
      hostname:
        type: string
        description: "Name of the host"
      ipv4Address:
        type: string
        description: "IPV4 Address"
      ipv6Address:
        type: string
        description: "IPV6 Address"
      agentGroupName:
        type: string
        description: "Associate the agent with the named agent group"
      status:
        type: string
        description: "Indicates if the agent is running"
      agentGroupId:
        type: string
        description: "Id of the agent group that this agent is part of"

Grupo de Agentes

  AgentGroup:
    type: object
    properties:
      id:
        type: string
        description: "ID of the agent group"
      name:
        type: string
        description: "Name of the agent group"
      description:
        type: string
        description: "Description of the agent group"

Respuesta de Inicio de Sesión

  LoginResponse:
    type: object
    properties:
      authenticationToken:
        type: string
        description: "Token that is used for authentication/authorizing client's REST requests"
      status:
        type: boolean
        description: "Indicate if the user is active or not"
      defaultOrgId:
        type: string
        description: "Default organization id that the user has logged into"
      orgs:
        type: array
        description: "Organizations that the user is part of"
        items:
          See separate definition for Organization

Organización

  Org:
     type: object
     properties:
       orgId:
         type: string
         description: "ID of the organization"
       orgName:
         type: string
         description: "Name of the organization"
       orgZoneUrl:
         type: string
         description: "Zone URL associated to this organization"
       urlPrefix:
         type: string
         description: "The URL prefix used for the API gateway for this organization"
       apiHost:
         type: string
         description: "The DNS hostname used by this organization when exposing APIs"

Detalle de la Organización

  OrgDetail:
    allOf:
      - See separate definition for Recipe
      - properties:
          orgType:
            description: "Type of org"
            type: number
          active:
            description: "Indicate if this org is active or not"
            type: boolean
          legalName:
            description: "The legal name of the org"
            type: string
          environments:
            type: array
            items:
              See separate definition for Environment

Información de Conexión de Extremo

  EndpointConnectionInfo:
    type: object
    description: "Object that defines the properties associated to a connection endpoint"
    properties:
      keyValues:
        type: array
        items:
          See separate definition for KeyValue

Parámetros de Conexión HTTP

  HttpConnectionParams:
    type: object
    properties:
      verb:
        type: array
        items:
          See separate definition for property
      url:
        type: array
        items:
          See separate definition for property
      headers:
        type: array
        items:
          See separate definition for property
      httpRequest:
        type: array
        items:
          See separate definition for property
      httpResponse:
        type: array
        items:
          See separate definition for property
      username:
        type: array
        items:
          See separate definition for property
      password:
        type: array
        items:
          See separate definition for property
      errorIfRegexMatch:
        type: array
        items:
          See separate definition for property
      errorMessageRegexSearch:
        type: array
        items:
          See separate definition for property

Valor Clave

  KeyValue:
    type: object
    properties:
      key:
       type: string
      value:
       type: string

Error

  Error:
    type: object
    properties:
      code:
        type: integer
        description: "Code associated with this error; in general, maps to an HTTP Code"
      message:
        type: string
        description: "A description of the error"
      fields:
        type: string
        description: "Fields that report the error (optional)"

Registro de Operaciones

  OperationLog:
    type: object
    properties:
      records:
        type: array
        items:
          See separate definition for Operation Log Record

Registro de Registro de Operaciones

  OperationLogRecord:
    type: object
    properties:
      attributes:
        See separate definition for Record
      childRecords:
        See separate definition for Operation Log

Detalles del Registro de Operaciones

  OperationLogDetails:
    type: object
    properties:
      operationName:
        type: string
      mainMessage:
        type: string
      sourceRecords:
        type: integer
        description: Number of source records
      targetRecords:
        type: integer
        description: Number of target records
      failedRecords:
        type: integer
        description: Number of failed records
      successRecords:
        type: integer
        description: Number of success records
      filesProcessed:
        type: integer
        description: Number of files processed
      messageAndFieldName:
        type: array
        items:
          See separate definition for Message and Field Name
      resultFileCategoryAndGuid:
        type: array
        items:
          See separate definition for Result File Category and GUID

Mensaje y Nombre de Campo

  MessageAndFieldName:
    type: object
    properties:
      message:
        type: string
      fieldName:
        type: string

Categoría de Archivo de Resultados y GUID

  ResultFileCategoryAndGuid:
    type: object
    properties:
      category:
        type: number
      fileGuid:
        type: number

Ejecutar Respuesta de Operación

  RunOperationResponse:
    type: object
    properties:
      orgId:
        type: string
        description: "ID of the organization associated with the environment where the operation has been deployed and executed"
      environmentId:
        type: string
        description: "ID of the environment where the operation has been deployed and executed"
      operationInstanceGuid:
        type: string
        description: "GUID of the operation instance"
      operationGuid:
        type: string
        description: "GUID of the operation"
      submittedAt:
        type: string
        description: "Date when the operation was submitted for execution"

Registro

  Record:
    type: object
    properties:
      operationInstanceGuid:
        type: string
        description: "GUID of an instance of an operation; represents an execution of an operation"
      parentInstanceGuid:
        type: string
        description: "GUID associated to the parent operation; an operation that has been triggered/executed this operation instance"
      operationGuid:
        type: string
        description: "GUID associated to this operation"
      operationName:
        type: string
        description: "Name of the operation"
      operationStatusId:
        type: number
        description: "Possible value for the operation statusId: SUBMITTED(0), PENDING(1), CANCELED(2), RUNNING(3), SUCCESS(4), SUCCESS_WITH_INFO(5), SUCCESS_WITH_WARNING(6), ERROR(7), CANCEL_REQUESTED(8), SUCCESS_WITH_CHILD_ERROR(9), RECEIVED(10), UNKNOWN(-1)"
      operationStatus:
        type: string
        description: "Status of the operation - see operationStatusId for possible values"
      environmentId:
        type: string
        description: "ID of the  environment where operation has been deployed and running"
      environmentName:
        type: string
        description: "Name of the environment where operation has been deployed and running"
      agentId:
        type: string
        description: "ID of the agent where operation has been running"
      agentName:
        type: string
        description: "Name of the agent where operation has been running"
      projectName:
        type: string
        description: "Name of the Jitterbit pack associated to the recipe"
      message:
        type: string
        description: "The message associated with this operation indicating the status of it"
      operationEnteredTimestamp:
        type: number
        description: "Timestamp when the operation was entered"
      operationStartedTimestamp:
        type: number
        description: "Timestamp when the operation was started"
      operationStatusTimestamp:
        type: number
        description: "Timestamp of the operation status"
      debugModeEnabled:
        type: boolean
        description: "Indicate if the debug mode is enabled or not"
      debugFilePresent:
        type: boolean
        description: "Indicate if there is a debug file present for downloading"

Informacion del Usuario

  UserInfo:
    type: object
    properties:
      title:
        type: string
      phone:
       type: string
      company:
        type: string
      postalCode:
        type: string
      subscription:
        type: string
      signUpSource:
        type: string
      offeringEnumId:
        type: string
      active:
        type: string
      timezone:
        type: string

Estado Implementado

  DeployedStatus:
    type: object
    properties:
      good:
        type: integer
      warn:
        type: integer
      error:
        type: integer

Información del Extremo

  EndpointInfo:
    type: object
    properties:
      name:
        type: string
        description: "Name of the endpoint"
      category:
        type: string
        description: "Indicates the category this endpoint is part of; examples: crm, database"
      icon:
        type: string
        description: "Path to fetch the icon associated with this endpoint"
    required:
      - name
      - icon

Error de AWS

  AWSError:
    type: object
    properties:
      code:
        type: string
      message:
        type: string
      retryable:
        type: boolean
      statusCode:
        type: number
      hostname:
        type: string
      region:
        type: string
      retryDelay:
        type: number
      requestId:
        type: string
      extendedRequestId:
        type: string
      cfId:
        type: string