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:
- Define as etapas que os usuários precisarão seguir para configurar a receita por meio da interface do Citizen Integrator.
- 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.
-
Interface do Citizen Integrator: Acesse a interface do Citizen Integrator usando o portal Harmony. Veja Citizen Integrator - Dashboard para mais detalhes.
-
Metadados da receita: Baixe os metadados da receita de qualquer uma de nossas receitas públicas seguindo Obter uma receita específica e salvar o Jitterpak localmente do Jitterbit Command Line Interface.
-
-
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
econtas_salesforce-para-empresas_netsuite.json
- No arquivo 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
eempresas_netsuite-contas_salesforce.json
- No arquivo 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.
-
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.
-
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.
-
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.
-
Jitterbit Connect: Como este Jitterpak utiliza o Salesforce, as credenciais de conexão para a organização estão incluídas nesta seção.
-
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.
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).
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.
Exibido como o título da receita na Lista de Receitas:"name": "Salesforce to Zendesk"
Exibido como o título da receita sob Etapas de Configuração:
-
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
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
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
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
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
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.
org.jitterbit.integration.data.entity.Description
org.jitterbit.integration.data.entity.ProjectVariable
org.jitterbit.integration.data.entity.RunOperation
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.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
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.
- Recipe
- Step
- Action
- API
- API Method
- Property
- Deploy Jitterpak Details
- Operation
- Deploy Response
- Recipe Integration
- Tag
- Author
- Environment
- Agent
- Agent Group
- Login Response
- Organization
- Organization Detail
- Endpoint Connection Information
- HTTP Connection Parameters
- Key Value
- Error
- Operation Log
- Operation Log Record
- Operation Log Details
- Message and Field Name
- Result File Category and GUID
- Run Operation Response
- Record
- User Information
- Deployed Status
- Endpoint Information
- AWS Error
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