PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  Compras
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Uso do workflow para envio cotação
Versão:
12.1.27
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
TESTE_WORK.txt (anexo)
ProdCP.htm (anexo)
MT131WF.prw (anexo)
TELA_COTACAO.png (anexo)
TELA_ERROAnota__o 2022-03-25 103009.png (anexo)
erro_envio.txt (anexo)
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário SMIMMICH SMIMMICH em 13/10/2021, 09:18 h
Local: RS  Registro: 13/10/2021  Postagens: 11
Silvia Immich

bom dia
Necessito de ajuda para usar o workflow no envio e retorno da cotação ao fornecedor
Tudo ainda é feito manualmente o que não é nada produtivo.

No envio de cotação aos fornecedores pode ser enviado que tipo de arquivo, só HTML

Como meu fornecedor vai editar esta cotação e me mandar de volta com os preços atualizados????

Ele vai salvar isso em algum software editar e me devolver como anexo ????

**** Encontrei essa resposta abaixo numa documentação de 2010. Não sei se isso é valido ainda e como conseguir esse anexo de que fala...
Grato
Silvia


É o seguinte, o fornecedor vai receber a cotação por e-mail, formato HTML, todas as funções estão embutidas em javascript e quando ele clicar na opção enviar, que fica dentro de um formulario html com a action = mailto:seuemail. o javascript no navegador, através do metodo post vai enviar um e-mail, para a conta que vc enviou o e-mail. Tipo o java script vai montar um layout com as informações.

Quando o e-mail chegar na sua empresa, deverá ser lido pelo workflow, (conferir as configurações da porta SMTP, no cadastro de e-mail do workflow) e ai ele chama a função especifica de um rdmake, para inserir os dados no protheus


Esse integração via workflow, já tem uma pronta aqui no help fácil, está em anexo de se precisar, é so adequar a sua necessidade


Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário TECLESOFT TECLESOFT em 13/10/2021, 10:51 h
Local: SP  Registro: 24/04/2012  Postagens: 215
Silvia, primeiro ponto, se você não tem ou não é a pessoa que desenvolve tanto em ADVPL quanto noções de HTML e assuntos relacionados a cliente/servidor, irá bater cabeça um MONTÃO, e irá conseguir sim fazer, mas a qual custo de tempo de energia?!.
Então aconselho a passar isto para o seu pessoal de DEV, agora se não tem ninguém de desenvolvimento as coisas complicam mais.
Vou tentar fazer um BREVE resumo.
1 - Você precisa montar o seu HTML, (pode ser desde o mais simples até o mais elaborado, contendo ListBox, ComboBox, caixa de texto aberta para digitar observações, tabela.. etc.. etc..etc.. Dentro deste HTML o segredo é deixar os campos dos quais você quer popular com os dados do protheus entre !A1_NREDUZ!, desta forma do protheus for fazer o MERGE (mesclar) os dados ao seu HTML (é como se fosse uma mala direta) onde o HTML é a sua matriz contendo campos curinga e ai você vem com os dados e populo a sua matriz.. Pois vem.. Voltando.
Exemplo: Se você quiser que no HTML saia assim:
Caro Fornecedor Peças Industriais (onde Peças Industriais) é o nome reduzido dele no protheus.. No HTML você deverá deixar assim:

Razão Social: !A2_NREDUZ!

Desta forma quando você for rodar o processo de Workflow fará o MERGE do campo curinga do HTML !A2_NREDUZ! pelo dado real da tabela SA2.
E assim você vai colocando mais dados... Tabela, contendo os itens que você quer orçar, e ai você deixa o campo do lado PREÇO aberto para o cara digitar (ai é brincar com o HTML)...

2 - Como o cara irá retornar isso para você e como você saberá que quem tá retornando tal email é de fato quem você mandou etc..
-- Dentro do HTML é possível enviar neste formulário que você vai montar contendo os preços, itens e tudo ref,. ao fornecedor algum campos do tipo HIDEM
Ex:                                                                                                                        


Exemplo, esses campos será preenchidos com o ID o numero do processo ref. a criação deste WORKFLOW e quando o retorno da resposta do fornecedor estiver sendo enviada pelo fornecedor, você pode usar esses campos "ocultos" para validar junto com o CNPJ/NOME e depois dados que você enviou para o forncedor e validar se ele é ele mesmo, se o produto que você enviou é de fato o que ele está retornando com o preço que ele pode chegar.. etc..etc..etc..

Você deve estar se perguntando, OK.. entendi "mais ou menos" como vai, e como VOLTA..
É aqui que muita GENTE bate cabeça, ora, quando você está montando o fluxo do envio do Workflow, você tem uma propriedade que você precisa preencher que é ref ao retorno.

oProcess:bReturn := "U_WFRETWF(2)"

Ou seja, isso o protheus ira "injetar" dentro do seu HTML de envio quando você estiver mesclando os dados do HTML ao do fornecedor (isso no ADVPL tá.) se você ainda não tiver entendido que é lá.

E claro, quando você monta um ambiente de workflow você terá que abrir uma porta para que o cliente ao abrir o seu email e clicar no seu formulário ele estará acessando a porta que faz o direcionamento para o seu workflow do protheus né? senão o link não vai abrir porque não tem porta para o serviço de workflow do seu Protheus.

Então quando o fornecedor preencher TODOS os campos que você criou no HTML e deixou aberto para ele mudar, preencher etc.. Quando ele clicar no botão Confirmar do seu formulário ou enviar (sei lá o nome que você vai dar para o botão).. O sistema de Workflow sabe exatamente qual fonte do seu PROTHEUS chamar neste meu caso será o fonte WFRETWF (passando ainda o parametro 2) porque dentro deste fonte WFRETWF eu tenho um controle para saber se for ID 2 esse retorno está vindo de um fornecedor, mas o ID pode ser 4 porque dentro deste formulário tem um controle de alçada que antes de sair para o fornecedor externo, um gerente pode receber esse mesmo link, e ai neste caso quando estou enviando o fluxo para o gerente por exemplo eu posso mudar o oProcess:bReturn := "U_WFRETWF(4)", ou seja.. o link que o fornecedor recebeu vai processar no returno o fonte WFRETWF passando o parametro 2 já quando vai ao gerente retorna 4 e ai dentro de cada retorno você sabera o que fazer, se avança de nível enviando novamente um outro WF só que agora ao fornecedor já que o GERENTE aprovou para seguir a cotação ou se é retorno do fornecedor já e então é para comparar os valores, ou atualiza o orçamento para então comprar via protyheus mesmo..

Eu acho que em resumo é isso.. O segredo tá em montar um ambiente de WF no Protheus, garantir que a porta está aberta no seu firewall fazendo o redirect para o servidor do protheus, montar o seu HTML lembrando dos campos curinga entre !campo! ou %campo%, e ao montar o fluxo de workflow no ADVPL.. Neste nosso caso do campo A2_NREDUZ estaria sendo usado essa linha aqui no ADVPL para substituir o campo lá do HTML que você colocou entre %% ou !!.

Razão Social: !A2_NREDUZ! (isso estaria assim no HTML)

oProcLink:oHtml:ValByName("A2_NREDUZ", SA2->A2_NREDUZ) (Isso no ADVPL)

Vale lembrar que no HTML o nome não precisa ser o nome do CAMPO pode ser qualquer coisa, eu gosto de usar o nome do campo para ficar simples de identificar o que eu quero que saia no HTML ou até mesmo usar macrosubstituição se for necessário.
Mas poderia ser assim:

Razão Social: !NOMEFORNEC! (isso estaria assim no HTML)

oProcLink:oHtml:ValByName("NOMEFORNEC", SA2->A2_NREDUZ) (Isso no ADVPL)

Seja de um jeito ou de outro, quando o fluxo do Workflow iniciar ele encontrar essa linha aqui no seu ADVPL.

oProcLink:oHtml:ValByName("NOMEFORNEC", SA2->A2_NREDUZ)

Ele irá procurar no seu HTML alguma esse nome !NOMEFORNEC! e irá substituir pelo conteúdo da SA2->A2_NREDUZ.
Então para trocar os demais campos só repetir a linha e ao final fazer o start do fluxo para ser enviado ao fornecedor ou gerente.

oProcLink:Start()
Terá que entender de TWFProcess

oProcess := TWFProcess():New("cPCPROC", "Gera Html PC: " + _cFilial + "/" + Trim(_cNum))

Em resumo é isso. Espero que tenha esclarecido.








Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário SMIMMICH SMIMMICH em 14/10/2021, 08:32 h
Local: RS  Registro: 13/10/2021  Postagens: 11
Bom dia vc da TECLESOFT

Estou muito agradecida pelo tempo que vc se dispôs a colocar todos esses dados para mim.
Estou no desenvolvimento do Protheus a 20 anos.
Uma vez tentamos usar o workflow para envio de texto diário aos usuários (aniversariantes)

Não deu certo. Nunca funcionou direito. Desistimos.
Ainda temos os arquivos feitos em html. (muitos por sinal)
Desenvolvemos as rotinas para chamar esses arquivos mas o envio do email é feito por uma chamada diária num processo agendado no Windows.
Isso tem funcionado muito bem.

Só que esse texto montado em cima do html é impresso no corpo do email.
Para o fornecedor preciso dele montado e colocado no anexo do email para que ele pudesse retornar esse email.
E isso não sei muito bem. Mesmo que conseguisse como ir parar numa pasta para que o processo pudesse ler ele e efetuar a atualização da cotação.
Não creio que por esse caminho isso fosse possível.

Pelo que entendi vc colocar me preocupou um pouco esse link que o fornecedor terá acesso.
Acho que terei dificuldade de implantar isso. Há uma proteção muito grande aqui na empresa sobre esse acesso externo. Não sei se é totalmente seguro.

Coloquei em anexo um exemplo que funciona com uma chamada de agendamento para vc ter ideia até onde vai meu conhecimento em HTML.
O fornecedor se conectar na nosso servidor por um link é a única forma?

att

Silvia Immich

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário TECLESOFT TECLESOFT em 14/10/2021, 12:49 h
Local: SP  Registro: 24/04/2012  Postagens: 215
Silvia, mas o processo é bem transparente é apenas a abertura de uma porta do seu APPSERVER ref. ao serviço de Workflow.
É meio que "o mesmo" se você criasse um serviço de rest para servir algum dado para alguem externo à sua empresa (se bem que neste caso você poderia controlar por IP de origem a entrada pela porta do rest).. No seu caso de WF como será para VÁRIOS fornecedores e você nunca sabe quais serão, fica complicado fechar na regra do firewall essa porta responder apenas para IPs determinados uma vez que a segurança é alta em seu ambiente.
Porém para que o fornecedor possa atualizar dados dentro do seu ERP eu não vejo muitas maneiras não de não se abrir uma porta no seu firewall apontando para seu ambiente interno.
Porém uma maneira mais controlada seria tb a incursão de um middleware, este mesmo pode ficar hospedado em alguma AWS da vida e ela sim fala com o seu ERP de forma exclusiva e controlada e a sua página falaria com a AWS, e a AWS por webhook por exemplo contigo para você saber quando houve algum tipo de evento na sua pagina HTML ou no anexo (que ainda não entendi direito porque você não quer o HTML aberto no corpo do email e sim um anexo ao email)... Mas enfim fato é que o fornecedor tem que abrir seja o anexo ou direto no corpo do email, mudar os dados que você deixou aberto no html para ele poder fazer o envio, esse envio vai para a AWS, e de lá sim de forma EXCLUSIVA e SEGURA ela fala com o seu ERP.. é uma forma.. e existem agumas outras mais complexas que não sei se vale a pena esse tipo de debate neste momento do seu projeto.
Se quiser trocar mais figurinha pode chamar no zap ou skype (11) 9 85473078 ou teclesoft (skype), se puder ajudar claro que farei.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário SMIMMICH SMIMMICH em 14/10/2021, 15:02 h
Local: RS  Registro: 13/10/2021  Postagens: 11
Não considerei no corpo do email porque ainda não consegui imaginar como o sistema iria ler isso.
Preciso estudar mais sobre o processo.

Com relação ao link terei que ver com o gerente da área e decidir.
Agradeço a atenção.
att
Silvia

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário TECLESOFT TECLESOFT em 14/10/2021, 15:31 h
Local: SP  Registro: 24/04/2012  Postagens: 215
No corpo do email o sistema irá ler como um HTML normal mesmo (como um formulário) de cadastro da WEB mesmo..
O que o workflow irá fazer é meio que tirar o cara de dentro do Outlook e leva-lo para um ambiente WEB (promovido) pelo seu sistema de WORKFLOW, e após preencher o seu formulário e clicar em EnviarCotação, haverá no breturn do TWFPROCESS a rotina ADVPL que tem que ser chamada quando esse fluxo chegar do seu lado ai.
Veja em anexo um simples exemplo de formulário que aceita preenchimento por parte do cliente... isso já usei em clientes processando o retorno após as escolhas deles. Veja que há uma caixa para ele escrever o que quiser nas OBS, entao vc pode colocar qualquer componente HTML ai dentro para que o fornecedor/cliente faça algum tipo de modificação e ao clicar tudo isso você conseguirá pegar no retorno do seu WF de forma automática.
Veja se ajuda a "enxergar" uma solução.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário TECLESOFT TECLESOFT em 20/10/2021, 13:22 h
Local: SP  Registro: 24/04/2012  Postagens: 215
Agora.. uma coisa me ocorreu agora pouco.. o portal do fornecedor não atende? Já pararam para pensar nessa possibilidade?

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário SMIMMICH SMIMMICH em 25/03/2022, 14:50 h
Local: RS  Registro: 13/10/2021  Postagens: 11
Silvia Immich
Boa tarde
só agora consegui implantar essa ferramenta de envio de solicitação de compra.

Estou conseguindo enviar email e retorno para o fornecedor por workflow da cotação
Tem um campo nesse html que é o campo C8_OBS
E esse é campo MEMO
Como atualizo ele no retorno do html na SC8?

Dá erro.
Arquivos em anexo.
att
Silvia

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal