Objetivo
Fazer o sistema ser capaz de apontar, de forma individual, o status de análise dos documentos.
Motivação
Sabe-se que S-Works era capaz de determinar apenas o status do processo como um todo, mas não era possível analisar quais, dentre os documentos anexados, foram os responsáveis diretos pelo status no qual o processo se encontrava. Por isto, criou-se outra possibilidade.
Funcionalidade
Criação da possibilidade de definir o status de análise de cada documento. Estes status podem ser "Aprovado", "Reprovado" ou "Pendente" (padrão inicial de todos os documentos).
Todo processo se inicia com todos os documentos com status "Pendente". Este status não é representado na tela de detalhes do processo (barra lateral onde são exibidos os documentos). Apenas os status "Aprovado" e "Reprovado" são representados. A ordem de exibição dos documentos na barra lateral foi alterada de forma a exibir primeiro os documentos Aprovados, depois os Reprovados e por fim os Pendentes.
Um documento é marcado como "Reprovado" caso uma pendência documental seja atribuída a ele manualmente ou automaticamente.
Desta forma, caso um usuário manualmente reprove uma validação atribuindo pendência documental, todos os documentos atualmente anexos no processo e que estiverem tipificados com o formulário utilizado serão marcados como "Reprovado". Similarmente acontece caso seja utilizado no desenho do fluxo a tarefa de adição de pendência documental.
Um documento é marcado como "Aprovado" caso seja utilizado o método "Aprovação Documental". Este método recebe opcionalmente o parâmetro de formulário (que podem ser muitos). Os documentos - filtrados - que estiverem com status "Pendente" serão aprovados por este método. Além disso, foi criada uma flag no método de finalização de processo para, caso marcada, aprovar todos os documentos pendentes na sua execução, ou seja, ao fim do processo.
Monitoramento e Contingência
Nos detalhes do processo, na barra lateral onde são exibidos os documentos, é possível visualizar o histórico de análise de cada documento. Este histórico mostra o momento onde o status de análise do documento foi alterado, por quem (usuário ou tarefa) e observações pertinentes.
Para os casos extremos também é possível "forçar" um status de análise de um documento. Somente o Administrador e Gerente, podem realizar esta ação. Ela exige uma observação do usuário justificando a ação, além de ficar registrada no histórico de análise do documento.
Parametrização e Ativação
A funcionalidade como um todo, está sempre ativa no core do sistema; Porém, uma vez que a reprovação documental pode ter impactos em alguns processos (que não podem desconsiderar sempre um documento "reprovado"), ela pode ser desativada.
A aprovação ainda acontecerá caso a tarefa de aprovação seja incluída no fluxo (funcionamento em detalhes no tópico "Funcionalidade").
Há três parâmetros que são observados para considerar a reprovação documental como permitida:
Pode ser incluída a chave de configuração "PERMITE_REPROVACAO_DOCUMENTAL". O valor "true" define que a reprovação está permitida e o valor "false" não permite a reprovação. A ausência desta chave no sistema (default) implica que a reprovação está permitida de forma geral (todos os fluxos).
Na tela de detalhes de cada fluxo, há uma flag: "Permite reprovação documental?". Esta flag, ao contrário da configuração geral, só vale para o escopo do fluxo específico. O valor default dela é desmarcado, ou seja, não permitindo a reprovação.
Impactos no fluxo
Uma vez que um documento é reprovado, ele fica invisível ao processo. Ou seja, qualquer tarefa manual ou automática que for executada naquele processo, não mais enxergará os documentos que estiverem reprovados.
Porém, a reprovação só é considerada definitiva à partir do próximo nível de análise. Ou seja, um documento marcado como reprovado (de acordo com as regras citadas acima) está de fato reprovado, mas, até que haja suspensão e retorno, este documento será exibido como "Reprovação iminente". Isso significa que o documento está reprovado, porém seus efeitos ainda não serão sentidos pelo processo. Ele continuará sendo "visto" por todas as tarefas como se não estivesse reprovado. Quando o processo seguir, for suspenso e retornar da suspensão, aí sim, o documento que antes estava com reprovação iminente agora estará reprovado e com todos os efeitos desta reprovação sendo sentidos pelo processo.