Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/6062824/tecnologia.css
|
Portuguese | ||||||
---|---|---|---|---|---|---|
Classe tWsdlManager |
...
|
...
tWsdlManager faz o tratamento para arquivos WSDL (Web Services Description Language). Esta classe implementa métodos para identificação das informações de envio e resposta das operações definidas, além de métodos para envio e recebimento do documento SOAP. |
...
Construtores
Propriedades
Métodos
Observações
|
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aOps := {}, aComplex := {}, aSimple := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aOps := oWsdl:ListOperations()
if Len( aOps ) == 0
conout( "Erro: " + oWsdl:cError )
Return
endif
varinfo( "", aOps )
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
//xRet := oWsdl:SetOperation( aOps[1][1] )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aComplex := oWsdl:ComplexInput()
varinfo( "", aComplex )
aSimple := oWsdl:SimpleInput()
varinfo( "", aSimple )
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
//xRet := oWsdl:SetValue( aSimple[1][1], "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Exibe a mensagem que será enviada
conout( oWsdl:GetSoapMsg() )
// Envia a mensagem SOAP ao servidor
xRet := oWsdl:SendSoapMsg()
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Pega a mensagem de resposta
conout( oWsdl:GetSoapResponse() )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
Abrangência:
Builds superiores a 121227P.
Atributos |
|
lógico | lVerbose |
| Habilita log em arquivo para os comandos SOAP enviados e recebidos. Valor padrão: .F. |
| |
lógico | lStatus |
| Obtém status de sucesso (.T.) ou falha (.F.) da operação realizada. Atributo somente leitura. |
| |
lógico | lEnableOptAttr |
| Habilita no comando SOAP de envio os atributos opcionais. Valor padrão: .F. |
| |
caractere | cCurrentOperation |
| Obtém o nome da operação atual. Atributo somente leitura. |
| |
numérico | nTimeout |
| Obtém o valor de timeout em segundos para envio e recebimento dos documentos SOAP. Valor padrão: 0 - sem timeout. |
| |
lógico | lProcResp |
| Habilita processamento da mensagem de resposta do servidor WSDL. Valor padrão: .T. |
| |
caractere | cError |
| Obtém a mensagem de erro para o último comando executado. Atributo somente leitura. |
| |
caractere | cFaultCode |
| Obtém fault code da mensagem de retorno do servidor. Atributo somente leitura. |
| |
caractere | cFaultSubCode |
| Obtém fault subcode da mensagem de retorno do servidor. Atributo somente leitura. |
| |
caractere | cFaultString |
| Obtém fault string da mensagem de retorno do servidor. Atributo somente leitura. |
| |
caractere | cFaultActor |
| Obtém fault actor da mensagem de retorno do servidor. Atributo somente leitura. |
| |
caractere | cLocation |
| Obtém o endreço do servidor que receberá a mensagem SOAP. |
| |
numérico | nSSLVersion |
| Obtém o protoclo SSL usado na conexão. Valores válidos: 0 - SSLv3 + TLSv1, 1 - TLSv1, 2 - SSLv2, 3 - SSlv3. Valor padrão: 0. |
| |
caractere | cSSLCACertFile |
| Obtém o arquivo de certificado de CA usado para conexão SSL com o servidor que receberá a mensagem SOAP. O atributo aceita apenas caminho de arquivos do server caso contrário mostrará o erro "Invalid SSL CA Certificate File – Only Server Path allowed". |
| |
caractere | cSSLCertFile |
| Obtém o arquivo de certificado cliente usado para conexão SSL com o servidor que receberá a mensagem SOAP. O atributo aceita apenas caminho de arquivos do server caso contrário mostrará o erro "Invalid SSL Certificate File – Only Server Path allowed". |
| |
caractere | cSSLKeyFile |
| Obtém o arquivo de chave primária usado para conexão SSL com o servidor que receberá a mensagem SOAP. O atributo aceita apenas caminho de arquivos do server caso contrário mostrará o erro "Invalid SSL Key File – Only Server Path allowed". |
| |
caractere | cSSLKeyPwd |
| Obtém a senha para o certificado usado para conexão SSL com o servidor que receberá a mensagem SOAP. |
| |
lógico | lUseNSPrefix |
| Define se vai usar prefixo de namespace antes dos nomes das tags na mensagem SOAP que será enviada. Valor padrão: .F. |
| |
lógico | lCheckInput |
| Define se vai verificar as ocorrências dos parâmetros de entrada da mensagem SOAP que será enviada, quando essa não for uma mensagem personalizada. Valor padrão: .T. |
lógico | lCompressed |
| Define se o envio da mensagem SOAP será com compactação ou não. Valor padrão: .F. |
Resumo dos Métodos |
|
| New() |
| Cria uma nova instância da classe TWsdlManager. |
| |
lógico | ParseFile(caractere cFile) |
| Realiza o parse de um arquivo WSDL através do parâmetro recebido indicando o local do mesmo. |
| |
lógico | ParseURL(caractere cURL) |
| Realiza o parse de uma URL que aponta para um arquivo WSDL através do parâmetro recebido indicando o local do mesmo. |
| |
vetor | |
| Lista as operações definidas no arquivo WSDL. |
| |
lógico | SetOperation(caractere cOperation) |
| O método define a operação atual através do parâmetro cOperation. |
| |
caractere | |
| Retorna a documentação do documento WSDL. |
| |
vetor | |
| Lista os tipos simples de input para a operação definida. |
| |
vetor | |
| Lista os tipos complexos de input para a operação definida que possuem número variável de ocorrências (minOccurs < maxOccurs). |
| |
vetor | |
| Lista os tipos simples de output para a operação definida. |
| |
vetor | |
| Lista os tipos complexos de output para a operação definida. |
| |
vetor | |
| Lista os tipos simples de fault para a operação definida. |
| |
vetor | |
| Lista os tipos complexos de fault para a operação definida. |
| |
lógico | SetComplexOccurs(numérico nId, numérico nValue) |
| O método define o número de vezes que um elemento do tipo complexo vai aparecer. |
| |
lógico | SetValue(numérico nId, caractere cValue) |
| O método define o valor de entrada para um elemento do WSDL. |
| |
lógico | SetValues(numérico nId, vetor aValues) |
| O método define um vetor de valores de entrada para um elemento do WSDL. |
| |
lógico | SetFirst(caractere cName, caractere cValue) |
| O método define o valor de entrada para a primeira ocorrência de um elemento do WSDL. |
| |
lógico | SetFirstArray(caractere cName, vetor aValues) |
| O método define um vetor de valores de entrada para a primeira ocorrência um elemento do WSDL. |
| |
lógico | SetValPar(caractere cName, vetor aParents, caractere cValue) |
| O método define o valor de entrada para um elemento do WSDL, dado os elementos pais. |
| |
lógico | SetValParArray(caractere cName, vetor aParents, vetor aValues) |
| O método define um vetor de valores de entrada para um elemento do WSDL, dado os elementos pais. |
| |
lógico | AddHttpHeader(caractere cName, caractere cValue) |
| O método adiciona um cabeçalho HTTP à lista de cabeçalhos que serão enviados na mensagem SOAP destinada ao servidor do WSDL. |
| |
caractere | |
| Retorna o documento SOAP que será enviado ao servidor. |
| |
lógico | SendSoapMsg(caractere cMsg) |
| Envio o documento SOAP gerado ao endereço definido. |
| |
caractere | |
| Retorna o documento SOAP de resposta rcebido do servidor. |
| |
caractere | |
| Retorna uma string contendo a mensagem SOAP de resposta parseada. |
| |
| SetProxy(caractere cHost, numérico nPort) |
| Define o host e porta do proxy para fazer a conexão HTTP. |
| |
lógico | GetProxy(caractere @cHost, numérico @nPort) |
| Retorna o host e porta do proxy para fazer a conexão HTTP. |
| |
| SetCredentials(caractere cUser, caractere cPass) |
| Define o usuário e senha do proxy para fazer a conexão HTTP. |
| |
lógico | GetCredentials(caractere @cUser, caractere @cPass) |
| Retorna o usuário e senha do proxy para fazer a conexão HTTP. |
| |
| SetAuthentication(caractere cUser, caractere cPass) |
| Define o usuário e senha usados para fazer autenticação HTTP. |
| |
lógico | GetAuthentication(caractere @cUser, caractere @cPass) |
| Retorna o usuário e senha usados para fazer autenticação HTTP. |
Detalhes dos Métodos |
...
- O parâmetro aceita apenas caminho de arquivos do server caso contrário mostrará o erro "Invalid WSDL File – Only Server Path allowed".
- Este método realizará a leitura do arquivo e montará a estrutura do objeto, além de analisar se a sintaxe e ordem das tags estão bem formadas.
Parâmetros:
caractere cFile (obrigatório) - Indica o diretório, a partir do rootpath, e o nome de um arquivo WSDL.
Retorno:
lógico lRet - Retorna verdadeiro (.T.) caso tenha sido realizado o parse com sucesso. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\Weather.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
else
conout( "Parse feito com sucesso" )
endif
Return
...
- Este método realizará a leitura do arquivo e montará a estrutura do objeto, além de analisar se a sintaxe e ordem das tags estão bem formadas.
Parâmetros:
caractere cURL (obrigatório) - Indica a URL apontando para um arquivo WSDL. deve iniciar com http:// ou https://.
Retorno:
lógico lRet - Retorna verdadeiro (.T.) caso tenha sido realizado o parse com sucesso. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
else
conout( "Parse feito com sucesso" )
endif
Return User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
else
conout( "Parse feito com sucesso" )
endif
Return
...
- O valor contido em cOperation deve ser igual a um dos valores retornados pela função ListOperations.
Parâmetros:
caractere cOperation (obrigatório) - Nome da operação que será definida como a atual.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aOps := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aOps := oWsdl:ListOperations()
if Len( aOps ) == 0
conout( "Erro: " + oWsdl:cError )
Return
endif
varinfo( "", aOps )
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
//xRet := oWsdl:SetOperation( aOps[1][1] )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
User Function Teste()
Local oWsdl
Local xRet
Local aSimple := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aSimple := oWsdl:SimpleInput()
varinfo( "", aSimple )
Return
...
User Function Teste()
Local oWsdl
Local xRet
Local aComplex := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aComplex := oWsdl:ComplexInput()
varinfo( "", aComplex )
Return
...
User Function Teste()
Local oWsdl
Local xRet
Local aSimple := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aSimple := oWsdl:SimpleOutput()
varinfo( "", aSimple )
Return
...
User Function Teste()
Local oWsdl
Local xRet
Local aComplex := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aComplex := oWsdl:ComplexOutput()
varinfo( "", aComplex )
Return
...
User Function Teste()
Local oWsdl
Local xRet
Local aSimple := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aSimple := oWsdl:SimpleFault()
varinfo( "", aSimple )
Return
...
User Function Teste()
Local oWsdl
Local xRet
Local aComplex := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
aComplex := oWsdl:ComplexFault()
varinfo( "", aComplex )
Return
...
- Por se tratar de um tipo complexo, esse método define apenas o número de vezes que o mesmo irá aparecer. Os elementos internos ao elemento do tipo complexo serão definidos pelos métodos SetValue ou SetValues.
Parâmetros:
numérico nId (obrigatório) - ID do elemento igual ao informado pela função ComplexInput.
numérico nValue (obrigatório) - Quantidade de vezes que o elemento vai aparecer.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aComplex := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de um arquivo
xRet := oWsdl:ParseFile( "\rapidao.wsdl" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
xRet := oWsdl:SetOperation( "executedanfeReceipt" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Pega a lista de tipos complexos
aComplex := oWsdl:ComplexInput()
// Define para o primeiro tipo complexo que o número de ocorrências será 2.
oWsdl:SetComplexOccurs( aComplex[1][1], 2 )
Return
...
- Esse método define apenas um valor para um elemento. Para definir mais valores, utilize a função SetValues.
Parâmetros:
numérico nId (obrigatório) - ID do elemento igual ao informada pela função SimpleInput.
caractere cValue (obrigatório) - Valor para esse elemento.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
- Se uma tag suporta mais de um valor, só é necessário chamar uma vez a função, passando o ID do elemento e o vetor com todos os valores. Se for definir só um valor, deve-se passar um vetor com só um valor.
Parâmetros:
numérico nId (obrigatório) - ID do elemento igual ao informada pela função SimpleInput.
vetor aValues (obrigatório) - Vetor de valores para esse elemento.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aValues := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
aAdd( aValues, "90210" )
xRet := oWsdl:SetValues( 0, aValues )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
- O método irá definir o valor para a primeira ocorrência de cName que for encontrada, sem levar em consideração as tags pai do elemento.
- Esse método define apenas um valor para um elemento. Para definir mais valores, utilize a função SetFirstArray.
- O método fará uma busca pelo nome do elemento, podendo, em decorrência do tamanho da mensagem, haver ligeira perda de performance.
Parâmetros:
caractere cName (obrigatório) - Nome do elemento igual ao informado pela função SimpleInput.
caractere cValue (obrigatório) - Valor para esse elemento.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetFirst( "ZIP", "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
- O método irá definir o valor para a primeira ocorrência de cName que for encontrada, sem levar em consideração as tags pai do elemento.
- Se uma tag suporta mais de um valor, só é necessário chamar uma vez a função, passando o ID do elemento e o vetor com todos os valores. Se for definir só um valor, deve-se passar um vetor com só um valor.
- O método fará uma busca pelo nome do elemento, podendo, em decorrencia do tamanho da mensagem, haver ligeira perda de performance.
Parâmetros:
caractere cName (obrigatório) - Nome do elemento igual ao informado pela função SimpleInput.
vetor aValues (obrigatório) - Vetor de valores para esse elemento.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aValues := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
aAdd( aValues, "90210" )
xRet := oWsdl:SetFirstArray( "ZIP", aValues )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
- Esse método define apenas um valor para um elemento. Para definir mais valores, utilize a função SetValParArray.
- O método fará uma busca pelo nome do elemento, podendo, em decorrência do tamanho da mensagem, haver ligeira perda de performance.
Parâmetros:
caractere cName (obrigatório) - Nome do elemento igual ao informado pela função SimpleInput.
vetor aParents (obrigatório) - Vetor com os elementos pais de cName.
caractere cValue (obrigatório) - Valor para esse elemento.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aParents := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
//Define os elementos pai
aAdd( aParents, "GetCityForecastByZIP" )
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValPar( "ZIP", aParents, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
ExemplosO código a seguir demonstra como utilizar a classe tWsdlManager:
AbrangênciaBuilds superiores a 121227P |
- Se uma tag suporta mais de um valor, só é necessário chamar uma vez a função, passando o nome do elemento e o vetor com todos os valores. Se for definir só um valor, deve-se passar um vetor com só um valor.
- O método fará uma busca pelo nome do elemento, podendo, em decorrencia do tamanho da mensagem, haver ligeira perda de performance.
Parâmetros:
caractere cName (obrigatório) - Nome do elemento igual ao informado pela função SimpleInput.
vetor aParents (obrigatório) - Vetor com os elementos pais de cName.
vetor aValues (obrigatório) - Vetor de valores para esse elemento.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga definir. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local aParents := {}, aValues := {}
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
//Define os elementos pai
aAdd( aParents, "GetCityForecastByZIP" )
// Define o valor de cada parâmeto necessário
aAdd( aValues, "90210" )
xRet := oWsdl:SetValParArray( "ZIP", aParents, aValues )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
- Os cabeçalhos Accept, Accept-Encoding, Content-Length, Content-Type, Expect, Host, SOAPAction, User-Agent não podem ser usados por esse método.
- Os valores passados em cName e cValue devem ter conteúdo.
Parâmetros:
caractere cName (obrigatório) - Nome do cabeçalho que será adicionado.
caractere cValue (obrigatório) - Valor do cabeçalho que será adicionado.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga adicionar. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Adiciona cabeçalho aos cabeçalhos HTTP que serão enviados
xRet := oWsdl:AddHttpHeader( "Pragma", "no-cache" )
if xRet == .F.
Return
endif
// Envia a mensagem SOAP ao servidor
xRet := oWsdl:SendSoapMsg()
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Pega a mensagem SOAP que será enviada ao servidor
conout( oWsdl:GetSoapMsg() )
Return
...
- Em caso de erro, olhar as os atributos cErro, cFaultCode, cFaultSubCode, cFaultString e cFaultActor.
- Se o atributo lProcResp estiver definido como .F. e houver falha, o método irá retornar .T., mas a mensagem de erro bruta pode ser pega chamando o método GetSoapResponse.
Parâmetros:
caractere cMsg (opcional) - Indica a mensagem SOAP que será enviada, ao invés da mensagem gerada pela lib usando os valores que forma definidos. Opcional.
Retorno:
lógico lRet - Verdadeiro (.T.) caso consiga enviar o documento e receber a reposta do servidor. Falso (.F.) caso contrário.
Exemplos:
User Function Teste()
Local oWsdl
Local xRet
Local cMsg := ""
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Envia a mensagem SOAP ao servidor
xRet := oWsdl:SendSoapMsg()
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
cMsg := "<?xml version='1.0' encoding='UTF-8' standalone='no' ?>"
cMsg += '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" '
cMsg += 'xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" '
cMsg += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '
cMsg += 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
cMsg += 'xmlns:ns1="http://ws.cdyne.com/WeatherWS/">'
cMsg += '<SOAP-ENV:Body>'
cMsg += '<GetCityForecastByZIP xmlns="http://ws.cdyne.com/WeatherWS/">'
cMsg += '<ZIP>22313</ZIP>'
cMsg += '</GetCityForecastByZIP>'
cMsg += '</SOAP-ENV:Body>'
cMsg += '</SOAP-ENV:Envelope>'
// Envia uma mensagem SOAP personalizada ao servidor
xRet := oWsdl:SendSoapMsg( cMsg )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
Return
...
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Envia a mensagem SOAP ao servidor
xRet := oWsdl:SendSoapMsg()
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Pega a mensagem de resposta
conout( oWsdl:GetSoapResponse() )
Return
...
User Function Teste()
Local oWsdl
Local xRet
// Cria o objeto da classe TWsdlManager
oWsdl := TWsdlManager():New()
// Faz o parse de uma URL
xRet := oWsdl:ParseURL( "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define a operação
xRet := oWsdl:SetOperation( "GetCityForecastByZIP" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Define o valor de cada parâmeto necessário
xRet := oWsdl:SetValue( 0, "90210" )
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Envia a mensagem SOAP ao servidor
xRet := oWsdl:SendSoapMsg()
if xRet == .F.
conout( "Erro: " + oWsdl:cError )
Return
endif
// Pega a mensagem de resposta parseada
conout( oWsdl:GetParsedResponse() )
Return
...
. |