Você está aqui:
Cenários de ação de transição de estado de objeto em Salesforce Contracts
Esses cenários contêm informações importantes a serem consideradas ao configurar ações para um contrato.
Cenário 1
O status do contrato não muda porque a lógica da classe do Apex e o mapeamento de transição de estado não correspondem. Veja um exemplo:
-
O contrato está no estado Rascunho.
-
Você configura:
-
Uma definição de ação de estado do objeto usando Tipo do Apex DraftToInApproval.
-
Uma ação de transição de estado do objeto de Rascunho para Em aprovação para a ação DraftToInApproval.
-
Uma classe do Apex chamada ChangeStatus.apxc, com lógica que move o contrato de Rascunho para Cancelado.
-
-
Quando você clica em DraftToInApproval, o contrato não é movido de Rascunho para Em aprovação. A classe do Apex executa a lógica definida e move o contrato de Rascunho para Cancelado como um estado intermediário.
-
Se a transição de estado do objeto incluir uma transição que mova o contrato de Cancelado para Em aprovação, o contrato retornará ao estado Rascunho inicial.
Nota Para fazer a transição do contrato de Rascunho para No estado de aprovação, crie uma transição de estado de objeto de Cancelado para Em aprovação. -
O estado final do contrato é Rascunho.
Cenário 2
O status do contrato muda mesmo que a lógica de classe do Apex e o mapeamento de transição de estado não correspondam, pois a transição de estado do objeto inclui todas as transições necessárias. Veja um exemplo:
-
O contrato está no estado Rascunho.
-
Você configura:
-
Uma definição de ação de estado do objeto usando o Tipo do Apex DraftToCanceled.
-
Uma ação de transição de estado do objeto de Rascunho para Cancelado para a ação DraftToCanceled.
-
Uma classe do Apex chamada StatusChange.apxc, com lógica que move o contrato de Rascunho para Em aprovação.
-
-
Quando você clica em DraftToCanceled, o contrato passa de Em aprovação para Cancelado, pois há uma transição padrão de InApproval_To_Canceled.
-
O estado final do contrato é Cancelado.
Cenário 3
O status do contrato não muda quando você clica no botão de ação de estado do objeto porque a execução da classe do Apex já atualizou o status do contrato. Veja um exemplo:
-
O contrato está no estado Rascunho.
-
Você configura:
-
Uma definição de ação de estado do objeto usando Tipo do Apex DraftToInApproval.
-
Uma ação de transição de estado do objeto de Rascunho para Em aprovação para a ação DraftToInApproval.
-
Uma classe do Apex chamada ChangeStatus.apxc, com lógica que move o contrato de Rascunho para Em aprovação.
-
-
Quando você clica em DraftToInApproval, pois o contrato já está em Processo de aprovação porque a classe do Apex já executou a lógica definida na classe que move o contrato de Rascunho para Em aprovação como um estado intermediário. Portanto, o status do contrato permanece Em aprovação, pois é um estado válido.
-
O estado final do contrato é Em aprovação.
Cenário 4
Uma definição de estado de objeto tem várias ações de transição de estado de objeto associadas. As ações de transição de estado do objeto têm os mesmos estados De e Para diferentes. O aplicativo Salesforce Contracts atualiza o status dos contratos com base nas transições e ações definidas. Se houver diferenças entre a lógica de classe do Apex e as transições definidas, o aplicativo tentará seguir as transições definidas. Veja um exemplo:
-
O contrato está no estado Rascunho.
-
Você configura:
-
Uma definição de ação de estado de objeto usando Tipo do Apex DraftToFinalStatus.
-
Uma ação de transição de estado do objeto de Rascunho para Em aprovação para a ação DraftToFinalStatus.
-
Uma ação de transição de estado do objeto de Rascunho para Ativado para a ação DraftToFinalStatus.
-
-
Aqui estão duas opções para configurar uma classe do Apex e seus resultados resultantes.
Nota Para que as chamadas do Apex nesse cenário sejam bem-sucedidas, o parâmetro finalStatusValue é obrigatório.Opção Cenários Crie uma classe do Apex chamada ChangeStatus.apxc, com a lógica que move o contrato de Rascunho para Em aprovação. -
Se finalStatusValue estiver definido como No processo de aprovação, o contrato passará de Rascunho para No processo de aprovação.
-
Se finalStatusValue estiver definido como Ativado, a transição falhará porque o caminho não está definido de Em processo de aprovação para Ativado. O contrato permanece no estado Rascunho.
Crie uma classe do Apex chamada ChangeStatus.apxc, com lógica que mova o contrato de Rascunho para Ativado. -
Se finalStatusValue estiver definido como Ativado, o contrato passará de Rascunho para Ativado.
-
Se finalStatusValue estiver definido como No processo de aprovação, a transição falhará porque o caminho não está definido de Ativado para No processo de aprovação. O contrato permanece no estado Rascunho.
-
