Jump to content

search em wsdl


svaros
 Share

Recommended Posts

olá,

linguagem: vbscript

resumo: obter dados atraves de pesquisa por form no wsdl

tenho um wsdl para ser usado, queria fazer algo como colocar o bi da pessoa e que ao procurar ele retornasse morada etc que estao neste serviço. Alguem me sabe indicar um exemplo em que uma procura é feita e que sejam retornados valores?

muito obrigado desde já 🙂

Link to comment
Share on other sites

Boas,

a linguagem é mesmo vbscript? (como este post está na secção ASP.NET)

Nunca fiz em vbscript, mas o mais provavel é teres de criar um objecto do SOAP e aceder, algo assim:

Set osoap=CreateObject("MSSOAP.SoapClient")
oSoap.ClientProperty("ServerHTTPRequest") = True
oSoap.mssoapinit("http://www.enderecowsdl.com")
result=oSoap.funcao("numeroBI")
Link to comment
Share on other sites

Boas,

a linguagem é mesmo vbscript? (como este post está na secção ASP.NET)

Nunca fiz em vbscript, mas o mais provavel é teres de criar um objecto do SOAP e aceder, algo assim:

Set osoap=CreateObject("MSSOAP.SoapClient")
oSoap.ClientProperty("ServerHTTPRequest") = True
oSoap.mssoapinit("http://www.enderecowsdl.com")
result=oSoap.funcao("numeroBI")

Eu tenho algo assim:

<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Search</title>
<link rel="stylesheet" href="css/default.css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/tablesorter.js"></script>
</head>
<body>
<%
Class SoapServiceRequest
Private oWinHttp,sContentType
Public sWebServiceURL, sSOAPRequest,sResponse,servicename,sHost
Private Sub Class_Initialize()
   Set oWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

   sContentType ="text/xml;charset=UTF-8"
End Sub

Public Function SetSoapAction(servicename)
 sWebServiceURL = servicename  
End Function

Public Function SendRequest
oWinHttp.Open "POST", sWebServiceURL, False
oWinHttp.setRequestHeader "Content-Type", sContentType

oWinHttp.Send  sSOAPRequest
sResponse = oWinHttp.ResponseText

End Function

Public Function Close
Set oWinHttp = Nothing
End Function
End Class
Set oSoapRequest = New SoapServiceRequest
oSoapRequest.SetSoapAction("")
oSoapRequest.sSOAPRequest = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:v1=""urn://"" xmlns:ns=""urn://Address/elements/AddressHeader/1.0"" xmlns:get=""urn:///Address/v1/GetAddress""><soapenv:Header/><soapenv:Body><v1:inputMessageGetAddress><get:AddressRequest><get:Authentication><get:UserId></get:UserId></get:Authentication><get:PostalCode4></get:PostalCode4><get:PostalCode3></get:PostalCode3><get:ArteryCode></get:ArteryCode><get:ArteryName></get:ArteryName><get:LocalCode>lisboa</get:LocalCode><get:LocalDescr></get:LocalDescr><get:CountyDescr></get:CountyDescr><get:DistrictDescr></get:DistrictDescr><get:ClientName></get:ClientName><get:EPName></get:EPName><get:PostOfficeBoxNbr></get:PostOfficeBoxNbr><get:SearchType></get:SearchType></get:AddressRequest></v1:inputMessageGetAddress></soapenv:Body></soapenv:Envelope>"
oSoapRequest.SendRequest()

Class XmlTransform
Private xmlDoc,xslDoc
Public sTransFile

Public Function SetInputXml(xmlData)
'Load XML
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.loadXML(xmlData) 
End Function
Public Function SetInputXsl(style)
'Load XSL
set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async = false
xslDoc.load(style)
End Function

Public Function TransformAndWrite
Response.Write(xmlDoc.transformNode(xslDoc))
End Function
End Class
'TODO Chamada ao webservice
Dim myVar
Dim xmlData
Dim xslTemplate
myVar = oSoapRequest.sResponse
set oXmlTransform = New XmlTransform
If IsNull(myVar) Then
xmlData="<?xml version='1.0'?><OutputMessageGetAddress><AddressHeader><Status><nCode><eDescription>Ocorreu um erro no acesso ao sistema de Gestão de Moradas</eDescription></nCode></Status></AddressHeader></OutputMessageGetAddress>"
xslTemplate = Server.MapPath("erro.xsl")
ElseIf myVar = "" Then
xmlData="<?xml version='1.0'?><OutputMessageGetAddress><AddressHeader><Status><nCode><eDescription>Ocorreu um erro no acesso ao sistema de Gestão de Moradas</eDescription></nCode></Status></AddressHeader></OutputMessageGetAddress>"
xslTemplate = Server.MapPath("erro.xsl")
Else
If (InStr(1,myVar,"outputMessageGetAddress",0)) Then

 xmlData = Replace(myVar, Left(myVar,InStr(myVar,"outputMessageGetAddress")), "<?xml version='1.0'?><O")
 xmlData = Replace(xmlData, "</ns3:outputMessageGetAddress></S:Body></S:Envelope>", "</OutputMessageGetAddress>")
 xmlData = Replace(xmlData, "ns2:", "")

 pos1 =  InStr(1,xmlData,"OutputMessageGetAddress",0)
 pos2 = InStr(pos1,xmlData,">",0)

 str1=(MID(xmlData,1,pos1))
 str2=(MID(xmlData,pos2))
 xmlData = str1 & "utputMessageGetAddress"& str2
 If (InStr(1,xmlData,"eCode",0)) Then
  xslTemplate = Server.MapPath("erro.xsl")
 Else
  xslTemplate = Server.MapPath("template.xsl")
 End If
Else
 xmlData="<?xml version='1.0'?><OutputMessageGetAddress><AddressHeader><Status><nCode><eDescription>Ocorreu um erro na resposta do sistema de Gestão de Moradas</eDescription></nCode></Status></AddressHeader></OutputMessageGetAddress>"
 xslTemplate = Server.MapPath("erro.xsl")
End If
End If
'Response.Write(xmlData&"###<BR/>")
'disponibilização dos resultados
oXmlTransform.SetInputXml(xmlData)
oXmlTransform.SetInputXsl(xslTemplate)
oXmlTransform.TransformAndWrite()
%>
<form action="" target="_parent" name="frmbuscacep" method="post">
<label> CP:<br />
<input name="txtCep" type="text" id="txtCep" size="10" maxlength="8" />
</label><br />
<label><br />
<input type="submit" name="Submit" value="Consultar" />
</label>
</form>
<br />
Resultado da consulta
</center>
<% if resultado <> "" then %>
<table align="center">
<tr>
  <td align="left" valign="top">Cp4:</td>
  <td align="left" valign="middle"><strong><%=cp4%></strong></td>
</td>
<tr>
  <td align="left" valign="middle">CP3:</td>
  <td align="left" valign="middle"><strong><%=cp3%></strong></td>
</td>
<tr>
  <td align="left" valign="middle">Local:</td>
  <td align="left" valign="middle"><strong><%=Local%></strong></td>
</td>
</table>
<% end if %>

</body>
</html>

até aqui tudo bem, a questão e que eu consigo retornar valores se colocar o que procurar diretamente no codigo, aqui por exemplo :

<get:LocalCode>lisboa</get:LocalCode>

mas queria fazer com que este filtro fosse feito por um form e ao submit aparecer corresppondencias

:\

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.