Aplicativo Jitterbit Form Flow
Visão geral
O Jitterbit fornece o aplicativo Form Flow através do Jitterbit Marketplace. Construído com o Jitterbit App Builder, é um aplicativo de coleta de dados e construtor de formulários orientado por templates. Administradores montam templates de formulário reutilizáveis a partir de seções, formulários e campos, e usuários finais preenchem esses templates através de um assistente guiado passo a passo. Os envios passam por um ciclo de vida de revisão e aprovação, com notificações por email em cada etapa.
Você baixa o aplicativo como um pacote de lançamento do App Builder (um arquivo .LP) do Marketplace e o instala em sua própria instância do App Builder, onde pode configurá-lo e estendê-lo para se adequar ao seu processo.
Esta página descreve como o aplicativo funciona, seus recursos principais e modelo de dados, e cobre os pré-requisitos, como baixar e instalar o aplicativo, como configurá-lo para seu ambiente, como o acesso é controlado e as etapas comuns de resolução de problemas.
Como funciona
Em um nível alto, o Form Flow passa por construir um template, completar envios contra ele e revisar esses envios:
a form template"] --> B["Define sections, forms,
fields, and visibility rules"] B --> C["Template available
for submissions"] C --> D["User starts
a submission"] D --> E["Complete the
guided wizard"] E --> F["Submit"] F --> G{"Reviewer
decision"} G -->|Approve| H["Submission locked,
approval email sent"] G -->|Request revision| I["Submission reopened,
revision email sent"] I --> E
Recursos principais
Quando você instala e configura o Form Flow, o aplicativo fornece os seguintes recursos:
-
Construtor de templates: Crie questionários personalizados organizados em seções e formulários, usando uma variedade de tipos de campos, incluindo texto, área de texto, número, data, caixa de seleção, botão de rádio, lista suspensa e conteúdo HTML.
-
Entrada de dados guiada: Usuários finais completam um envio através de um assistente com uma árvore de navegação à esquerda que agrupa seções e formulários em sequência e rastreia o progresso conforme avançam.
-
Visibilidade condicional: Regras avaliam as respostas do usuário em tempo real para mostrar ou ocultar campos individuais ou formulários inteiros, e para tornar campos obrigatórios, com base em respostas anteriores.
-
Ciclo de vida de revisão e aprovação: Cada template designa um revisor. Quando um usuário envia uma entrada, ela passa para um estado de revisão onde apenas esse revisor pode aprová-la ou rejeitá-la. A aprovação bloqueia o envio; a rejeição o reabre para edições.
-
Notificações por email: O aplicativo envia email em eventos chave do ciclo de vida (envio, aprovação e rejeição). O conteúdo da mensagem é orientado por registros de template configuráveis, para que administradores possam editar o texto sem alterar a lógica do aplicativo.
Ciclo de vida e estados
O Form Flow rastreia o estado para cada envio do usuário final (instância) em dois níveis: o status geral do envio e o progresso das seções, formulários e campos individuais dentro dele.
Status de envio
Um envio passa por três estados gerais da criação à aprovação:
-
Em andamento: O estado inicial para um novo envio. Se o revisor rejeitar uma entrada enviada, ela retorna a este estado para que o usuário possa fazer edições.
-
Em revisão: Definido quando o usuário envia. O envio passa para o revisor designado.
-
Concluído: Definido quando o revisor aprova, o que bloqueia o envio.
Estados de seção e formulário
Conforme um usuário trabalha em um envio, suas seções e formulários progridem através destes estados:
-
Seções e formulários começam como Não iniciado.
-
Uma seção muda para Em andamento quando o usuário a abre, e um formulário muda para Em andamento quando o usuário responde seu primeiro campo.
-
Ao enviar, seções e formulários que estão Em andamento se tornam Enviado, e qualquer um ainda Não iniciado se torna Ignorado.
-
Quando o revisor aprova, o status geral do envio se torna Concluído, mas os estados das seções e formulários não mudam: permancem Enviado ou Ignorado.
-
Se o revisor rejeita o envio, seções e formulários Enviado revertem para Em andamento e os Ignorado revertam para Não iniciado, para que o usuário possa editar e reenviar.
Modelo de dados
Form Flow é totalmente independente: armazena todos os templates, envios e respostas em suas próprias tabelas e não requer uma conexão de banco de dados externo.
Cada tabela tem um tipo de uso de dados, definido pela sua Opção de Instalação, que controla como seus dados são tratados quando o app é instalado em um novo ambiente: dados de Developer são substituídos na instalação, dados de Shared são preenchidos uma vez, e dados de User são deixados para cada ambiente preencher.
| Tabela | Tipo de uso | Finalidade |
|---|---|---|
FieldType |
Developer | Registro dos tipos de campos de entrada suportados. |
TemplateStatus |
Developer | Estados do ciclo de vida de envios (In Progress, Under Review, Completed). |
SectionStatus |
Developer | Estados de navegação e bloqueio de seções. |
FormStatus |
Developer | Estados de entrada e permissão de formulários. |
Operator |
Developer | Operadores de comparação usados por regras de visibilidade. |
VisibilityAction |
Developer | Resultados de visibilidade (Hidden, Visible). |
Template |
Shared | Registro raiz de um template de formulário reutilizável. |
Section |
Shared | Um agrupamento de formulários dentro de um template. |
Form |
Shared | Uma etapa individual dentro de uma seção. |
FormField |
Shared | Um único campo de entrada e suas configurações. |
FieldOption |
Shared | Valores de escolha para campos de rádio e dropdown. |
FormVisibility |
Shared | Regras que mostram ou ocultam formulários inteiros. |
FieldVisibility |
Shared | Regras que mostram ou ocultam campos individuais. |
Parameter |
Shared | Configurações globais e valores de ambiente. |
WorkflowTemplate |
Shared | Templates de assunto e corpo de email. |
TemplateInstance |
User | Uma única execução de um template por um usuário final. |
SectionInstance |
User | Estado de progresso de uma seção dentro de uma execução. |
FormInstance |
User | Estado de progresso de um formulário dentro de uma execução. |
FieldResponse |
User | Uma resposta individual capturada de um usuário. |
Nota
Ao excluir um Template, a exclusão se estende aos seus registros filhos Section, Form, FormField e FieldOption; ao excluir um TemplateInstance, a exclusão se estende aos seus registros filhos SectionInstance, FormInstance e FieldResponse. Essas ações de exclusão são restritas aos administradores.
Pré-requisitos
Para usar Form Flow, você precisa do seguinte:
-
Uma licença Jitterbit Harmony com acesso ao App Builder. Isso habilita o download do Marketplace; se sua organização não tiver licença para App Builder, a ação Download app é substituída por uma ação de requisição Get app (consulte Baixar e instalar).
-
Uma instância do App Builder executando o App Builder 4.63, a versão para a qual o pacote atual foi construído. Cada pacote é instalado apenas em sua versão exata do App Builder; se sua instância estiver em uma versão diferente, entre em contato com o suporte Jitterbit para solicitar um pacote correspondente.
-
Um banco de dados PostgreSQL para sua instância do App Builder.
-
Um servidor SMTP de saída configurado em sua instância do App Builder. As notificações do app dependem dele; sem roteamento SMTP, as notificações por email não são enviadas.
Baixar e instalar
Baixar o app do Marketplace
-
Faça login no portal Harmony em https://login.jitterbit.com e abra o Marketplace.
-
Localize o app chamado Form Flow. Você pode usar a barra de pesquisa ou, no painel Filtros em Tipo, selecionar App para mostrar apenas apps.
-
Clique no card do app para abrir o painel Detalhes. Analise os Requisitos do app (a versão do App Builder e o banco de dados necessários).
-
Clique no link Ir para documentação do app para abrir esta documentação em uma guia separada e mantenha-a aberta para referência.
-
Faça um dos seguintes, dependendo se sua organização tem licença para App Builder:
- Download app: Se sua organização tiver licença para App Builder, clique em Download app, no card do app ou no painel Detalhes. Seu navegador salva o arquivo
.LPem seu local de download, e uma notificação App Builder file downloaded successfully confirma o download.
- Download app: Se sua organização tiver licença para App Builder, clique em Download app, no card do app ou no painel Detalhes. Seu navegador salva o arquivo
-
Obter app: Se sua organização não tem licença para App Builder, a ação é rotulada como Obter app. O painel Detalhes exibe uma mensagem informando que é necessária uma licença do App Builder, com um botão Enviar. Clique em Enviar para solicitar que um representante entre em contato sobre o App Builder; uma notificação Mensagem enviada com sucesso confirma o envio.
Instalar o app no App Builder
Instale o arquivo .LP baixado na sua instância do App Builder:
-
Faça login no App Builder e acesse o IDE.
-
Em Deploy, clique em Install Release.
-
Clique em + Package, depois em Browse e selecione o arquivo
.LPque você baixou. -
Clique em Save. O painel Release exibe as informações do pacote e depois fecha o diálogo Package.
-
Confirme se os detalhes estão corretos e clique em Install.
Para visualizar o conteúdo de um pacote antes de instalá-lo, clique no botão Manifest.
Modificando o app em um ambiente de desenvolvimento
A fonte de dados do app é instalada selada. Se você implantar o app em um ambiente de desenvolvimento e pretender modificá-lo, dessoele a fonte de dados para que consiga editar os objetos do app. Mantenha-a selada em QA e produção para preservar a equivalência entre ambientes. Veja Selar ou desselar uma fonte de dados.
Configuração e setup
Depois de instalar o app em um novo ambiente, complete os seguintes passos para deixá-lo pronto para usar:
-
Atribua usuários a grupos. Adicione seus usuários ao grupo de acesso apropriado, seja Form Flow Administrator ou Form Flow User. Veja Segurança e acesso.
-
Verifique os formatos de email dos usuários. A notificação de rejeição é enviada para a conta do criador do envio. Confirme que as contas de usuário usam endereços de email válidos para que as notificações sejam resolvidas corretamente. Veja troubleshooting relacionado.
-
Defina a URL do ambiente. Nas configurações de
Parameter, atualize o valor deAppBuilderURLpara corresponder à URL raiz do seu ambiente, de modo que os links nas notificações de email sejam resolvidos corretamente. -
Atualize o revisor do template de exemplo. O app vem com um "Employee Onboarding Template" de exemplo. Abra-o e substitua o email do revisor espaço reservado no campo
ApproverEmailpor um endereço válido e monitorado.
O app também vem com dados de lookup de exemplo e um template de exemplo para que seus recursos funcionem imediatamente após a instalação.
Segurança e acesso
Form Flow usa segurança baseada em papéis do App Builder com dois grupos de acesso, Form Flow Administrator e Form Flow User. O acesso a cada área é o seguinte:
| Área | Form Flow Administrator | Form Flow User |
|---|---|---|
| Template builder | Acesso total | Construir e modificar templates |
| Workspace de envios | Acesso total | Visualizar e iniciar envios |
| Formulários de envio ao vivo | Acesso total | Completar entradas de formulário |
| Página de remediação de rejeição | Acesso total | Somente leitura, acessada por meio de ações de workflow |
| Dados de lookup e configurações | Acesso total | Sem acesso (menus ocultos) |
| Exclusão de registros | Acesso total | Não permitido |
Ações de aprovação e rejeição estão disponíveis apenas para o revisor cujo email corresponde ao ApproverEmail no template. Para todos os outros usuários, essas ações são desabilitadas. Quando um envio é submetido, seus campos tornam-se somente leitura; uma rejeição do revisor reabre-os para edição.
Regras de negócio
A lógica do Form Flow é implementada como regras de negócio do App Builder. Os nomes das regras seguem a convenção Target (Purpose or Subtype) Descriptor do App Builder, portanto a palavra inicial identifica a tabela sobre a qual a regra atua. As tabelas abaixo listam as regras por área funcional para ajudar você a localizá-las e compreendê-las ao estender o app.
Regras de configuração de template
| Regra | Finalidade |
|---|---|
Template (Business Object) |
Gerencia registros de configuração de template pai. |
Template (List) |
Lista de seletor de templates ativos. |
Section (Business Object) |
Gerencia registros de layout de seção. |
Section (List) |
Lista de seletor de seções configuradas. |
Form (Business Object) |
Gerencia registros de etapas de formulário único dentro de uma seção. |
Form (List) |
Lista estrutural usada para mapeamento de template. |
FormField (Form Fields) |
Adiciona campos de formulário no template builder e controla o painel de opções de campo. |
FormField (List) |
Seletor de campo usado ao definir regras de visibilidade, agrupado por seção e formulário. |
FieldOption (Business Object) |
Gerencia listas de opções para campos de seleção. |
FieldOption (List) |
Lista de referência de valores de opção. |
Regras de tempo de execução (instância)
| Regra | Finalidade |
|---|---|
TemplateInstance (Business Object) |
Gerencia o envio de uma execução do usuário. |
TemplateInstance (Default) Status |
Define uma nova instância como Em andamento por padrão. |
TemplateInstance (Navigation) |
Ordena seções e formulários ativos no workspace. |
TemplateInstance (Reject Submission) |
Respalda a página de rejeição e captura o motivo da rejeição. |
TemplateInstance (Subquery) Navigation Steps |
Agrega índices de navegação para rastreamento de progresso. |
TemplateInstance (Subquery) Navigation Union |
Une a navegação de seção e formulário em uma única lista. |
TemplateInstance (Update) Status Completed |
Define o status da instância como Concluído. |
TemplateInstance (Update) Status In Progress |
Reverte o status da instância para Em andamento. |
TemplateInstance (Update) Status Under Review |
Escala o status da instância para Em revisão. |
FormInstance (Business Object) |
Rastreia uma etapa de formulário dentro de uma execução. |
FormInstance (Insert) Forms |
Clona instâncias de formulário ativo do modelo. |
FormInstance (Subquery) Form Navigation |
Sequencia formulários para a lista de navegação. |
FormInstance (Update) Status Change On Reject |
Ao rejeitar, define Enviado como Em andamento e Ignorado como Não iniciado. |
FormInstance (Update) Status Change On Submit |
Ao enviar, define Em andamento como Enviado e Não iniciado como Ignorado. |
FormInstance (Update) Status In Progress |
Marca um formulário como Em andamento na primeira edição. |
SectionInstance (Business Object) |
Rastreia uma seção dentro de uma execução. |
SectionInstance (Insert) Section |
Clona instâncias de seção ativa do modelo. |
SectionInstance (Subquery) Section Navigation |
Cria o nível de seção da lista de navegação. |
SectionInstance (Update) Status Change On Reject |
Ao rejeitar, reverte os estados da seção. |
SectionInstance (Update) Status Change On Submit |
Ao enviar, avança os estados da seção. |
SectionInstance (Update) Status In Progress |
Marca uma seção como Em andamento quando é aberta. |
FieldResponse (Responses) |
Captura as respostas do usuário na página de envio e aplica lógica de mostrar/ocultar e obrigatório. |
FieldResponse (Insert) Fields |
Clona registros de resposta dos campos do modelo. |
FieldResponse (Validation) Required Response |
Verifica campos obrigatórios antes de avançar para o próximo formulário ou seção. |
FieldResponse (Validation) Template Required Response |
Verifica todos os campos obrigatórios antes do envio final. |
Regras de visibilidade
| Regra | Finalidade |
|---|---|
FormVisibility (Business Object) |
Gerencia regras que mostram ou ocultam formulários inteiros. |
FormVisibility (Subquery) Count By Template |
Retorna a contagem de regras de visibilidade de formulário por modelo. |
FieldVisibility (Business Object) |
Gerencia regras que mostram ou ocultam campos individuais. |
FieldVisibility (Subquery) Count By Template |
Retorna a contagem de regras de visibilidade de campo por modelo. |
FieldResponse (Visibility) |
Marca um campo como obrigatório ou disponível com base nas respostas do usuário. |
FieldResponse (Subquery) Field Visibility Action |
Resolve o estado de visibilidade em nível de campo. |
FieldResponse (Subquery) Form Visibility Action |
Resolve o estado de visibilidade em nível de formulário. |
Regras de consulta e configurações
| Regra | Finalidade |
|---|---|
FieldType (Business Object) / FieldType (List) |
Gerenciam tipos de campo suportados. |
TemplateStatus (Business Object) / TemplateStatus (List) |
Gerenciam estados do ciclo de vida do envio. |
SectionStatus (Business Object) / SectionStatus (List) |
Gerenciam estados de seção. |
SectionStatus (List) Form and Section Statuses |
Lista combinada de estados de formulário e seção. |
SectionStatus (Subquery) Navigation Statuses |
Une estados de seção e formulário para o painel de navegação. |
FormStatus (Business Object) / FormStatus (List) |
Gerenciam estados de formulário. |
FormStatus (Subquery) Form and Section Status Union |
Consolida estados de formulário e seção para indexação. |
FormStatus (Subquery) Navigation Statuses |
Une estados de formulário e seção para o painel de navegação. |
Operator (Business Object) / Operator (List) |
Gerenciam operadores de comparação para regras de visibilidade. |
VisibilityAction (Business Object) / VisibilityAction (List) |
Gerenciam resultados de visibilidade (Oculto, Visível). |
Parameter (Business Object) |
Fornece acesso em tempo de execução às configurações globais. |
Parameter (Application Settings) |
Respalda a página de configurações onde administradores editam parâmetros globais. |
Regras de notificação
| Regra | Finalidade |
|---|---|
Email (Submission Under Review) |
Envia a notificação quando um envio é submetido. |
Email (Submission Approved) |
Envia a notificação quando um envio é aprovado. |
Email (Submission Requires Revision) |
Envia a notificação quando um envio é rejeitado. |
WorkflowTemplate (Business Object) |
Gerencia as definições de assunto e corpo da mensagem. |
WorkflowTemplate (List) |
Lista de seleção de templates de notificação. |
Configurando regras de visibilidade
As regras de visibilidade (nas tabelas FormVisibility e FieldVisibility) controlam o que um usuário vê com base em suas respostas. Cada regra é definida pelas seguintes propriedades:
-
Campo do formulário de origem: O campo cujo valor é monitorado.
-
Opção de campo: Uma escolha específica em um campo de seleção (um botão de opção ou opção de menu suspenso).
-
Operador: A comparação usada para avaliar a entrada.
-
Valor de comparação: O valor comparado com a entrada em tempo real.
-
Ação de visibilidade: O resultado aplicado quando a regra é verdadeira, Oculto ou Visível.
-
Campo ou formulário dependente: O alvo cuja exibição e requisito são alterados pela regra.
Dois comportamentos são aplicados quando você configura uma regra:
-
Seleção direta e expressão são mutuamente exclusivas. Você pode avaliar uma opção de campo específica, ou um operador e valor de comparação, mas não ambos. Quando você seleciona uma opção de campo, o operador e o valor de comparação são limpos e bloqueados.
-
Um campo oculto não pode ser obrigatório. Quando a ação de visibilidade é Oculto, a configuração obrigatória é desativada, desabilitada e bloqueada. Um campo só pode ser obrigatório condicionalmente quando sua ação é Visível.
Nota
As comparações de expressão são avaliadas em relação ao Value armazenado de uma opção, não no Label exibido na tela. Consulte solução de problemas relacionada.
Solução de problemas
Falha no envio de uma notificação de rejeição
-
Sintoma: Um revisor rejeita um envio, mas o email de notificação não é enviado e os estados do envio não são revertidos.
-
Causa possível: A notificação é enviada para o endereço na conta do criador do envio. Se essa conta usar um valor que não é um endereço de email válido, o servidor SMTP não conseguirá resolver o destinatário.
-
Resolução: Confirme que as contas de usuário usam endereços de email válidos. Como alternativa, atualize a regra de notificação de rejeição para ler o destinatário de um campo de email dedicado no perfil do usuário.
Uma regra de visibilidade de menu suspenso nunca avalia como verdadeira
-
Sintoma: Uma regra de visibilidade que tem como alvo um campo de menu suspenso usa um operador e valor de comparação, mas a regra nunca avalia como verdadeira durante os testes.
-
Causa possível: A regra é avaliada em relação ao Value armazenado da opção, não no Label exibido na tela.
-
Resolução: Abra as opções do campo e confirme que o valor de comparação da regra corresponde exatamente à entrada na coluna Value da opção.
Um envio anterior mostra uma opção com riscado
-
Sintoma: Ao revisar um envio anterior, um valor de menu suspenso ou lista selecionado aparece com uma linha através dele.
-
Causa possível: A resposta armazenada é mapeada para uma opção que foi desativada nos dados de pesquisa.
-
Resolução: Isso é esperado. O aplicativo preserva a resposta original para precisão histórica e aplica um riscado para indicar que a opção não está mais disponível para novos envios. Nenhuma ação é necessária, a menos que você queira reativar a opção.
Para obter mais ajuda, revise os logs do App Builder e entre em contato com o suporte Jitterbit.