iportaldoc - Tarefas IPBRICK 12 de Dezembro de 2011 1 Conceito de tarefa Tarefas, enquanto elementos constituintes de uma acção, são operações que estão associadas à realização da mesma, e que podem ser efectuadas imediatamente antes, ou imediatamente após a realização de uma acção. Alguns exemplos: Encaminhar documento por email para o exterior Assinar um documento com assinatura digital Notificar o autor do documento ao realizar uma acção Invocar um Web Service de uma outra aplicação No gerador de acções, as tarefas disponibilizadas pelo iportaldoc encontram-se listadas no separador Tarefas a executar ao realizar a acção. 2 Utilização de tarefas nas acções Para utilizar as tarefas existentes, deve-se criar uma acção tipo no gerador de acções, seleccionando as tarefas que se pretendem utilizar. Utilizando o ícone associado a cada tarefa, pode-se ainda indicar se se pretende que a mesma seja efectuada antes ou após a realização da acção. Caso se pretenda que seja a execução da tarefa a definir o resultado da acção, então a tarefa deverá executada antes da realização da acção, ou seja, a opção Executar tarefa antes de realizar a acção deverá estar seleccionada. Com esta configuração, o resultado da acção seleccionado pelo utilizador, será sobreposto pelo resultado determinado pela tarefa. Alguns exemplo de utilização desta opção: Tarefa Envia automaticamente o documento por email : O utilizador seleccionou o resultado Enviar Documento, no entanto a tarefa ao ser executada (antes da realização da acção), verificou que a entidade para qual o documento deveria ser enviado não tem o email definido no IPBrick Contacts. Nesta situação o resultado indicado pelo utilizador, deverá ser sobreposto pelo resultado Destinatário não encontrado, indicando no esquema cronológico do documento o motivo pelo qual o documento não foi enviado. Desta forma, o workflow apenas avançará se realmente o documento tiver sido enviado correctamente para o destinatário. Tarefa Assinar o documento com assinatura digital : O utilizador aprovou o documento e nesse mesmo deverá ser colocada a sua assinatura digital. No entanto a tarefa ao ser executada verificou que a assinatura digital do utilizador ainda não existe no sistema. Nesta situação, o resultado indicado pelo utilizador, deverá ser sobreposto pelo resultado de execução da tarefa ( Erro ao assinar por exemplo) que indicará que a assinatura digital não existe, ficando essa informação registada no esquema cronológico. 1
3 Criação de tarefas O iportaldoc leva de base uma série de tarefas, no entanto e caso se pretenda, mais podem ser criadas recorrendo para isso à seguinte interface: Workflow Gerador de acç~oes Lista de tarefas Adicionar tarefa O acesso a esta funcionalidade é restrito aos utilizadores com perfil de ipdocmaster. Apenas é possível gerir as tarefas criadas pelos utilizadores. iportaldoc não serão apresentadas na listagem. As tarefas criadas de base no A criação de um nova tarefa implica a criação de um executável, onde deverão ser programadas as operações que se pretenda que a mesma efectue. O executável pode ser programado em qualquer linguagem, devendo apenas ter-se em atenção que o executável irá funcionar num sistema operativo linux. As etapas para a criação da tarefa são então as seguinte: 1. Definição dos parâmetros que o executável receberá, que serão passados ao executável nos argumentos do mesmo. Os parâmetros que podem ser passados são por exemplo o identificador do documento, código do mesmo, etc. A lista completa de parâmetros pode ser encontrada na interface de criação de tarefas. 2. Definição dos resultados possíveis de serem retornados pela execução da tarefa. O resultado da execução da tarefa, deverá ser um ficheiro XML com o seguinte formato: <result> <code>$return_code</code> <message>$result_comment</message> </result> Na marca code deverá ser colocado o código de retorno, enquanto que na marca message,que é de preenchimento facultativo, poderá ser colocada uma mensagem que será concatenada ao comentário colocado pelo utilizador aquando da realização da acção. Ficará por isso registada no esquema cronológico do documento. 3. Programação do executável 4. Criação da tarefa no iportaldoc 2
Para melhor se compreender todo o processo de criação de uma tarefa, seguidamente é apresentado um pequeno exemplo, em que a tarefa criada apenas avaliará o valor do documento do tipo fatura, indicando se o mesmo é igual, ou superior a um valor pré-definido (5000eur). O executável programado em PHP: #!/usr/bin/php -q <?php /** check_document_value.php */ $valor = $argv[1]; //campo valor do documento passado no argumento $return_code = ""; $result_comment = ""; //de preenchimento facultativo if ($valor > 5000 ) { $return_code = "MAIOR"; $result_comment = "O executável verificou que o valor é superior a } if ($valor == 5000 ) { $return_code = "IGUAL"; $result_comment = "O executável verificou que o valor é igual a } 5000eur!"; 5000eur!"; if ($valor < 5000 ) { $return_code = "MENOR"; $result_comment = "O executável verificou que o valor é inferior 5000eur!"; }?> //formato de retorno echo "<result>". "<code>". $return_code. "</code>". "<message>". $result_comment. "</message>". "</result>"; 3
Para criar a tarefa no iportaldoc deverão ser efectuadas as seguintes configurações na interface de criação de tarefas: Figura 1: Criação de uma tarefa Nesta interface, nos resultados de execução da tarefa deverá ser indicado: Nome: Corresponde aos códigos de retorno do executável, indicados na marca code. Descrição: Descrição do resultado da tarefa, que será apresentado ao utilizador aquando da concepção do workflow (criação de acções) Comentário: Comentário a colocar no esquema cronológico do documento, caso o resultado de execução da tarefa seja o resultado ao qual o comentário está associado. No esquema cronológico do documento, e após a realização da acção ficam então com os seguintes registos: 1. Comentário indicado pelo utilizador ao realizar a acção 2. Comentário configurado nesta interface 3. Comentário retornado na execução da tarefa (marca message no XML de retorno). Este comentário é de preenchimento facultativo, mas nele pode ser indicada informação mais especifica, que o comentário do ponto 2 poderá não fornecer. (Erros ocorridos na execução da tarefa, etc) 4
4 Execução de tarefas ao realizar as acções Na concepção do workflow, no momento de criação da acção, existe a opção Adicionar Tarefa (figura 2) associada a cada um dos resultados da acção, onde se definem que tarefas é que são executadas quando o utilizador escolhe esse resultado. Caso se pretenda que as tarefas sejam sempre realizadas, independentemente do resultado escolhido pelo utilizador, então basta que não se associem tarefas a nenhum dos resultados possíveis da acção. As tarefas que se podem associar aos resultados, são apenas as que fazem parte da acção tipo criada. Figura 2: Criação de uma acção 5
No exemplo apresentado na figura seguinte, o documento fatura apenas será assinado digitalmente, se o resultado da acção escolhido pelo utilizador for Aprovo, porque é a esse resultado que a tarefa Assinar o documento com assinatura digital está associada. Figura 3: Associação de uma tarefa ao resultado de uma acção 6
4.1 Sobreposição do resultado da acção Como indicado acima neste documento, é possível que sejam os resultados de execução da tarefa a definir qual o resultado da acção. Para isso deverá recorrer-se ao ícone para configurar uma condição baseada nos resultados da tarefa. No momento em que a acção é realizada, a condição é avaliada, e caso a mesma se verifique, o resultado indicado pelo utilizador será sobreposto pelo resultado associado à condição verificada. No exemplo da figura seguinte, no resultado Não aprovo foi associada a seguinte condição: - Não existe assinatura digital ou o documento não é um ficheiro PDF Figura 4: Configurar condição para sobreposição de resultado Desta forma, mesmo que o utilizador aprove o documento, se o mesmo não tiver sido assinado por um dos motivos indicados na condição, então o documento não deverá ser aprovado. (Resultado Não aprovo ). Se a uma acção tipo, estiverem associadas várias tarefas, é possível criar condições constituídas pelos resultados das diversas tarefas. As tarefas utilizadas nas condições, deverão estar configuradas para serem executadas antes da realização da acção. 7