Conclusão de transação

As transações configuradas no pipeline mudam o status da linha de pedido após uma execução bem-sucedida. Uma transação é completa ou incompleta para uma linha de pedido com base na mudança de status.

As transações não precisam entender a conclusão. Isso é baseado na configuração. A conclusão só é registrada se essa transação puder ser configurada para conclusão. Após a transação ser ativada para conclusão, ela será avaliada para ser marcada como completa ou incompleta sempre que acontecer qualquer mudança de status na linha de pedido. Em alguns casos, uma transação completa pode ser marcada como incompleta, já que seu status poderia ser rebaixado.

Há duas maneiras de marcar uma transação como completa ou incompleta. Uma maneira fornece um único status, e sempre que a linha de pedido vai além, essa transação de status é marcada como completa. A outra maneira de marcar uma transação como completa é fornecendo uma lista de status. Se a linha de pedido estiver em qualquer um desses status, a transação será marcada como completa. Para evitar a configuração de uma lista de status, é melhor configurar os status em ordem crescente conforme o ciclo de vida do pedido progride.

Por exemplo, se a transação X precisar ser concluída antes da transação Y, a transação X deverá cair para um status inferior aquele para o qual a transação Y cai.

O pipeline de cumprimento de pedido tem transações pré-configuradas para conclusão. Não é possível modificar os critérios de conclusão para transações do sistema. No entanto, é possível configurar a conclusão para transações customizadas ou derivadas. Também é possível configurar a conclusão para listeners derivados, mas isso deve ser feito para cada ocorrência do listener.

Um evento é acionado quando uma transação é concluída, e é determinado que o pedido esteja pronto para processar a transação dependente. Esse evento também permite que as transações customizadas saibam que o pedido está pronto para processamento.

Várias transações podem ficar prontas devido à conclusão da transação. O evento é levantado para cada transação na linha de pedido que estava aguardando a conclusão dessa linha de pedido.