Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
A aprovação é uma forma de processo dedicada a ser iniciada e processada por humanos para decidir o status de dados relacionados. Geralmente é usada para automação de escritório ou gerenciamento de processos de outros assuntos de tomada de decisão humana. Por exemplo, você pode criar e gerenciar fluxos de trabalho manuais para cenários como "solicitações de licença", "aprovações de reembolso de despesas" e "aprovações de compra de matéria-prima".
O plugin de Aprovação fornece um tipo de fluxo de trabalho (gatilho) dedicado "Aprovação (evento)" e um nó "Aprovação" exclusivo para este processo. Combinado com as coleções e blocos personalizados exclusivos do NocoBase, você pode criar e gerenciar de forma rápida e flexível vários cenários de aprovação.
Ao criar um fluxo de trabalho, selecione o tipo "Aprovação" para criar um fluxo de trabalho de aprovação:

Em seguida, na interface de configuração do fluxo de trabalho, clique no gatilho para abrir o pop-up e realizar mais configurações.

O plugin de Aprovação do NocoBase é baseado em um design flexível e pode ser usado com qualquer coleção personalizada. Isso significa que a configuração de aprovação não precisa reconfigurar o modelo de dados, mas reutiliza diretamente uma coleção já criada. Portanto, após entrar na configuração do gatilho, primeiro você precisa selecionar uma coleção para decidir sobre quais dados da coleção o processo de aprovação será realizado:

Ao iniciar uma aprovação para dados de negócios, você pode escolher entre as duas formas de acionamento a seguir:
Antes de salvar os dados
Inicia a aprovação antes que os dados enviados sejam salvos. É adequado para cenários onde os dados só devem ser salvos após a aprovação. Neste modo, os dados no momento do início da aprovação são apenas dados temporários e só serão salvos formalmente na coleção correspondente após a aprovação ser concedida.
Após salvar os dados
Inicia a aprovação após os dados enviados serem salvos. É adequado para cenários onde os dados podem ser salvos primeiro e depois aprovados. Neste modo, os dados já estão salvos na coleção correspondente quando a aprovação é iniciada, e as modificações feitas durante o processo de aprovação também serão salvas.
Você pode escolher onde no sistema a aprovação pode ser iniciada:
Apenas em blocos de dados
Você pode vincular a ação de qualquer bloco de formulário desta coleção ao fluxo de trabalho para iniciar a aprovação, e processar e rastrear o processo de aprovação no bloco de aprovação de um único registro. Geralmente adequado para dados de negócios.
Tanto em blocos de dados quanto na Central de Tarefas
Além dos blocos de dados, as aprovações também podem ser iniciadas e processadas na Central de Tarefas global. Isso geralmente é adequado para dados administrativos.
Você pode configurar permissões baseadas no escopo do usuário para decidir quais usuários podem iniciar a aprovação:
Todos os usuários
Todos os usuários do sistema podem iniciar a aprovação.
Apenas usuários selecionados
Permite apenas que usuários dentro do escopo especificado iniciem a aprovação. Múltiplas seleções são permitidas.

Por fim, você precisa configurar a interface do formulário do iniciador. Esta interface será usada para operações de envio ao iniciar a partir do bloco da central de aprovação e ao reiniciar após uma retirada pelo usuário. Clique no botão de configuração para abrir o pop-up:

Você pode adicionar um formulário de preenchimento baseado na coleção vinculada para a interface do iniciador, ou adicionar textos explicativos (Markdown) para avisos e orientações. O formulário é obrigatório; caso contrário, o iniciador não poderá realizar nenhuma operação ao entrar nesta interface.
Após adicionar o bloco de formulário, assim como em uma interface de configuração de formulário comum, você pode adicionar componentes de campo da coleção correspondente e organizá-los livremente para estruturar o conteúdo que precisa ser preenchido:

Diferente do botão de envio direto, você também pode adicionar um botão de ação "Salvar rascunho" para suportar fluxos de armazenamento temporário:

Se um fluxo de trabalho de aprovação permitir que o iniciador retire a solicitação, você precisa habilitar o botão "Retirar" na configuração da interface do iniciador:

Uma vez habilitado, a aprovação iniciada por este fluxo pode ser retirada pelo iniciador antes que qualquer aprovador a processe. No entanto, após o processamento por qualquer aprovador configurado em nós de aprovação subsequentes, ela não poderá mais ser retirada.
Após habilitar ou excluir o botão de retirada, você precisa clicar em salvar e enviar no pop-up de configuração do gatilho para que as alterações entrem em vigor.
Pode ser usado para configurar os cards de tarefa na lista "Minhas solicitações" da Central de Tarefas.

No card, você pode configurar livremente os campos de negócios que deseja exibir (exceto campos de relacionamento) ou informações relacionadas à aprovação.
Após a criação da solicitação de aprovação, você poderá ver o card de tarefa personalizado na lista da Central de Tarefas:

Snapshot
O estado do registro que o solicitante e os aprovadores veem ao entrar no processo. Após o envio, eles só verão os registros que eles mesmos modificaram — não verão as atualizações feitas por outros posteriormente.
Mais recente
O solicitante e os aprovadores sempre verão a versão mais recente do registro durante todo o processo, independentemente do estado do registro antes de sua operação. Após o término do processo, eles verão a versão final do registro.
Em um fluxo de trabalho de aprovação, você precisa usar o nó "Aprovação" dedicado para configurar a lógica de operação (aprovar, rejeitar ou retornar) para os aprovadores processarem a aprovação iniciada. O nó "Aprovação" só pode ser usado em fluxos de trabalho de aprovação. Consulte Nó de Aprovação para mais detalhes.
Se um fluxo de trabalho de aprovação não contiver nenhum nó de "Aprovação", o fluxo será aprovado automaticamente.
Após configurar e habilitar um fluxo de trabalho de aprovação, você pode vinculá-lo ao botão de envio do formulário da coleção correspondente, para que os usuários iniciem a aprovação ao enviar:

Depois disso, o envio do formulário pelo usuário acionará o fluxo de trabalho de aprovação correspondente. Os dados enviados, além de serem salvos na coleção correspondente, também serão registrados como snapshot no fluxo de aprovação para consulta pelos aprovadores subsequentes.
O botão para iniciar a aprovação atualmente suporta apenas os botões "Enviar" (ou "Salvar") em formulários de criação ou atualização. Não suporta o botão "Acionar fluxo de trabalho" (este botão só pode ser vinculado a "Eventos de ação personalizada").
A Central de Tarefas fornece uma entrada unificada para facilitar aos usuários a visualização e o processamento de tarefas. As aprovações iniciadas pelo usuário atual e as tarefas pendentes podem ser acessadas através da Central de Tarefas na barra de ferramentas superior, e diferentes tipos de tarefas podem ser visualizados através da navegação lateral esquerda.





Ao iniciar a partir de um bloco de dados, você pode chamar desta forma (usando o botão de criação da coleção posts como exemplo):
O parâmetro de URL triggerWorkflows é a chave do fluxo de trabalho; múltiplos fluxos são separados por vírgulas. Esta chave pode ser obtida passando o mouse sobre o nome do fluxo de trabalho no topo da tela de configuração:

Após a chamada bem-sucedida, o fluxo de trabalho de aprovação da coleção posts correspondente será acionado.
Como as chamadas externas também precisam ser baseadas na identidade do usuário, ao chamar via HTTP API, as informações de autenticação devem ser fornecidas, assim como nas solicitações enviadas pela interface, incluindo o cabeçalho Authorization ou o parâmetro token, e o cabeçalho X-Role (nome do papel atual do usuário).
Se você precisar acionar eventos para dados de relacionamento um-para-um (um-para-muitos ainda não é suportado) nesta operação, você pode usar ! nos parâmetros para especificar os dados de gatilho do campo de relacionamento:
Após a chamada bem-sucedida, o evento de aprovação da coleção categories correspondente será acionado.
Ao acionar eventos pós-operação via HTTP API, você também deve prestar atenção ao status de ativação do fluxo de trabalho e se a configuração da coleção corresponde; caso contrário, a chamada pode não ser bem-sucedida ou ocorrer um erro.
Parâmetros
collectionName: Nome da coleção de destino para iniciar a aprovação, obrigatório.workflowId: ID do fluxo de trabalho usado para iniciar a aprovação, obrigatório.data: Campos do registro da coleção criados ao iniciar a aprovação, obrigatório.status: Status do registro criado ao iniciar a aprovação, obrigatório. Os valores possíveis incluem:
0: Rascunho, indica salvar mas não enviar para aprovação.2: Enviar aprovação, indica que o iniciador envia a solicitação e entra na aprovação.Quando uma aprovação iniciada (ou retirada) está em estado de rascunho, você pode salvar ou enviar novamente através da seguinte interface:
O iniciador pode retirar um registro que está atualmente em aprovação através da seguinte interface:
Parâmetros
<approval id>: ID do registro de aprovação a ser retirado, obrigatório.Após o fluxo de aprovação entrar em um nó de aprovação, uma tarefa será criada para o aprovador atual. O aprovador pode concluir a tarefa de aprovação através da interface ou via chamada de HTTP API.
As tarefas pendentes são registros de processamento de aprovação. Você pode obter todos os registros de processamento do usuário atual através da seguinte interface:
Como approvalRecords é um recurso de coleção, você também pode usar condições de consulta comuns, como filter, sort, pageSize e page.
Parâmetros
<record id>: ID do registro a ser processado, obrigatório.status: Status do processamento da aprovação, 2 significa "Aprovar", -1 significa "Rejeitar", obrigatório.comment: Comentário do processamento da aprovação, opcional.data: Representa as modificações feitas no registro da coleção onde o nó de aprovação atual está localizado após a aprovação, opcional (válido apenas ao aprovar).Antes da versão v1.9.0, o retorno usava a mesma interface que "Aprovar" e "Rejeitar", usando "status": 1 para representar o retorno.
A partir da versão v1.9.0, o retorno tem uma interface separada:
Parâmetros
<record id>: ID do registro a ser processado, obrigatório.returnToNodeKey: Chave do nó de destino para o retorno, opcional. Quando o nó está configurado com um escopo de nós para os quais se pode retornar, este parâmetro pode ser usado para especificar para qual nó retornar. Se não configurado, este parâmetro não precisa de valor, e o padrão será retornar ao ponto inicial para que o iniciador envie novamente.Parâmetros
<record id>: ID do registro a ser processado, obrigatório.assignee: ID do usuário para quem a tarefa será transferida, obrigatório.Parâmetros
<record id>: ID do registro a ser processado, obrigatório.assignees: Lista de IDs de usuários a serem adicionados, obrigatório.order: Ordem da assinatura adicional, -1 indica antes de "mim", 1 indica depois de "mim".