|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Seg Jan 28, 2013 8:01 am Assunto: |
|
|
Alguém tá conseguindo consultar os arquivos pelo webservice? |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Seg Jan 28, 2013 12:31 pm Assunto: |
|
|
Samware escreveu: | Alguém tá conseguindo consultar os arquivos pelo webservice? |
Os arquivos que eu enviei pelo site estou conseguindo consultar via WebService. |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Seg Jan 28, 2013 1:30 pm Assunto: |
|
|
E os que enviou pelo WebService não, certo? |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Seg Jan 28, 2013 2:50 pm Assunto: |
|
|
Samware escreveu: | E os que enviou pelo WebService não, certo? |
Então, sempre que tento enviar pelo webservice aparece o seguinte erro:
Código: | Erro desconhecido na inclusão do arquivo! ORA-06550: linha 1, coluna 7:
PLS-00306: número incorreto de tipos de argumentos na chamada para 'SP038_INC_RECEB_ARQUIVO'
ORA-06550: linha 1, coluna 7:
PL/SQL: Statement ignored |
Mas enviando pelo site e consultando pelo hash aqui está dando certo. |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Seg Jan 28, 2013 4:36 pm Assunto: |
|
|
Em relação ao erro do envio, vc tentou o que eu disse nos posts anteriores?
Em relação a consulta, quando envio o arquivo pelo WebService, o hash que eu gero e o hash retornado são o mesmo. Ao ir em Status de Transmissão, o hash lá também está igual. Entretanto, ao consultar via WebService, diz que o hash não existe na base.
Quando eu somente gero o arquivo zipado em pasta, eu gero um hash. Depois vou no site e envio o arquivo, e o SNGPC faz o favor de gerar um hash diferente. Eu testei pra ver se seria o hash somente do xml, sem estar zipado, mas não é! É diferente! Não sei como eles geram... E mesmo se eu consultar usando o hash que eles geraram, não é possivel consultar, retorna o mesmo erro de que o hash não existe. Não sei como pode pra você ter dado certo e pra mim não... Alguma ideia? |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Ter Jan 29, 2013 7:05 am Assunto: |
|
|
Samware escreveu: | Em relação ao erro do envio, vc tentou o que eu disse nos posts anteriores?
Em relação a consulta, quando envio o arquivo pelo WebService, o hash que eu gero e o hash retornado são o mesmo. Ao ir em Status de Transmissão, o hash lá também está igual. Entretanto, ao consultar via WebService, diz que o hash não existe na base.
Quando eu somente gero o arquivo zipado em pasta, eu gero um hash. Depois vou no site e envio o arquivo, e o SNGPC faz o favor de gerar um hash diferente. Eu testei pra ver se seria o hash somente do xml, sem estar zipado, mas não é! É diferente! Não sei como eles geram... E mesmo se eu consultar usando o hash que eles geraram, não é possivel consultar, retorna o mesmo erro de que o hash não existe. Não sei como pode pra você ter dado certo e pra mim não... Alguma ideia? |
Como que você está gerando o hash para o envio? Eu estou gerando o MD5 do XML, não é isso? |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Ter Jan 29, 2013 7:20 am Assunto: |
|
|
Eu to gerando do arquivo zipado, consigo enviar e validar o arquivo e tudo.. só não consulta... |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Ter Jan 29, 2013 8:37 am Assunto: |
|
|
Samware escreveu: | Eu to gerando do arquivo zipado, consigo enviar e validar o arquivo e tudo.. só não consulta... |
Opa, você poderia postar a rotina? |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Ter Jan 29, 2013 9:02 am Assunto: |
|
|
Código: |
// Usei o componente TZipMaster pra zipar
sStream := TStringStream.Create(vtIXMLCt_msgMovimentacao.OwnerDocument.XML.GetText);
Zip.FSpecArgs.Clear;
// path do .zip
Zip.ZipFilename := 'c:\nomearquivo.zip';
Zip.ZipStream.LoadFromStream(sStream);
// nome do arquivo dentro do .zip
Zip.AddStreamToFile('nomearquivo.xml', 0, 0);
if (Zip.SuccessCnt = 0) then
begin
Result := 'Erro compactando arquivo.';
Exit;
end;
sHash := SuaFuncaoMd5File('nomearquivo.zip');
|
Implementa ai, ai tenta consultar um arquivo q vc mandou e me diz se funciona, fazendo favor. |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Ter Jan 29, 2013 10:05 am Assunto: |
|
|
Saware, bom dia.
Cara, aqui está muito estranho. Eu estou utilizando o D7 para consumir o webservice da Anvisa mas não estou conseguindo, sempre me da o mesmo erro:
Código: | Erro: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.ArgumentException: The path is not of a legal form.
at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.Directory.Delete(String path, Boolean recursive)
at sngpc.sngpc.getArquivoXMLFromZip(Byte[] arquivoByte, String Email, String& ValidacaoXml) in C:\inetpub\wwwroot\sngpc\webservice\sngpc.asmx.cs:line 996
at sngpc.sngpc.EnviaArquivoSNGPC(String Email, String Senha, Byte[] Arq, String HashIdentificacao) in C:\inetpub\wwwroot\sngpc\webservice\sngpc.asmx.cs:line 734
|
Para qualquer operação aparece este mesmo erro até mesmo para validar o usuário. Por isso eu tentei consumir o webservice pelo PHP e deu certo, consegui validar o usuário e consultar. Então eu criei um webservice em PHP que consome o webservice da Anvisa e dessa forma consegui consumir pelo D7.
Mas au enviar o arquivo está sempre dando a mensagem:
Código: | Erro desconhecido na inclusão do arquivo! ORA-06550: linha 1, coluna 7:
PLS-00306: número incorreto de tipos de argumentos na chamada para 'SP038_INC_RECEB_ARQUIVO'
ORA-06550: linha 1, coluna 7:
PL/SQL: Statement ignored |
O estranho é que está chegando tudo certo para o webservice deles, pois se coloco alguma informação errada noo XML vem a resposta, por exemplo de CPF incorreto.
Então estou muito confuso. Vou tentar instalar um Delphi mais atual para tentar consumir o webservice para ver se da certo.
Já abri um chamado na Anvisa relativo a este problema mas sabe como são, sempre 5 dias para responder e ainda por cima vem uma resposta que não tem nada a ver.
Se eu tiver alguma novidade te informo. |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Ter Jan 29, 2013 10:21 am Assunto: |
|
|
Ao importar o xml no delphi 7 é gerado .pas.
Nesse .pas, verifique lá em inicialization se estão todas essas linhas:
Código: |
InvRegistry.RegisterInterface(TypeInfo(sngpcSoap), 'http://tempuri.org/', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(sngpcSoap), 'http://tempuri.org/%operationName%');
InvRegistry.RegisterInvokeOptions(TypeInfo(sngpcSoap), ioDocument);
|
Geralmente está faltando a última linha e pode dar esses erros loucos.. |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Ter Jan 29, 2013 11:49 am Assunto: |
|
|
Samware, tu é o cara!
Agora deu tudo certo aqui. Estou conseguindo enviar e consultar os arquivos utilizando o webservice da anvisa.
Muito, muito, muito obrigado mesmo! |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Ter Jan 29, 2013 12:23 pm Assunto: |
|
|
Que bom que deu certo!
E o esquema do hash, vc faz md5 do xml ou do .zip?
Aqui não consulta de jeito nenhum, não sei o que faço mais... |
|
Voltar ao Topo |
|
|
thiagomzan Novato
Registrado: Segunda-Feira, 21 de Janeiro de 2013 Mensagens: 13
|
Enviada: Ter Jan 29, 2013 12:30 pm Assunto: |
|
|
Samware escreveu: | Que bom que deu certo!
E o esquema do hash, vc faz md5 do xml ou do .zip?
Aqui não consulta de jeito nenhum, não sei o que faço mais... |
Então, o Hash de envio eu gerei do Zip mesmo mas esse não é o mesmo que deve utilizar para consultar depois.
Quando você envia o arquivo o webservice te retorna um Hash do envio e é este que deve ser utilizado para fazer a consulta posteriormente.
Estou fazendo a seguinte rotina quando envio:
Código: | //enviando o arquivo para o webservice//
Resultado := GetsngpcSoap().EnviaArquivoSNGPC(Email,Senha,FileData,Hash);
TeladeEspera(False,'','');
//verificando se o arquivo foi enviado com sucesso//
if Copy(Resultado,1,28) = 'Arquivo recebido com sucesso' then
begin
Dm.cdsXML.Edit;
Dm.cdsXML.FieldByName('str_hash').AsString := Copy(Resultado,Length(Resultado) - 31,32);
Dm.cdsXML.Post;
Dm.cdsXML.ApplyUpdates(0);
end; |
Tente utilizar desta forma para ver se da certo. Caso não dê certo, posta ai a rotina.
Abraços! |
|
Voltar ao Topo |
|
|
Samware Novato
Registrado: Segunda-Feira, 27 de Dezembro de 2010 Mensagens: 39
|
Enviada: Ter Jan 29, 2013 12:42 pm Assunto: |
|
|
O hash que eu gero é exatamente igual ao hash retornado na mensagem.
No ambiente web, também apresenta o arquivo com o hash igual.
Simplesmente consulto assim:
Código: |
sRes := SNGPC.ConsultaDadosArquivoSNGPC(AEmail, ASenha, ACNPJ, AHashArquivo);
// Se achar essa TAG, retorno é xml
if (Pos('<transmissaoSNGPC>', sRes) > 0) then
begin
...
end;
|
Sendo a variavel AHashArquivo igual ao hash que gerei, hash retornado e hash que está no ambiente web do sngpc... |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|