Ir para o conteúdo

Criação de Nova Receita

Introdução

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

Este documento aborda a criação manual das receitas do Citizen Integrator. As receitas também podem ser criadas usando a interface do Citizen Integrator. Ver Citizen Integrator - Gerar ou Editar Receita para detalhes.

Uma receita do Citizen Integrator consiste em duas partes:

  • um Design Studio Jitterpak (sufixo de arquivo .jpk ou .JPK); e
  • um arquivo JSON de metadados de receita do Citizen Integrator (sufixo de arquivo .json ou .JSON) que fornece as etapas a usuário passa para configurar a integração.

Aqui está um resumo dos passos necessários para criar uma receita que pode ser disponibilizada através do Cidadão Interface web do integrador:

Etapa 1: Crie um Jitterpak

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

Etapa 2: crie os metadados da receita

Crie um arquivo de metadados de receita (um arquivo JSON). Os metadados da receita incluem as etapas que os usuários concluem por meio a interface da web e associa as informações fornecidas pelo usuário ao Jitterpak. Ver Criando metadados de receita para melhores práticas, um passo a passo de amostra, uma descrição de tipos de etapa de receita e documentação de componentes de um arquivo de metadados de receita.

Etapa 3: validar os metadados da receita

Valide seu arquivo de metadados de receita usando o jbcli. Ver Validar uma receita do Interface de linha de comando do Jitterbit.

Etapa 4: Carregue o Jitterpak e os metadados da receita

Carregue seu Jitterpak e o arquivo de metadados da receita para o seu repositório de receitas. Ver Carregar uma nova receita e Jitterpak do Interface de linha de comando do Jitterbit. Você também pode carregar receitas através da interface web do Citizen Integrator, conforme descrito no Citizen Integrator - Painel ou Citizen Integrator - Minhas Receitas páginas.

Etapa 5: configurar e implantar a receita

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

Criando Jitterpaks para Receitas

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

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

Observação

As receitas do Citizen Integrator são criadas a partir Design Studio projetos. Para Cloud Studio, em vez disso, use Receitas de Integração do Cloud Studio ou Arquétipos de Processo do Cloud Studio, disponível no Jitterbit Marketplace.

Melhores Práticas do Jitterpak

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

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

    Antes de iniciar qualquer Jitterpak ou receita, você deve ter uma boa ideia do que deseja que seus usuários possam realize usando a receita. Lembre-se de que você pode criar várias receitas, se necessário. O caso de uso será ajudá-lo a decidir o que incluir em seu Jitterpak e as etapas que você deseja que um usuário preencha por meio do Citizen Interface do integrador.

  • Exemplos de referência para ajudar a começar

    Confira nossos Jitterpaks públicos para referência, ou se você encontrar um que seja semelhante ao seu caso de uso, você pode até deseja começar com ele. Para baixar qualquer um dos Jitterpaks criados para nossas receitas públicas, siga Obtenha uma receita específica e salve o Jitterpak localmente em Jitterbit Command Line Interface. Ou consulte nosso Biblioteca Jitterpak.

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

    As variáveis do projeto são fundamentais para criar receitas que podem ser facilmente preenchidas por um usuário através do Cidadão Interface web do integrador. Pense nas variáveis do projeto como campos com informações específicas que você deseja que os usuários para fornecer 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.

  • Variáveis de projeto de namespace para referência posterior

    Ao criar variáveis de projeto, é uma boa prática nomeá-las. Por exemplo, uma variável de projeto para hospedar pode ser nomeado “db. hospedar” para indicar que se refere a um hospedar de banco de dados. Isso facilitará a leitura do variáveis de projeto ao criar seus metadados de receita.

  • Coloque as operações no nível raiz se quiser executá-las por meio de uma etapa da receita

    Qualquer operação que você deseja executar por meio de uma etapa RunOperation em sua receita deve ser colocada no nível raiz de a pasta de operações dentro do Design Studio. Ou seja, se você tiver operações dentro de subpastas em seu árvore de operações, elas não serão executadas quando expostas por meio de uma etapa RunOperation. Esta ressalva é apenas para operações sendo executado em uma etapa específica da receita. Se suas operações estiverem dentro de subpastas, elas ainda serão executadas quando salvar e implantar a receita.

  • Inclua WriteToOperationLog nas operações que deseja executar por meio de uma etapa de receita

    Inclua WriteToOperationLog em operações que você deseja executar por meio de uma etapa RunOperation em sua receita (consulte Funções de registro e erro). O As mensagens WriteToOperationLog serão exibidas no painel abaixo do botão RunOperation no Citizen Interface do integrador e fornecer feedback ao usuário da receita sobre a operação executada.

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

    Onde quer que você use variáveis de projeto em seu Jitterpak, certifique-se de não incluir valores específicos ao exportar o Jitterpak. Lembre-se, os valores normalmente estão em branco para que possam ser preenchidos pelo usuário ao configurar a receita. É sempre uma boa ideia testar seu projeto do Design Studio com valores específicos, mas certifique-se de remova-os antes de exportar. Aqui estão algumas opções para remover valores:

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

    • Alguns valores: Para remover apenas variáveis específicas do projeto, basta remover o valor padrão no projeto variável. 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 do projeto. Por exemplo, se a sua receita for privada dentro do seu organização, você pode incluir informações como um URL que não mudará por usuário preenchendo o receita.

  • Anote os horários integrados

    Se você incluir um agendamento no Jitterpak, anote quando a operação está programada para ser executada e faça certifique-se de documentar isso nos metadados da receita. Caso contrário, os usuários não estarão cientes da programação construída no Jitterpak. No momento, as programações não estão disponíveis para serem configuradas em uma receita.

Criando Metadados de Receita

Você pode começar a criar metadados de receita do Citizen Integrator ao criar seu Jitterpak ou criar os metadados quando você acabar. Os metadados da receita fornecem duas funções principais:

  1. Define as etapas que o usuário deverá seguir para configurar a receita através da interface do Citizen Integrator.
  2. Conecta quaisquer valores fornecidos pelo usuário de volta ao Jitterpak que acompanha a receita para que o recém-configurado operação(ões) executada(s) conforme o esperado através do Jitterbit.

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

Práticas Recomendadas de Metadados

Ao criar seu arquivo de metadados de receita do Citizen Integrator, estas são as melhores práticas úteis para os novos criando receitas.

  • Exemplos de referência para comparar a interface do Citizen Integrator com os metadados da receita

    Confira como estão estruturadas as nossas receitas públicas, comparando com o que você vê no Citizen Integrator interface com o arquivo de metadados da receita real para essa receita. Se você encontrar um que seja semelhante ao seu caso de uso, você pode até querer começar com ele.

  • Construa sua receita em iterações

    Espere precisar fazer ajustes em seu Jitterpak enquanto trabalha nos metadados de sua receita e vice-versa. Você pode sempre carregue uma primeira versão, verifique como ela é exibida e funciona na interface do Citizen Integrator e, em seguida, continue a atualizar seus arquivos de receita do Citizen Integrator - Minhas Receitas página, ou seguindo Carregar uma nova receita e Jitterpak e Atualizar uma receita existente e Jitterpak da Interface de linha de comando do Jitterbit.

  • Inclua as etapas de introdução e revisão nos metadados da receita

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

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

    • A etapa de Revisão deve resumir e confirmar para o usuário o comportamento esperado quando a receita configurada for implantado. Se você incluir uma programação no Jitterpak, a etapa de Revisão é um bom lugar para documentar o hora em que a operação está programada para execução. Lembre-se de especificar o fuso horário (UTC é o padrão no Design Studio, mas você também pode converter a hora para o fuso horário desejado no Design Studio e especificar isso).

  • Padronize os nomes nos metadados da sua receita

    Padronize o nome da receita, nome do projeto, nomes de arquivos e estrutura de diretórios. Isso ajuda a evitar erros não intencionais erros ao se referir às partes da receita e facilita o gerenciamento de todas as partes da receita.

  • Para migração de ponto final para ponto final, ordene os endpoints direcionalmente

    Para migrações de um endpoint para outro (por exemplo, migração de contas Salesforce para empresas NetSuite ), solicite o endpoints direcionalmente:

    • No arquivo JSON: "name": "Migrate Salesforce Accounts to NetSuite Companies"
    • No arquivo JSON: "projectName": "salesforce_accounts-to-netsuite_companies"
    • Diretório: salesforce-to-netsuite/accounts-to-companies/
    • Nomes de arquivos: salesforce_accounts-to-netsuite_companies.jpk e salesforce_accounts-to-netsuite_companies.json
  • Para sincronização de endpoint, ordene os endpoints em ordem alfabética

    Para sincronizações de dois endpoints (por exemplo, sincronização de contas Salesforce e empresas NetSuite ), solicite o endpoints em ordem alfabética:

    • No arquivo JSON: "name": "Synchronize NetSuite Companies and Salesforce Accounts"
    • No arquivo JSON: "projectName": "netsuite_companies-salesforce_accounts"
    • Diretório: netsuite-salesforce/companies-accounts/
    • Nomes de arquivos: netsuite_companies-salesforce_accounts.jpk e netsuite_companies-salesforce_accounts.json
  • Defina as variáveis do projeto no final dos metadados da receita

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

  • Ocultar etapas que você deseja incorporar em outras etapas

    Você pode especificar um atributo oculto em uma etapa para torná-lo oculto da renderização na interface do Citizen Integrator , , mas faça referência a essa etapa usando um caminho que aponte para uma ação com “useStepAsRequest”. Essa é uma boa ideia se, por exemplo, você configurar uma etapa para testar as informações de conexão, mas quiser incluí-las como uma conexão de teste botão em outra etapa.

  • Deixe de fora os campos que serão gerados após o upload dos metadados da receita

    Alguns campos no arquivo de metadados da receita não são especificados no upload do arquivo e, em vez disso, são gerados por o sistema quando o arquivo é carregado. Esses campos vêm no início e no final do arquivo de metadados da receita.

    • id: Este campo é preenchido quando os metadados da receita são carregados no repositório de receitas. Depois de carregar, você pode descobrir o ID da receita gerado usando Listar todas as receitas do Interface de linha de comando Jitterbit.
    • guid: Obrigatório Este campo é preenchido quando um Jitterpak associado é carregado na receita repositório. O GUID (identificador exclusivo globalmente) é preenchido com o do Jitterpak associado. No entanto, este campo é obrigatório, portanto 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 carregada pela primeira vez.
    • updatedAt: O timestamp da época Unix em milissegundos de quando a receita foi atualizada pela última vez.
    • atualizado por

      • userId: O nome de usuário Harmony da pessoa que atualizou a receita pela última vez.
      • nome: O nome da pessoa que atualizou a receita pela última vez.
      • orgName: O nome da organização à qual pertence a última pessoa que atualizou a receita.
    • orgid: O ID da organização à qual pertence a pessoa que carregou a receita. a receita é pertencente a esta organização e somente o autor da receita ou um administrador da organização pode atualizar ou excluir a receita (consulte Citizen Integrator - Minhas Receitas ou Jitterbit Command Line Interface).

    • autor

      • userId: O nome de usuário Harmony da pessoa que carregou a receita.
      • nome: O nome da pessoa que carregou a receita.
      • orgName: O nome da organização à qual pertence a pessoa que carregou a receita.

    Depois de carregar uma receita, você pode ver os valores gerados para esses campos ao usar Obtenha uma receita específica para retornar os metadados da receita (consulte a Interface de linha de comando do Jitterbit).

  • Use HTML para rich text

    Se você quiser usar links, listas, negrito, etc. nas etapas da receita, tente usar HTML. A maioria dos campos onde você pode deseja usar estes permitem o uso de HTML, concedendo a você mais controle sobre a aparência e a funcionalidade da receita etapas.

  • Validar antes de carregar

    É sempre uma boa ideia certificar-se de que os metadados de sua receita sejam válidos antes de carregá-los. Faça isso usando Validar uma receita (Veja o Interface de linha de comando Jitterbit). Você não deve fazer upload de receitas que não não validam, pois terão erros para os usuários que tentarem configurar a receita.

  • Verifique os logs para solução de problemas

    Depois de carregar sua receita, você também pode testá-la configurando-a e implantando-a por meio do Citizen Interface do integrador. Não se esqueça de que todas as mesmas ferramentas para depuração estão disponíveis, assim como para qualquer outro projeto Jitterbit. Ver Citizen Integrator - Minhas Receitas ou verificar registros de operação, projeto, atividades, etc. dentro do Management Console.

Amostra Passo a Passo

Esta seção fornece um passo a passo para criar uma receita para uso com a interface da web do Citizen Integrator. Esse O exemplo usa 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 de receita.

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

Etapa 1: Criar Projeto no Design Studio

O primeiro passo é configurar seu projeto no Design Studio. Ao criar seu projeto, consulte o Práticas recomendadas do Jitterpak acima que são específicos para criar Jitterpaks para uso com receitas.

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

  • Operations: Este Jitterpak é configurado para que ao executar a operação RunNow, o Jitterbit irá consultar Salesforce para obter informações sobre os casos (casos de consulta) e, em seguida, usar esses casos do Salesforce para atualizar e inserir tickets no Zendesk (Criar tickets do Zendesk ). Se você baixou o Jitterpak para acompanhar, você pode clicar em cada elemento do gráfico para saber mais sobre os componentes das operações.

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

  • Fontes e destinos: defina quaisquer origens e destinos como faria normalmente para qualquer projeto do Design Studio. Esse receita específica usa armazenamento temporário para contas Salesforce e casos Salesforce e destinos HTTP como o parâmetros de conexão para Zendesk.

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

  • Horários: Este Jitterpak não inclui um horário, mas você pode incluir aqui se por exemplo quiser a operação para executar diariamente. Como a programação não é configurável pelo usuário da receita, você deve fazer certifique-se de anotar em um campo de texto da receita quando sua operação está programada para ser executada. Um lugar típico para adicionar esta é a etapa de revisão.

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

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

  • Variáveis do projeto: As variáveis do projeto são fundamentais para criar receitas configuráveis. Normalmente, as variáveis do projeto são usados 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 Salesforce e Zendesk. Lembre-se de testar seu projeto do Design Studio com e remova-os antes de exportar o Jitterpak.

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

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

Etapa 2 - Teste o projeto do Design Studio

Depois que seus componentes forem definidos, salve, implantar e execute seu projeto do Design Studio para garantir que ele seja executado com sucesso.

Você pode verificar o log da operação em busca de mensagens de erro.

Etapa 3 – Exportar o projeto do Design Studio

Remova quaisquer valores de variável de projeto ou outras informações de credencial que você criará em sua receita e exporte seu projeto do Design Studio como um Jitterpak.

Neste exemplo, removemos as variáveis e credenciais do projeto no estágio de exportação. Você pode salvar em qualquer local que você desejar agora, pois você carregará o Jitterpak mais tarde (consulte Citizen Integrator - Minhas Receitas ou o Interface de linha de comando do Jitterbit.

Etapa 4 - Criar metadados de receita

Agora que você criou um Jitterpak, pode personalizar os metadados da receita para que correspondam aos componentes em seu Jitterpak.

Consulte as Práticas recomendadas de metadados acima para criar seu arquivo de metadados de receita como bem como os Tipos de Passo ao iniciar uma nova receita. Para obter uma lista completa de definições de receita, consulte Definições de metadados de receita abaixo para referência.

O arquivo JSON completo usado para definir os metadados da receita do Salesforce para Zendesk é fornecido abaixo, seguido por um detalhamento 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"
    }
  ],
}
  • descrição: Obrigatório

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

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

  • guid: Obrigatório

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

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

  • nome: Obrigatório

    Este campo deve conter o nome da receita.

    "name": "Salesforce to Zendesk"
    
    Mostrado como o título da receita na lista de receitas:

    Mostrado como o título da receita em Etapas de configuração:

  • projectName: Obrigatório

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

    "projectName": "Salesforce to Zendesk"
    

  • etapas: 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 do Citizen Integrator interface e os metadados JSON para a etapa.

    • nome: Obrigatório Este campo é o nome da etapa.
    • descrição: Obrigatório Este campo é uma descrição da etapa.
    • rótulo: Este campo é um rótulo que pode ser usado para renderizar um nome de etapa diferente do definido nome da etapa.
    • tipo: Obrigatório Este campo é o tipo associado a esta etapa. Consulte Tipos de Etapa para uma explicação dos vários tipos de etapas.
    • obrigatório: Este valor pode ser definido como verdadeiro ou falso. Se verdadeiro, a etapa da receita deverá ser concluída quando a receita é configurada antes que as ações Test Connection ou Run Operation possam ser usado.
    • oculto: Este valor pode ser definido como verdadeiro ou falso. Se verdadeiro, a etapa ficará oculta no Citizen Integrator interface. Isso pode ser útil se você tiver etapas que não deseja mostrar, como para testar a conexão informações. Se falso, o passo será mostrado. O valor padrão é false, o que significa que as etapas são mostradas por padrão.
    • caminho: Use se 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 teste Botão de conexão dentro de uma etapa, você pode ocultar a etapa para testar as informações de conexão e, em seguida, consulte-o em outro passo. A maneira como nos referimos a isso é definindo um caminho.
    • propriedades: Pode ser usado somente se projectVariables não forem usadas. Estes incluem propriedades associadas ao passo. Em uma etapa, você pode ter propriedades ou projectVariables atribuídos, mas não ambos ao mesmo tempo.
      • nome: Obrigatório Este campo é o nome da propriedade que está 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.
      • descrição: Este campo pode conter texto padrão que aparecerá dentro da caixa de texto.
    • projectVariables: Pode ser usado apenas se as propriedades não forem usadas. Estes incluem uma lista de variáveis de projeto agrupados que representam entidades configuráveis. Em uma etapa, você pode ter projectVariables ou propriedades atribuídas, mas não ambas ao mesmo tempo.
      • nomes: Obrigatório Este campo contém uma lista de todas as variáveis do projeto sendo usadas nesta etapa.
      • ação: Este campo define quaisquer ações. Normalmente, eles são usados como botões dentro de uma etapa para executar ações que podem ser definidas como etapas ocultas.
        • nome: Obrigatório Este campo é o nome da ação.
        • displayName: Este campo pode ser usado se você deseja que um nome diferente seja exibido no Cidadão Interface do integrador.
        • useStepAsRequest: Required Este campo é usado para fornecer o caminho para as propriedades definidas em outra etapa que não é renderizada. Use o mesmo valor que você definiu para “path” na etapa oculta.

    Etapa 1: Introdução

    Metadados JSON para a Etapa 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>"
        }
      ]
    },
    

    Etapa 2: Variáveis de projeto de Endpoint do Salesforce

    Metadados Json para a Etapa 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"
        }
      }
    },
    

    Etapa Oculta: Testar informações de conexão do Salesforce

    Metadados JSON para Etapa Oculta
    {
      "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"
        }
      ]
    },
    

    Etapa 3: Variáveis de projeto de Endpoint do Zendesk

    Metadados JSON para a Etapa 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"
        ]
      }
    },
    

    Etapa 4: Executar Agora

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

    Etapa 5: Revisão

    Metadados JSON para a Etapa 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 nas etapas da receita. Note que este é um novo seção do arquivo de metadados da receita que vem no final após as etapas e não deve ser confundida com a projectVariables usadas nas próprias etapas.

    • nome: Obrigatório Este campo contém o nome da variável do projeto conforme usado em seu Jitterpak.
    • displayName: Este campo pode ser utilizado caso você queira que um nome diferente seja exibido no Citizen Integrator interface.
    • descrição: 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.
    • tipo: 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 área de texto.
    • obrigatório: Este valor pode ser definido como verdadeiro ou falso. Se verdadeiro, o campo da variável do projeto será necessário concluir quando a receita for configurada antes da conexão de teste ou operação de execução ações podem ser usadas.
    • regex: Este campo pode ser usado para fornecer uma expressão regular (string) que o o valor da variável do projeto deve corresponder quando a receita é configurada antes da conexão de teste ou operação de execução ações podem ser usadas. Por exemplo: .+@.+[.].+.
    • valor: Este campo pode ser usado se você quiser atribuir um valor padrão ao seu projeto variável. Isso pode ser usado para fornecer um valor padrão com outros valores opcionais para a variável do projeto. Um exemplo adicional de metadados JSON usando valores e opções é fornecido no Exemplo 2 abaixo.
    • opções: Este campo pode ser usado para apresentar valores possíveis em um menu suspenso, texto área 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 Passo

Cada etapa nos metadados da receita do Citizen Integrator possui um atributo “type” que indica o tipo da etapa. Essas etapas correspondem diretamente com esses usuários verá usando a interface do Citizen Integrator, e os tipos dessas etapas correspondem diretamente com o Design Studio.

Estes são os possíveis tipos de etapas disponíveis. Informações adicionais sobre cada tipo de etapa são fornecidas a seguir Seções.

Descrição

org.jitterbit.integration.data.entity.Description

Este tipo de etapa deve ser usado quando houver 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 de uma receita (definida como uma etapa de revisão) e contiver o “submitOperationsToRun” , então o botão Salvar e Concluir aplicará esta lógica em relação às operações que precisam ser enviadas para executar. Observe que, se essas opções não forem definidas, o botão Salvar e concluir não enviará as 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 caso a propriedade não esteja presente:

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

ProjetoVariável

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 um endpoint definição. Uma “ação” opcional pode ser anexada a ela.

  • 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"
          }
        }
      }
    
  • Estas “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”: Deve 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 para 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 é utilizado quando há necessidade de externalizar operações como APIs.

  • “assignTo”: Isso permite que você armazene o URI em uma variável de projeto que pode ser usada dentro do Jitterpak. Para 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

Este tipo de etapa é usado quando há necessidade de interagir com um Endpoint HTTP. As variáveis do projeto podem ser usadas como entradas para solicitação/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": "" }
        ]
       }
    

Conector

org.jitterbit.integration.data.connector.*

Eles 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

Definições de Metadados de Receita

Essas subseções abrangem as definições completas de metadados para receitas, pois são definidas no Jitterbit. Estas seções descreva todas as partes possíveis do arquivo de metadados JSON. Todos os 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

Etapa

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

Implantar Detalhes do 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

Operação

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

Implantar Resposta

  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

Marcação

  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"

Detalhes 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 de 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 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

Nome da Mensagem e do Campo

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

Categoria de Arquivo de Resultado e GUID

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

Executar Resposta da Operaçã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ção 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

Estado 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