Você está na página 1de 22

Guia de Referncia para Customizao

Workflow

Copyright 2009 TOTVS S.A. Todos os direitos reservados. Nenhuma parte deste documento pode ser copiada, reproduzida, traduzida ou transmitida por qualquer meio eletrnico ou mecnico, na sua totalidade ou em parte, sem a prvia autorizao escrita da TOTVS S.A., que reserva-se o direito de efetuar alteraes sem aviso prvio. A TOTVS S.A no assume nenhuma responsabilidade pelas conseqncias de quaisquer erros ou inexatides que possam aparecer neste documento. TOTVS S.A. Av. Santos Dumont, 831, Joinville, SC, Brasil, CEP 89.222-900

ndice
Customizao Workflow .................................................................... 4
Propriedades Avanadas ............................................................................... 4 Listeners do Processo ................................................................................... 5 Customizao do Processo ......................................................................... 11 Tratamento de Excees ............................................................................. 12 Mecanismo de Atribuio............................................................................. 13 Como Criar Um Mecanismo de Atribuio .................................................. 14 Parmetros Workflow para Customizao de Fichrios .............................. 19 Customizao de E-mail .............................................................................. 19

Customizao Workflow
Propriedades Avanadas
As propriedades avanadas contm informaes especiais que podem alterar o comportamento padro do processo em algum ponto. Elas devem ser utilizadas principalmente durante a fase de customizao ou conter flags especiais que alterem alguma lgica interna (apenas em casos especiais). Para cadastrar uma propriedade avanada deve-se acessar a opo Configurao de Processos no menu Workflow. Selecione o processo desejado de acesse a opo Editar. A seguinte tela ser apresentada:

Clique sobre a aba Avanado e ser apresentado o cadastro de Propriedades Avanadas do processo. A seguinte tela ser apresentada:

Use os botes Adicionar, Editar e Excluir para a manuteno dos eventos desejados. Uma propriedade avanada representada por nome e valor. Onde o nome deve ser nico. Abaixo o formulrio para a criao de uma propriedade avanada.

Listeners do Processo
Os listeners de um processo so um conjunto de scripts carregados pela API de workflow. Tais scripts so desenvolvidos com o uso da linguagem JavaScript e chamados ao longo da execuo do processo em um momentos pr-determinados, como por exemplo a criao de um processo ou a entrada em uma nova atividade. No ByYou ECM os listeners so tratados como eventos do processo. Assim, cada listener representado por um evento. Para cria a lista de eventos do processo deve-se acessar a opo Configurao de Processos no menu Workflow. Clique sobre a aba Avanado e posteriormente clique sobre a aba Eventos. A seguinte tela ser apresentada.

Importante Em todos eventos do processo possvel obter informaes da API de Workflow. Cada evento possui acesso ao handle da API de workflow atravs da varivel global hAPI. Os seguintes mtodos esto disponveis atravs da hAPI: getCardValue(nome-campo): permite acessar o valor de um campo do ficha do processo; setCardValue(nome-campo,valor): permite definir o valor de um campo da ficha do processo, onde: o o nome-campo: o nome do campo da ficha; valor: o valor a ser definido para o campo da ficha;

setAutomaticDecision(int iTask, List<String> cColab, String cObs): permite definir o fluxo de sada de uma atividade de forma automtica, onde: o o o iTask: a atividade corrente do processo; cColab: uma lista colaboradores do tipo String; cObs: a observao;

getActiveStates(): retorna uma lista de inteiros das atividades do processo; setDueDate(int processInstanceId, int threadSequence, String userId, Date newDueDate, int timeInSeconds): permite alterar o prazo de concluso para um determinada atividade do processo, onde: o o o processInstanceId: o nmero da solicitao workflow; threadSequence: o nmero da thread (normalmente 0, quando no se utiliza atividades paralelas); userId: o usurio responsvel pela tarefa;

o o

newDueDate: a nova data de concluso. timeInSeconds: o tempo que representa a nova hora de concluso, calculado em segundos aps a meia-noite.

Nos eventos existe a possibilidade de integrao com servios de dados. Tais servios podem ser Web Services, AppServer e Dataset. O acesso a Web Services ou AppServer deve ser previamente configurado em Navegao, na pasta Painel de Controle no cadastro de Servio de dados. Abaixo a tela de configurao dos servios de dados.

Por exemplo, para criar um Web Service so necessrias as seguintes informaes: o o o o Nome: o nome do servio de dados; Descrio: a descrio do servio de dados; URL: a URL de do WSDL; URI: a identificao.

Para realizar a chamada ao Web Service no listener: var service = serviceManager.getServiceInstance("nome-servio"); var user = service.execute("nome-operao",null); Passando parmetros para o servio teramos:
var serviceParams = new java.util.HashMap(); serviceParams.put("nome-parametro","valor"); var service = serviceManager.getServiceInstance("nome-servio"); var result = service.execute("nome-operao",serviceParams);

Onde a varivel result receber uma String representando o resultado da chamada ao servio. No caso do AppServer, so necessrias as seguintes informaes: o o o Nome: o nome do servio de dados; Descrio: a descrio do servio de dados; URL: a URL de acesso ao AppServer;

Para acessar os servios de dados no evento do listener:


service = serviceManager.getServiceInstance("nome-servio"); service.getBean(); service.meuMetodo();

Para passar parmetros deve ser respeito o padro de converso de dados entre Progress e Java. Este padro definido pela Progress e o mapeamento de tipos pode ser encontrado no documento Open Edge Development: Java Open Clients distribudo pela Progress Software. O resultado de uma chamada ao AppServer deve ser tratado com a classe ResultSetHolder da Progress. As chamadas ao AppServer tem como pr-requisito duas bibliotecas Java. A primeira a o4glrt.jar e a segunda a biblioteca de conectores do ByYou ECM cujo nome Webdesk3Connectors.jar. Esta ltima faz parte da expedio padro do ByYou ECM. Os seguintes eventos so disparados pela API de Workflow:

Evento ProcessSet AfterProcessCreate BeforeStateLeave afterStateLeave BeforeStateEntry AfterStateEntry BeforeTaskCreate AfterTaskCreate BeforeTaskSave

Descrio Ocorre quando um processo setado na API. Parmetros: Nmero do processo (INTEGER). Ocorre logo aps a criao de um novo processo. Parmetros: Nmero do novo processo (INTEGER). Ocorre antes da sada de uma atividade. Parmetros: Seqncia da atividade (INTEGER). Ocorre aps a sada de uma atividade. Parmetros: Seqncia da atividade (INTEGER). Ocorre antes da entrada em uma nova atividade. Parmetros: Seqncia da atividade (INTEGER). Ocorre aps a entrada em uma nova atividade. Parmetros: Seqncia da atividade (INTEGER). Ocorre antes que o usurio receba uma tarefa. Parmetros: Matrcula do usurio (CHARACTER). Ocorre aps o usurio receber uma tarefa. Parmetros: Matrcula do usurio (CHARACTER). Ocorre antes de salvar as informaes selecionadas pelo usurio.

Parmetros: Usurio corrente (CHARACTER), Seqncia da prxima atividade (INTEGER) e lista de usurios destino (CHARACTER). AfterTaskSave Ocorre aps salvar as informaes selecionadas pelo usurio. Parmetros: Usurio corrente (CHARACTER), Seqncia da prxima atividade (INTEGER) e lista de usurios destino (CHARACTER). BeforeTaskComplete Ocorre antes que o usurio complete uma tarefa, porm as informaes de prxima tarefa e colaboradores destino j foram salvas. Parmetros: Usurio corrente (CHARACTER), Seqncia da prxima atividade (INTEGER) e lista de usurios destino (CHARACTER). AfterTaskComplete Ocorre aps o usurio completar uma tarefa, porm as informaes de prxima tarefa e colaboradores destino j foram salvas. Parmetros: Usurio corrente (CHARACTER), Seqncia da prxima atividade (INTEGER) e lista de usurios destino (CHARACTER). subProcessCreated Ocorre quando um sub-processo criado. Parmetros: Nmero do sub-processo (INTEGER). validateAvailableStates Ocorre aps montada a lista de tarefas disponveis para o usurio a partir da tarefa atual. Parmetros: Seqncia da atividade atual (INTEGER) e input-output lista das seqncias das atividades (CHARACTER). afterProcessFinish Ocorre aps finalizada a solicitao. Parmetros: Nmero do processo (INTEGER). beforeCancelProcess Ocorre antes do cancelamento da solicitao. Parmetros: Usurio corrente (CHARACTER) e Nmero do processo (INTEGER). AfterCancelProcess Ocorre aps o cancelamento da solicitao. Parmetros: Usurio corrente (CHARACTER) e Nmero do processo (INTEGER). AfterRelaseVersion Ocorre aps a liberao de uma verso do processo workflow. Parmetros: XML com a definio do processo (CHARACTER) .

Recomendaes: No necessrio criar todos os eventos do processo apenas aqueles que se estiver interessado. Todos os eventos so executados de forma persistente. Importante: No possvel capturar (hAPI.getCardValue) ou adicionar (hAPI.setCardValue) dados no fichrio na inicializao do processo. Somente a partir da segunda tarefa, para isso pode ser utilizado a seguinte lgica: function beforeStateEntry(sequenceId){ if(sequenceId != NUMERO_DA_ATIVIDADE_INICIAL ){ var campo = hAPI.getCardValue(campo1); } }

10

Customizao do Processo
Com o uso de listeners, o ByYou ECM permite que um processo seja customizado possibilitando a execuo de aes definidas pelo usurio, tais como: Validar o ato de completar uma atividade Tomar decises automaticamente

Exemplo 1: Para validar se o usurio est completando uma atividade corretamente, basta utilizar o evento beforeTaskComplete e retornar alguma mensagem caso queira disparar um erro. Por exemplo, segue parte de um cdigo de customizao criado pelo ByYou ECM:
function beforeTaskComplete(colleagueId,nextSequenceId,userList){ var ativAtual = getValue("WKNumState"); var users = new java.util.ArrayList(); var usersTmp = new java.util.ArrayList(); var cUsers; var process = parseInt(globalVars.get("process")); var User1 = hAPI.getCardValue("resp1_H"); var eficacia1 = hAPI.getCardValue("eficaz1"); var controle1 = hAPI.getCardValue("controle1"); var eficaz = true; var codgrupo; log.info("ATIVIDADE---> " + ativAtual + " - " + nextSequenceId);

if(ativAtual == 7 && nextSequenceId == 12){ if(User1 != "" && eficacia1 != "1" && eficacia1 != "2"){ if(verificaUsuario(users,User1)){ users.add(User1); } }

log.info("TAMANHO VETOR ----> " + users.size()); hAPI.setAutomaticDecision(8, users, "Decisao tomada automaticamente pelo ByYou ECM."); } else if(ativAtual == 9 && nextSequenceId == 13){ log.info("[1] Usuarios----> " + User1); log.info("[1] EFICACIA----> " + eficacia1); log.info("[1] CONTROLE----> " + controle1);

if(User1 != "" && eficacia1 == "2" && controle1 == ""){ eficaz = false; }

11

log.info("EFICAZ " + eficaz);

if(eficaz){ log.info("[if1]"); codGrupo = buscaGrupo(process,"Grupo-Qualidade"); log.info("CODIGO GRUPO " + codGrupo); users.add("Pool:Group:" + codGrupo); hAPI.setAutomaticDecision(6, users , "Decisao tomada automaticamente pelo ByYou ECM."); } } }

Exemplo 2: Para fazer com que uma deciso seja tomada automaticamente, os seguintes procedimentos devem ser executados: 1. Configurar em Propriedades Avanadas a propriedade AutomaticTasks conforme descrito anteriormente com a lista de todas as atividades que tero deciso delegada a um listener (Ex.: AutomaticTasks=3,6,10). 2. Implementar o vento beforeStateEntry e executar e chamar a o mtodo setAutomaticDecision da hAPI, passando como parmetros o prximo estado, o prximo usurio (ou lista de usurios) e a observao.
function beforeStateEntry(sequenceId) { var userList = new java.util.ArrayList(); userList.add(Administrator); hAPI.setAutomaticDecision(new java.lang.Integer(8), userList, Observao); }

ATENO: As atividades com deciso automtica tambm podem ser criadas via editor de processos. Para maiores informaes consulte o Manual de Referncia do ByYou ECM.

Tratamento de Excees
As excees podem ser tratadas nos seguintes eventos: beforeStateEntry, beforeTaskSave e beforeCancelProcess. O tratamento da exceo no evento beforeStateEntry pode ser utilizado somente na inicializao de solicitaes, pois ele impede que a solicitao seja iniciada. O tratamento da exceo no evento beforeTaskSave pode ser utilizado somente se a solicitao j estiver inicializada. Abaixo segue os modelos para utilizao em cada um dos eventos:

12

function beforeStateEntry(sequenceId){ var activity = getValue("WKNumState"); if (activity == 0 || activity == 1){ //outra condio. throw "TRATAMENTO DA EXCEO" } } function beforeTaskSave(colleagueId,nextSequenceId,userList){ var activity = getValue("WKNumState"); if (activity != 0 && activity != 1){ // outra condio throw "TRATAMENTO DE EXCEO"; } } function beforeCancelProcess(colleagueId, processId){ // condio. throw "TRATAMENTO DA EXCEO" }

Mecanismo de Atribuio
Os mecanismos de atribuio so instrumentos utilizados durante um processo de workflow que permitem criar, segundo um critrio estabelecido pelo prprio mecanismo, uma lista de possveis colaboradores para uma atividade. Esta lista pode ser utilizada em dois momentos: 1. Na inicializao do processo, onde o sistema verifica se o usurio corrente faz parte desta lista e, portanto, pode inici-lo; 2. No momento do encaminhamento de uma tarefa, quando esta lista apresentada ao usurio corrente com opes de encaminhamento da solicitao. No primeiro caso, a lista gerada de acordo com o mecanismo de atribuio existente na primeira atividade do processo (que representa a atividade de start). Nas demais atividades adotado o segundo procedimento. Quando no houver um mecanismo de atribuio associado a uma atividade (seja ela inicial ou no), todos os usurios so considerados vlidos. Na inicializao do ByYou ECM automaticamente, conforme abaixo: so criados alguns mecanismos

Mecanismo

Descrio

Associado Campo Formulrio

Permite compor lgicas complexas de atribuio por intermdio da associao de vrios mecanismos. Permite atribuir tarefas ao colaborador informado em um campo do formulrio do processo.

13

Executor Atividade Grupo Grupos Colaborador

Papel Pool Grupo

Pool Papel

Usurio

Permite selecionar os colaboradores que executaram uma atividade anterior. Permite filtrar apenas os colaboradores que faam parte de um determinado grupo. Permite filtrar apenas os colaboradores que pertenam a um dos grupos do colaborador corrente, ou do colaborador que iniciou o processo (solicitante). Tambm permite filtrar apenas os colaboradores cujo grupo de trabalho seja o mesmo do colaborador (corrente ou solicitante). Permite filtrar apenas os colaboradores que possuam um determinado papel no Workflow. Permite atribuir tarefas a um grupo de colaboradores e no apenas a um colaborador. Assim, qualquer um dos colaboradores deste grupo pode assumir as tarefas para complet-las. Permite atribuir tarefas a um papel e no apenas a um colaborador. Assim, qualquer um dos colaboradores neste papel pode assumir as tarefas para complet-las. Permite atribuir tarefas a um colaborador especfico.

Como Criar Um Mecanismo de Atribuio


O mecanismo de atribuio geralmente composto de duas partes, a tela de configurao e o script de resoluo do mecanismo de atribuio. Para criar um mecanismo de atribuio basta acessar o Painel de Controle, na opo Workflow e clicar sobre Mecanismos de Atribuio. A seguinte tela ser apresentada:

14

A tela apresenta todos os mecanismos de atribuio padro do ByYou ECM e tambm os mecanismos customizados. Para criar um novo mecanismo de atribuio clique sobre o boto Adicionar, ento a seguinte tela ser apresentada:

O mecanismo de atribuio dever possuir obrigatriamente seu cdigo, o nome e a descrio da configurao. A tela de configurao opcional, mas caso for utiliz-la, deve-se obrigatoriamente importar o componente AssignmentSelectedEvent.swc que fica dentro do diretorio de instalao do ByYou ECM (Ex: C:\ByYouEcm\server\default\deploy\Webdesk3EE.ear) dentro do pacote EAR existe um pacote Webdesk3Web.war, abra o arquivo e copie o SWC para o seu projeto e importe como biblioteca. Aps, sua tela deve extender o mdulo WebdeskModule, veja um exemplo de tela abaixo:

15

<?xml version="1.0" encoding="utf-8"?> <module:WebdeskModule xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:module="com.datasul.technology.webdesk.foundation.module.*" creationComplete="{init();}">

<module:states> <mx:State name="blocked"> <mx:SetProperty target="{this}" name="enabled" value="false"/> </mx:State> </module:states>


<mx:Script> <![CDATA[ import com.datasul.technology.webdesk.workflow.assignment.event.AssignmentSelectedEvent; import com.datasul.technology.webdesk.dm.view.event.CloseWindowEvent; import mx.collections.ArrayCollection; [Bindable] private var arr:ArrayCollection = new ArrayCollection([ {value:"asd1",label:"Informtica"}, {value:"asd2",label:"RH"}, {value:"asd3",label:"Produto"}]); private function init():void { if (super.xmlFromDatabase != null) { var xml:XML = new XML(super.xmlFromDatabase); var area:String = String(xml.area); this.tiNome.text = String(xml.nome); for each (var current:Object in this.arr) { if (current.value == area) { this.cbArea.selectedItem = current; break; } }

private function saveMecan():void { var event:AssignmentSelectedEvent = new AssignmentSelectedEvent(); event.xmlString = "<Custom>" + " <nome>"+this.tiNome.text+"</nome>" + " <area>"+this.cbArea.selectedItem.value+"</area>" + "</Custom>"; this.dispatchEvent(event); this.closeWindow();

]]> </mx:Script>

private function closeWindow():void { this.dispatchEvent(new CloseWindowEvent()); }

<mx:Form> <mx:FormItem label="Nome"> <mx:TextInput id="tiNome" width="200"/> </mx:FormItem> <mx:FormItem label="rea"> <mx:ComboBox id="cbArea" dataProvider="{arr}"></mx:ComboBox> </mx:FormItem> <mx:FormItem direction="horizontal" width="100%"> <mx:Button label="Salvar" click="{saveMecan()}"/> <mx:Button label="Fechar" click="{closeWindow()}"/> </mx:FormItem> </mx:Form> </module:WebdeskModule>

16

A tela de configurao dever montar o XML que consiste da configurao do mecanismo de atribuio. Na resoluo de uma atividade do processo o XML de configurao ser enviado ao script de descrio da configurao o ltimo campo da tela. Exemplo baseado na tela acima:
function resolve(process,colleague,configXML){ var newXML = new XML(configXML); var userList = new java.util.ArrayList(); if (newXML.area.toString()=="asd1") { userList.add('adm'); } else if (newXML.area.toString()=="asd2") { userList.add('1'); } else { userList.add('10'); } return userList; }

OBS: possvel acessar Datasets e WebServices apartir da funo. Alm do XML o script tambm recebe como parmetros o cdigo do processo e o usurio corrente. Por fim, o script de configurao retorna a lista de usurios e o fluxo de sada da atividade selecionado. Para persistir o XML de configurao criado pela tela basta lanar o evento AssignmentSelectedEvent e atribuir o XML de configurao na propriedade xmlString. Dica: caso a compilao normal pela GUI de desenvolvimento no esteja efetuando as importaes corretamente, segue sugesto de compilao do projeto: mxmlc -debug=false -optimize=true -warnings=false -load-config flexconfig-mxmlc.xml -source-path=. <ARQUIVO>.mxml -output <ARQUIVO>.swf

17

Arquivo FLEX-CONFIG-MXMLC.XML: <?xml version="1.0" encoding="utf-8"?> <flex-config xmlns="http://www.adobe.com/2006/flex-config"> <metadata> <title>By You ECM</title> <language>EN</language> </metadata> <compiler> <local-fonts-snapshot>C:/Arquivos de programas/Adobe/Flex Builder 3 Plug-in/sdks/2.0.1/frameworks/localFonts.ser</local-fonts-snapshot> </fonts> <!-- list of SWC files or directories that contain SWC files --> <library-path> <path-element>C:/Arquivos de programas/Adobe/Flex Builder 3 Plugin/sdks/2.0.1/frameworks/libs</path-element> <path-element>C:/Arquivos de programas/Adobe/Flex Builder 3 Plugin/sdks/2.0.1/frameworks/locale/en_US</path-element> <path-element>AssignmentSelectedEvent.swc</path-element> </library-path> <debug>true</debug> </compiler> <use-network>true</use-network> </flex-config> <fonts>

Por fim, o arquivo SWF do mecanismo de atribuio deve ser publicado no ByYou ECM como um documento. Para selecionar o documento no momento da publicao basta clicar sobre o cone ao lado do campo Tela de Configurao.

18

Parmetros Workflow para Customizao de Fichrios


Para processos que possuem um fichrio padro definido so passados alguns parmetros com informaes sobre o processo para serem utilizados nas customizaes do fichrio, conforme abaixo:
Parmetro Descrio

WKDef WKVersDef WKNumProces WKNumState WKCompany WKUser

Cdigo do processo Verso do processo Nmero do processo Nmero da atividade Nmero da Empresa Usurio Corrente

Estas informaes so passadas como parmetros da URL do programa que permite o encaminhamento das atividades, portanto no programa de customizao do fichrio basta recuperar as informaes com o comando getValue, conforme exemplo:
var vCodProcess = getValue("WKDef");

Customizao de E-mail
possvel incluir customizaes de e-mail durante o andamento de um Workflow. Existem duas modalidades de customizao nessa categoria: 1. Envio e alterao de e-mail padro atravs do evento onNotify. 2. Envio de e-mail customizado em qualquer evento do Workflow. Envio de E-mail Padro Para interferir no envio de um e-mail padro, deve ser utilizado o evento onNotify, que disparado no exato momento em que qualquer um dos e-mails de processo enviado. Nesse evento, podem ser feitas alteraes, como por exemplo: adicionar outros destinatrios ao e-mail (alm daqueles que esto participando do processo), modificar os valores dos parmetros utilizados no template de e-mail, etc. Abaixo encontra-se um exemplo de como implementar esse evento. function onNotify(subject, receivers, template, params){ if(template.match("tpl028")!=null){ receivers.add("usuario@dominio.com"); }

19

} O evento onNotify est disponvel na lista de eventos do Workflow. Portanto, ao selecionar esse evento na lista de eventos disponveis, a assinatura da funo acima j ser preenchida automaticamente. Este evento disponibiliza os seguintes parmetros: 3. Subject: o assunto do e-mail. A alterao desta varivel ir implicar que todos os usurios recebam o e-mail com o novo assunto configurado, inclusive aqueles que participam do processo. Exemplo de utilizao: subject.add("ASSUNTO"); 4. Receivers: Lista de e-mails destinatrios. Tambm possvel adicionar outros e-mails, de usurios que no participam do workflow. Inclusive, podem ser adicionados e-mails de usurios que no esto cadastrados no ByYou ECM, caso seja necessrio notificar uma pessoa que no tenho acesso ao sistema. 5. Template: Permite validar qual tipo de e-mail est sendo enviado (por exemplo, template de nova tarefa, notificao de gestor, etc). Com base nessa varivel podemos distinguir quais e-mails queremos customizar. recomendvel que sempre seja verificado o cdigo do template, para evitar que ocorram alteraes em outros tipos de email, que no necessitariam de customizao. 6. Params: um mapa de dados que permite alterar/incluir parmetros para que sejam apresentados no e-mail. O nome dos parmetros informados nesse mapa devem ser os mesmos que so utilizados dentro do arquivo de template. No exemplo que foi apresentado acima est sendo validado se o template o TPL028 (que corresponde a Notificao do Gestor), em caso positivo, um novo e-mail ser adicionado na lista de destinatrios. Ou seja, alm do gestor do processo, uma outra pessoa ser notificada, recebendo uma cpia do email que o gestor ir receber. Como est sendo validado o cdigo do template, os demais tipos de e-mail no sero afetados. Os templates podem ser consultados dentro do diretrio do volume, em: <VOLUME>\templates\tplmail. Se for necessrio adicionar algum parmetro no e-mail padro, os templates podem ser editados diretamente nesse diretrio. Obs.: No evento onNotify possvel utilizar apenas o objeto log. Envio de E-mail Customizado Caso seja necessrio incluir um novo tipo de e-mail, alm daqueles que so disponibilizados pelo produto, o ByYou ECM permite que o usurio cadastre templates customizados, atravs do cone Templates na categoria GED ou Painel de Controle, na tela principal do sistema.

20

Para incluir um novo Template, basta clicar no boto adicionar e preencher os dados solicitados. Nesta etapa tambm deve ser feito upload do arquivo de template. Para adicionar parmetros dentro de um arquivo de template (TXT ou HTML), deve-se utilizar a seguinte notao: ${NOME_USUARIO} Neste caso, ser utilizado o o identificador NOME_USUARIO durante a customizao para atribuir um valor a este parmetro. Os templates disponveis no volume da empresa (<VOLUME>\templates\tplmail) podem ser consultados para mais exemplos de utilizao de parmetros. Aps cadastrar um novo template, possvel utiliz-lo para enviar e-mail a partir de qualquer um dos eventos do Workflow (exceto no onNotify ver Envio de E-mail Padro). Para efetuar um envio de e-mail, em base de um template customizado, utilizado o objeto notifier, chamando a funo notify, conforme o cdigo abaixo: try{

//Monta mapa com parmetros do template var parametros = new java.util.HashMap(); parametros.put("NOME_USUARIO", "JOAO"); parametros.put("CODIGO_USUARIO", "01"); //Este parmetro obrigatrio e representa o assunto do e-mail parametros.put("subject", "ASSUNTO"); //Monta lista de destinatrios var destinatarios = new java.util.ArrayList(); destinatarios.add("MATRICULA-DESTINATARIO");

//Envia e-mail notifier.notify("MATRICULA-REMETENTE", "CODIGO-TEMPLATE", parametros, destinatarios, "text/html"); }catch(e){ log.info(e); } O primeiro parmetro que a funo notify recebe o cdigo/matrcula do usurio que ir enviar o e-mail (remetente). O segundo parmetro o cdigo do template que foi cadastrado atravs do cone de Templates.

21

O terceiro parmetro um mapa de dados (java.util.HashMap) que contm os parmetros que sero utilizados para preencher as variveis do template. O quarto parmetro representa a lista de usurios que iro receber o e-mail (java.util.ArrayList). Esta lista de usurios consiste em uma lista de cdigos/matrculas de colaboradores cadastrados no ByYou ECM. O quinto e ltimo parmetro especifica qual ser o formato do e-mail enviado. Os valores aceitos so text/html e text/plain.

22

Você também pode gostar