Seguem abaixo os requisitos já validados para o novo MVC do workflow || 00 || Implementar a estrutura de uma atividade do processo com divisão em camadas: controller, model, view || || 00 || A camada controller deve conhecer a camada view e model || || 00 || A camada model não terá acesso a camada view || || 00 || Existirá uma interface para cada camada || || 00 || Será obrigatório implementar as camadas controller e model. || || 00 || A implementação da camada view é opcional || || 00 || Registrar as rotinas do sistema, ações das rotinas e os perfis de acesso às ações || || 00 || Compartilhar os perfis entre rotinas e atividades || || 00 || A associação de usuários/grupos aos perfis será o controle de acesso das rotinas || || 00 || A primeira fronteira da camada controller será a página de entrada do módulo || || 00 || Os dados passados para a controller deverão ser: identificador da rotina, identificador da ação, e opcionalmente dados para consumo na execução da atividade || || 00 || A camada model deve retornar dados formatados para a camada controller || || 00 || Implantar uma ferramenta para mapeamento de objetos de banco de dados || || 00 || A camada model deve ter acesso a qualquer classe de negócio do sistema || || 00 || Possibilitar à camada model definir operações sobre a instância: iniciar, completar, enviar, definir transição, definir usuário, atualizar atributos || || 00 || A classe de instância deverá percorrer o fluxo, executando as atividades não interativas, e retornar o resultado da operação || || 00 || Será possível definir código a ser executado pelas atividades, sob controle da instância, sendo possível acesso ao modelo de negócio do sistema || || 00 || O camada model e o código da atividade devem ter acesso aos plugins do workflow || || 00 || A classe de instância será responsável por persistir os seus dados || || 00 || Obrigar a implementação de um método para validação de dados, na camada model || || 00 || Obrigar a implementação de um método padrão nas camadas controller e model || || 00 || Gerar o código básico das camadas model e controller || || 00 || Implementar uma estrutura de mensagens para o processo, com possibilidade de internacionalização || || 00 || A camada controller fornece dados para a camada view em conformidade com um protocolo de representação || || 00 || A camada de visualização, por ser opcional. permite que seja implementada por sistema externo || || 00 || A camada de visualização tem a responsabilidade de criar as interfaces, usando ferramentas que estejam disponíveis || || 00 || A camada view deve mesclar os dados com a interface || || 00 || A camada view não deve misturar código da aplicação servidora com código html || || 00 || A camada view executa chamadas endereçadas para ações da controller, utilizando protocolo http/post || || 00 || Disponibilizar uma interface de serviço para ações da camada controller || || 00 || Autenticar as chamadas de serviço usando sessão do Expresso || || 00 || Implantar uma ferramenta para construção de interfaces, com template padrão e internacionalização || || 00 || Validar os dados no lado cliente, usando javascript, garantido adequação às propriedades dos campos, e prevenindo contra sqlinjection e xss || || 00 || A camada de visualização deverá invocar a validação de dados, implementada na model, antes de submeter o formulário || || 00 || A validação de dados deve ser obrigatória no lado servidor || || 00 || Transformar as classes utilitárias em plugins, que deverão implementar uma interface || || 00 || Possibilitar a construção de plugins extras pelas organizações || || 00 || Disponibilizar os plugins utilitários, para as camadas controller e model, utilizando o padrão de inicialização tardia || || 00 || Construir plugins de visualização específicos para o negócio do workflow || || 00 || Definir uma nova estrutura de armazenamento de código para o processo, que contemple as novas características do mvc || || 00 || Executar a atividade sob tratamento de erros || || 00 || Implementar a sinalização de erro em todos os plugins disponíveis para o sistema || || 00 || Prover um classe para a definição dos dados constantes do sistema || || 00 || Identificar quais bibliotecas de javascript estarão disponíveis para o sistema || || 00 || O código do sistema não poderá ter acesso à classes do módulo ||