GARANTIR DESCONTO

Fórum Problema passando e recebendo ARRAY DE OBJETOS em um webservice feito em C# #419078

28/06/2012

0

Boa tarde!

Estou com problemas para receber resposta de um webservice da rodocred, que em todas as funções é retornado um objeto, que dentro tem outros objetos e arrays de objetos... quando é somente objetos ou variaveis do tipo string, int, etc... eu consigo pegar o retorno normal, porém, quando vou pegar o retorno de algum array, ele volta vazio... alguem já passou por isso?

Segue um exemplo do meu código:

//essa é a classe que contém as variaveis pra enviar no request para o webservice:
ManterMotoristaRequest = class(TRemotable)
private
FIdentificacaoIntegracao: IdentificacaoIntegracaoType;
FOperacao: TipoOperacaoType;
FIdClienteResponsavel: Integer;
FTransportador: Transportador4;
FMotorista: MotoristaType;
public
constructor Create; override;
destructor Destroy; override;
published
property IdentificacaoIntegracao: IdentificacaoIntegracaoType Index (IS_OPTN) read FIdentificacaoIntegracao write FIdentificacaoIntegracao;
property Operacao: TipoOperacaoType read FOperacao write FOperacao;
property IdClienteResponsavel: Integer Index (IS_OPTN) read FIdClienteResponsavel write FIdClienteResponsavel;
property Transportador: Transportador4 Index (IS_OPTN) read FTransportador write FTransportador;
property Motorista: MotoristaType Index (IS_OPTN or IS_UNBD) read FMotorista write FMotorista;
end;



//aqui é o problema... quando a resposta vem somente preenchido o RetornoMensagem eu consigo ler, mas quando vem
//preenchido também o Motoristas, que é um array, eu nao consigo pegar resposta nenhuma
Array_Of_Motoristas = array of Motoristas;

ManterMotoristaResponse = class(TRemotable)
private
FRetornoMensagem: RetornoMensagem5;
FMotoristas: Array_Of_Motoristas;
public
constructor Create; override;
destructor Destroy; override;
published
property RetornoMensagem: RetornoMensagem5 Index (IS_OPTN) read FRetornoMensagem write FRetornoMensagem;
property Motoristas: Array_Of_Motoristas Index (IS_OPTN or IS_UNBD) read FMotoristas write FMotoristas;
end;


Estou chamando a função do webservice da seguinte maneira:
ManterMotResponse := ser.ManterMotoristaRequest(objManterMotoristaRequest);

ManterMotResponse é do tipo ManterMotoristaResponse, que tem o RetornoMensagem e o Motoristas dentro... quando a resposta vem somente no RetornoMensagem eu consigo capturar ela, ler e tudo mais... mas quando vem também o Motoristas preenchido (que é um array de Motoristas) o ManterMotResponse vem tudo nil...


alguem tem alguma sugestão?

agradeço desde já!

[]s
Romulo Contro
Romulo Contro

Romulo Contro

Responder

Posts

24/07/2012

Marcos Rocha

Bom dia,
Estou precisando fazer a transmissão do CIOT para a RODOCRED
alguém pode me dar uma força?

até estamos querendo começar um projeto no ACBR
http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=9&t=6511

Grato
Responder

Gostei + 0

24/07/2012

Romulo Contro

entao, eu já terminei a integração do meu sistema com a rodocred... to recebendo o ciot certinho de lá já, e td mais...

não usei nenhum componente pra fazer, eu importei o wsdl no delphi 2010 e fiz tudo por lá.

o que exatamente vc precisa?
Responder

Gostei + 0

25/07/2012

Marcos Rocha

Pode me passar um demo, ou os fontes de como fez?
Responder

Gostei + 0

26/07/2012

Romulo Contro

Certo, dá uma lida nesse link, e faz o exemplo do CEP aí pra entender como funciona mais ou menos...

http://rodrigojarouche.wordpress.com/2010/03/27/como-consumir-webservices-em-delphi/

se vc usa o delphi 7, vc terá que fazer uma atualização do wsdl importer, tem lá no site da codegear... pois o que vem no delphi 7 é bugado...

depois que vc entender esse exemplo do cep, vc vai conseguir fazer o da rodocred... eu fiz praticamente igual o esquema do cep.

qualquer duvida posta aí
Responder

Gostei + 0

26/07/2012

Romulo Contro

o link de importação do WSDL da rodocred é este:

http://homologacao.ws.rodocred.com.br/rodocred.asmx?WSDL
Responder

Gostei + 0

30/07/2012

Marcos Rocha

Bom dia,
Importei o http://homologacao.ws.rodocred.com.br/r ... .asmx?WSDL
usando o wsdl importer Delphi 7 ao compilar da esse erro:

[img]http://www.brst.com.br/rodocred/Erro.png[/img]

Oq pode ser?


Grato
Responder

Gostei + 0

30/07/2012

Romulo Contro

é um pouco problematico na hora de importar mesmo, por incompatibilidade do WS feito em C# pro Delphi... passei por esses problemas aí...

mas se vc notar, o tipo CNHCategoria está sendo declarado mais pra baixo aí, se nao me engano... entao chega ali ele fala que nao existe ainda...

pra chegar em um ponto que ficou certinho, eu tive que mudar MUITA coisa aí... vou deixar o meu wsdl importado aqui pra vc baixar, só que o meu é do delphi 2010, tem algumas diferenças lá em baixo na serialização... então recomendo que vc só use ele de base...

https://dl.dropbox.com/u/90732230/WSDL.rar

te recomendo levantar primeiro quais são os serviços que vc vai precisar usar do WS, aí vc dá a manutenção somente neles na unit do wsdl importado...
eu não fiz de todos os serviços, só fiz os que eu realmente preciso usar...
Responder

Gostei + 0

30/07/2012

Marcos Rocha

Opa, esse deu Certo, vou ver se consigo começar a os XMLs agora

Grato

Responder

Gostei + 0

14/08/2012

Marcos Rocha

oa noite, Salve galera
agora a acabei de ver um tal de mdfe
https://mdfe-portal.sefaz.rs.gov.br/Site/Sobre
a pergunta é é: esse mdfe é a mesma coisa que a rodocred faz só que de forma gratuita?
se for ótimo pois a Acbr já tem ele, e vou parar de fazer a homologação na rodocred ou TiketFrete


Grato
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar