Fórum WebService Tray Commerce - Retorno com multiplos parametros #523634
21/06/2015
0
Olá pessoal,
Alguem já criou alguma solução com SOAP/WSDL para consumir o WebService Tray Commerce da Locaweb?
Estou com a missão implementar isso em um aplicativo ERP com o Delphi 7, mas estou com dificuldades iniciais relacionadas
ao retorno de dados em alguns métodos.
Na maioria dos métodos, o retorno vem com múltiplos parâmetros, não há classes no cabeçalho para atender a todos os métodos, e com isso não disponho de algumas propriedades para obter alguns dados.
resumindo...
- comecei um novo projeto
- adicionei um componente HttpRio
- baixei o WSDLImport no site da embarcadero, executei-o pelo prompt de comando, adicionando a url
Ex: WSDLImport -p http://www.toyshopbrasil.com.br/webservice/v2/ws_servidor.php?wsdl
- gerei o codigo de cliente automático e adicionei-o ao projeto...
iniciei alguma codificação para cadastrar uma categoria no site, como a seguir:
A gravação das informações está sendo realizada normalmente no banco de dados do site.
Coloquei o Memo1.text apenas para poder receber alguma coisa sem que o aplicativo apresente erro.
Resultado, ao receber a resposta do Servidor, só consigo obter o primeiro parâmetro, que poderia ser "Ok/no", já o segundo parâmetro de resposta que seria o codigo "503" (codigo da nova Categoria cadastrada), não estou conseguindo capturar...
coloquei mais 2 TMemos para monitorar a pergunta/resposta do xml e o resultado foi esse:
[img:descricao=Testando a aplicação]http://arquivo.devmedia.com.br/forum/imagem/342753-20150621-160021.jpg[/img]
info adicionais:
wsdl
operacoes
Será que o jeito é usar o XMLDocument para as situações onde não existe classe de resposta?
alguém poderia me ajudar, por favor?
Alguem já criou alguma solução com SOAP/WSDL para consumir o WebService Tray Commerce da Locaweb?
Estou com a missão implementar isso em um aplicativo ERP com o Delphi 7, mas estou com dificuldades iniciais relacionadas
ao retorno de dados em alguns métodos.
Na maioria dos métodos, o retorno vem com múltiplos parâmetros, não há classes no cabeçalho para atender a todos os métodos, e com isso não disponho de algumas propriedades para obter alguns dados.
resumindo...
- comecei um novo projeto
- adicionei um componente HttpRio
- baixei o WSDLImport no site da embarcadero, executei-o pelo prompt de comando, adicionando a url
Ex: WSDLImport -p http://www.toyshopbrasil.com.br/webservice/v2/ws_servidor.php?wsdl
- gerei o codigo de cliente automático e adicionei-o ao projeto...
iniciei alguma codificação para cadastrar uma categoria no site, como a seguir:
procedure TForm1.Button1Click(Sender: TObject);
var
pLogin, pSenha: WideString;
pId_categoria: Int64;
pId_categoriapai: Int64;
pDescricao: WideString;
pAtivo: WideString;
Servico: TrayWebServicewsdlPortType;
Begin
pID_Loja:= xxxxx;
pLogin:= '???';
pSenha:= '???';
pId_categoria:= 0;
pId_categoriapai:= 0;
pDescricao:= 'TESTE';
pAtivo:= 'S';
Servico:= GetTrayWebServicewsdlPortType(False, '', nil);
Memo1.text:= Servico.fWSCadastraCategoria( pID_Loja,
pLogin,
pSenha,
pId_categoria,
pId_categoriapai,
pDescricao,
pAtivo
);
End;
A gravação das informações está sendo realizada normalmente no banco de dados do site.
Coloquei o Memo1.text apenas para poder receber alguma coisa sem que o aplicativo apresente erro.
Resultado, ao receber a resposta do Servidor, só consigo obter o primeiro parâmetro, que poderia ser "Ok/no", já o segundo parâmetro de resposta que seria o codigo "503" (codigo da nova Categoria cadastrada), não estou conseguindo capturar...
coloquei mais 2 TMemos para monitorar a pergunta/resposta do xml e o resultado foi esse:
procedure TForm1.HTTPRIO1BeforeExecute(const MethodName: String;
var SOAPRequest: WideString);
begin
MemoRequest.Text:= SOAPRequest;
end;
procedure TForm1.HTTPRIO1AfterExecute(const MethodName: String;
SOAPResponse: TStream);
var
StrStream: TStringStream;
begin
StrStream := TStringStream.Create('');
try
StrStream.CopyFrom(SOAPResponse, 0);
SOAPResponse.Position:= 0;
MemoResponse.Lines.Text:= StrStream.DataString;
finally
StrStream.Free;
end;
end;
[img:descricao=Testando a aplicação]http://arquivo.devmedia.com.br/forum/imagem/342753-20150621-160021.jpg[/img]
info adicionais:
wsdl
operacoes
Será que o jeito é usar o XMLDocument para as situações onde não existe classe de resposta?
alguém poderia me ajudar, por favor?
Paulo Lima
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)