Академический Документы
Профессиональный Документы
Культура Документы
Workflow...........................................................................................................................3
Principais benefcios:.....................................................................................................3
Fluxo Operacional.............................................................................................................5
Configurao.....................................................................................................................6
Requisitos......................................................................................................................6
Correio Eletrnico.........................................................................................................7
Protocolo........................................................................................................................7
Contas de e-mail............................................................................................................8
Cadastrar a conta de e-mail do Workflow.......................................................................10
Pasta Caixa de Correio................................................................................................11
Pasta Receber Mensagens............................................................................................12
Parmetros.......................................................................................................................16
Estrutura de diretrio de mensagens................................................................................22
Processos Workflow........................................................................................................25
Status Workflow..............................................................................................................29
E-mails substitutos...........................................................................................................32
Scheduler.........................................................................................................................34
Ativao.......................................................................................................................34
Agendando...................................................................................................................35
Agendar recebimento de mensagens do Workflow.....................................................38
Agendar envio de mensagens do Workflow................................................................38
Requisitos para desenvolvimento....................................................................................40
Html MODELO WORKFLOW...................................................................................41
Post message................................................................................................................41
Macro substituio.......................................................................................................42
Tabelas.........................................................................................................................44
Criando um processo em Advpl - funes.......................................................................47
Classe TWFProcess.....................................................................................................47
Mtodos.......................................................................................................................48
Propriedades................................................................................................................50
Glossrio..........................................................................................................................61
2 WorkFlow
WorkFlow - 3
Workflow
4 WorkFlow
WorkFlow - 5
6 WorkFlow
Fluxo Operacional
WorkFlow - 7
Configurao
Requisitos
Correio Eletrnico
Protocolo
WorkFlow - 9
POP3
IMAP
Exemplo:
[Mail]
Protocol=IMAP
Folder=inbox
Contas de e-mail
10 WorkFlow
WorkFlow - 11
12 WorkFlow
WorkFlow - 13
14 WorkFlow
Caixa de Correio
Opo
Item
Descrio
Correio
Tempo Espera
Correio
Remetente
Nome
Endereo
Nome
do
mensagem.
remetente
Endereo eletrnico.
WorkFlow - 15
da
Habilitar
Receber mensagens
Opo
Item
Descrio
Nome
Servidor (POP3
ou IMAP)
Porta
Login
16 WorkFlow
Conta
Senha
WorkFlow - 17
Enviar mensagens
Opo
Servidor
SMTP
Autenticao
Item
Descrio
Nome
Porta
Usurio
Nome
do
usurio
para
autenticao.
Alguns
servidores
exigem
esta
informao para envio de emails.
Senha
18 WorkFlow
Senha
de
autenticao.
acesso
para
Pasta Conexo
Conexo
Opo
Item
Descrio
LAN
Utiliza
a
conexo
j
estabelecida pelo usurio em
uma intranet.
DIAL-Up
Tipo
Discagem
*Conexes
WorkFlow - 19
Microsoft Windows.
Conta
Senha
Telefone
20 WorkFlow
WorkFlow - 21
Parmetros
O Workflow faz uso de uma srie de parmetros que
determinam a maneira como ele se comportar perante alguns
pontos estratgicos na execuo dos fluxos de processo. O
acesso janela de parmetros est disponvel na opo do
menu do configurador Ambiente | Workflow | Parmetros WF
22 WorkFlow
Pasta "Correio"
Correio
Opo
Caixa de
correio
Composio
da mensagem
Item
Parmetro
Descrio
Conta
MV_WFMLBO
X
Envia figura
do html como
anexo da
mensagem
MV_WFIMAG
E
Recurso
ainda
disponvel.
MV_WFHTML
Selecionando
esta
opo, o html passara a
fazer parte do corpo da
mensagem. O contrrio,
Envia html no
corpo da
mensagem
WorkFlow - 23
no
ir como anexo.
Envio
automtico
Usa Java
Script
MV_WFSNDA
U
Aps
a
criao
do
processo, o workflow
enviar a mensagem
imediatamente.
MV_WFJAVAS
No html, o Workflow
adicionar rotinas semiprontas em Java script.
Pasta "Processo"
Processos
Opo
Item
Parmetro
Descrio
Execuo de
retornos
Execuo(es)
de retorno(s)
simultneos
de processos.
MV_WFMAXJ
B
Define a quantidade de
processos de retorno
que
podero
ser
executados por vez.
24 WorkFlow
Esteja atento
nmero
licenas
disponveis e
capacidade
processamento
mquina.
quantidade
influenciar
performance
servidor.
WorkFlow - 25
ao
de
de
da
A
na
do
Reativar
processos
automaticame
nte
MV_WFREAC
T
MV_WFTRAN
S
Habilita o recurso de
transao
com
a
finalidade de conservar
a integridade dos dados
em caso de falha de
execuo.
Tratamento
de erros
Usar
TRANSAAO
na execuo
de funes de
RETORNO e
TIMEOUTs
Pasta "Notificao"
Notificao
26 WorkFlow
Opo
E-mail do
administrad
or
Item
Parmetro
MV_WFADMI
N
Endereo
Descrio
Endereo eletrnico do
administrador (es) do
sistema. Separe entre
;
(ponto-e-vrgula)
caso deseje informar
mais
do
que
um
endereo. Exemplo:
Adm1@prov.com.br;
adm2@prov.com.br
Enviar
notificao
Quando
ocorrer erro
ao executar
funes
Retorno e
Timeout.
Ao reativar
processos
pendentes.
Ao receber
mensagens
no
reconhecidas.
WorkFlow - 27
Pasta "Messenger"
Messenger
Opo
Item
Caminho
Parmetro
Descrio
MV_WFBROW
S
Arquivo executvel do
browser Internet que
dever estar no path da
estao.
MV_WFBRWS
R
IP ou Nomed PIPE do
servidor Protheus para
uso do servio http.
Adicione : + a porta,
caso seja diferente do
padro.
Browser
Internet
Servidor
Diretrio
HTTP
Caminho
MV_WFDHTT
P
Diretrio de trabalho do
servio http. Verifique o
identificador Path= na
seo
[HTTP]
do
arquivo mp8Srv.ini para
obter o diretrio de
trabalho.
Habilitar
Habilitar
MV_WFMESS
28 WorkFlow
messenger
ser
Messenger
automaticamente.
(prximo logon)
WorkFlow - 29
executado
automaticamente
no
prximo
login
de
qualquer
ambiente
Protheus.
30 WorkFlow
WorkFlow - 31
32 WorkFlow
WorkFlow - 33
34 WorkFlow
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.
WorkFlow - 35
Process
Tasks
Temp
Archive
Ignored
Inbox
Outbox
36 WorkFlow
Sent
WorkFlow - 37
1.
2.
3.
4.
5.
38 WorkFlow
WorkFlow - 39
40 WorkFlow
WorkFlow - 41
42 WorkFlow
WorkFlow - 43
Processos Workflow
O cadastro de processos do Workflow, apesar de no ser
obrigatrio, tem a importncia de amarrar a seqncia de
passos de um fluxo de processo para ser visualizado a partir da
janela de consulta da rastreabilidade.
Exemplo de processos a serem cadastrados:
Cotao de preos.
Liberao de crdito.
44 WorkFlow
WorkFlow - 45
Cadastro de Processos
Agrupamento
Campos
Descrio
Cdigo
Nome
Nome do processo.
Codificao
46 WorkFlow
Informativo
Pesquisa
genrica
Visio
Tabelas
utilizadas
para
Pesquisa
Padro
para
Arquivo .vsd
WorkFlow - 47
Exerccio
A partir do configurador, selecione a opo de menu Ambiente |
Workflow | Processos Workflow e crie um novo processo conforme o
contedo dos campos apresentados na tabela abaixo:
Cdigo
ATUAPV
Descrio
ATUALIZACAO DO PRECO DE VENDA
48 WorkFlow
Pesq Padro
WFSB1 - Produto
Status Workflow
O cadastro de Status o complemento do cadastro de
processo. Atravs dele, determina-se cada etapa que se realizar
em um fluxo de processo, sendo muito til para determinar pontos
de rastreabilidade dentro de um grande processo.
Para cadastrar status workflow:
Em Ambiente | Workflow | Status Workflow, selecione a opo
"Incluir".
O sistema apresenta a tela de incluso da rotina.
Cadastro de Status
WorkFlow - 49
Agrupamento
Codificao
Informativo
Campos
Descrio
Cd
Processo
Cdigo do processo.
Cd Status
Descrio
Tempo
mdio
50 WorkFlow
Exerccio
Ainda no configurador, selecione a opo de menu Ambiente |
Workflow | Status Workflow e cadastre alguns status para o
processo mencionado, conforme o contedo dos campos
apresentados abaixo:
Cd Processo
ATUAPV
ATUAPV
ATUAPV
ATUAPV
ATUAPV
ATUAPV
ATUAPV
ATUAPV
ATUAPV
Cd Status
100100
100200
100300
100400
100500
100600
100700
100800
100900
Descrio
INICIANDO
GERANDO PROCESSO PARA ENVIO
ENVIANDO MENSAGEM
AGUARDANDO RETORNO
ATUALIZANDO PRECO DE VENDA
TIMEOUT
REENVIANDO A MENSAGEM
FINALIZANDO
ERRO DE EXECUO
WorkFlow - 51
E-mails substitutos
O cadastro de e-mails substitutos um recurso disponvel no
Workflow que tem por finalidade 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 fluxo do processo permanea ausente por
motivos diversos (frias, afastamento etc.).
Para cadastrar e-mails substitutos:
Em Ambiente | Workflow | E-mails Substitutos, clique na opo
"Incluir".
O sistema apresenta a janela de incluso e Confirme.
52 WorkFlow
Campos
Descrio
Endereo eletrnico do participante que
permanecer ausente por um perodo de tempo.
Do e-mail
Endereo
eletrnico
Perodo
Para
mail
e-
Data incio
Data final
Dias
WorkFlow - 53
vigorar
Exerccio
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
54 WorkFlow
Scheduler
WorkFlow - 55
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.
6.
7.
8.
9.
99 cdigo da empresa.
01 cdigo da filial.
ENVTOP ambiente no qual ser executado o Scheduler.
T Valor lgico (True ou False). True, Indicar que realizar
reativao dos processos nas tabelas do Workflow.
10. MOD Nome do ambiente do qual o Workflow obter licenas.
WorkFlow - 57
58 WorkFlow
Identificao
Freqncia
Perodo
Campos
Descrio
Cdigo
Nome
Nome simplificado.
Descrio
Descrio do job.
Diria
Semanal
Mensal
Data
Incio
WorkFlow - 59
Inicial
Perodo Final
Perodo
Job
Environment
Hora
Incio
Data final
Hora final
Intervalo
Ao
Ambiente
Exemplo:
WFReturn( 99, 01 )
Agendar envio de mensagens do Workflow
60 WorkFlow
Exemplo:
WFSendMail( 99, 01 )
WorkFlow - 61
62 WorkFlow
Post message
WorkFlow - 63
64 WorkFlow
<html>
<head>
<meta http-equiv="Content-Type"
charset=iso-8859-1">
content="text/html;
Macro substituio
WorkFlow - 65
name="LB_NOME"
value="RM
66 WorkFlow
TextField:
<input type="text" size="13" name="T7" value=%quantidade%>
TextArea:
<textarea
name="S1"
%</textarea>
rows="4"
cols="74">%observacao
checked
name="%aprovacao%"
Radio Button:
<input
type="radio"
value="Sim">Sim.
<br>
<input type="radio" name="%aprovacao%" value="Nao">No.
Combo Box:
<select
name="list"
size="1"><option
%</option>
</select>
selected>%itens
Check Box:
<input
type="checkbox"
value="%item1%">Item 1
name="checkbox"
WorkFlow - 67
68 WorkFlow
Exerccio
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=iso8859-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,
sansserif">Atualização
do
Preço
de
Venda</font></strong></p>
</td></tr><tr bordercolor="#66CCFF">
<td height="20" bgcolor="#DFEFFF">
<font size="1">Código:</font></td>
<td
bgcolor="#DFEFFF"><font
size="1">Descrição:</font></td>
<td bgcolor="#DFEFFF"><font size="1">Preç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>
WorkFlow - 69
70 WorkFlow
Tela Pronta:
WorkFlow - 71
72 WorkFlow
pontos de entrada;
WorkFlow - 73
Classe TWFProcess
74 WorkFlow
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.
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 identificar 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.
WorkFlow - 75
Exemplo:
oP:NewTask("Criando Aprovacao", "\Workflow\WFW120p.htm" )
:AttachFile(<cArquivo>)
Este mtodo responsvel pela incluso de arquivos anexos
mensagem. Esses arquivos devero estar abaixo do root path do
Protheus.
76 WorkFlow
Parmetros:
cArquivo: caminho e nome do arquivo a ser anexo mensagem.
Exemplo:
oP:AttachFile(\Workflow\teste.txt)
:Start(<cHtmlCopiarPara>) -> cProcessKey
Este mtodo responsvel por construir todo o processo, gravar
os registros nas tabelas do Workflow e enviar a mensagem para os
destinatrios. O valor de retorno uma chave composta pela
codificao ProcessID + TaskID e nmeros aleatrios, no total de
17 algarismos em hexadecimal.
Parmetros:
1. cHtmlCopiarPara: Caminho em que o Workflow dever realizar
uma cpia do html final.
Exemplo:
cID := oP:Start(\Workflow\copia)
if file( \Workflow\copia\ + cID)
conout(Arquivo copiado com sucesso.)
endif
:Finish()
Este mtodo responsvel por finalizar o processo. Aps a
finalizao, ele no estar mais disponvel para execues do tipo
retorno e timeout.
Exemplo:
oP:Finish()
WorkFlow - 77
:Track(<cCodStatus>,<cDescr>,<cUsuario>)
Este mtodo responsvel por incluir as descries dos passos
seguidos pelo fluxo 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
78 WorkFlow
:cBody
Esta propriedade armazenar um texto que permanecer no corpo
da mensagem. Caso seja utilizado, o html ir como anexo da
mensagem.
Exemplo:
oP:cBody := Testando...
:bReturn
Esta propriedade contm o nome da funo que ser executada no
momento em que o Workflow 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 especificados 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}}
WorkFlow - 79
: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", "\Workflow\WFW120p.htm" )
cTaskID := oP:fTaskID
:oHTML
Esta propriedade responsvel pelo tratamento das palavraschaves no html mencionado no mtodo :NewTask(). Esse objeto
uma referncia da classe TWFHtml() e disponibiliza dois dos
mtodos mais importantes :RetByName() e ValByName().
:oHTML:ValByName(<cMacro>,<uConteudo>)
80 WorkFlow
WorkFlow - 81
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(
>SB1_COD )
82 WorkFlow
produto.codigo
),
SB1-
Exerccio
Criar processo de Workflow 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 fluxo do processo com
o uso das classes e funes do Workflow. Essa funo (ponto de
entrada) ser executada a partir do momento em que for pressionado
o boto OK, na confirmao 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
WorkFlow - 83
//
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"
// Arquivo html template utilizado para montagem da aprovao
cHtmlModelo := "\Workflow\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 identifique 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
rastreabilidade.
oProcess:Track(cCodStatus,
cTexto,
Rastreabilidade
mtodo
responsvel
cUsuarioProtheus)
pela
//
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 especfica 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, verificado 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
// Informe o nome da funo de retorno a ser executada quando a
mensagem de
// respostas retornar ao Workflow:
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)
WorkFlow - 85
//
/*
// APVRetorno - Esta funo executada no retorno da mensagem
enviada
//
pelo destinatrio. O Workflow 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))
// 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
86 WorkFlow
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 := "\Workflow\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
WorkFlow - 87
oProcess:bTimeOut
nMinutos}
:=
{"U_MT010INC(2)",
nDias,
nHoras,
Exerccio
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 confirmar 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 Workflow 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.
WorkFlow - 89
Exerccio
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 | Workflow |
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
Consultas (Processo por usurios)
A qualquer momento, o usurio do sistema poder realizar consultas
sobre pendncias geradas pelo Workflow, simplesmente selecionando
a opo de menu Miscelnea | Workflow | Processos Usuarios
disponvel nos ambientes.
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.
90 WorkFlow
WorkFlow - 91
92 WorkFlow
WorkFlow - 93
94 WorkFlow
WorkFlow - 95
96 WorkFlow
WorkFlow - 97
98 WorkFlow
WorkFlow - 99
100 WorkFlow
WorkFlow - 101
102 WorkFlow
WorkFlow - 103
104 WorkFlow
WorkFlow - 105
106 WorkFlow
WorkFlow - 107
108 WorkFlow
WorkFlow - 109
110 WorkFlow
WorkFlow - 111
112 WorkFlow
WorkFlow - 113
114 WorkFlow
WorkFlow - 115
116 WorkFlow
WorkFlow - 117
118 WorkFlow
Glossrio
Autenticao SMTP: validao de usurio e senha no servidor de email 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 final.
Exemplos: OutLook Express e OutLook XP.
Conta de e-mail: endereo de e-mail existente em um servidor de email.
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
Workflow 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 fluxo.
Protocolo POP3 ou IMAP: recurso disponvel pelos servidores de emails para permitir o acesso caixa de correio (leitura).
WorkFlow - 119
120 WorkFlow