Ir para o conteúdo

Criação de receitas de Citizen Integrator para o Jitterbit Design Studio

Introdução

Uma receita de Citizen Integrator é um modelo de integração reutilizável que fornece um guia passo a passo através do Citizen Integrator, disponível através do portal Harmony. As receitas de Citizen Integrator podem ser usadas por membros de uma organização Harmony para que possam configurar facilmente uma integração no Design Studio para um caso de uso específico.

Este documento aborda a criação manual de receitas de Citizen Integrator. As receitas também podem ser criadas usando a interface do Citizen Integrator. Consulte Citizen Integrator - Gerar ou editar receita para mais detalhes.

Uma receita de Citizen Integrator consiste em duas partes:

  • Um Jitterpak do Design Studio (sufixo de arquivo .jpk ou .JPK).
  • Um arquivo JSON de metadados da receita de Citizen Integrator (sufixo de arquivo .json ou .JSON) que fornece os passos que um usuário deve seguir para configurar a integração.

Aqui está um resumo dos passos necessários para criar uma receita que pode ser disponibilizada através da interface web do Citizen Integrator:

Passo 1: Criar um Jitterpak

Crie um Jitterpak (JPK) usando o Jitterbit Design Studio. O Jitterpak será usado como base para a receita. Consulte Criando Jitterpaks para Receitas.

Passo 2: Criar os metadados da receita

Crie um arquivo de metadados da receita (um arquivo JSON). Os metadados da receita incluem os passos que os usuários completam através da interface web e associam as informações fornecidas pelo usuário ao Jitterpak. Consulte Criando metadados da receita para melhores práticas, um exemplo de walkthrough, uma descrição dos tipos de passos da receita e documentação dos componentes de um arquivo de metadados da receita.

Passo 3: Validar os metadados da receita

Valide seu arquivo de metadados da receita usando o jbcli. Consulte Validar uma receita da Interface de Linha de Comando do Jitterbit.

Passo 4: Faça o upload do Jitterpak e dos metadados da receita

Faça o upload do seu Jitterpak e do arquivo de metadados da receita para o seu repositório de receitas. Veja Fazer upload de uma nova receita e Jitterpak da Interface de Linha de Comando Jitterbit. Você também pode fazer upload de receitas através da interface web do Citizen Integrator, conforme descrito nas páginas Citizen Integrator - Dashboard ou Citizen Integrator - Minhas receitas.

Passo 5: Configure e implante a receita

Sua nova receita agora está disponível para os membros da sua organização utilizarem através da interface web do Citizen Integrator. Veja Citizen Integrator - Configurar Receita para instruções de usuário sobre como configurar e implantar receitas.

Criar Jitterpaks para receitas

Ao criar uma nova receita do Citizen Integrator, recomendamos começar criando primeiro um Jitterpak do Design Studio que contenha a estrutura do projeto para o seu modelo de receita.

Jitterpaks não são específicos para a funcionalidade de receita; eles são uma função central do aplicativo completo do Design Studio. Espera-se que os usuários que desejam criar novas receitas já estejam familiarizados com o Design Studio. Para mais informações, consulte os materiais sob Design Studio e Jitterpaks.

Nota

As receitas do Citizen Integrator são criadas a partir de projetos do Design Studio. Para Integration Studio, use em vez disso receitas de integração ou modelos de processo, disponíveis no Jitterbit Marketplace.

Melhores práticas para Jitterpak

Ao criar um Jitterpak para uso com receitas do Citizen Integrator, recomendamos estas melhores práticas para a criação de receitas:

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

    Antes de começar qualquer Jitterpak ou receita, você deve ter uma boa ideia do que deseja que seus usuários consigam realizar ao usar a receita. Lembre-se de que você pode criar várias receitas, se necessário. O caso de uso ajudará você a decidir o que construir em seu Jitterpak e os passos que deseja que um usuário preencha por meio da interface do Citizen Integrator.

  • Referencie exemplos para ajudar a começar

    Confira nossos Jitterpaks públicos como referência, ou se você encontrar um que seja semelhante ao seu caso de uso, pode até querer começar por ele. Para baixar qualquer um dos Jitterpaks construídos para nossas receitas públicas, siga Obter uma Receita Específica e Salvar o Jitterpak Localmente em Interface de Linha de Comando do Jitterbit. Ou, consulte nossa Biblioteca de Jitterpaks.

  • Crie variáveis de projeto sempre que possível

    Variáveis de projeto são fundamentais para criar receitas que possam ser facilmente preenchidas por um usuário através da interface web do Citizen Integrator. Pense nas variáveis de projeto como campos com informações específicas que você deseja que os usuários forneçam ao usar sua receita. Em seguida, crie esses itens como variáveis de projeto em seu Jitterpak. Por exemplo, informações de conexão para novos endpoints.

  • Namespace as variáveis de projeto para referência futura

    Ao criar variáveis de projeto, é uma boa prática usar namespaces. Por exemplo, uma variável de projeto para host poderia ser nomeada "db.host" para indicar que se refere a um host de banco de dados. Isso tornará mais fácil ler as variáveis de projeto ao criar os metadados da sua receita.

  • Coloque operações no nível raiz se quiser executá-las via um passo de receita

    Qualquer operação que você deseja executar através de um passo RunOperation em sua receita deve ser colocada no nível raiz da pasta de operações dentro do Design Studio. Ou seja, se você tiver operações dentro de subpastas sob sua árvore de operações, essas não serão executadas quando expostas através de um passo RunOperation. Essa ressalva é apenas para operações sendo executadas em um passo específico da receita. Se suas operações estiverem dentro de subpastas, elas ainda serão executadas ao salvar e implantar a receita.

  • Inclua WriteToOperationLog em operações que você deseja executar via um passo de receita

    Inclua WriteToOperationLog em operações que você deseja executar através de um passo RunOperation em sua receita (veja Funções de registro e erro). As mensagens WriteToOperationLog serão exibidas no painel abaixo do botão RunOperation na interface do Citizen Integrator e fornecerão feedback ao usuário da receita sobre a operação executada.

  • Use valores de variáveis de projeto para testar, mas remova os valores ao exportar como um Jitterpak

    Sempre que você usar variáveis de projeto em seu Jitterpak, certifique-se de não incluir valores específicos ao exportar o Jitterpak. Lembre-se de que os valores geralmente estão em branco para que possam ser preenchidos pelo usuário ao configurar a receita. É sempre uma boa ideia testar seu projeto no Design Studio com valores específicos, mas tenha certeza de remover esses valores antes da exportação. Aqui estão algumas opções para remover valores:

    • Todos os valores: Para remover todos os valores de variáveis de projeto, ao exportar como um Jitterpak, desmarque a caixa "Incluir valores de variáveis de projeto." Esta é a maneira padrão e recomendada de remover valores de variáveis de projeto.

    • Alguns valores: Para remover apenas variáveis de projeto específicas, basta remover o valor padrão na variável de projeto. Esta opção pode ser mais apropriada do que usar a caixa de seleção descrita acima se você quiser manter intencionalmente alguns valores de variáveis de projeto. Por exemplo, se sua receita for privada dentro de sua organização, você poderia incluir informações como uma URL que não mudará por usuário preenchendo a receita.

  • Observe os horários embutidos

    Se você incluir um horário dentro do Jitterpak, observe quando a operação está programada para ser executada e certifique-se de documentar isso nos metadados da receita. Caso contrário, os usuários não estarão cientes do horário que está embutido no Jitterpak. Horários atualmente não estão disponíveis para serem configurados dentro de uma receita.

Criar metadados da receita

Você pode começar a criar os metadados da receita do Citizen Integrator enquanto cria seu Jitterpak, ou criar os metadados quando terminar. Os metadados da receita fornecem duas funções principais:

  1. Define as etapas que os usuários precisarão seguir para configurar a receita por meio da interface do Citizen Integrator.
  2. Conecta quaisquer valores fornecidos pelo usuário de volta ao Jitterpak acompanhante da receita para que a(s) operação(ões) recém-configurada(s) sejam executadas conforme o esperado pelo Jitterbit.

Esta seção está organizada para fornecer uma lista de melhores práticas para criar receitas, um exemplo de passo a passo para criar uma receita, os tipos de etapas disponíveis para serem usadas na receita e, finalmente, uma lista abrangente de todas as partes possíveis do arquivo de metadados da receita.

Melhores práticas de metadados

Ao criar seu arquivo de metadados da receita do Citizen Integrator, estas melhores práticas são úteis para aqueles que são novos na criação de receitas.

  • Referencie exemplos para comparar a interface do Citizen Integrator com os metadados da receita

    Dê uma olhada em como nossas receitas públicas estão estruturadas, comparando o que você vê na interface do Citizen Integrator com o arquivo de metadados da receita real para essa receita. Se você encontrar uma que seja semelhante ao seu caso de uso, pode até querer começar com ela.

  • Construa sua receita em iterações

    Espere precisar fazer ajustes no seu Jitterpak enquanto trabalha nos metadados da sua receita, e vice-versa. Você pode sempre enviar uma primeira versão, verificar como ela é exibida e funciona na interface do Citizen Integrator e, em seguida, continuar a atualizar seus arquivos de receita a partir da página Citizen Integrator - Minhas receitas, ou seguindo Enviar uma nova receita e Jitterpak e Atualizar uma receita e Jitterpak existentes do Jitterbit Command Line Interface.

  • Inclua Introdução e Revisão nos metadados da receita

    É recomendável começar com um passo de Introdução e terminar com um passo de Revisão para manter as receitas consistentes. Essas seções usam o tipo org.jitterbit.integration.data.entity.Description (descrito em Tipos de passo).

    • A Introdução deve ser usada para explicar para que a receita é utilizada, descrever quaisquer limitações, listar campos padrão e/ou fornecer informações pré-requisito que alguém usando a receita deve estar ciente.

    • O passo de Revisão deve resumir e confirmar para o usuário o comportamento esperado quando a receita configurada é implantada. Se você incluir um cronograma dentro do Jitterpak, o passo de Revisão é um bom lugar para documentar o horário em que a operação está programada para ser executada. Lembre-se de especificar o fuso horário (UTC é o padrão dentro do Design Studio, mas você também pode converter o horário para o seu fuso horário desejado dentro do Design Studio e especificar isso).

  • Padronize nomes dentro dos metadados da sua receita

    Padronize o nome da sua receita, nome do projeto, nomes de arquivos e estrutura de diretórios. Isso ajuda a evitar erros não intencionais ao se referir a partes dentro da receita e torna mais fácil gerenciar todas as partes da sua receita.

  • Para migração de ponto a ponto, ordene os pontos de forma direcional

    Para migrações de um ponto para outro (por exemplo, migrando Contas do Salesforce para Empresas do NetSuite), ordene os pontos de forma direcional:

    • No arquivo JSON: "name": "Migrar Contas do Salesforce para Empresas do NetSuite"
    • No arquivo JSON: "projectName": "contas_salesforce-para-empresas_netsuite"
    • Diretório: salesforce-para-netsuite/contas-para-empresas/
    • Nomes de arquivos: contas_salesforce-para-empresas_netsuite.jpk e contas_salesforce-para-empresas_netsuite.json
  • Para sincronização de ponto a ponto, ordene os pontos alfabeticamente

    Para sincronizações de dois pontos (por exemplo, sincronizando Contas do Salesforce e Empresas do NetSuite), ordene os pontos alfabeticamente:

    • No arquivo JSON: "name": "Sincronizar Empresas do NetSuite e Contas do Salesforce"
    • No arquivo JSON: "projectName": "empresas_netsuite-contas_salesforce"
    • Diretório: netsuite-salesforce/empresas-contas/
    • Nomes de arquivos: empresas_netsuite-contas_salesforce.jpk e empresas_netsuite-contas_salesforce.json
  • Defina variáveis de projeto no final dos metadados da receita

    Quaisquer variáveis de projeto usadas dentro do seu Jitterpak e referenciadas nas etapas dos metadados da sua receita devem ser definidas no final do arquivo de metadados da sua receita.

  • Oculte etapas que você deseja incorporar em outras etapas

    Você pode especificar um atributo oculto em uma etapa para torná-la invisível na interface do Citizen Integrator, mas depois referenciar essa etapa usando um caminho que aponta para uma ação com "useStepAsRequest." Isso é uma boa ideia se, por exemplo, você configurar uma etapa para testar informações de conexão, mas quiser incluí-la como um botão Testar Conexão dentro de outra etapa.

  • Deixe de fora os campos que serão gerados ao fazer o upload dos metadados da receita

    Alguns campos no arquivo de metadados da receita não são especificados ao fazer o upload do arquivo e são, em vez disso, gerados pelo sistema quando o arquivo é enviado. Esses campos aparecem no início e no final do arquivo de metadados da receita.

    • id: Este campo é preenchido quando os metadados da receita são enviados para o repositório de receitas. Após o upload, você pode descobrir o ID da Receita gerado usando Listar todas as receitas da Interface de Linha de Comando Jitterbit.
    • guid: Obrigatório Este campo é preenchido quando um Jitterpak associado é enviado para o repositório de receitas. O GUID (identificador único global) é preenchido com o do Jitterpak associado. No entanto, este campo é obrigatório, então você ainda deve incluí-lo no arquivo. O identificador real será atualizado após o upload.
    • createdAt: O timestamp da época Unix em milissegundos de quando a receita foi enviada pela primeira vez.
    • updatedAt: O timestamp da época Unix em milissegundos de quando a receita foi atualizada pela última vez.
    • updatedBy

      • userId: O nome de usuário do Harmony da pessoa que atualizou a receita pela última vez.
      • name: O nome da pessoa que atualizou a receita pela última vez.
      • orgName: O nome da organização à qual pertence a pessoa que atualizou a receita pela última vez.
  • orgid: O ID da organização à qual a pessoa que enviou a receita pertence. A receita é de propriedade dessa organização e apenas o autor da receita ou um administrador da organização pode atualizar ou excluir a receita (veja Citizen Integrator - Minhas receitas ou a Interface de Linha de Comando Jitterbit).

  • author

    -   **userId:** O nome de usuário do Harmony da pessoa que enviou a receita.
    -   **name:** O nome da pessoa que enviou a receita.
    -   **orgName:** O nome da organização à qual a pessoa que enviou a receita pertence.
    

    Após enviar uma receita, você pode ver os valores gerados para esses campos quando usar Obter uma receita específica para retornar os metadados da receita (veja a Interface de Linha de Comando Jitterbit).

  • Use HTML para texto rico

    Se você quiser usar links, listas, negrito, etc. dentro dos passos da sua receita, tente usar HTML. A maioria dos campos onde você pode querer usar isso permite o uso de HTML, concedendo mais controle sobre a aparência e funcionalidade dos passos da receita.

  • Valide antes de enviar

    É sempre uma boa ideia garantir que os metadados da sua receita sejam válidos antes de enviá-los. Faça isso usando Validar uma receita (veja a Interface de Linha de Comando Jitterbit). Você não deve enviar receitas que não sejam válidas, pois elas terão erros para os usuários que tentarem configurar a receita.

  • Verifique os logs para solução de problemas

    Após enviar sua receita, você também pode testá-la configurando e implantando-a através da interface do Citizen Integrator. Não se esqueça de que todas as mesmas ferramentas de depuração estão disponíveis assim como estão para qualquer outro projeto Jitterbit. Veja Citizen Integrator - Minhas receitas ou confira os logs de operação, projetos, atividades, etc. dentro do Console de Gerenciamento.

Exemplo de walkthrough

Esta seção fornece um walkthrough para criar uma receita para uso com a interface web do Citizen Integrator. Este exemplo utiliza alguns dos elementos mais comuns de receitas que você pode encontrar normalmente. Para uma lista completa de opções que você pode incluir nas receitas, consulte Definições de metadados da receita.

Para este exemplo, criaremos uma receita que sincroniza contas do Salesforce e as insere no Zendesk. Você pode acompanhar esta demonstração baixando a receita mais recente do Salesforce para Zendesk seguindo Obter uma receita específica e Salvar o Jitterpak localmente da Interface de Linha de Comando do Jitterbit.

Passo 1: Criar projeto no Design Studio

O primeiro passo é configurar seu projeto no Design Studio. Ao criar seu projeto, consulte as Melhores Práticas do Jitterpak acima, que são específicas para a criação de Jitterpaks para uso com receitas.

Estes componentes do Jitterpak são usados para a receita do Salesforce para Zendesk:

  • Operações: Este Jitterpak está configurado para que, ao executar a operação RunNow, o Jitterbit consulte o Salesforce para obter informações sobre os casos (Consultar Casos) e, em seguida, use esses casos do Salesforce para atualizar e inserir tickets no Zendesk (Criar Tickets no Zendesk). Se você baixou o Jitterpak para acompanhar, pode clicar em cada elemento do gráfico para saber mais sobre os componentes das operações.

    image

  • Transformações: Cada transformação foi mapeada para que os campos padrão apropriados sejam incluídos na receita. Muitas receitas envolverão o mapeamento de campos padrão de um endpoint para outro. Neste exemplo, a consulta do Salesforce utiliza apenas os campos apropriados para esta receita específica (ou seja, Número do Caso, Origem, Assunto, Email Fornecido, Nome Fornecido). Se você estiver criando sua própria receita para uso em uma organização que utiliza campos personalizados do Salesforce, você também pode optar por integrá-los à sua receita, desde que o mapeamento esteja definido aqui.

    image

  • Fontes e Destinos: Defina quaisquer fontes e destinos como normalmente faria para qualquer projeto do Design Studio. Esta receita específica utiliza armazenamento temporário para Contas do Salesforce e Casos do Salesforce, e destinos HTTP como os parâmetros de conexão para o Zendesk.

    image

  • Métodos de Serviço Web e Endpoints HTTP Hospedados: Este Jitterpak não utiliza nenhum desses componentes, mas você pode configurá-los assim como faria para qualquer outro projeto do Design Studio.

  • Agendas: Este Jitterpak não inclui uma agenda, mas você pode incluir uma aqui se, por exemplo, quiser que a operação seja executada diariamente. Como a agenda não é configurável pelo usuário da receita, você deve garantir que anote em um campo de texto da receita quando sua operação está programada para ser executada. Um lugar típico para adicionar isso é na etapa de Revisão.

  • Mensagens de Email: Este Jitterpak não inclui nenhuma mensagem de email, mas você pode optar por configurá-las usando variáveis de projeto se quiser que sua receita gere notificações por email.

  • Scripts: Neste Jitterpak, scripts são usados para escrever mensagens no log, incluindo mensagens específicas de sucesso e falha.

  • Variáveis de Projeto: Variáveis de projeto são fundamentais para criar receitas configuráveis. Normalmente, variáveis de projeto são usadas sempre que você deseja que os usuários forneçam valores durante a configuração da receita. Neste Jitterpak, temos variáveis de projeto para credenciais do Salesforce e Zendesk. Lembre-se de testar seu projeto do Design Studio com valores reais e, em seguida, removê-los antes de exportar o Jitterpak.

    image

  • Jitterbit Connect: Como este Jitterpak utiliza o Salesforce, as credenciais de conexão para a organização estão incluídas nesta seção.

    image

  • Conectores: Este Jitterpak não utiliza nenhum conector, mas muitas outras receitas públicas o fazem. Se você deseja criar uma nova receita usando um conector, pode ser uma boa ideia baixar um exemplo diferente usando um dos conectores, como o Autodesk.

Passo 2: Teste o projeto do Design Studio

Após definir seus componentes, salve, implemente e execute seu projeto do Design Studio para garantir que ele funcione corretamente.

image

Você pode verificar o log de operações para qualquer mensagem de erro.

Passo 3: Exporte o projeto do Design Studio

Remova quaisquer valores de variáveis de projeto ou outras informações de credenciais que você estará incorporando à sua receita e exporte seu projeto do Design Studio como um Jitterpak.

Neste exemplo, removemos variáveis de projeto e credenciais na fase de exportação. Você pode salvar em qualquer local que desejar por enquanto, pois fará o upload do Jitterpak mais tarde (veja Citizen Integrator - Minhas Receitas ou o Interface de Linha de Comando do Jitterbit).

image

Passo 4: Crie os metadados da receita

Agora que você tem um Jitterpak criado, pode personalizar os metadados da sua receita para que correspondam aos componentes do seu Jitterpak.

Consulte as melhores práticas de metadados acima para criar seu arquivo de metadados da receita, bem como os Tipos de etapas ao iniciar uma nova receita. Para uma lista completa de definições de receita, veja Definições de metadados da receita abaixo para referência.

O arquivo JSON completo usado para definir os metadados da receita de Salesforce para Zendesk é fornecido abaixo, seguido por uma análise de cada seção do arquivo de metadados da receita.

Metadados JSON - Salesforce para 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"
    }
  ],
}
  • description: Obrigatório

    Este campo deve conter uma descrição da receita.

    "description": "Sincronizar contas do Salesforce e upsert para Zendesk"
    

  • guid: Obrigatório

    Este campo pode conter qualquer valor quando a receita é carregada pela primeira vez; ao fazer o upload com um Jitterpak associado, o valor será substituído pelo GUID (identificador único global) do Jitterpak associado.

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

  • name: Obrigatório

    Este campo deve conter o nome da receita.

    "name": "Salesforce to Zendesk"
    
    Exibido como o título da receita na Lista de Receitas:

    image

    Exibido como o título da receita sob Etapas de Configuração:

    image

  • projectName: Obrigatório

    Este campo deve corresponder ao nome do arquivo Jitterpak (JPK).

    "projectName": "Salesforce to Zendesk"
    

  • steps: Obrigatório

    As etapas definem as Etapas de Configuração na interface do Citizen Integrator. Os atributos da etapa usados na receita Salesforce para Zendesk são fornecidos abaixo, seguidos por uma comparação da interface do Citizen Integrator e os metadados JSON para a etapa.

    • name: Obrigatório Este campo é o nome da etapa.
    • description: Obrigatório Este campo é uma descrição da etapa.
    • label: Este campo é um rótulo que pode ser usado para renderizar um nome de etapa que é diferente do nome definido da etapa.
    • type: Obrigatório Este campo é o tipo associado a esta etapa. Veja Tipos de etapa para uma explicação dos vários tipos de etapa.
    • required: Este valor pode ser definido como verdadeiro ou falso. Se verdadeiro, a etapa da receita será obrigatória para ser concluída quando a receita for configurada antes que as ações Testar Conexão ou Executar Operação possam ser usadas.
    • hidden: Este valor pode ser definido como verdadeiro ou falso. Se verdadeiro, a etapa será oculta na interface do Citizen Integrator. Isso pode ser útil se você tiver etapas que não deseja mostrar, como para testar informações de conexão. Se falso, a etapa será exibida. O valor padrão é falso, significando que as etapas são exibidas por padrão.
    • path: Use se você estiver ocultando etapas e quiser referenciá-las em outras etapas. Este valor deve ser definido se você planeja incorporar uma etapa oculta em outra etapa. Por exemplo, se você quiser incluir um botão de Testar Conexão dentro de uma etapa, pode ocultar a etapa para testar informações de conexão e, em seguida, referir-se a ela em outra etapa. A forma como nos referimos a isso é definindo um caminho.
    • properties: Podem ser usadas apenas se projectVariables não forem utilizadas. Estas incluem propriedades associadas à etapa. Em uma etapa, você pode ter propriedades ou projectVariables atribuídas, mas não ambas ao mesmo tempo.
      • name: Obrigatório Este campo é o nome da propriedade sendo definida para esta etapa.
      • defaultValue: Este campo pode conter um valor padrão associado à propriedade. Normalmente, isso é usado para inserir texto instrucional ou informativo em uma etapa.
      • description: Este campo pode conter texto padrão que aparecerá dentro da caixa de texto.
    • projectVariables: Podem ser usadas apenas se properties não forem utilizadas. Estas incluem uma lista de variáveis de projeto agrupadas que representam entidades configuráveis. Em uma etapa, você pode ter projectVariables ou propriedades atribuídas, mas não ambas ao mesmo tempo.
      • names: Obrigatório Este campo contém uma lista de todas as variáveis de projeto sendo usadas nesta etapa.
      • action: Este campo define quaisquer ações. Normalmente, estas são usadas como botões dentro de uma etapa para realizar ações que podem ser definidas como etapas ocultas.
        • name: Obrigatório Este campo é o nome da ação.
        • displayName: Este campo pode ser usado se você quiser um nome diferente para exibir na interface do Citizen Integrator.
        • useStepAsRequest: Obrigatório Este campo é usado para fornecer o caminho para propriedades definidas em outra etapa que não é renderizada. Use o mesmo valor que você definiu para "path" na etapa oculta.

    Passo 1: Introdução

    image

    Metadados JSON para o Passo 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>"
        }
      ]
    },
    

    Passo 2: Variáveis do Projeto de Endpoint Salesforce

    image

    Metadados JSON para o Passo 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"
        }
      }
    },
    

    Passo Oculto: Informações de Conexão de Teste do Salesforce

    Metadados JSON para o Passo 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"
        }
      ]
    },
    

    Passo 3: Variáveis do Projeto de Endpoint Zendesk

    image

    Metadados JSON para o Passo 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"
        ]
      }
    },
    

    Passo 4: RunNow

    image

    Metadados JSON para o Passo 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."
        }
      ]
    },
    

    Passo 5: Revisão

    image

    Metadados JSON para o Passo 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 seção define quaisquer variáveis de projeto usadas nos passos da receita. Observe que esta é uma nova seção do arquivo de metadados da receita que vem no final, após os passos, e não deve ser confundida com as projectVariables usadas dentro dos próprios passos.

    • name: Obrigatório Este campo contém o nome da variável de projeto conforme usado em seu Jitterpak.
    • displayName: Este campo pode ser usado se você quiser um nome diferente para exibir na interface do Citizen Integrator.
    • description: Este campo pode ser usado para inserir texto abaixo do campo, por exemplo, para fornecer instruções sobre o que os usuários devem inserir.
    • type: Este campo pode ser usado para definir o tipo de valor que o usuário pode fornecer. O valor padrão é string. Você também pode usar integer, float, double, date, time, boolean, password, enum, dropdown, checkboxes ou textarea.
    • required: Este valor pode ser definido como true ou false. Se true, o campo da variável de projeto será obrigatório ser preenchido quando a receita for configurada antes que as ações Test Connection ou Run Operation possam ser usadas.
    • regex: Este campo pode ser usado para fornecer uma expressão regular (string) que o valor da variável de projeto deve corresponder quando a receita for configurada antes que as ações Test Connection ou Run Operation possam ser usadas. Por exemplo: .+@.+[.].+.
    • value: Este campo pode ser usado se você quiser atribuir um valor padrão à sua variável de projeto. Isso pode ser usado para fornecer um valor padrão com outros valores opcionais para a variável de projeto. Um exemplo adicional de metadados JSON usando valores e opções é fornecido no Exemplo 2 abaixo.
    • options: Este campo pode ser usado para apresentar possíveis valores em um menu suspenso, área de texto ou caixas de seleção. Um exemplo adicional de metadados JSON usando valores e opções é fornecido no Exemplo 2 abaixo.

    Exemplo de Metadados JSON 1

    "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"
      }
    ]
    

    Exemplo de Metadados JSON 2

    "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 etapas

Cada etapa dentro dos metadados da receita do Citizen Integrator possui um atributo "tipo" que indica o tipo da etapa. Essas etapas correspondem diretamente àquelas que os usuários verão usando a interface do Citizen Integrator, e os tipos dessas etapas correspondem diretamente ao Design Studio.

Estes são os tipos de etapas possíveis disponíveis. Informações adicionais sobre cada tipo de etapa são fornecidas nas seções seguintes.

Descrição

org.jitterbit.integration.data.entity.Description

Este tipo de etapa deve ser usado quando há a necessidade de fornecer informações detalhadas sobre uma receita ou uma etapa, ou pode ser usado como uma Revisão no final da receita.

  • Por exemplo:

    {
    "name": "Introduction",
    "description": "Insert accounts into a postgres database",
    "label": "Introduction",
    "type": "org.jitterbit.integration.data.entity.Description",
    "properties": [
      {
        "name": "template",
        "defaultValue": "<div>...</div>"
      }
    
  • Se esta etapa for a última etapa dentro de uma receita (definida como uma etapa de Revisão) e contiver a propriedade "submitOperationsToRun", então o botão Salvar & Finalizar aplicará essa lógica em relação às operações que precisam ser enviadas para execução. Observe que, se essas opções não estiverem definidas, o botão Salvar & Finalizar não enviará operações para execução.

    • Nenhuma operação será enviada para execução se:

      {
        "name": "submitOperationsToRun",
        "value": ""
      }
      
    • Somente as operações especificadas serão enviadas para execução se:

      {
      "name": "submitOperationsToRun",
      "value": "Operation1;Operation2"
      }
      
    • Todas as operações serão enviadas para execução se a propriedade não estiver presente:

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

ProjectVariable

org.jitterbit.integration.data.entity.ProjectVariable

Este tipo de etapa é usado para agrupar um conjunto de variáveis de projeto. Também pode ser usado para redefinir uma definição de endpoint. Uma "ação" opcional pode ser anexada a ele.

  • Por exemplo:

       {
        "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"
          }
        }
      }
    
  • Essas "ações" são suportadas:

    • "test-endpoint-connection": Isso é usado para testar uma conexão de endpoint. Deve ser usado junto com um endpoint.
    • "submit-http-form": Isso precisa ser usado junto com um formulário HTTP (veja abaixo).

RunOperation

org.jitterbit.integration.data.entity.RunOperation

Este tipo de etapa é usado para executar uma operação a fim de permitir que o usuário teste.

  • Por exemplo:

       {
        "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 etapa é usado quando há a necessidade de externalizar operações como APIs.

  • "assignTo": Isso permite armazenar a URI em uma variável de projeto que pode ser usada dentro do Jitterpak. Por exemplo:

    {
        "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

Esse tipo de etapa é usado quando há necessidade de interagir com um Endpoint HTTP. Variáveis de projeto podem ser usadas como entradas para requisições/cabeçalhos.

  • Por exemplo:

      {
        "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": "" }
        ]
       }
    

Connector

org.jitterbit.integration.data.connector.*

Esses são usados para os respectivos endpoints listados:

  • 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

Recipe metadata definitions

Essas subseções cobrem as definições completas de metadados para receitas conforme são definidas dentro do Jitterbit. Essas seções descrevem todas as partes possíveis do arquivo de metadados JSON. Quaisquer campos obrigatórios estão listados no final de cada seção.

Receita

  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

Passo

  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

Ação

  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 da 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

Propriedade

  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

Detalhes do Jitterpak de implantação

  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

Operação

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

Resposta de implantação

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

Integração de receita

  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

Tag

  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"

Resposta de login

  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

Organização

  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"

Detalhe da organização

  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

Informações de conexão do endpoint

  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 conexão 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 da chave

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

Erro

  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 operação

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

Registro de log de operação

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

Detalhes do log de operação

  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

Mensagem e nome do campo

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

Categoria do arquivo de resultado e GUID

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

Resposta da operação de execução

  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"

Informações do usuário

  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

Status implantado

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

Informações do endpoint

  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

Erro da 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