Clipper On Line • Ver Tópico - Baixar tabela ABCFarma via webservice disponibilizado
Mudar para estilo Clássico
Discussão sobre outras linguagens de programação.
Postar uma resposta

Baixar tabela ABCFarma via webservice disponibilizado

24 Abr 2018 02:48

Amiguinhos,

Não testei mas o conceito é esse:
Código:
   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

06 Jun 2018 23:23

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:
cABCFARMA := "https://webserviceabcfarma.org.br/webservice/"

Agradeço imensamente sua ajuda.

Compilador minigui -Roberto + mysql

Baixar tabela ABCFarma via webservice disponibilizado

07 Jun 2018 01:24

Amiguinhos,

ar sistemas
Recompile com este:
Código:
...
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

07 Jun 2018 22:32

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:
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

08 Jun 2018 12:35

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

08 Jun 2018 21:18

Para teste aqui funcionou
Código:
   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:
{"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

09 Jun 2018 11:50

:-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

09 Jun 2018 18:02

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

11 Jun 2018 16:58

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

15 Jun 2018 21:52

Tem razão. Não vejo o que fazer.

Baixar tabela ABCFarma via webservice disponibilizado

16 Jun 2018 13:03

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

20 Jun 2018 19:47

:)) X:)
Postar uma resposta