Cada pedido pode ter várias dependencias, bem como vários pedidos dependentes O aplicativo armazena cada borda como
um registro individual que identifica o pedido e também seu pedido dependente. As dependências devem ser acíclicas.
Exemplo: Dependências de execução
O aplicativo também controla se uma dependência é resolvida para uma borda ou não. Isso ajuda na busca de
todos os pedidos que ainda serão processados e são elegíveis para serem selecionados para processamento. Por exemplo, considere a seguinte estrutura em árvore de dependência de execução:Figura 1. Estrutura em árvore de exemplo de relacionamento de dependência de execução
O aplicativo insere os seguintes registros na tabela YFS_TRANSACTIONAL_RELATION.
Tabela 1. Registros de amostra na tabela
YFS_TRANSACTIONAL_RELATION para dependências de execução
Este pedido
Pedido relacionado
Tipo de Relacionamento
IsDependencyResolved
Order-1
Order-11
DEPENDS_ON
Order-1
Order-12
DEPENDS_ON
Order-1
Order-13
DEPENDS_ON
Order-11
Order-111
DEPENDS_ON
Order-11
Order-112
DEPENDS_ON
Order-11
Order-131
DEPENDS_ON
Order-12
Order-131
DEPENDS_ON
Order-13
Order-131
DEPENDS_ON
Order-13
Order-132
DEPENDS_ON
Order-132
Order-1322
DEPENDS_ON
Order-1322
Order-1321
DEPENDS_ON
Order-1321
Order-131
DEPENDS_ON
Neste exemplo, os pedidos que estão prontos para
serem processados são os que não têm nenhuma dependência identificada.
Na primeira rodada: Pedido-111, Pedido-112 e Pedido-131 são processados. Quando esses pedidos forem processados
ou o trabalho for feito, seus pedidos dependentes deverão ter as respectivas bordas marcadas
como resolvidas.
Após a primeira rodada de processamento, o aplicativo insere ou atualiza os seguintes registros na tabela YFS_TRANSACTIONAL_RELATION.
Tabela 2. Registros de amostra na tabela
YFS_TRANSACTIONAL_RELATION para dependências de execução
Este pedido
Pedido relacionado
Tipo de Relacionamento
IsDependencyResolved
Order-1
Order-11
DEPENDS_ON
Order-1
Order-12
DEPENDS_ON
Order-1
Order-13
DEPENDS_ON
Order-11
Order-111
DEPENDS_ON
S
Order-11
Order-112
DEPENDS_ON
S
Order-11
Order-131
DEPENDS_ON
S
Order-12
Order-131
DEPENDS_ON
S
Order-13
Order-131
DEPENDS_ON
S
Order-13
Order-132
DEPENDS_ON
Order-132
Order-1322
DEPENDS_ON
Order-1322
Order-1321
DEPENDS_ON
Order-1321
Order-131
DEPENDS_ON
S
De forma semelhante, o aplicativo mantém o processamento de pedidos relacionados e quando os pedidos
são processados ou o trabalho é feito, seus pedidos dependentes devem ter as respectivas bordas marcadas como resolvidas. Por último, após o processamento de todos os pedidos dependentes, quando o Pedido-1 for processado ou o trabalho for feito,
seus pedidos dependentes devem ter as respectivas bordas marcadas como resolvidas. Portanto, o Pedido-1 não tem pedidos
dependentes, o processamento está concluído.