× Linguagem de Programação ADVPL

Perguntas Workflow via link

Mais
7 anos 9 meses atrás #31789 por rrabaldelli
Bom dia Pessoal.
Configurei e desenvolvi um Workflow para aprovação de pedidos de compras. Inicialmente fiz o sistema enviar um email em formato HTML e o aprovador clicava em Sim ou Não. Funcionou perfeitamente. Porém aqui na empresa utilizamos um programa para emails no celular e esse programa não retorna a resposta corretamente para o sistema ler e executar o retorno.
Portanto alterei a forma do Workflow para funcionar via link.
O sistema envia o link, eu abro clico na opção desejada, o browser aparece que a resposta foi enviada para o servidor, porém o sistema não executa a rotina de retorno.
Analisei o console do appserver e quando respondo via link aparece lá que o servidor recebeu a resposta, mas a rotina de retorno não é executada.
Alguém tem alguma ideia ou já passou por isso.
Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31790 por kanaamlrr
Respondido por kanaamlrr no tópico Workflow via link
Boa tarde Rafael,
Você poderia postar o código que você fez para análise?
Abraço!

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31791 por rrabaldelli
Respondido por rrabaldelli no tópico Workflow via link
Segue código que gera o HTML e o email com Link
Obrigado

oProcess:=TWFProcess():New("000001","WORKFLOW PARA APROVACAO DE PEDIDOS")
oProcess:NewTask('Inicio',"\WORKFLOW\HTM\AprovPedido.htm")
oHtml := oProcess:oHtml

oHtml:ValByName("cFILIAL" , WCR->C7_FILIAL)
oHtml:ValByName("cNUM" , WCR->C7_NUM)
oHtml:ValByName("cNIVEL" , WCR->CR_NIVEL)
oHtml:ValByName("cEMISSAO" , DTOC(WCR->C7_EMISSAO))
oHtml:ValByName("cSOLICIT" , Alltrim(Posicione('ZZU',1,xFilial('ZZU')+WCR->C1_USER,'ZZU_NOME')))
oHtml:ValByName("cCODAPROV" , WCR->CR_USER)
oHtml:ValByName("cCODAPROV2" , WCR->CR_APROV)
oHtml:ValByName("cAPROV" , "")
oHtml:ValByName("cSTATUS" , WCR->CR_STATUS)
oHtml:ValByName("cMOEDA" , WCR->C7_MOEDA)
oHtml:ValByName("cMOTIVO" , WCR->CR_OBS)
oHtml:ValByName("it.ITEM" , {})
oHtml:ValByName("it.PRODUTO" , {})
oHtml:ValByName("it.DESCRI" , {})
oHtml:ValByName("it.UM" , {})
oHtml:ValByName("it.QUANT" , {})
oHtml:ValByName("it.VALOR" , {})

dbSelectArea("WCR")
dbGoTop()
While WCR->(!EOF())
aadd(oHtml:ValByName("it.ITEM") ,WCR->C7_ITEM )
aadd(oHtml:ValByName("it.PRODUTO") ,WCR->C7_PRODUTO )
aadd(oHtml:ValByName("it.DESCRI") ,WCR->B1_DESC )
aadd(oHtml:ValByName("it.UM") ,WCR->B1_UM )
aadd(oHtml:ValByName("it.QUANT") ,TRANSFORM(WCR->C7_QUANT,'@E 999,999.99' ))
aadd(oHtml:ValByName("it.VALOR") ,TRANSFORM(WCR->C7_TOTAL,'@E 999,999.99' ))
nTotal += WCR->C7_TOTAL
WCR->(dbSkip())
End

oHtml:ValByName("nTotal", TRANSFORM(nTotal,'@E 999,999.99' ))
oProcess:cTo := "\TEMP"
cMailID := oProcess:Start()

oProcess:NewTask('Link',"\WORKFLOW\HTM\LinkPedido.htm")
oHtml:ValByName('pedido' , cNumPed)
oHtml:ValByName('aprovador' , cNomeAP)
oHtml:ValByName('proc_link', 'http://IP:8082/wf/'+ cMailId + '.htm' )
oProcess:cTo := cEmail
oProcess:cSubject := "WORKFLOW - Aprovação de Pedido - "+cNumPed
oProcess:bReturn := "U_WFCOM02()"
oProcess:bTimeOut := {{"U_WFCOM03()", 0 , 20, 00 }}
oProcess:Start()
oProcess:Free()
oProcess:= Nil

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31792 por kanaamlrr
Respondido por kanaamlrr no tópico Workflow via link
Cara, o erro está no bReturn.
Você está utilizando o bReturn no processo que envia o link e não no retorno do seu HTML

Tente dessa forma:
oProcess:=TWFProcess():New("000001","WORKFLOW PARA APROVACAO DE PEDIDOS")
oProcess:NewTask('Inicio',"\WORKFLOW\HTM\AprovPedido.htm")
oHtml := oProcess:oHtml

oHtml:ValByName("cFILIAL"	, WCR->C7_FILIAL)
oHtml:ValByName("cNUM"	, WCR->C7_NUM)
oHtml:ValByName("cNIVEL"	, WCR->CR_NIVEL)
oHtml:ValByName("cEMISSAO"	, DTOC(WCR->C7_EMISSAO))
oHtml:ValByName("cSOLICIT"	, Alltrim(Posicione('ZZU',1,xFilial('ZZU')+WCR->C1_USER,'ZZU_NOME')))
oHtml:ValByName("cCODAPROV"	, WCR->CR_USER)
oHtml:ValByName("cCODAPROV2"	, WCR->CR_APROV)
oHtml:ValByName("cAPROV"	, "")
oHtml:ValByName("cSTATUS"	, WCR->CR_STATUS)
oHtml:ValByName("cMOEDA"	, WCR->C7_MOEDA)
oHtml:ValByName("cMOTIVO"	, WCR->CR_OBS)
oHtml:ValByName("it.ITEM"	, {})
oHtml:ValByName("it.PRODUTO"	, {})
oHtml:ValByName("it.DESCRI"	, {})
oHtml:ValByName("it.UM"	, {})
oHtml:ValByName("it.QUANT"	, {})
oHtml:ValByName("it.VALOR"	, {})

dbSelectArea("WCR")
dbGoTop()
While WCR->(!EOF())
aadd(oHtml:ValByName("it.ITEM") ,WCR->C7_ITEM	)
aadd(oHtml:ValByName("it.PRODUTO") ,WCR->C7_PRODUTO	)
aadd(oHtml:ValByName("it.DESCRI") ,WCR->B1_DESC	)
aadd(oHtml:ValByName("it.UM") ,WCR->B1_UM	)
aadd(oHtml:ValByName("it.QUANT") ,TRANSFORM(WCR->C7_QUANT,'@E 999,999.99' ))
aadd(oHtml:ValByName("it.VALOR") ,TRANSFORM(WCR->C7_TOTAL,'@E 999,999.99' ))
nTotal += WCR->C7_TOTAL
WCR->(dbSkip())
End

oHtml:ValByName("nTotal", TRANSFORM(nTotal,'@E 999,999.99' ))
oProcess:cTo := "\TEMP"
oProcess:bReturn := "U_WFCOM02()"
oProcess:bTimeOut := {{"U_WFCOM03()", 0 , 20, 00 }}
cMailID := oProcess:Start()

oProcess:NewTask('Link',"\WORKFLOW\HTM\LinkPedido.htm")
oHtml:ValByName('pedido'	, cNumPed)
oHtml:ValByName('aprovador'	, cNomeAP)
oHtml:ValByName('proc_link', 'http://IP:8082/wf/'+ cMailId + '.htm' )
oProcess:cTo := cEmail
oProcess:cSubject := "WORKFLOW - Aprovação de Pedido - "+cNumPed
oProcess:Start()
oProcess:Free()
oProcess:= Nil
Os seguintes usuário(s) disseram Obrigado: advpl

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31793 por rrabaldelli
Respondido por rrabaldelli no tópico Workflow via link
Perfeito.
Era isso mesmo.
Muito Obrigado :)

Por favor Acessar ou Registrar para participar da conversa.

Mais
6 anos 5 meses atrás #32591 por LEXX
Respondido por LEXX no tópico Workflow via link
Boa tarde Rafael, também preciso fazer a mesma coisa aqui, tem como disponibilizar o modelo (htm e prw) que usou por favor?

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.150 segundos
Joomla templates by a4joomla