Você está na página 1de 53

Educao Corporativa

Workow
1
Todos os direitos reservados.
Matriz - Av. Braz Leme, 1.717 - 02511-000 - So Paulo - SP - Brasil.
Tel.: 55 (11) 3981 - 7001 www.microsiga.com.br
2 Todos os direitos reservados. Workow
WORKFLOW 3
FLUXO OPERACIONAL 4
CONFIGURAO 5
Requisitos 5
Correio Eletrnico 6
Contas de e-mail 6
CADASTRAR A CONTA DE E-MAIL DO WORKFLOW 8
Pasta Caixa de Correio 9
Pasta Receber Mensagens 10
Pasta Enviar Mensagens 11
Pasta Conexo 12
Pasta "Correio" 14
PARMETROS 14
Pasta "Processo" 15
Pasta "Noticao" 17
Pasta "Messenger" 18
ESTRUTURA DE DIRETRIO DE MENSAGENS 19
PROCESSOS WORKFLOW 22
Status Workow 24
E-mails substitutos 27
SCHEDULER 29
Ativao 29
Agendando 30
Agendar recebimento de mensagens do Workow 33
AGENDAR ENVIO DE MENSAGENS DO WORKFLOW 34
HTML MODELO WORKFLOW 35
Post message 35
Macro substituio 36
Tabelas 37
CRIANDO UM PROCESSO EM ADVPL - FUNES 40
Classe TWFProcess 40
Mtodos 40
GLOSSRIO 52
S
u
m

r
i
o
3
Todos os direitos reservados.
Workow
WORKFLOW
A automao de processos de negcio corresponde, em partes ou totalmente, s informaes, documentos
ou tarefas que so passadas de uma pessoa outra para a realizao de uma ao que baseada em um
conjunto de regras.
Atravs da implantao de uma ferramenta de Workow nos processos crticos de uma organizao, estes
tornam-se mais geis e seguros, evitando o travamento operacional do complexo uxo existente entre
os processos.
Principais benefcios:
Aumento da efcincia: automao de processos eliminam vrios passos desnecessrios.
Melhor controle dos processos: melhora do gerenciamento dos processos atravs da padronizao dos
mtodos de trabalho.
Melhora nos servios ao cliente: consistncia nos processos leva a uma maior previsibilidade e rapidez
nos nveis de resposta ao cliente.
Flexibilidade: controle sobre os processos atravs de uma ferramenta permite uma rpida mudana nos
uxos de acordo com a necessidade.
A ferramenta de Workfow existente no Protheus 8 permite o rpido alcance dos benefcios acima citados,
alm de:
Forte rastreabilidade dos processos: pode-se saber a atual situao de qualquer processo atravs da
consulta da rastreabilidade.
Transformao do sistema Protheus em ativo em vez de reativo: a informao e a ao necessria a ser
tomada levada ao usurio e no o contrrio.
Controle de time-out dos processos: os processos nunca fcam parados por falta de resposta de uma
pessoa.
Qualquer processo existente pode ser automatizado atravs da construo de um Workfow.
As aes a serem tomadas pelas pessoas em cobrana podem ser realizadas atravs de quatro meios,
evitando que um processo tenha seu ciclo interrompido por falta de comunicao, so eles:
e-mail: os processos so respondidos atravs de um cliente de e-mail homologado.
browser de internet: atravs do Internet Explorer, pode-se tomar a ao pedida pelo processo.
Protheus: atravs do recurso de Messenger do Protheus, pode-se tomar a ao pedida pelo processo.
Pontos de entrada: atravs de pontos de entradas existentes no sistema, pode-se tomar a ao pedida
pelo processo.
4 Todos os direitos reservados. Workow
FLUXO OPERACIONAL
5
Todos os direitos reservados.
Workow
CONFIGURAO
Requisitos
Software: o Workfow, que uma ferramenta embutida dentro do Server do Protheus, no necessita de
instalao prpria, apenas conguraes. Toda congurao se d atravs do ambiente Congurador do
Protheus.
Servidor de e-mail (quando necessrio para os processos): o Workow necessita obter acesso a
algum servidor de e-mail, caso se deseje utilizar e-mails como forma de comunicao. Esse servidor pode
estar em um provedor remoto, acessado atravs de um proxy server ou atravs de uma linha discada
(totalmente no recomendvel), caso se queira enviar e-mails para fora da sua empresa. Se a troca de
e-mails for interna, poder ser utilizado um Exchange Server, Lotus Domino Server ou outro servidor de
e-mail interno. O nico requisito imprescindvel que esses servidores trabalhem com protocolos SMTP
e POP3 ou IMAPI.
Conta de e-mail: caso utilize-se a opo de e-mail, o Workow necessita que seja criada uma conta
de e-mail especifcamente para ele. Isto , no poder ser utilizada para mais nenhum fm. Para cada
empresa do sistema, dever ser criada uma conta especca. Pea para o seu provedor criar esta nova
conta. Sugerimos com o nome da conta Workow.
Exemplo: workow@suaempresa.com.br
Clientes de e-mail: para recebimento dos e-mails gerados a partir do Workow, so utilizados os clientes
de e-mails que devem ser aptos a responder os e-mails gerados pelo Workow, gerando arquivos de
retorno chamados octetos.
Para saber se o cliente de e-mail compatvel com o Workow, ele dever automaticamente gerar um
e-mail de sada enviado para a conta do Workfow com um arquivo do tipo postdata atachado, quando
houver a resposta do e-mail pelo usurio.
Os seguintes clientes de e-mail funcionam com o Workow: OutLook Express 4.01, OutLook Express
5.5x, OutLook Express 6.0 e OutLook 2000 e XP, Lotus Notes 5.x. Outros clientes de e-mail podem no
funcionar, principalmente os webmails. Portanto, garanta que as pessoas que iro receber e responder
os e-mails tenham os clientes acima instalados em suas estaes. Quando no houver a certeza de que
todos conseguiro responder os e-mails e possuir os clientes de e-mail homologados, use a opo de
Workow sem uso de e-mails, conforme ser descrito nesta apostila. As opes de execuo de Java Script
e Cookies devero estar liberadas.
Servidor do Protheus: necessrio que o Workfow execute em um Server do Protheus exclusivo para
ele, ou seja, deve haver um binrio somente para o Workfow.
Memria do servidor: o servidor no qual ser executado o Workow deve possuir memria suciente para
que se processem vrios retornos ao mesmo tempo. O mnimo recomendado de 512 MB de memria
RAM para processar cinco retornos por vez. Um nmero maior do que isso, provavelmente necessitar de
mais memria.
6 Todos os direitos reservados. Workow
Correio Eletrnico

Protocolo
O Workow faz uso do recurso de envio e recebimento de mensagens eletrnicas (e-mails). Para que
esse procedimento seja possvel, devemos confgurar que tipo de protocolo de recebimento o Protheus
dever usar.
Se omitido, o padro assumido ser POP3. Caso necessite mudar, localize a seo [Mail] no arquivo
mp8srv.ini e altere para o protocolo utilizado.
Protocolos atualmente homologados:
POP3
IMAP
Exemplo:
[Mail]
Protocol=IMAP
Folder=inbox
Contas de e-mail
Atravs do cadastro de contas de e-mails, possvel realizar o envio e recebimentos de mensagens. Para
acessar o cadastro de e-mails, selecione a seguinte opo de menu do congurador:
Anotaes
7
Todos os direitos reservados.
Workow
Aps a realizao do cadastro de uma conta de e-mail, possvel realizar algumas operaes extras
como:
Enviar: esta opo executar o envio de todas as mensagens contidas na pasta outbox (caixa de sada).
Enviar Todos: esta opo realizar a mesma operao do item anterior; entretanto, efetuar o envio de
todas as mensagens para todas as contas cadastradas.
Receber: esta opo executar o recebimento de todas as mensagens contidas no servidor de e-mail
especicado no cadastro para a pasta inbox (caixa de entrada).
Receber todos: esta opo realizar a mesma operao do item anterior. Contudo, realizar para todas
as contas cadastradas.
O protocolo MAPI no suportado pelo Protheus.
Anotaes
8 Todos os direitos reservados. Workow
CADASTRAR A CONTA DE E-MAIL DO WORKFLOW
A principal caracterstica do Workow so as mensagens que so enviadas e recebidas via email. Para que
isto funcione necessrio congurar as contas de email e tambm alguns parmetros do Workow.
imprescindvel a criao de pelo menos uma conta de email exclusiva para o Workow.
Para iniciarmos a congurao, precisamos inicialmente denir as contas que podero ser usadas.
Podemos cadastrar vrias contas de email que sero utilizadas com os processos de Workow. Por
exemplo, podemos ter uma conta de email para os processos do Workow para uma empresa/lial e
outra conta para outra empresa/lial.
Para denir as contas de email, acesso no ambiente Congurador:
Menu Ambiente > Workow > Contas de Email
Nesta opo voc poder defnir quantas contas de email forem necessrias.
9
Todos os direitos reservados.
Workow
Para incluir uma nova conta, escolha a opo Incluir. As seguintes informaes so pedidas:

Pasta Caixa de Correio
Caixa de Correio
Opo Item Descrio
Correio
Nome da caixa de correio. Esse nome
ser usado para criar a pasta, em que
sero identificadas as mensagens
pertinentes a cada conta.
Correio
Tempo Espera
Tempo mximo (em segundos) de
espera para conexo com o servidor de
e-mails, tanto no envio como
recebimento de mensagens. O tempo
padro 60 segundos.
Nome Nome do remetente da mensagem.
Remetente
Endereo Endereo eletrnico.
Habilitar
Incluir esta conta ao
enviar e receber e - mails
Esta opo habilita o uso da conta para
enviar e receber mensagem.

10 Todos os direitos reservados. Workow
Pasta Receber Mensagens
Receber mensagens
Opo Item Descrio
Nome
IP ou Named Pipe do servidor. Ser
exibido conforme o tipo utilizado na
seo [Mail] no arquivo mp8srv.ini
Servidor (POP3 ou
IMAP)
Porta
Porta de acesso dependendo do tipo.
POP3 = 110; IMAP = 143 ( defaults ).
Conta Nome da conta.
Login
Senha Senha de acesso conta.

Anotaes
11
Todos os direitos reservados.
Workow
Pasta Enviar Mensagens
Enviar mensagens
Opo Item Descrio
Nome IP ou Named Pipe do servidor SMTP.
Servidor SMTP
Porta Porta de acesso. Valor padro: 25.
Usurio
Nome do usurio para autenticao.
Alguns servidores exigem esta
informao para envio de e -mails.
Autenticao

Senha Senha de acesso para autenticao.

Anotaes
12 Todos os direitos reservados. Workow
Pasta Conexo
Conexo
Opo Item Descrio
LAN
Utiliza a conexo j estabelecida pelo
usurio em uma intranet.
Tipo
DIAL -Up
Utiliza o recurso de discagem atravs de
uma linha telefnica (no
recomendvel). Somente funciona em
estaes e servidores Windows.
*Conexes
Lista de conexes disponveis do tipo
Dial -up, obtidas a partir do cadastro de
conexes dial -up criado previamente no
Microsoft Windows.
Conta
Nome da conta (usurio) de acesso ao
provedor internet.
Senha Senha de acesso conta no provedor.
Discagem
Telefone
Nmero da linha de acesso ao provedor
internet.

13
Todos os direitos reservados.
Workow
* Os campos Conta, Senha e Telefone so obtidos automaticamente a partir da seleo da lista de conexes
disponveis no campo Conexes:. Esses campos so meramente informativos, j que foram obtidos
atravs da conexo criada previamente no Windows. Veja no manual do Microsoft Windows como criar
conexes dial-up.
* Os campos para autenticao de envio somente devero ser preenchidos caso sejam obrigatrios,
conforme a regra de segurana estabelecida pela empresa. Consulte o administrador do servidor de
mensagens para obter as informaes necessrias para os preenchimentos dos campos Usurio e
Senha.
Anotaes
14 Todos os direitos reservados. Workow
PARMETROS
O Workow faz uso de uma srie de parmetros que determinam a maneira como ele se comportar
perante alguns pontos estratgicos na execuo dos uxos de processo. O acesso janela de parmetros
est disponvel na opo do menu do congurador Ambiente > Workow > Parmetros WF.
Pasta "Correio"
Anotaes
15
Todos os direitos reservados.
Workow
Correio
Opo Item Parmetro Descrio
Caixa de correio Conta MV_WFMLBOX
Caixa de correio a ser utilizada
pelo workflow para o envio e
recebimento de mensagens.
Envia figura do
html como anexo
da mensagem
MV_WFIMAGE Recurso ainda no disponvel.
Envia html no
corpo da
mensagem
MV_WFHTML
Selecionando esta opo, o html
passara a fazer parte do corpo
da mensagem. O contrrio, ir
como anexo.
Envio automtico MV_WFSNDAU
Aps a criao do processo, o
workflow enviar a mensagem
imediatamente .
Composio da
mensagem
Usa Java Script MV_WFJAVAS
No html, o Workflow
adicionar rotinas semi -prontas
em Java script.

Pasta "Processo"
16 Todos os direitos reservados. Workow
Processos
Opo Item Parmetro Descrio
Define a quantidade de
processos de retorno que
podero ser executados por vez.
Execuo de
retornos
Execuo( es) de
retorno(s)
simultneos de
processos .
MV_WFMAXJB

Esteja atento ao nm ero
de licenas disponveis e
capacidade de
processamento da
mquina. A quantidade
influenciar na
performance do
servidor.
Reativar processos
automatic amente
MV_WFREACT
C aso esta opo seja
selecionad a, ocorr er erro na
execuo de retornos . O
Workflow reativar o processo
imediatamente para ser
executado de novo. Caso
contrrio, ser reativado
somente quando o Scheduler
for reiniciado.
Tratamento de
erros
Usar
TRANSAAO na
execuo de
funes de
RETORNO e
TIMEOUTs
MV_WF TRANS
Habilita o recurso de transao
com a finalidade de conservar a
integridade dos dados em caso
de falha de execuo.

Anotaes
17
Todos os direitos reservados.
Workow
Pasta "Noticao"
Notificao
Opo Item Parmetro Descrio
E -mail do
administrador
Endereo MV_WFADMIN
Endereo eletrnico do
administrador (es) do sistema .
Separe entre ; (ponto -e-
vrgula) caso desej e informar
mais do que um endereo.
Exemplo:
A dm1@prov.com.br;
adm2@prov.com.br
Quando oc orrer
erro ao e xecutar
funes
Retorno e
Timeout .
MV_WFNF001
Notificar por e -mail a lista de
endereos dos administradores
sobre o erro ocorrido.
Ao reativar
processos
pendentes .
MV_WFNF002
Notificar por e -mail a lista de
endereos dos administradores
no momento em que for em
reativados os processos que
ocorreram erro .
Enviar
notificao
Ao receber
mensagens no
reconhecidas .
MV_WFNF003
Notificar por e -mail a lista de
endereos dos administradores
sobre as mensagens no
reconhecidas pelo Workflow .

18 Todos os direitos reservados. Workow
Pasta "Messenger"
Messenger
Opo Item Parmetro Descrio
Caminho MV_WFBROWS
Arquivo executvel do browser
Internet que dever estar no
path da estao.
Browser
Internet
Servidor MV_WFBRWSR
IP ou Nome d PIPE do servidor
Protheus para uso do servio
http. Adic ione : + a porta ,
caso seja diferente do padro.
etrio HTTP Caminho MV_WFDHTTP
Diretrio de trabalho do servio
http. Verifique o identificador
Path= na seo [HTTP] do
arquivo mp 8Srv.ini para obter o
diretrio de trabalho.
Habilitar
Habilitar Messenger
automaticamente.
(prximo logon)
MV_WFMESSE
O messenger ser executado
automaticamente no prximo
login de qualquer ambiente
Protheus.

19
Todos os direitos reservados.
Workow
ESTRUTURA DE DIRETRIO DE MENSAGENS
A pasta Workow localiza-se no Root por questes de organizao de acesso aos respectivos arquivos
de controle e mensagens a cada empresa.
Anotaes
20 Todos os direitos reservados. Workow
Estrutura de diretrios
Pastas Descrio

Pasta principal da estrutura de diretrios do Workflow . Esta pasta
til para armazenar os html e arquivos comuns entre as empresas.


Pasta individual de trabalho para cada empresa.
Mail
Esta pasta contm a estrutura de diretrios para
uso exclusivo de armazenamento de mensagens
enviadas e recebidas para cada caixa de correio
existente.
Process
Contm arquivos de controle criados pelo
Workflow para gerar e manipular processos.
Tasks
Contm temporariamente arquivos de
agendamento de rotinas utilizados para serem
inseridos dentro da tabela SXM (scheduler).

Temp Diretrio temporrio de trabalho.
A partir da pasta Mail , sero criadas todas as caixas de correio
existentes no cadastro de contas de correio do Workflow .
Archive
Esta pasta foi criada exclusivamente para uso da
caixa de correio do Workflow . Todas as
mensagens que no sejam relacionadas aos
processos de Wor kflow, sero armaz enadas nesta
pasta.
Ex: Spam.
Ignored
Esta pasta foi criada exclusivamente para uso da
caixa de correio do Workflow . As mensagens
recebidas e j identificadas anteriormente sero
armazenadas nessa pasta (mensagens recebidas em
duplicidade)
I nbox
Esta uma pasta comum entre as caixas de correio
existentes. Ela responsvel pelo armazenamento
de mensagens recebidas.
Outbox
Esta uma pasta comum entre as caixas de correio
existentes, sendo responsvel pelo armazenamento
de mensagens que devero ser enviadas. Caso
ocorra erro durante o envio das mensagens, elas
sero armazenadas na sub-pasta Erro.

Sent
Esta uma pasta comum entre as caixas de correio
existentes, sendo responsvel pelo armazenamento
das mensagens enviadas.
21
Todos os direitos reservados.
Workow
Case Atualizao do Preo de Venda de Produto
A partir do ponto de entrada (MT010INC) no cadastro de produtos, criaremos um processo de Workow
que enviar um html via e-mail para um destinatrio que dever atualizar o preo de venda do produto
e, em seguida, enviar a resposta para ser atualizada na base de dados do Protheus. Esse ponto de entrada
ser executado aps a incluso de um novo produto.
Conforme os passos descritos abaixo, realizaremos um cadastro de processos e de status para futuras
pesquisas com o uso da rastreabilidade de processos. Criaremos, tambm, um html e um arquivo de
programa para descrevermos o uxo do processo em cdigo Advpl, usando as classes e as funes de
Workow.
Criar novo campo no SB1
Crie um novo campo B1_WFID no SB1 para que possa ser gravado o ID do processo de Workow e ser
utilizado em consultas na janela de rastreabilidade.
Defnio do campo B1_WFID: tipo Caracter; tamanho 7; decimais 0
Pesquisa padro SXB
Crie uma pesquisa SXB com o nome WFSB1 que faa referncia tabela SB1 e retorne o contedo do
campo B1_WFID.
Anotaes
22 Todos os direitos reservados. Workow
PROCESSOS WORKFLOW
O cadastro de processos do Workow, apesar de no ser obrigatrio, tem a importncia de amarrar
a seqncia de passos de um fuxo de processo para ser visualizado a partir da janela de consulta da
rastreabilidade.
Exemplo de processos a serem cadastrados:
Aprovao de solicitao de compras.
Aprovao de pedido de compras.
Cotao de preos.
Liberao de crdito.
Esse cadastro encontra-se no ambiente Congurador.
Para cadastrar processos workow:
Em Ambiente > Workow > Processos Workow, selecione a opo "Incluir"
O sistema apresenta a tela de incluso da rotina.
23
Todos os direitos reservados.
Workow
Conra os dados e conrme a incluso.
Cadastro de Processos
Agrupamento Campos Descrio
Cdigo Cdigo nico identificador.
Codificao
Nome Nome do processo.
Informativo Tabel as Especificaes das tabelas utilizadas para execuo do processo.
Pesquisa genrica
Pesquisa Padro Cdigo da pesquisa padro utilizada para localizar um
determinado processo.
Visio
Arquivo .vsd Arquivo visio document (fluxo do processo desenhado a partir do
Microsoft Visio).
24 Todos os direitos reservados. Workow
Exerccios
A partir do congurador, selecione a opo de menu Ambiente > Workow > Processos
Workow e crie um novo processo conforme o contedo dos campos apresentados na tabela
abaixo:
Cdigo Descrio Pesq Padro
ATUAPV A TUALIZACAO DO PRECO DE VENDA W FSB1 - Produto

Status Workow
O cadastro de Status o complemento do cadastro de processo. Atravs dele, determina-se cada etapa
que se realizar em um uxo de processo, sendo muito til para determinar pontos de rastreabilidade
dentro de um grande processo.
Para cadastrar status workow:
Em Ambiente > Workow > Status Workow, selecione a opo "Incluir".
O sistema apresenta a tela de incluso da rotina.
25
Todos os direitos reservados.
Workow
Cadastro de Status
Agrupamento Campos Descrio
Cd Processo Cdigo do processo.
Cd Status
Cdigo do status de processo. Esse cdigo deve ser um valor
numrico acima de 999. A faixa de valores entre 0 e 999 est
reservada ao Workflow.
Codificao
Descrio Descrio do Status do processo.
Informativo Tempo mdio
Tempo mdio de execuo deste status . Este tempo calculado
pelo sistema.
Conra os dados e conrme a incluso.
26 Todos os direitos reservados. Workow
Exerccios
Ainda no congurador, selecione a opo de menu Ambiente > Workow > Status Workow
e cadastre alguns status para o processo mencionado, conforme o contedo dos campos
apresentados abaixo:
Cd Processo Cd Status Descrio
ATUAPV 100100 INICIANDO
ATUAPV 100200 GERANDO PROCESSO PARA ENVIO
ATUAPV 100300 ENVIANDO MENSAGEM
ATUAPV 100400 AGUARDANDO RETORNO
ATUAPV 100500 ATUALIZANDO PRECO DE VENDA
ATUAPV 100600 TIMEOUT
ATUAPV 100700 REENVIANDO A MENSAGEM
ATUAPV 100800 FINALIZANDO
ATUAPV 100900 ERRO DE EXECUO

Anotaes
27
Todos os direitos reservados.
Workow
E-mails substitutos
O cadastro de e-mails substitutos um recurso disponvel no Workow que tem por nalidade delegar
para um outro endereo eletrnico todas as mensagens dirigidas a um determinado participante por um
perodo de tempo estipulado. Esse recurso importante quando se tratar de eventuais problemas em que
um dos participantes do uxo do processo permanea ausente por motivos diversos (frias, afastamento
etc.).
Para cadastrar e-mails substitutos:
Em Ambiente > Workow > E-mails Substitutos, clique na opo "Incluir".
O sistema apresenta a janela de incluso e Conrme.
Cadastro de e-mails substitutos
Agrupamento Campos Descrio
Do e-mail
Endereo eletrnico do participante que permanecer ausente
por um perodo de tempo.
Endereo eletrnico
Para o e-mail
Endereo eletrnico do participante que ficar responsvel por
receber as mensagens.
Data incio Data inicial em que passar a vigorar a substituio dos e - mails.
Data final Data final do perodo. Perodo
Dias Clculo de dias entre a data inicial e final.

28 Todos os direitos reservados. Workow
Exerccios
Cadastre um E-mail Substituto, seguindo as informaes abaixo:
Do e-mail: aprovador1@microsiga.com.br
Para o e-mail: aprovador2@microsiga.com.br
Data Inicial: 01/10/2007
At: 31/10/2007
Anotaes
29
Todos os direitos reservados.
Workow
SCHEDULER

O Scheduler (agenda) uma ferramenta responsvel pela execuo das funes de usurios ou funes
padronizadas do sistema (chamaremos de Jobs), em determinados horrios especfcos entre um intervalo
de tempo, sem que haja a interveno do usurio. Para que essa ferramenta esteja habilitada a realizar
execues dos jobs, necessrio que ela esteja ativada no servidor do Protheus.
Ativao
Para que os jobs sejam executados nos horrios pr-determinados, importante que aps a carga do
servidor do Protheus, o Scheduler seja executado. Dessa forma, ele poder verifcar a cada minuto se h
jobs a serem executados.
Essa ativao ocorre a partir do recurso disponvel na seo [OnStart] contido no arquivo TOTVSAppServer.
INI. Exemplo a ser adicionado ao arquivo TOTVSAppServer.INI:
[ONSTART]
Jobs=Scheduler
[Scheduler]
Main=WFONSTART
Environment=EnvTOP

A funo WFOnStart responsvel pela carga inicial do Scheduler e requer informaes contidas no
arquivo auxiliar chamado Scheduler.wf, localizado no diretrio system do Protheus. O contedo desse
arquivo servir para obter a lista de parmetros necessria para executar o Scheduler.
Caso o arquivo no exista, ser criado automaticamente com o seguinte contedo padro:
99,01,ENVTOP,T,MOD.
1. 99 cdigo da empresa.
2. 01 cdigo da lial.
3. ENVTOP ambiente no qual ser executado o Scheduler.
4. T Valor lgico (True ou False). True, Indicar que realizar reativao dos processos nas tabelas do
Workow.
5. MOD Nome do ambiente do qual o Workow obter licenas.
Anotaes
30 Todos os direitos reservados. Workow
O Protheus, aceita os parmetros passados atravs da prpria seo sem a necessidade de utilizar o
arquivo auxiliar Scheduler.wf, apenas acrescentando as seguintes linhas:

Exemplo:
[Scheduler]
Main=WFOnStart
Environment=ENVTOP
nParams=5
Parm1=99
Parm2=01
Parm3=ENVTOP
Parm4=T
Parm5=TMK
Agendando
Atravs do congurador, possvel acessar a janela de cadastro de jobs a serem executados pelo
Scheduler.
Para confgurar a rotina de Schedule:
Selecione as opes Ambiente > Schedule > Schedule

Selecione: Processos Especiais.
31
Todos os direitos reservados.
Workow
Pressione o boto Incluir
Janela de cadastro de jobs
Anotaes
32 Todos os direitos reservados. Workow
Scheduler Processos Especiais
Agrupamento Campos Descrio
Cdigo C digo nico identificador do job.
Nome Nome simplificado. Identificao
Descrio Descrio do job.
Diria
Executa diariamente entre os horrios inicial e final a
cada intervalo de tempo.
Semanal
Executa nos dias selecionados da semana (domingo,
segunda, tera, quarta, quinta, sexta e sbado), entre
os horrios inicial e final a cada intervalo de tempo.
Freqncia
Mensal
Executa nos meses selecionados do ano (janeiro a
dezembro), entre os horrios inicial e final a cada
intervalo de tempo.
Data Incio Data inicial que passar a vigorar a execuo.
Perodo Inicial
Hora Incio Horrio inicial de execuo.
Data final Dia limite de execuo.
Perodo Final
Hora final Horrio limite de execuo.
Perodo Intervalo
Intervalo de tempo a cada execuo entre o horrio
inicial e final.
Job Ao
Funo de us urio ou funo interna do Protheus a
ser executado. Os parmetros passados para esta
funo devero ser sempre tratados como um array.
Environment Ambiente Ambiente em que o job ser executado.
Anotaes
33
Todos os direitos reservados.
Workow
Agendar recebimento de mensagens do Workow
Para que o Workow possa receber as mensagens e executar os retornos de processos, necessrio
cadastrar no Scheduler a funo WFReturn(Cdigo_Empresa, Cdigo_Filial).
A funo WFReturn responsvel por:
baixar (download) todas as mensagens contidas na caixa postal de mensagens do correio eletrnico do
Workfow e gravar na pasta Inbox (veja acima estrutura de diretrios para melhor esclarecimento);
separar as mensagens reconhecidas (retornos de aprovao etc.) pelo Workfow e mover para a pasta
Process;
separar as mensagens no reconhecidas (spam etc.) pelo Workfow e mover para a pasta Archive.
Em seguida, noticar lista de e-mails de administradores informados no cadastro de parmetros do
Workow;
executar cada um dos retornos de processos.
Exemplo:
WFReturn( 99, 01 )
Anotaes
34 Todos os direitos reservados. Workow
AGENDAR ENVIO DE MENSAGENS DO WORKFLOW
Apesar de ter a opo Enviar Automaticamente disponvel no cadastro de parmetros do Workow,
importante saber que nem sempre possvel enviar as mensagens em um determinado momento.
Podero ocorrer alguns problemas que podem acarretar la de espera e, com isso, crescer o nmero
de processos parados. Entre os problemas mais comuns est a perda da comunicao com o servidor de
e-mail.
Para evitar tais problemas, interessante agendar a funo WFSendMail (Cdigo_Empresa, Cdigo_
Filial) da mesma forma que a funo WFReturn. Assim, haver a garantia de que a qualquer momento as
mensagens que, eventualmente, tenham fcado na fla de espera sero enviadas.
A funo WFSendMail responsvel por:
enviar cada uma das mensagens contidas na pasta Outbox (caixa de sada);
mover para a pasta Sent (itens enviados) as mensagens que foram enviadas com sucesso;
mover para a pasta Outbox\Error as mensagens que tiveram problemas durante o envio. Caso queira
reenvi-las, basta mov-las para a pasta Outbox (caixa de sada).
Exemplo:
WFSendMail( 99, 01 )

Requisitos para desenvolvimento
Para construir um processo de Workow que automatize de forma correta, so necessrios quatro
requisitos fundamentais:
conhecer o sistema de ERP como um todo, inclusive tecnicamente. Isso corresponde a conhecer
todos os recursos de confgurao e programao do Protheus, bem como suas tabelas e respectivos
relacionamentos;
saber programar em linguagem ADVPL, nvel avanado, com conhecimento em objetos e classes;
conhecimento em linguagem HTML, para construo de pginas, alm de saber programar em Java
Script, para renamento e validao das pginas;
software e hardware necessrios.
35
Todos os direitos reservados.
Workow
HTML MODELO WORKFLOW
O Workfow faz uso de formulrios html para realizar interaes entre o(s) participante(s) e o sistema ERP.
Alm de inform-los, possvel responder determinadas requisies atravs do recurso Post message
oferecido pelos navegadores internet. Os formulrios desenhados e utilizados para interagir com os
participantes, so denominados modelos (templates) e devero estar disponveis em algum diretrio
abaixo do rootpath do Protheus. Ao ser utilizado algum desses modelos nos processos de Workfow,
apenas a cpia do modelo ser modifcado. necessrio bons conhecimentos de programao HTML e
Java Script para a construo de pginas no Workow.
Post message
O recurso Post message, nas pginas html a partir dos navegadores internet, permite que as respostas
sejam enviadas ao Workfow via correio eletrnico (e-mail) ou servio http. Para que isso seja possvel
necessrio incluir o tag <form action=mailto:%WFMailTo% method=post> nos formulrios html.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Aprovao de Pedido de Compra</title>
</head>
<body bgcolor="#FFFFFF">
<form action="mailto:%WFMailTo%" method="POST" name ="FormPedComp">
...
</form>
</body>
</html>
36 Todos os direitos reservados. Workow
Macro substituio
Esta rotina consiste na substituio de todas as palavras encontradas nos formulrios html que estiverem
entre % ou !. Essa palavra-chave ter seu contedo modifcado por outra informao durante a execuo
do processo.
Observe um formulrio modelo de aprovao de pedido de compras com suas respectivas palavras-
chaves (macros):
%macro% - Toda palavra encontrada entre este sinal (%), alm da substituio do contedo por outra
informao, tambm haver a necessidade de incluir no formulrio (cpia do modelo) as linhas de tags
<input type=hidden...> para cada palavra-chave (macro) encontrada.
Exemplo:
<input type=hidden name="EMISSAO" value="01/04/05">
<input type=hidden name="FORNECEDOR" value="100100">
<input type=hidden name="LB_NOME" value="RM SUPRIMENTOS INFO LTDA">
<input type=hidden name="LB_COND" value="30D">
<input type=hidden name="PEDIDO" value="000003">
importante saber que o uso desse smbolo necessrio somente para campos editveis que esperam
modicaes de seus contedos e que sero tratados no retorno das mensagens. Use este smbolo nos
controles do tipo TextField, TextArea, Radio Button, Combo Box e Check Box.

37
Todos os direitos reservados.
Workow
TextField:
<input type="text" size="13" name="T7" value=%quantidade%>
TextArea:
<textarea name="S1" rows="4" cols="74">%observacao%</textarea>
Radio Button:
<input type="radio" checked name="%aprovacao%" value="Sim">Sim.
<br>
<input type="radio" name="%aprovacao%" value="Nao">No.
Combo Box:
<select name="list" size="1"><option selected>%itens%</option> </select>
Check Box:
<input type="checkbox" name="checkbox" value="%item1%">Item 1
!macro! Toda palavra encontrada entre este sinal (!) ter somente seu contedo substitudo. No ser
includo <input hidden...> no html para essas palavras-chaves. Utilize-o em texto fxo.
Exemplo: ttulos, mensagens, cabealhos e rodaps.
Tabelas
As tabelas so identifcadas pelo Workfow atravs do nome que precede o ponto (.) nas palavras-chaves.
Contudo, essas palavras-chaves devem realmente pertencer a uma tabela (tag <table>...</table>) do
formulrio html.
Veja em itens do html da aprovao do pedido de compras que h algumas palavras-chaves com o nome
precedido da palavra produto.. Neste caso, o Workow ir referir-se a essa tabela pelo nome de produto
(sem o ponto). Poder conter vrias tabelas em um html que o Workfow saber identifcar atravs do
nome.
38 Todos os direitos reservados. Workow
Exerccios
Crie um html modelo, chamado ATUAPV.HTM, no diretrio \WORKFLOW (abaixo do rootpath)
que ser utilizado no e-mail para que o destinatrio altere o valor do preo de venda do produto
e envie a resposta atravs do boto Enviar.
Cdigo fonte:
<html><head><title>Atualizao preco de venda</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body><form action="mailto:%WFMailTo%" method="post" name="form1">
<table width="100%" height="130" border="1" bordercolor="#66CCFF" >
<tr bordercolor="#DFEFFF">
<td height="71" colspan="4" bgcolor="#DFEFFF">
<p align="center"><strong><font color="#3333FF" size="4" face="Verdana, Arial, Helvetica,
sans-serif">Atualiza&ccedil;&atilde;o do Pre&ccedil;o de Venda</font></strong></p>
</td></tr><tr bordercolor="#66CCFF">
<td height="20" bgcolor="#DFEFFF">
<font size="1">C&oacute;digo:</font></td>
<td bgcolor="#DFEFFF"><font size="1">Descri&ccedil;&atilde;o:</font></td>
<td bgcolor="#DFEFFF"><font size="1">Pre&ccedil;o de venda R$:</font> </td>
</tr>
<tr bordercolor="#66CCFF">
<td width="17%" height="28"><strong>!B1_COD!</strong></td>
<td width="53%">!B1_DESC!</td>
<td width="30%"><em><strong>
<input name="pvenda" type="math" id="pvenda" value="%B1_PRV1%"></strong></em></
td>
</tr>
</table><p>
<input type="submit" name="Submit" value="Enviar"></p>
</form>
</body>
</html>
Anotaes
39
Todos os direitos reservados.
Workow
Tela Pronta:
Anotaes
40 Todos os direitos reservados. Workow
CRIANDO UM PROCESSO EM ADVPL - FUNES
No existem processos de Workfow nativos dentro do Protheus, sendo necessria a construo de acordo
com a necessidade.
Um processo de Workow poder ser iniciado a partir de uma destas opes:
pontos de entrada;
item de menu de qualquer ambiente;
job agendado atravs do Scheduler;
manualmente atravs do remote.
A opo mais utilizada o ponto de entrada. Se for realizado um pedido de compras, por exemplo,
automaticamente gerada uma aprovao para os itens do pedido e enviado para um aprovador.
Qualquer ponto de entrada do sistema pode ser utilizado.

Para ser iniciado o processo em qualquer das opes escolhidas, ser necessrio fazer uso do cdigo
fonte Advpl para determinar a forma como ir proceder a execuo do uxo do processo.
Na maior parte, o Workow baseia-se, no uso de classes referenciadas aos objetos, que se tornam a ponte
de acesso para uso de seus mtodos e propriedades. A principal classe do Workow a TWFProcess, o
que veremos a seguir ( necessrio conhecimento de programao orientada a objetos).
Classe TWFProcess

A classe TWFProcess responsvel pela criao e gerenciamento do processo. Como toda classe, a
TWFProcess dividida em mtodos e propriedades. Veremos alguns dos principais mtodos e propriedades
que iremos usar para criao de um processo.
Mtodos
:New(<cCodProc>,<cDescr>,<cProcID>)
O mtodo New() responsvel pela criao e inicializao da classe WFProcess.
Parmetros:
1. cCodProc: este parmetro recebe o cdigo do processo usado em Cadastro de Processos.
2. cDescr: este parmetro recebe a descrio do processo que est sendo criado no momento. Se no
for informado, ser usada a descrio contida no cadastro de processo, localizada atravs do parmetro
anterior cCodProc.
3. cProcID: este parmetro recebe o ID do processo criado anteriormente. Normalmente, utilizado para
reconstruir um processo anterior, dando seqncia a ele.
41
Todos os direitos reservados.
Workow
Exemplo:
oP := TWFProcess():New("PEDCOM","Aprovacao do Pedido de Compras")
:NewTask(<cDescr>,<cArqHtml>,<lCopiar>)
Este mtodo responsvel por criar a seqncia de tarefas a serem executadas e identifcar qual html
ser utilizado pelo processo.
Parmetros:
1. cDescr: este parmetro recebe a descrio da tarefa.
2. cArqHtml: recebe o caminho e o nome do arquivo html que far uso no processo.
3. Copiar: este parmetro, do tipo lgico, responsvel por copiar todos os campos utilizados em uma
tarefa anterior, ou seja, para a tarefa que est sendo criada no momento.
Exemplo:
oP:NewTask("Criando Aprovacao", "\Workfow\WFW120p.htm" )
:AttachFile(<cArquivo>)
Este mtodo responsvel pela incluso de arquivos anexos mensagem. Esses arquivos devero estar
abaixo do root path do Protheus.
Parmetros:
cArquivo: caminho e nome do arquivo a ser anexo mensagem.
Exemplo:
oP:AttachFile(\Workfow\teste.txt)
:Start(<cHtmlCopiarPara>) -> cProcessKey
Este mtodo responsvel por construir todo o processo, gravar os registros nas tabelas do Workow
e enviar a mensagem para os destinatrios. O valor de retorno uma chave composta pela codifcao
ProcessID + TaskID e nmeros aleatrios, no total de 17 algarismos em hexadecimal.
Parmetros:
1. cHtmlCopiarPara: Caminho em que o Workfow dever realizar uma cpia do html fnal.
Exemplo:
cID := oP:Start(\Workfow\copia)
if fle( \Workfow\copia\ + cID)
conout(Arquivo copiado com sucesso.)
endif
:Finish()
42 Todos os direitos reservados. Workow
Este mtodo responsvel por nalizar o processo. Aps a nalizao, ele no estar mais disponvel para
execues do tipo retorno e timeout.
Exemplo:
oP:Finish()
:Track(<cCodStatus>,<cDescr>,<cUsuario>)
Este mtodo responsvel por incluir as descries dos passos seguidos pelo uxo do processo e
apresent-los na consulta da rastreabilidade.
Parmetros:
1. cCodStatus: cdigo do status do processo.
2. cDescr: descrio do passo ocorrido.
3. cUsuario: nome do usurio a que se destinou a tarefa.
Exemplo:
oP:Track(100200, Enviando o pedido para aprovacao, AprovadorA)
Propriedades
:cTo, :cCC e :cBCC
Estas propriedades denem o endereo dos destinatrios. Poder ser informado mais que um destinatrio
ao mesmo tempo. Basta incluir um ponto-e-vrgula ; entre eles. Se for informada uma palavra qualquer
que no seja um endereo de e-mail vlido, o Workow ir considerar que se trata de um diretrio em que
o html gerado dever ser gravado. Pode-se mesclar os tipos.
Exemplo:
oP:cTo := aluno1@microsiga.com.br;aluno2@microsiga.com.br
oP:cCC := aluno3@microsiga.com.br;Aluno
oP:cBCC := aluno4@microsiga.com.br
:cSubject
Esta propriedade dene o assunto da mensagem.
Exemplo:
oP:cSubject := Aprovado do pedido de compras no. 1028
:cBody
Esta propriedade armazenar um texto que permanecer no corpo da mensagem. Caso seja utilizado, o
html ir como anexo da mensagem.
43
Todos os direitos reservados.
Workow
Exemplo:
oP:cBody := Testando...

:bReturn
Esta propriedade contm o nome da funo que ser executada no momento em que o Workow receber
a mensagem de resposta de um dos destinatrios via e-mail ou servio http.
Exemplo:
oP:bReturn := U_Retorno
:bTimeOut
Esta propriedade recebe um array de timeouts contendo nomes das funes e tempo de espera. Caso
o tempo seja alcanado, sero executadas as funes mencionadas no 1 item do array. Podero ser
especicados mais do que um array de timeouts.
{ { <cFuncao>, <nDias>, <nHoras>, <nMinutos> }, { ... } }
Exemplo:
oP:bTimeOut := { { TimeOut1, 0, 5, 30 } }
ou
oP:bTimeOut := { { TimeOut1, 0, 5, 30 }, { TimeOut2, 1, 10, 0 } }
:fProcessID
Esta propriedade fornece o nmero ID do processo.
Exemplo:
cProcID := oP:fProcessID
:fTaskID
Esta propriedade fornece o nmero ID da tarefa criada para um determinado processo, atravs do mtodo
:NewTask().
Exemplo:
oP:NewTask( "100100", "\Workfow\WFW120p.htm" )
cTaskID := oP:fTaskID
:oHTML
Esta propriedade responsvel pelo tratamento das palavras-chaves no html mencionado no mtodo
:NewTask(). Esse objeto uma referncia da classe TWFHtml() e disponibiliza dois dos mtodos mais
importantes :RetByName() e ValByName().
:oHTML:RetByName( <cNome da macro> )
44 Todos os direitos reservados. Workow
Esta propriedade tem como objetivo obter o contedo da macro quando as respostas retornarem para
o Workow. O mtodo somente dever ser usado na funo de retorno.
Exemplo:
cNome := oP:oHtml:RetByName( Nome )
Em uma tabela:
aCodigo := oP:oHtml:RetByName( produto.Codigo )
:oHTML:ValByName(<cMacro>,<uConteudo>)
Este mtodo tem como objetivo atribuir ou obter um valor a uma macro existente no html. Dever ser
usado somente no momento em que estiver assinalando valores ao html ou na funo de timeouts, em
que o uso necessrio por motivo de no haver recebido resposta.
Parmetros:
cMacro: nome da macro (palavra-chave) encontrada no html e identifcada entre os smbolos % e !.
uConteudo: valor a ser atribudo macro.
Exemplo:
Assinalando um valor:
oP:oHtml:ValByName( Nome, Aluno1 )
Usando na funo de timeout:
cNome := oP:oHtml:ValByName( Nome )
Atribuindo um valor a uma tabela:
AAdd( oP:oHtml:ValByName( produto.codigo ), SB1->SB1_COD )
Anotaes
45
Todos os direitos reservados.
Workow
Exerccios
Criar processo de Workow a partir do ponto de entrada
No TotvsDevStudio, geraremos um arquivo de programa chamado ATUAPV.PRW onde ser
criada a funo representativa do ponto de entrada MT010INC, em que descreveremos o uxo
do processo com o uso das classes e funes do Workow. Essa funo (ponto de entrada) ser
executada a partir do momento em que for pressionado o boto OK, na conrmao da incluso
dos dados do produto na tabela SB1.
ATUAPV.PRW
#INCLUDE PROTHEUS.CH
/*
// MT010INC - Corresponde ao ponto de entrada do sistema que somente
// ser executado na incluso de novos produtos.
*/
User Function MT010INC(nOpcao,oProcess)
// Inicialmente, os parmetros nOpcao e oProcess estaro com valores iguais a NIL.
// se nOpcao for NIL, ter o seu valor inicial igual a 0 (zero).
default nOpcao := 0

do case
case nOpcao == 0
U_APVInicio()
case nOpcao == 1
U_APVRetorno(oProcess)
case nOpcao == 2
U_APVTimeOut(oProcess)
endcase

Return
/*
// APVInicio - Esta funo responsvel por iniciar a criao do processo e por
// enviar a mensagem para o destinatrio.
*/
User Function APVInicio(oProcess)
Local nDias := 0, nHoras := 0, nMinutos := 10
Local cCodProcesso, cCodStatus, cHtmlModelo
Local cUsuarioProtheus, cCodProduto, cTexto, cAssunto
cCodProduto := SB1->B1_COD
// Cdigo extrado do cadastro de processos.
cCodProcesso := "ATUAPV"
46 Todos os direitos reservados. Workow
// Arquivo html template utilizado para montagem da aprovao
cHtmlModelo := "\Workfow\atuapv.htm"
// Assunto da mensagem
cAssunto := "Atualizao do preo de venda"
// Registre o nome do usurio corrente que est criando o processo:
cUsuarioProtheus:= SubStr(cUsuario,7,15)
// Inicialize a classe TWFProcess e assinale a varivel objeto oProcess:
oProcess := TWFProcess():New(cCodProcesso, cAssunto)
// Crie uma tarefa.
oProcess:NewTask(cTitulo, cHtmlModelo)
// Crie um texto que identique as etapas do processo que foi realizado
// para futuras consultas na janela de rastreabilidade.
cTexto := "Iniciando a solicitao de " + cAssunto + " do produto: " + cCodProduto
// Informe o cdigo de status correspondente a essa etapa.
cCodStatus := "100100" // Cdigo do cadastro de status de processo.
// Repasse as informaes para o mtodo responsvel pela rastreabilidade.
oProcess:Track(cCodStatus, cTexto, cUsuarioProtheus) // Rastreabilidade
// Adicione informaces a serem includas na rastreabilidade.
cTexto := "Gerando solicitao para envio..."
cCodStatus := "100200"
oProcess:Track(cCodStatus, cTexto, cUsuarioProtheus)
// Assinale novos valores s macros existentes no html:
oProcess:oHtml:ValByName("B1_COD", cCodProduto)
oProcess:oHtml:ValByName("B1_DESC", SB1->B1_DESC)
oProcess:oHtml:ValByName("B1_PRV1", SB1->B1_PRV1)
// Repasse o texto do assunto criado para a propriedade especca do processo.
oProcess:cSubject := cAssunto
// Informe o endereo eletrnico do destinatrio.
oProcess:cTo := "bi@microsiga.com.br"
// Utilize a funcao WFCodUser para obter o cdigo do usurio Protheus.
oProcess:UserSiga := WFCodUser("BI")
// Antes de assinalar o ID do processo no campo, vericado se realmente o
// campo existe na tabela SB1.
If SB1->(FieldPos("B1_WFID")) > 0
If RecLock("SB1",.f.)
47
Todos os direitos reservados.
Workow
SB1->B1_WFID := oProcess:fProcessID
MsUnLock()
EndIf
EndIf
// Informe o nome da funo de retorno a ser executada quando a mensagem de
// respostas retornar ao Workow:
oProcess:bReturn := "U_MT010INC(1)"
// Informe o nome da funo do tipo timeout que ser executada se houver um timeout
// ocorrido para esse processo. Neste exemplo, ela ser executada cinco minutos aps o envio
// do e-mail para o destinatrio. Caso queira-se aumentar ou diminuir o tempo, altere
// os valores das variveis: nDias, nHoras e nMinutos.
oProcess:bTimeOut := {"U_MT010INC(2)", nDias, nHoras, nMinutos}
// Adicione as informaces a serem includas na rastreabilidade
cTexto := "Enviando solicitao..."
cCodStatus := "100300"
oProcess:Track(cCodStatus, cTexto , cUsuarioProtheus)
// Aps ter repassado todas as informaces necessrias para o Workow,
// execute o mtodo Start() para gerar todo o processo e enviar a mensagem
// ao destinatrio.
oProcess:Start()
// Adicione as informaces a serem includas na rastreabilidade
cTexto := "Aguarde retorno..."
cCodStatus := "100400"
oProcess:Track(cCodStatus, cTexto , cUsuarioProtheus) // Rastreabilidade
Return
/*
// APVRetorno - Esta funo executada no retorno da mensagem enviada
// pelo destinatrio. O Workow recria o processo em que
// parou anteriormente na funo APVInicio e repassa a
// varivel objeto oProcess por parmetro.
*/
User Function APVRetorno(oProcess)
Local nPrecoVenda
Local cCodProduto, cCodStatus, cTexto
// Obtenha o cdigo do produto a partir do html
cCodProduto := oProcess:oHtml:RetByName("B1_COD")
// Obtenha o novo preo de venda informado pelo destinatrio:
nPrecoVenda := Val(oProcess:oHtml:RetByName("B1_PRV1"))
dbSelectArea("SB1")
SB1->(dbSetOrder(1))
48 Todos os direitos reservados. Workow
// Localize o produto cadastrado na tabela SB1
If SB1->(dbSeek(xFilial("SB1") + cCodProduto))
// Adicione as informaces a serem includas na rastreabilidade.
cTexto := "Atualizando o preo de venda..."
cCodStatus := "100500"
// Atravs do atributo :cRetFrom da classe twfprocess, possvel obter o endereo
// eletrnico de quem respondeu a mensagem. Obtenha-o para adicion-lo rastreabilidade.
oProcess:Track(cCodStatus, cTexto, oProcess:cRetFrom)
// Atualize o preo de venda:
If RecLock( "SB1", .f. )
SB1->B1_PRV1 := nPrecoVenda
MsUnLock()
EndIf
Else
// Adicione as informaces a serem includas na rastreabilidade.
cTexto := "No foi possvel encontrar o produto: " + cCodProduto
cCodStatus := "100900"
oProcess:Track(cCodStatus, cTexto, oProcess:cRetFrom)
EndIf
// Adicione as informaces a serem includas na rastreabilidade.
cTexto := "Finalizando o processo..."
cCodStatus := "100800" // Cdigo do cadastro de status de processo
oProcess:Track(cCodStatus, cTexto, oProcess:cRetFrom) // Rastreabilidade
Return
/*
// APTimeOut - Esta funo ser executada a partir do Scheduler no tempo
// estipulado pela propriedade :bTimeout da classe TWFProcess.
// Caso o processo tenha sido respondido em tempo hbil, essa
// execuo ser descartada automaticamente.
*/
User Function APTimeOut(oProcess)
Local nDias := 0, nHoras := 0, nMinutos := 10
Local cCodStatus, cHtmlModelo
Local cCodProduto, cTexto, cTitulo
cHtmlModelo := "\Workfow\atuapv.htm"
cTitulo := "Atualizao do preo de venda"
// Adicione as informaces a serem includas na rastreabilidade.
cTexto := "Executando TIMEOUT..."
cCodStatus := "100600"
// A funo APTimeOut executada, automaticamente, pelo sistema.
// Devido no haver usurio associado execuo, ser omitido o parmetro
// correspondente.
oProcess:Track(cCodStatus, cTexto) // Rastreabilidade
49
Todos os direitos reservados.
Workow
// Na execuo da funo de timeout, no se caracteriza retorno de mensagem.
// Neste caso, deve usar o mtodo :ValByName() no lugar do mtodo :RetByName()
// para obter os valores contidos no html.
cCodProduto := oProcess:oHtml:ValByName("B1_COD")
// Finalize a tarefa anterior para no car pendente.
oProcess:Finish()
dbSelectArea("SB1")
SB1->(dbSetOrder(1))
// Localize o produto na tabela SB1:
If SB1->(dbSeek(xFilial("SB1") + cCodProduto))
// Crie uma nova tarefa, aproveitando o contedo do html preenchido anteriormente
// com o uso do terceiro parmetro com o valor lgico igual a .T. (verdadeiro)
oProcess:NewTask(cTitulo, cHtmlModelo, .T.)
// Antes de assinalar o ID do processo no campo, verique se realmente o campo
// existe na tabela SB1:
If SB1->(FieldPos("B1_WFID")) > 0
If RecLock("SB1",.f.)
SB1->B1_WFID := oProcess:fProcessID
MsUnLock()
EndIf
EndIf
// Acrescente a palavra "(REENVIO)" no incio do assunto da mensagem para
// reforar que houve um timeout executado.
If (Left(oProcess:cSubject,9) != "(REENVIO)")
oProcess:cSubject := "(REENVIO)" + oProcess:cSubject
EndIf
oProcess:cTo := "bi@microsiga.com.br"
// Utilize a funo WFCodUser para obter o cdigo do usurio Protheus.
oProcess:UserSiga := WFCodUser("BI")
// Redena a funo de retorno a ser executada.
oProcess:bReturn := "U_MT010INC(1)"
// Redena a funo de timeout a ser executada.
oProcess:bTimeOut := {"U_MT010INC(2)", nDias, nHoras, nMinutos}
// Adicione as informes a serem includas na rastreabilidade
cTexto := "Reenviando a solicitao..."
cCodStatus := "100700"
oProcess:Track(cCodStatus, cTexto)
50 Todos os direitos reservados. Workow
// Inicie o processo
oProcess:Start()
Else
// Adicione as informaces a serem includas na rastreabilidade.
cTexto := "No foi possvel encontrar o produto: " + cCodProduto
cCodStatus := "100900" // Cdigo do cadastro de status de processo
oProcess:Track(cCodStatus, cTexto) // Rastreabilidade
EndIf
Return
Exerccio 2
Compilar e executar o ambiente COMPRAS.
Aps compilar o programa ATUAPV.PRW, execute o ambiente de compras, selecione a opo de
menu Atualizaes | Cadastros | Produtos e inclua um novo produto. Ao conrmar a gravao
pressionando o boto Ok, ser enviado um e-mail ao destinatrio contendo, no corpo o html, os
dados do produto e o campo do valor do preo de venda a ser alterado.
Ao receber o e-mail no cliente de e-mail, coloque o valor no campo Preo de Venda R$ e clique
em Enviar.
Garanta que o Scheduler esteja ativo e a funo de recebimento de mensagens do Workfow esteja
agendada (faa o agendamento de 1 em 1 minuto para que a resposta seja quase prontamente
processada). Passados alguns segundos, consulte o cadastro do produto recm-includo e veja
que o preo de venda foi atualizado com o valor informado no e-mail.
Exerccio 3
Consultas (Rastreabilidade de processo)
A qualquer momento, podero ser realizadas consultas na janela de rastreabilidade para saber em
que situao est um determinado processo. A partir da opo de menu Miscelnea | Workow
| Rastreabilidade no prprio ambiente de compras (ou qualquer outro), possvel realizar tais
consultas.
No campo Pesq Padro:, selecione a pesquisa padro WFSB1 e, no campo Processo:, pressione
F3 para realizar a pesquisa da tabela SB1 (produtos). Ao selecionar o produto, voc ter algumas
informaes inerentes ao processo gerado para o produto escolhido. Observe que todos os textos
que inclumos atravs do mtodo oprocess:track(...) sero vistos nesta janela.
Exerccio 4
Consultas (Processo por usurios)
A qualquer momento, o usurio do sistema poder realizar consultas sobre pendncias geradas
pelo Workow, simplesmente selecionando a opo de menu Miscelnea | Workow | Processos
Usuarios disponvel nos ambientes.
51
Todos os direitos reservados.
Workow
Se o usurio atual for administrador, ele poder ver as pendncias geradas para qualquer outro
usurio cadastrado no sistema. Caso contrrio, somente visualizar as pendncias relacionadas a ele
prprio.
Anotaes
52 Todos os direitos reservados. Workow
Autenticao SMTP: validao de usurio e senha no servidor de e-mail para envio de
mensagens.
Browser internet: programa que permite navegar nas pginas disponveis na internet. O Internet
Explorer um exemplo de browser.
Caixa de correio: nome dado a um diretrio em que sero armazenadas todas as mensagens
recebidas, a enviar, enviadas etc. Em agrupamento de pastas nomeadas inbox, outbox, sent etc.
pertencentes a uma determinada conta de e-mail.
Cliente de e-mail: sofware de controle de e-mails pelo usurio nal. Exemplos: OutLook Express e
OutLook XP.
Conta de e-mail: endereo de e-mail existente em um servidor de e-mail.
Cookies: arquivos gravados na estao do usurio, pelos diversos sites, para leitura de informaes
daquela estao.
Html (Hyper Text Mark-up Language): um arquivo no formato texto que contm diversos tipos
de comando que controlam a apresentao visual no browser internet.
Java Script: linguagem contida nos HTMLs, permitindo validaes e aes diversas.
Messenger do Protheus: recurso disponvel no Protheus que serve para avisar aos usurios de
algum processo ou mensagem de Workow que esteja disponvel no aguardo de uma ao a ser
tomada.
Processo: conjunto de tarefas a serem executadas, baseadas em uma regra de negcio que
determina um ou mais caminhos a serem seguidos denominados fuxo.
Protocolo POP3 ou IMAP: recurso disponvel pelos servidores de e-mails para permitir o acesso
caixa de correio (leitura).
Protocolo SMTP: recurso disponvel pelos servidores de e-mails para o envio de mensagens
atravs de uma conta de e-mail.
Rastreabilidade: recurso necessrio para localizar e identicar as propriedades (status, descrio,
data, participante etc.) de um determinado processo de Workow.
Retorno: conjunto de respostas obtidas por e-mail ou pela postagem de um html via browser
internet, atravs do servio http que sero usados para realizar atualizaes na base de dados do
Protheus.
Servio http: servio utilizado pelos servidores internet que disponibiliza aos usurios o acesso
internet.
G
l
o
s
s

r
i
o
53
Todos os direitos reservados.
Workow
Servidor de e-mail: software de controle de envios e recebimento de e-mails. Exemplos: Exchange
e Domino.
Timeout: tempo fora do prazo limite (tempo excedido). Procedimento a ser executado aps o
tempo limite esperado por uma ao a ser tomada por um participante na trajetria de um uxo
de processo.
Workow: automao do uxo de processo.
Nmero de registro:
P10200907

Você também pode gostar