Ir para conteúdo
  • Cadastre-se

dev botao

Integração com WebService da CIDASC


  • Este tópico foi criado há 1956 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Oi pessoal,

Semana que vem (primeiro semestre de agosto) entra em vigor o envio dos receituários agronômicos para o WebService da Cidasc, aqui de SC.

Estamos tendo dificuldades de fazer a integração com eles e não conseguimos contato com o suporte deles, estão sempre em reunião rsrs

Alguém também está passando por esse problema ou conseguiu fazer a integração?

 

 

Editado por Marina Benedetti Preto
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Eita... mais um DFe a vista...

Você está usando a ACBrDFeSSL como base ?

Você poderia usar a implementação de um dos DFes mais simples, suportados pelo ACBr, como por exemplo o ACBrBPe, e tentar implementar um componente similar...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 26/06/2018 at 09:37, Marina Benedetti Preto disse:

Oi pessoal,

Semana que vem (primeiro semestre de agosto) entra em vigor o envio dos receituários agronômicos para o WebService da Cidasc, aqui de SC.

Estamos tendo dificuldades de fazer a integração com eles e não conseguimos contato com o suporte deles, estão sempre em reunião rsrs

Alguém também está passando por esse problema ou conseguiu fazer a integração?

 

 

Tem link e maiores informações sobre o assunto

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

Estou tendo um problema para enviar o arquivo XML para o WS da CIDASC. Seria o seguinte.

Primeiro eu tenho que logar no WS deles por um link e token (gerado por um login e senha). Isso eu faço da seguinte forma:

  vServe := 'https://svchomologacao.sigen.cidasc.sc.gov.br/Acesso/Login?authToken=MDM4MDkwOTQ5Ojk1OTQ1MDMz';

  IdHTTP 	 := TidHTTP.Create;
  Response   := TStringStream.Create('');
  Arquivo    := TIdMultiPartFormDataStream.Create;

  try
    IdHTTP.Post(vServe, Arquivo, Response);
    ShowMessage(Response.DataString);
  except
    on e:exception do  ShowMessage('Erro ao enviar arquivo ao servidor! Detalhes: '+e.Message);
  end;

Até ai tudo certo. O WS retorna que deu boa meu login. O problema vem agora.

Depois faço o seguinte para tentar enviar o XML para o WS:

vServe := 'https://svchomologacao.sigen.cidasc.sc.gov.br/Receituario/Incluir';

Arquivo.AddFile('xml', 'c:\casa\xmltestecidasc.xml', 'xml/text');

Try
     IdHTTP.Post(vServe, Arquivo, Response);
     ShowMessage(UTF8Encode(Response.DataString));
except
end;
Ja tentei passar o conteudo do XML, o caminho e ja tentei varias configurações pro idHTTP que vi na net. Mas sempre me retorna o mesmo erro ""O número da ART do Receitúario é obrigatório, ex: 9999999-9, tem que conter nove dígitos."".
 
Existe uma tag no xml que vai a informação ART mas ela esta preenchida e tem 9 digitos. Esse erro me retorna sempre, até mesmo se eu não passar o arquivo para enviar. 
 
Já testei mandar cm stringlist e outros, mas sempre tenho esse erro como retorno.
 
Depois de vários testes feitos no delphi, fui testar no POSTMAN. E nele retorna o erro ""Valor informado para o campo  não é válido: Número da ART é inválido""Dados recebidos com erros."".
 
Como pode ver o erro que retorna é diferente, ele diz que o ART que passei é invalido. Pois coloquei um numero ART com 9 digitos qualquer, só para não acusar o outro erro.
 
A unica forma de simular no POSTMAN o mesmo erro que tenho no delphi, foi não passando o arquivo xml.
 
Então acredito que quando faço pelo delphi não esta indo a valor do XML de forma correta. 
 
Obs: O POSTMAN tem a opção de vc anexar o arquivo ou colar a informação que deseja enviar. Só consegui fazer funcionar passando a informação do XML.
 
Em anexo o xml que uso para teste. 
 
E desculpem qualquer coisa.

xmltestecidasc.xml

Link para o comentário
Compartilhar em outros sites

Desculpem a ignorância. Resolvi da seguinte forma:

  ARequest := TStringList.Create;
  ARequest.LoadFromFile ('C:\casa\xmltestecidasc.xml');

  RBody := TStringStream.Create(ARequest.text);

  vServe := 'https://svchomologacao.sigen.cidasc.sc.gov.br/Receituario/Incluir';

  try

    Try
      IdHTTP.Request.Accept := 'application/xml';
      IdHTTP.Request.ContentType := 'application/xml';
      IdHTTP.Request.ContentEncoding := 'utf-8';

      IdHTTP.Post(vServe, RBody, Response);
      ShowMessage(Response.DataString);

    finally
      Lista.Free;
      IdHTTP.free;
    end;
  except
    on e:exception do  ShowMessage('Erro ao enviar arquivo ao servidor! Detalhes: '+e.Message);
  end;

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Membros Pro
Em 03/08/2018 at 10:19, Marina Benedetti Preto disse:

Oi pessoal, nós conseguimos fazer a integração.

O WebService da CIDASC ainda está passando por ajustes e o envio ainda não tem data obrigatória pelo que nos foi informado.

Obrigada!

Olá Marina,

Podia me passar informações de como transmitir esses arquivos a CIDASC, bem como montar o XML, pois não encontro informações sobre isso?

 

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
Em 01/08/2018 at 10:16, Gean disse:

Desculpem a ignorância. Resolvi da seguinte forma:


  ARequest := TStringList.Create;
  ARequest.LoadFromFile ('C:\casa\xmltestecidasc.xml');

  RBody := TStringStream.Create(ARequest.text);

  vServe := 'https://svchomologacao.sigen.cidasc.sc.gov.br/Receituario/Incluir';

  try

    Try
      IdHTTP.Request.Accept := 'application/xml';
      IdHTTP.Request.ContentType := 'application/xml';
      IdHTTP.Request.ContentEncoding := 'utf-8';

      IdHTTP.Post(vServe, RBody, Response);
      ShowMessage(Response.DataString);

    finally
      Lista.Free;
      IdHTTP.free;
    end;
  except
    on e:exception do  ShowMessage('Erro ao enviar arquivo ao servidor! Detalhes: '+e.Message);
  end;

 

Obrigado.

Ola Gean, estou tentando fazer o mesmo procedimento que vc fez, mas nao estou conseguindo nem realizar o Login no WS do CIDASC,
está retornando: Socket Error # 10054 Connection reset by peer.

Link para o comentário
Compartilhar em outros sites

Boa tarde.

Para conectar/Incluir no WS fiz da seguinte forma:

(Fiz de uma forma rápida por conta do prazo. Desculpem qualquer coisa).

procedure ArquivoCIDASC(vChave : String);
var IdHTTP : TIdHTTP;

begin
  IdHTTP  := TidHTTP.Create;

  FrmFuncoes.ComunicaWebService(IdHTTP, 'https://sigensv.cidasc.sc.gov.br/Acesso/Login?authToken=(aqui vai o login:senha em code 64)', nil);

  CriaArquivoJSON(vChave, IdHTTP);

  FrmFuncoes.IncluirWebService(IdHTTP, 'https://sigensv.cidasc.sc.gov.br/Receituario/Incluir');

  IdHTTP.Free;
end;

procedure ComunicaWebService (var IdHTTP : TIdHTTP; vServeAcesso :String; vInfArquivo : TStringStream);
var vResponse: TStringStream;

begin
  vResponse   := TStringStream.Create('');

  try
    IdHTTP.Post(vServeAcesso, vInfArquivo, vResponse);
  except
    on e:exception do  ShowMessage('Erro! Detalhes: '+e.Message);
  end;

  //Finaliza os componentes.
  vResponse.Free;
end;

procedure IncluirWebService (var IdHTTP : TIdHTTP; vServeIncluir :String);
var
  vInfArquivo : TStringList;
  vBody: TStringStream;

begin
  vInfArquivo := TStringList.Create;

  try
    //Pega a informção do XML gerado.
    vInfArquivo.LoadFromFile ('C:\CASA\CIDASC\XML\xmltestecidasc.xml');

    vBody := TStringStream.Create(vInfArquivo.text);

    //Configura Componente de Envio.
    IdHTTP.Request.Accept := 'application/xml';
    IdHTTP.Request.ContentType := 'application/xml';
    IdHTTP.Request.ContentEncoding := 'utf-8';

    //Faz o Envio do Receituário.
    FrmFuncoes.ComunicaWebService(IdHTTP, vServeIncluir, vBody);
  except
    on e:exception do  ShowMessage('Erro! Detalhes: '+e.Message);
  end;

  //Finaliza os componentes.
  vInfArquivo.Free;
  vBody.Free;
end;

Observação: Depois que voce criar o componente idHTTP deve usar o mesmo para logar, incluir e etc...Se criar outro componente idHTTP vai perder a conexão.

 

Editado por Gean
  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1956 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.