wiki:WF

Version 46 (modified by viani, 13 years ago) (diff)

--

Bem-vindo às páginas Wiki do Workflow!

Sumário do conteúdo:

Versão atual: 2.2.6 (Esta versão também é compatível com a série Expresso 2.0.x)


Modificações Importantes da Versão 2.2 (Comentadas)

#1186 - Exibir números de telefone privados no organograma

Foi incluído um controle de acesso, na administração do organograma, acessível através do link 'Lista de Controle de Acesso', aba organograma, para indicar se os atributos mobile e homePhone, das entradas Ldap de usuários do Expresso, podem ser exibidas no organograma do workflow.

#1171 e #1172 - Passagem de parâmetros na execução de Jobs

Através da interface de administração de processos existe uma opção para criar rotinas (jobs) a serem executadas periodicamente. Ao criar um job uma classe é inserida no diretório code/jobs do processo, que deve ser preenchida com o código php a ser executado (ver exemplo na documentação). Contudo esta classe não aceita passagem de parâmetros, por padrão. Caso isso seja necessário, deve-se criar um script php, para rodar em linha de comando, que obtenha uma instância da classe jobScheduler e ao lançar o método execute() da classe, passe os dados do job a ser executado, acrescido dos parâmetros.

#1082 - Modificação no método getChildren da classe wf_instance

No workflow é possível associar instâncias entre si, num relacionamento tipo pai-filho, que fica registrado na tabela egw_wf_interinstance_relations. Esta tabela teve a coluna wf_parent_activity_id suprimida, implicando em modificações no método getChildren da classe wf_instance, que diretamente recupera dados da tabela. A assinatura do método mudou de getChildren($instanceID = null, $activityID = null) para getChildren($instanceID = null). Recomenda-se revisar o código dos processos de workflow, e modificar as chamadas ao método getChildren, caso esteja sendo utilizado por algum processo. Recomenda-se também, após a atualização da versão do módulo, verificar se a coluna wf_parent_activity_id foi removida da tabela e se a chave primária também foi modificada. Caso tenha ocorrido algum problema, deve-se fazer a atualização manualmente. Outra recomendação é substituir o método getChildInstances (que está depreciado) da classe wf_engine, pelo método getChildren da classe wf_instance.

#1069 - Log de tempo de execução

Com o objetivo de monitorar o tempo despendido na execução de atividades dos processos, foi modificada a classe run_activity, para calcular e registrar os tempos gastos na execução. O registro é feito utilizando a classe geral de log do módulo, que está melhor descrita no documento: Utilizando o Registro de Log. Os dados de log serão gravados no arquivo /home/expressolivre/workflow/logs/workflow.log, e dependendo do volume de dados registrados, é interessante programar uma rotação sobre este arquivo, evitando que o mesmo cresça indefinidamente.

Por padrão, na instalação do módulo workflow, o log está configurado para o valor mínimo (um), e caso seja de interesse logar os tempos de execução das atividades dos processos, o nível do log deve ser aumentado para o valor máximo (oito), correspondendo ao nível debug.

#942 - Ajustar a classe wf_location para considerar a nova coluna que identifica se o registro é distrito

A classe wf_location é uma classe utilitária disponível para uso dos processos, e sua finalidade é obter dados de estados e cidades. Está apoiada no módulo Contact Center, que teve a tabela phpgw_cc_city modificada com a inclusão da coluna is_district, para separar as cidades das outras localidades menores. Em especial foi modificado o método getCitiesFromState com a inclusão de um novo parâmetro para filtrar somente cidades.

#609 - Automatizar a instanciação e recuperação de objetos na $GLOBALS

Na verdade o título deste ticket não está bem claro, mas o objetivo foi modificar a forma como os objetos de classe utilizados pelo workflow são armazenados. Havia uma implementação de factory no módulo que utilizava o array $GLOBALS para armazenamento. A proposta foi criar uma nova factory que pudesse ser chamada de forma estática e mantivesse os objetos em um array interno próprio dela, ao invés de usar o array global. Outra característica implementada foi que a factory é a mesma para atender ao módulo e aos processos, sendo invocada da mesma forma, não importando a origem. Internamente ela implementa uma espécie de proxy que identifica a origem, e faz a devida separação do contexto em que deve trabalhar: módulo ou processo. Também foi implementado o registro das classes que podem ser instanciadas com a nova factory.

A nível de módulo, a implementação deste ticket é transparente para os usuários, sem necessidade de qualquer adequação. Mas a nível de processo é necessário modificar o código dos mesmos para fazer uso da nova factory. Isso está melhor esclarecido no documento: Utilizando a Fábrica de objetos

#446 - Log - Registrar utilização de métodos depreciados

Nesse ticket foram identificados os métodos depreciados, seus substitutos e foi definida a política a ser adotada para a depreciação dentro do Workflow.
Foi criado o arquivo inc/common_functions.inc.php, onde serão implementadas funções de uso geral, como a função wf_warn_deprecated_method, que, quando chamada, gera um alerta e grava em arquivo de log o uso de um método depreciado.

Mais detalhes podem ser consultados no documento: Depreciação

#441 - Organograma - Incluir período de substituição de chefia

Este ticket implementou a tabela 'substituicao' no schema public do banco workflow, para armazenar o histórico de substituições dos titulares de área. Foi modificada a interface de administração do organograma (link organograma no menu lateral esquerdo) para possibilitar o registro da substituição. Na aba organograma, da interface do usuário, foi incluída uma nova consulta para monstrar as substituições em andamento. Também foi modificada a classe wf_orgchart para fornecer os dados da substituição, considerando o intervalo de datas. Ao instalar esta versão do módulo verifique se a nova tabela foi criada corretamente como está descrito no arquivo setup/tables_update.inc.php