Página 1 de 1

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 24 Abr 2018 02:48
por rochinha
Amiguinhos,

Não testei mas o conceito é esse:

Código: Selecionar todos

   cABCFARMA := "https://webserviceabcfarma.org.br/webservice/";
   
   cnpj_cpf  := "XXXXXXXXXXXX"
   senha     := "XXXX"
   cnpj_sh   := "XXXXXXXXXXXX"
   pagina    := "1"
   
   strXml :=          [?]
   strXml := strXml + [cnpj_cpf=]+cnpj_cpf
   strXml := strXml + [&senha=]+senha
   strXml := strXml + [&cnpj_sh=]+cnpj_sh
   strXml := strXml + [&pagina=]+pagina
   
   oABCFARMA:= TOleAuto():New( "MSXML2.ServerXMLHTTP" )
   oABCFARMA:Open( "GET", cABCFARMA+strXml, .F.)
   oABCFARMA:Send( strXml )
   MemoEdit( oABCFARMA:responseText )
Troque TOleAuto():New pelo sua função de acesso OLE preferida.

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 06 Jun 2018 23:23
por ar sistemas
Olá Rochinha, obrigado por seu tempo e dedicação.
Compilei o exemplo acima e apesar de não dar nenhum erro, o sistema parece que trava. Deixei rodando por 20 minutos e permaneceu 'travado'.

Poderia testar seu exemplo e verificar se descobre algum problema?

A única coisa que modifiquei no código foi retirar o ponto e virgula após definição da variável cABCFARMA.

Código: Selecionar todos

cABCFARMA := "https://webserviceabcfarma.org.br/webservice/"
Agradeço imensamente sua ajuda.

Compilador minigui -Roberto + mysql

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 07 Jun 2018 01:24
por rochinha
Amiguinhos,

ar sistemas
Recompile com este:

Código: Selecionar todos

...
ABCFarma( .t. )
...

function ABCFarma( lPreview )
   LOCAL cRetorno
   cABCFARMA := "https://webserviceabcfarma.org.br/webservice/"
   
   _cnpj_cpf  := "XXXXXXXXXXXX"
   _senha     := "XXXX"
   _cnpj_sh   := "XXXXXXXXXXXX"
   _pagina    := "1"
   
   strXml :=          [?]
   strXml := strXml + [cnpj_cpf=]+_cnpj_cpf
   strXml := strXml + [&senha=]+_senha
   strXml := strXml + [&cnpj_sh=]+_cnpj_sh
   strXml := strXml + [&pagina=]+_pagina
   
   oABCFARMA:= TOleAuto():New( "MSXML2.ServerXMLHTTP" )
   if lPreview
      ? "URL Formatada:", cABCFARMA+strXml
   endif
   oABCFARMA:Open( "GET", cABCFARMA+strXml, .F.)
   oABCFARMA:Send( strXml )
   cRetorno := oABCFARMA:responseText
   if lPreview
      MemoEdit( cRetorno )
   endif
   return cRetorno

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 07 Jun 2018 22:32
por ar sistemas
Olá Rochinha, boa noite.
Recompilei como sugerido mas não houve nenhuma evolução.
Como estou iniciando agora no mundo das webservices, ainda não entendi como funciona 'a coisa'.

Segue código compilado, com informações reais de senha e cnjp.

Código: Selecionar todos

procedure atualizaabcfarma
private cRetorno

ABCFarma( .t. )
return


function ABCFarma( lPreview )
*   LOCAL cRetorno

   cABCFARMA := "https://webserviceabcfarma.org.br/webservice/"
   _cnpj_cpf  := '03332548000127'
   _senha     := 'aluisiovpn'
   _cnpj_sh   := '07693076000199'
   _pagina    := "1"
   strXml :=          [?]
   strXml := strXml + [cnpj_cpf=]+_cnpj_cpf
   strXml := strXml + [&senha=]+_senha
   strXml := strXml + [&cnpj_sh=]+_cnpj_sh
   strXml := strXml + [&pagina=]+_pagina
    
   oABCFARMA:= TOleAuto():New( "MSXML2.ServerXMLHTTP" )
   if lPreview
      ? "URL Formatada:", cABCFARMA+strXml
   endif
   oABCFARMA:Open( "GET", cABCFARMA+strXml, .F.)
   oABCFARMA:Send( strXml )
   cRetorno := oABCFARMA:responseText
*	msginfo(cRetorno) // apenas para tentar ver o conteúdo de cRetorno
	if lPreview
		MemoEdit( cRetorno )
   endif
	return cRetorno
Mesmo que eu não esteja mostrando o conteúdo de cRetorno, acredito que, pelo menos a rotina tinha que voltar ao foco do formulário.
Tentei também mostrar o conteúdo e só retorna: {statusx":"error", "error_message","Parâmetros inválidos ou nao encontrados."}
A procedure atualizaabcfarma é ativada ao pressionar um botão no formulário.

Muito obrigado por sua paciência e atenção.

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 08 Jun 2018 12:35
por gilbertosilverio
Ola AR,

O problema em baixar os arquivos da ABCFARMA agora, e que voce precisa entrar em contato com eles, para eles liberarem o teu acesso ao WEBSITE deles .

Aqui na farmácia, desisti, deixei somente o link para o pessoal visualizar os preço direto do site.

Pra atualizar os Precos estou baixado o XLS direto da anvisa e importando pra o sistema da Loja, pois tive muitas dificuldades em conseguir baixa-los da ABCFARMA.

Vou iniciar de novo em julho, quando acabar esta maratona da versao 4.00 da NFe...

Se conseguir, posta aqui a forma como voce fez.

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 08 Jun 2018 21:18
por Daniel
Para teste aqui funcionou

Código: Selecionar todos

	private cRetorno

	ABCFarma( .t. )
	return .t.
***********************************
	function ABCFarma( lPreview )
	LOCAL strXml := []

	   cABCFARMA := "https://webserviceabcfarma.org.br/webservice/"
	   _cnpj_cpf  := '03332548000127'
	   _senha      := 'aluisiovpn'
	   _cnpj_sh   := '07693076000199'
	   _pagina     := "1"

	   strXml += [cnpj_cpf=]+_cnpj_cpf
	   strXml += [&senha=]+_senha
	   strXml += [&cnpj_sh=]+_cnpj_sh
	   strXml += [&pagina=]+_pagina

   Try
      oServer:= win_OleCreateObject( "MSXML2.ServerXMLHTTP")
   Catch
   	MsgInfo('Erro na Criação do Serviço')
      Return .f.
   End
   Try
      oServer:Open( "POST", cABCFARMA, .f. )
      oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
      oServer:SetRequestHeader( "Connection", "keep-alive" )
      oServer:Send(strXml)
      oServer:WaitForResponse( 10000 )
   Catch
   	MsgInfo('Erro na Conexão com o Site')
      Return .f.
   End
   cRetorno:= oServer:ResponseBody
*	   msginfo(cRetorno) // apenas para tentar ver o conteúdo de cRetorno
	   if lPreview
	      MemoWrit('ABCFARMA.txt', cRetorno )
	   return nil
	 endif
Parte do retorno

Código: Selecionar todos

{"pagina":"1","limit":"LIMIT 1000 OFFSET 0","total_paginas":15,"total_itens":"14856","total_data":1000,"data":[{"ID_PRODUTO":"75094","EAN":"7896641800740","REGISTRO_ANVISA":"1063901120484","GGREM":"501103003134411","NOME":"RIOPAN PLUS","DESCRICAO":"gel fr 240ml","COMPOSICAO":"DIMETICONA+MAGALDRATO","QTD_EMBALAGEM":"0","PF_20":"25.34","PMC_20":"0.00","PF_18":"24.63","PMC_18":"0.00","PF_17":"24.29","PMC_17":"0.00","PF_17_5":"24.46","PMC_17_5":"0.00","PF_12":"22.71","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-04-04","NOVO":"0","VARIACAO_PRECO":"","PF_17_ALC":"21.14","PMC_17_ALC":"0.00","PF_17_5_ALC":"0.00","PMC_17_5_ALC":"0.00","PF_18_ALC":"21.40","PMC_18_ALC":"0.00","NCM":null,"ID_TARJA":"VL","CLASSE_TERAPEUTICA":"ANTIACIDOS COM ANTIFLATULENTOS OU CARMINATIVOS","PORTARIA_344_98":null,"PRODUTO_REFERENCIA":null,"CAS":"74978-16-8;9006-65-9","DCB":"5483;03064","ATC_CODE":"A02A4","CAP":"0","CONFAZ_87":"0","TISS_TUSS":"90174682","CEST":null,"ID_FABRICANTE":"39","NOME_FABRICANTE":"TAKEDA PHARMA","ID_LCCT":"-","DESCRICAO_LISTA":"LISTA NEGATIVA","ID_REGIME_PRECO":"H","DESCRICAO_REGIME_PRECO":"HOSPITALAR","ID_TIPO_PRODUTO":"","DESCRICAO_TIPO_PRODUTO":""},{"ID_PRODUTO":"125733","EAN":"7891058059439","REGISTRO_ANVISA":"1130001930056","GGREM":"502809804156313","NOME":"PLASIL","DESCRICAO":"5mg\/ml sol inj cx 100 amp x 2ml","COMPOSICAO":"CLORIDRATO DE METOCLOPRAMIDA","QTD_EMBALAGEM":"0","PF_20":"158.61","PMC_20":"0.00","PF_18":"154.15","PMC_18":"0.00","PF_17":"152.01","PMC_17":"0.00","PF_17_5":"153.07","PMC_17_5":"0.00","PF_12":"142.15","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-04-04","NOVO":"0","VARIACAO_PRECO":"","PF_17_ALC":"132.33","PMC_17_ALC":"0.00","PF_17_5_ALC":"133.13","PMC_17_5_ALC":"0.00","PF_18_ALC":"133.94","PMC_18_ALC":"0.00","NCM":"30049041","ID_TARJA":"TV","CLASSE_TERAPEUTICA":"GASTROPROCINETICOS","PORTARIA_344_98":null,"PRODUTO_REFERENCIA":null,"CAS":"54143576","DCB":"11152","ATC_CODE":"A03F0","CAP":"0","CONFAZ_87":"0","TISS_TUSS":"90196260","CEST":"1300101","ID_FABRICANTE":"492","NOME_FABRICANTE":"SANOFI-AVENTIS","ID_LCCT":"-","DESCRICAO_LISTA":"LISTA NEGATIVA","ID_REGIME_PRECO":"H","DESCRICAO_REGIME_PRECO":"HOSPITALAR","ID_TIPO_PRODUTO":"","DESCRICAO_TIPO_PRODUTO":""},{"ID_PRODUTO":"150444","EAN":"7896641802850","REGISTRO_ANVISA":"1063900970026","GGREM":"501102101167411","NOME":"NENE DENT","DESCRICAO":"bg gel 10g","COMPOSICAO":"CAMOMILA+CLORIDRATO DE LIDOCAINA+POLIDOCANOL","QTD_EMBALAGEM":"0","PF_20":"8.77","PMC_20":"0.00","PF_18":"8.52","PMC_18":"0.00","PF_17":"8.40","PMC_17":"0.00","PF_17_5":"0.00","PMC_17_5":"0.00","PF_12":"7.86","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-05-24","NOVO":"0","VARIACAO_PRECO":"","PF_17_ALC":"0.00","PMC_17_ALC":"0.00","PF_17_5_ALC":"0.00","PMC_17_5_ALC":"0.00","PF_18_ALC":"0.00","PMC_18_ALC":"0.00","NCM":null,"ID_TARJA":"TV","CLASSE_TERAPEUTICA":"ESTOMATOLOGICOS","PORTARIA_344_98":null,"PRODUTO_REFERENCIA":null,"CAS":"3055-99-0;137-58-6","DCB":"7259;05313","ATC_CODE":"A01A0","CAP":"0","CONFAZ_87":"0","TISS_TUSS":"90174259","CEST":null,"ID_FABRICANTE":"39","NOME_FABRICANTE":"TAKEDA PHARMA","ID_LCCT":"-","DESCRICAO_LISTA":"LISTA NEGATIVA","ID_REGIME_PRECO":"H","DESCRICAO_REGIME_PRECO":"HOSPITALAR","ID_TIPO_PRODUTO":"","DESCRICAO_TIPO_PRODUTO":""},{"ID_PRODUTO":"205637","EAN":"7897595902160","REGISTRO_ANVISA":"1130010350067","GGREM":"502822704151317","NOME":"DIGESAN","DESCRICAO":"5mg sol inj cx 50amp x 2ml","COMPOSICAO":"BROMOPRIDA","QTD_EMBALAGEM":"0","PF_20":"224.74","PMC_20":"0.00","PF_18":"218.42","PMC_18":"0.00","PF_17":"215.39","PMC_17":"0.00","PF_17_5":"216.89","PMC_17_5":"0.00","PF_12":"201.42","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-04-04","NOVO":"0","VARIACAO_PRECO":"","PF_17_ALC":"187.50","PMC_17_ALC":"0.00","PF_17_5_ALC":"188.64","PMC_17_5_ALC":"0.00","PF_18_ALC":"189.79","PMC_18_ALC":"0.00","NCM":"30049045","ID_TARJA":"TV","CLASSE_TERAPEUTICA":"GASTROPROCINETICOS","PORTARIA_344_98":null,"PRODUTO_REFERENCIA":null,"CAS":"4093-35-0","DCB":"1471","ATC_CODE":"A03F0","CAP":"0","CONFAZ_87":"0","TISS_TUSS":"90217853","CEST":"1300101","ID_FABRICANTE":"492","NOME_FABRICANTE":"SANOFI-AVENTIS","ID_LCCT":"-","DESCRICAO_LISTA":"LISTA NEGATIVA","ID_REGIME_PRECO":"H","DESCRICAO_REGIME_PRECO":"HOSPITALAR","ID_TIPO_PRODUTO":"","DESCRICAO_TIPO_PRODUTO":""},{"ID_PRODUTO":"216151","EAN":"7896862910082","REGISTRO_ANVISA":"1091700150063","GGREM":"525101303111411","NOME":"DIPIMED","DESCRICAO":"500mg cx 100 comp","COMPOSICAO":"DIPIRONA SODICA","QTD_EMBALAGEM":"0","PF_20":"87.37","PMC_20":"0.00","PF_18":"84.91","PMC_18":"0.00","PF_17":"83.74","PMC_17":"0.00","PF_17_5":"84.32","PMC_17_5":"0.00","PF_12":"78.31","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-04-03","NOVO":"0","VARIACAO_PRECO":"","PF_17_ALC":"72.90","PMC_17_ALC":"0.00","PF_17_5_ALC":"73.33","PMC_17_5_ALC":"0.00","PF_18_ALC":"73.78","PMC_18_ALC":"0.00","NCM":"30049099","ID_TARJA":"VL","CLASSE_TERAPEUTICA":"ANALGESICOS NAO NARCOTICOS E ANTIPIRETICOS","PORTARIA_344_98":null,"PRODUTO_REFERENCIA":"NOVALGINA","CAS":null,"DCB":"9564","ATC_CODE":"N02B0","CAP":"0","CONFAZ_87":"0","TISS_TUSS":"90266579","CEST":"1300301","ID_FABRICANTE":"418","NOME_FABRICANTE":"MEDQUIMICA","ID_LCCT":"-","DESCRICAO_LISTA":"LISTA NEGATIVA","ID_REGIME_PRECO":"H","DESCRICAO_REGIME_PRECO":"HOSPITALAR","ID_TIPO_PRODUTO":"S","DESCRICAO_TIPO_PRODUTO":"SIMILAR"},{"ID_PRODUTO":"219026","EAN":"7899095220065","REGISTRO_ANVISA":"1542300080045","GGREM":"510403101114411","NOME":"TYLALGIN","DESCRICAO":"750mg cx 50bl x 4 comp","COMPOSICAO":"PARACETAMOL","QTD_EMBALAGEM":"0","PF_20":"157.67","PMC_20":"0.00","PF_18":"153.23","PMC_18":"0.00","PF_17":"151.10","PMC_17":"0.00","PF_17_5":"152.16","PMC_17_5":"0.00","PF_12":"141.30","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-04-02","NOVO":"0","VARIACAO_PRECO":"","PF_17_ALC":"129.72","PMC_17_ALC":"0.00","PF_17_5_ALC":"131.41","PMC_17_5_ALC":"0.00","PF_18_ALC":"133.14","PMC_18_ALC":"0.00","NCM":"30049069","ID_TARJA":"VL","CLASSE_TERAPEUTICA":"ANALGESICOS NAO NARCOTICOS E ANTIPIRETICOS","PORTARIA_344_98":null,"PRODUTO_REFERENCIA":"TYLENOL","CAS":"103-90-2","DCB":"6827","ATC_CODE":"N02B0","CAP":"0","CONFAZ_87":"0","TISS_TUSS":"90279131","CEST":null,"ID_FABRICANTE":"437","NOME_FABRICANTE":"GEOLAB","ID_LCCT":"-","DESCRICAO_LISTA":"LISTA NEGATIVA","ID_REGIME_PRECO":"H","DESCRICAO_REGIME_PRECO":"HOSPITALAR","ID_TIPO_PRODUTO":"S","DESCRICAO_TIPO_PRODUTO":"SIMILAR"},{"ID_PRODUTO":"219388","EAN":"7896094201743","REGISTRO_ANVISA":"1003301130027","GGREM":"523702701115313","NOME":"MUVINOR","DESCRICAO":"500mg cx 30 comp rev","COMPOSICAO":"POLICARBOFILA","QTD_EMBALAGEM":"0","PF_20":"28.34","PMC_20":"0.00","PF_18":"27.54","PMC_18":"0.00","PF_17":"27.16","PMC_17":"0.00","PF_17_5":"27.35","PMC_17_5":"0.00","PF_12":"25.40","PMC_12":"0.00","PF_0":"0.00","PMC_0":"0.00","PERCENTUAL_IPI":"0.00","DATA_VIGENCIA":"2018-04-23","NOVO"

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 09 Jun 2018 11:50
por ar sistemas
:-o :-o Não entendi...
Será algum include que não linquei no código?
Só tenho linkado o include <hmg.ch>

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 09 Jun 2018 18:02
por ar sistemas
Prezados Rochinha e Daniel.
Funcionou perfeitamente. Acredito que já estava funcionando, porém eu estava tentando visualizar o resultado pelo msginfo().
Quando o Daniel escreveu o resultado em um arquivo txt, fui verificar e o arquivo estava lá, lindo e maravilhoso...
:%

Muito obrigado por tudo amigos....
Tópico resolvido.

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 11 Jun 2018 16:58
por fladimir
Tem uma questão ainda, mas não seria propriamente com relação ao tópico, talvez abrir outro tópico ou em bate papo, no retorno do webservice não esta vindo as quantidades fracionadas, exemplo ADVIL q teria q ter 50 na embalagem vem ZERADO, com isto não é possível calcular o preço fracionado, haja visto q no novo layout de campos não tem mais o campo Fracionado somente Custo e Preço Consumidor e Qtd Embalagem para realizarmos o calculo do fracionamento, mas como o fazer se esta vindo tudo ZERADO?

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 15 Jun 2018 21:52
por ar sistemas
Tem razão. Não vejo o que fazer.

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 16 Jun 2018 13:03
por fladimir
A ABCFARMA respondeu dizendo q não vai vir mais os fracionados pq os fabricantes não estão mais informando.

Baixar tabela ABCFarma via webservice disponibilizado

Enviado: 20 Jun 2018 19:47
por rochinha
:)) X:)