Esta documentação foi traduzida automaticamente por IA.
Eventos de Coleção
Introdução
Os gatilhos do tipo evento de coleção monitoram os eventos de criação, atualização e exclusão em uma coleção. Quando uma operação de dados ocorre nessa coleção e atende às condições configuradas, ela aciona o fluxo de trabalho correspondente. Por exemplo, cenários como deduzir o estoque de um produto após a criação de um novo pedido, ou aguardar a revisão manual após a adição de um novo comentário.
Uso Básico
Existem algumas situações de alteração em uma coleção:
- Após criar dados.
- Após atualizar dados.
- Após criar ou atualizar dados.
- Após excluir dados.

Você pode escolher o momento do gatilho de acordo com as diferentes necessidades do seu negócio. Quando a situação de alteração selecionada inclui a atualização da coleção, você também pode especificar os campos que foram alterados. A condição de gatilho é atendida somente quando os campos selecionados mudam. Se nenhum campo for selecionado, significa que uma alteração em qualquer campo pode acionar o fluxo de trabalho.

De forma mais detalhada, você pode configurar regras de condição para cada campo da linha de dados que aciona o gatilho. O gatilho só será disparado quando os campos atenderem às condições correspondentes.

Após um evento de coleção ser acionado, a linha de dados que gerou o evento será injetada no plano de execução como dados de contexto do gatilho, para ser usada como variáveis pelos nós subsequentes no fluxo de trabalho. No entanto, quando os nós subsequentes precisarem usar os campos de relacionamento desses dados, você precisará configurar primeiro o pré-carregamento dos dados de relacionamento. Os dados de relacionamento selecionados serão injetados no contexto junto com o gatilho e poderão ser selecionados e usados hierarquicamente.
Dicas Relacionadas
Gatilhos por Operações de Dados em Massa Não São Suportados Atualmente
Os eventos de coleção atualmente não suportam gatilhos por operações de dados em massa. Por exemplo, ao criar um artigo e adicionar simultaneamente várias tags para esse artigo (dados de relacionamento um-para-muitos), apenas o fluxo de trabalho para a criação do artigo será acionado. As várias tags criadas simultaneamente não acionarão o fluxo de trabalho para a criação de tags. Ao associar ou adicionar dados de relacionamento muitos-para-muitos, o fluxo de trabalho para a coleção intermediária também não será acionado.
Operações de Dados Fora do Aplicativo Não Acionarão Eventos
Operações em coleções via chamadas de API HTTP para a interface do aplicativo também podem acionar eventos correspondentes. No entanto, se as alterações de dados forem feitas diretamente por meio de operações de banco de dados, em vez de pelo aplicativo NocoBase, os eventos correspondentes não poderão ser acionados. Por exemplo, gatilhos nativos do banco de dados não serão associados a fluxos de trabalho no aplicativo.
Além disso, usar o nó de ação SQL para operar no banco de dados é equivalente a operações diretas no banco de dados e não acionará eventos de coleção.
Fontes de Dados Externas
Os fluxos de trabalho suportam fontes de dados externas desde a versão 0.20. Se você estiver usando um plugin de fonte de dados externa e o evento de coleção estiver configurado para uma fonte de dados externa, desde que as operações de dados nessa fonte de dados sejam realizadas dentro do aplicativo (como criação de usuário, atualizações e operações de dados de fluxo de trabalho), os eventos de coleção correspondentes podem ser acionados. No entanto, se as alterações de dados forem feitas por meio de outros sistemas ou diretamente no banco de dados externo, os eventos de coleção não poderão ser acionados.
Exemplo
Vamos usar como exemplo o cenário de calcular o preço total e deduzir o estoque após a criação de um novo pedido.
Primeiro, criamos uma coleção de Produtos e uma coleção de Pedidos, com os seguintes modelos de dados:
E adicionamos alguns dados básicos de produtos:
Em seguida, criamos um fluxo de trabalho baseado no evento da coleção de Pedidos:

Aqui estão algumas das opções de configuração:
- Coleção: Selecione a coleção "Pedidos".
- Momento do gatilho: Selecione "Após criar dados".
- Condições do gatilho: Deixe em branco.
- Pré-carregar dados de relacionamento: Marque "Produtos".
Depois, configuramos outros nós de acordo com a lógica do fluxo de trabalho: verificar se o estoque do produto é maior que 0. Se for, deduzir o estoque; caso contrário, o pedido é inválido e deve ser excluído:

A configuração dos nós será explicada em detalhes na documentação para tipos de nós específicos.
Ative este fluxo de trabalho e teste-o criando um novo pedido pela interface. Após fazer um pedido para "iPhone 14 Pro", o estoque do produto correspondente será reduzido para 9. Se um pedido for feito para "iPhone 13 Pro", o pedido será excluído devido a estoque insuficiente.


