Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZioNN

Capturar dados de retorno em XML. Frete Jad Log (VarigLog)

Recommended Posts

Caros,

 

Estou implementando em meu e-Comm o cálculo de frete on-line da Jad Log (Variglog) e não estou conseguindo acessar os dados do XML retornado pelo sistema deles.

Como não manjo quase nada de XML, estou me baseando no modelo de classes dos Correios e alterando os campos.

Gostaria de uma ajuda para fazer isto funcionar.

 

Não há nenhuma mensagem de erro de sintaxe ou coisa parecida, apenas os valores são retornados em branco (vazios ou nulos, não sei)

 

Nos meus testesm tudo vai bem até a linha da classe jadlog que contém

If TypeName(objXmlDoc) = "DOMDocument" Then

 

A partir daí parece que a classe atribui valores nulos e retorna à função principal, sem dar qualquer erro.

No final, o valor retornado pela função principal é vazio / nulo.

 

Vejam os códigos abaixo:

 

Esta é a função principal:

 

'Função Frete JadLog (VarigLog) com contrato
function ValorFreteJadLog(CEPOrigem, CEPDestino, pesoTotal, altura, largura, profundidade, vlNotaFiscal)

'	Modalidade do frete JadLog.
'	Código Descrição
'	0 STANDARD
'	3 .PACKAGE
'	4 RODOVIARIO
'	5 ECONOMICO
'	6 DOC
'	7 CORPORATE
'	9 .COM
'	10 INTERNACIONAL
'	12 CARGO
'	14 EMERGENCIAL

	'Parâmetros fixos
	vModalidade = "5"			' Modalidade do frete. Deve conter apenas números (tabela anexa)
	Password	= "xxxxxx"		' Senha de acesso à área de Serviços on-line do site da JadLog
	vSeguro		= "N"			' Tipo do Seguro “N” normal “A” apólice própria
	vVlColeta	= "5"			' Valor da coleta negociado com a unidade JadLog. Ex. 10,00
	vFrap		= "N"			' Frete a pagar no destino, “S” = sim “N” = não
	vEntrega	= "D" 			' Tipo de entrega “R” retira unidade JadLog, “D” domicilio
	vCNPJ		= "00000000000" 	' CNPJ do contratante
	
	'Parâmetros variáveis
	vVlDec			= vlNotaFiscal
	vCepOrig		= CEPOrigem
	vCepDest		= CEPDestino
	vPeso			= PesoTotal
	vAltura			= altura
	vLargura		= largura
	vProfundidade	        = profundidade

	
		Dim objJadLog ,objInfo
	
		Set objJadLog = New JadLog 
		Set objInfo = New JadLogInfo 
		
		on error resume next
		
		Set objInfo = objJadLog.doCalculoJadLog(vModalidade, Password, vSeguro, vVlDec, vVlColeta, vCepOrig, vCepDest, vPeso, vAltura, vLargura, vProfundidade, vFrap, vEntrega, vCnpj)
				
		If objInfo.Retorno = "" Then

			valorFreteJadLog = objInfo.Retorno

		
		Else 
		
			'CASO O CEP SEJA INVÁLIDO
			valorFreteJadLog = -1
		
		End If
	
	Set objJadLog = nothing
	Set objInfo = nothing 
	
	debug = false

end function

Abaixo as classes

 

<%
On Error Resume Next

Class JadLog 

	Function doCalculoJadLog(ByVal vModalidade, ByVal Password, ByVal vSeguro, ByVal vVlDec, ByVal vVlColeta, ByVal vCepOrig, ByVal vCepDest,ByVal vPeso, ByVal vAltura, ByVal vLargura, ByVal vProfundidade, ByVal vFrap, ByVal vEntrega, ByVal vCnpj) 
	
	'Declaração das variáveis/objetos 
	
	Dim Retorno 
	Dim URL 
	Dim objXmlHttp 
	Dim objXmlDoc 
	
	'Inicialização dos objetos/variáveis 
	Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") 
	Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument") 
	Set doCalculoJadLog = New JadLogInfo 

	
	'Montando a URL para busca no site 
	
	URL = "http://jadlog.com.br:8080/JadlogWebService/services/ValorFreteBean?method=valorar" 
	
	URL = URL & "&vModalidade=" & vModalidade 
	
	URL = URL & "&Password=" & Password 
	
	URL = URL & "&vSeguro=" & vSeguro 
	
	URL = URL & "&vVlDec=" & vVlDec 
	
	URL = URL & "&vVlColeta=" & vVlColeta 
	
	URL = URL & "&vCepOrig=" & vCepOrig 
	
	URL = URL & "&vCepDest=" & vCepDest 
	
	URL = URL & "&vPeso=" & vPeso 
	
	URL = URL & "&vAltura=" & vAltura 
	
	URL = URL & "&vLargura=" & vLargura 
	
	URL = URL & "&vProfundidade=" & vProfundidade
	
	URL = URL & "&vFrap=" & vFrap
	
	URL = URL & "&vEntrega=" & vEntrega
	
	URL = URL & "&vCnpj=" & vCnpj
	
	objXMLHttp.Open "GET", URL, False 
	
	objXMLHttp.Send VAL
	
	response.write URL & VAL & "<BR>"
	
	'Verificando se a busca foi bem sucedida 
	
	If objXmlHttp.statusText = "OK" Then
	
		objXmlDoc.loadXML(objXmlHttp.responseText) 
	
		'Verificando se o retorno foi bem sucediido 
	
		If TypeName(objXmlDoc) = "DOMDocument" Then 
	
			doCalculoJadLog.Versao = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//versao").text 
			
			doCalculoJadLog.Retorno = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//Retorno").text 
			
			doCalculoJadLog.Mensagem = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//Mensagem").text 
		
	
		End If

	
	Else 
	
		doCalculoJadLog.ErroCodigo = objXmlHttp.status 
		doCalculoJadLog.ErroDescricao = objXmlHttp.statusText 
	
	End If 
	
	'Destruindo os objetos 
	
	Set objXmlDoc = Nothing 
	
	Set objXmlHttp = Nothing 
	
	End Function 

End Class 



'----------------------------------------------------- 

'Classe com os Atributos

'----------------------------------------------------- 

Class JadLogInfo 

	Public Versao 
	
	Public Retorno 
	
	Public Mensagem 
	
	Public ErroCodigo 
	
	Public ErroDescricao 

End Class 


%>

O XML da Jad Log vem assim

 

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://Jadlog.com.br:8080/JadlogWebService/services">
<Jadlog_Valor_Frete>
<versao>1.0</versao>
<Retorno></Retorno>
<Mensagem></Mensagem>
</Jadlog_Valor_Frete>
</string>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E então galera, o que estou fazendo errado? Há outra forma mais simples de ler o retorno em XML com ajax?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola ZioNN,

 

Conseguiu resolver o problema. Eu gostaria de fazer a mesma coisa no excel 2007, mas sou leigo em programacao. Copiei o seu codigo para o VBA, mas nao esta funcionando.

 

Poderia me ajudar, como busco o frete da jadlog no webservice ? Tenho todos os dados de acesso...

 

Caros,

 

Estou implementando em meu e-Comm o cálculo de frete on-line da Jad Log (Variglog) e não estou conseguindo acessar os dados do XML retornado pelo sistema deles.

Como não manjo quase nada de XML, estou me baseando no modelo de classes dos Correios e alterando os campos.

Gostaria de uma ajuda para fazer isto funcionar.

 

Não há nenhuma mensagem de erro de sintaxe ou coisa parecida, apenas os valores são retornados em branco (vazios ou nulos, não sei)

 

Nos meus testesm tudo vai bem até a linha da classe jadlog que contém

If TypeName(objXmlDoc) = "DOMDocument" Then

 

A partir daí parece que a classe atribui valores nulos e retorna à função principal, sem dar qualquer erro.

No final, o valor retornado pela função principal é vazio / nulo.

 

Vejam os códigos abaixo:

 

Esta é a função principal:

 

'Função Frete JadLog (VarigLog) com contrato
function ValorFreteJadLog(CEPOrigem, CEPDestino, pesoTotal, altura, largura, profundidade, vlNotaFiscal)

'	Modalidade do frete JadLog.
'	Código Descrição
'	0 STANDARD
'	3 .PACKAGE
'	4 RODOVIARIO
'	5 ECONOMICO
'	6 DOC
'	7 CORPORATE
'	9 .COM
'	10 INTERNACIONAL
'	12 CARGO
'	14 EMERGENCIAL

'Parâmetros fixos
vModalidade = "5"			' Modalidade do frete. Deve conter apenas números (tabela anexa)
Password	= "xxxxxx"		' Senha de acesso à área de Serviços on-line do site da JadLog
vSeguro		= "N"			' Tipo do Seguro “N” normal “A” apólice própria
vVlColeta	= "5"			' Valor da coleta negociado com a unidade JadLog. Ex. 10,00
vFrap		= "N"			' Frete a pagar no destino, “S” = sim “N” = não
vEntrega	= "D" 			' Tipo de entrega “R” retira unidade JadLog, “D” domicilio
vCNPJ		= "00000000000" 	' CNPJ do contratante

'Parâmetros variáveis
vVlDec			= vlNotaFiscal
vCepOrig		= CEPOrigem
vCepDest		= CEPDestino
vPeso			= PesoTotal
vAltura			= altura
vLargura		= largura
vProfundidade	        = profundidade


	Dim objJadLog ,objInfo

	Set objJadLog = New JadLog 
	Set objInfo = New JadLogInfo 

	on error resume next

	Set objInfo = objJadLog.doCalculoJadLog(vModalidade, Password, vSeguro, vVlDec, vVlColeta, vCepOrig, vCepDest, vPeso, vAltura, vLargura, vProfundidade, vFrap, vEntrega, vCnpj)

	If objInfo.Retorno = "" Then

		valorFreteJadLog = objInfo.Retorno


	Else 

		'CASO O CEP SEJA INVÁLIDO
		valorFreteJadLog = -1

	End If

Set objJadLog = nothing
Set objInfo = nothing 

debug = false

end function

 

Abaixo as classes

 

<%
On Error Resume Next

Class JadLog 

Function doCalculoJadLog(ByVal vModalidade, ByVal Password, ByVal vSeguro, ByVal vVlDec, ByVal vVlColeta, ByVal vCepOrig, ByVal vCepDest,ByVal vPeso, ByVal vAltura, ByVal vLargura, ByVal vProfundidade, ByVal vFrap, ByVal vEntrega, ByVal vCnpj) 

'Declaração das variáveis/objetos 

Dim Retorno 
Dim URL 
Dim objXmlHttp 
Dim objXmlDoc 

'Inicialização dos objetos/variáveis 
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") 
Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument") 
Set doCalculoJadLog = New JadLogInfo 


'Montando a URL para busca no site 

URL = "http://jadlog.com.br:8080/JadlogWebService/services/ValorFreteBean?method=valorar" 

URL = URL & "&vModalidade=" & vModalidade 

URL = URL & "&Password=" & Password 

URL = URL & "&vSeguro=" & vSeguro 

URL = URL & "&vVlDec=" & vVlDec 

URL = URL & "&vVlColeta=" & vVlColeta 

URL = URL & "&vCepOrig=" & vCepOrig 

URL = URL & "&vCepDest=" & vCepDest 

URL = URL & "&vPeso=" & vPeso 

URL = URL & "&vAltura=" & vAltura 

URL = URL & "&vLargura=" & vLargura 

URL = URL & "&vProfundidade=" & vProfundidade

URL = URL & "&vFrap=" & vFrap

URL = URL & "&vEntrega=" & vEntrega

URL = URL & "&vCnpj=" & vCnpj

objXMLHttp.Open "GET", URL, False 

objXMLHttp.Send VAL

response.write URL & VAL & "<BR>"

'Verificando se a busca foi bem sucedida 

If objXmlHttp.statusText = "OK" Then

	objXmlDoc.loadXML(objXmlHttp.responseText) 

	'Verificando se o retorno foi bem sucediido 

	If TypeName(objXmlDoc) = "DOMDocument" Then 

		doCalculoJadLog.Versao = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//versao").text 

		doCalculoJadLog.Retorno = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//Retorno").text 

		doCalculoJadLog.Mensagem = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//Mensagem").text 


	End If


Else 

	doCalculoJadLog.ErroCodigo = objXmlHttp.status 
	doCalculoJadLog.ErroDescricao = objXmlHttp.statusText 

End If 

'Destruindo os objetos 

Set objXmlDoc = Nothing 

Set objXmlHttp = Nothing 

End Function 

End Class 



'----------------------------------------------------- 

'Classe com os Atributos

'----------------------------------------------------- 

Class JadLogInfo 

Public Versao 

Public Retorno 

Public Mensagem 

Public ErroCodigo 

Public ErroDescricao 

End Class 


%>

 

O XML da Jad Log vem assim

 

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://Jadlog.com.br:8080/JadlogWebService/services">
<Jadlog_Valor_Frete>
<versao>1.0</versao>
<Retorno></Retorno>
<Mensagem></Mensagem>
</Jadlog_Valor_Frete>
</string>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.