FoxPro Programming
What to use of the big variaty of methods :-)?
Gravatar is a globally recognized avatar based on your email address. What to use of the big variaty of methods :-)?
  n/a
  All
  Mar 3, 2015 @ 03:10am
Hi there,

first time I shall asking a SOAP-Webservice fpr information.
I got a wdsl-file and information to create an XML to send as question.
Within the wsdl-file I can locate the service 'OrderCheck'.

So I go and start to create with wwsoap the following code:

DO WWSOAP
lcWSDL = "dspone-interface-ordercheck_V001.wsdl"
this.oSOAP = CREATEOBJECT("wwSOAP")
this.oSoap.cServerUrl = ALLTRIM(pcWebService)
this.oSOAP.ParseServiceWSDL(lcWSDL)
IF this.oSOAP.lError = .T.
MESSAGEBOX("Die Verbindung wurde mit einem Fehler abgebrochen: " + CHR(13) + ;
TRANSFORM(this.oSOAP.cErrorMsg)+CHR(13)+;
"Bitte wiederholen Sie es später nochmals.",64,_screen.caption)
RETURN .F.
ENDIF
this.oSOAP.AddParameter("username",this.cUserName)
this.oSOAP.AddParameter("password",this.cPassword)
THIS.oSOAP.cRequestXML = pcString
lvResult = this.oSOAP.CallMethod("OrderCheck")

Most of the code comes from the wwsoap help. But now I recognized other methods, wich I can call and because got the following error with the code above:

The endpoint reference (EPR) for the Operation not found is http://test-dspone.deltavista.com/dspone/services/OrderCheckService and the WSA Action = https://test-dspone.deltavista.com/dspone/services/OrderCheckService.OrderCheck. If this EPR was previously reachable, please contact the server administrator.

I askes myself: Is my way the right way?

I have an example in PHP. but can't read and work it out the right way to get it in use for me, FoxPro and wSOAP:

<?php
/**
* Credit assesment check from Deltavista
*
* A SOAP Request with the current user-information will be sent to Deltavista
* Allow only decision "GREEN" to show up "Zahlen per Rechnung"
*
* @autor xxxxxxx
*
*
*/

if($dv_aktiv == 1 && $global['credit-assessment-dv-active'] == true) {
// data for XML file
// credentials
$dv_user = 'xxxxxx';
$dv_pw = 'xxxx';
// Unique ID to link request to response
$dv_correlationID = md5($customer_data['nachname'] . $customer_data['vorname']);
// Order check request
/* Available:
QuickCheckConsumer
CreditCheckConsumer
QuickCheckBusiness
CreditCheckBusiness
IdentificationSearch
*/
$dv_product = 'QuickCheckConsumer';
// ISO_3166-1_alpha-3 Country Code
$dv_country_product = "DEU";
// Code "BER" for credit assessment
$dv_proofOfInterest = 'BER';

// customer
if($customer_data['anrede'] == 'Herr') {
$dv_gender = 'MALE';
} elseif($customer_data['anrede'] == 'Frau') {
$dv_gender = 'FEMALE';
} else {
$dv_gender = 'UNKNOWN';
}

$dv_firstName = $customer_data['vorname'];
$dv_lastName = $customer_data['nachname'];
$dv_street = $customer_data['strasse'];
$dv_city = $customer_data['ort'];
$dv_zip = $customer_data['plz'];
$dv_country = $customer_data['land'];
$db_country = new DB_Example;
$db_country->query("SELECT * FROM `mod_shop_laender` WHERE id = $dv_country");
if($db_country->next_record()) {
$dv_country = convertToISO3166_1alpha3($db_country->f('kuerzel'));
}
$dv_birthday = date("Ymd", strtotime($customer_data['geburtsdatum']));


$param = array();
$param['product']['name'] = $dv_product;
$param['product']['country'] = $dv_country_product;
$param['product']['proofOfInterest'] = $dv_proofOfInterest;
$param['searchedAddress']['legalForm'] = "PERSON";
$param['searchedAddress']['address']['name'] = $dv_lastName;
$param['searchedAddress']['address']['firstName'] = $dv_firstName;
$param['searchedAddress']['address']['gender'] = $dv_gender;
$param['searchedAddress']['address']['dateOfBirth'] = $dv_birthday;
$param['searchedAddress']['address']['location']['street'] = $dv_street;
$param['searchedAddress']['address']['location']['house'] = 2;
$param['searchedAddress']['address']['location']['city'] = $dv_city;
$param['searchedAddress']['address']['location']['zip'] = $dv_zip;
$param['searchedAddress']['address']['location']['country'] = $dv_country;
$header['credentials']['user'] = $dv_user;
$header['credentials']['password'] = $dv_pw;
$header['correlationID'] = $dv_correlationID;

if($global['credit-assessment-dv-test-mode']) {
$soap_location = "https://test-dspone.deltavista.com/dspone/services/OrderCheckService";
} else {
$soap_location = "https://dspone.deltavista.com/dspone/services/OrderCheckService";
}


$phpClient = new SoapClient("https://" . $shop_url .'/kasse/dspone-interface-ordercheck_V001.wsdl',
array(
'location ' => $soap_location,
'trace' => 1,
'exceptions' => 1,
'soap_version' => SOAP_1_1
)
);
$ns = "http://www.deltavista.com/dspone/ordercheck-if/V001";
$soap_header = new SOAPHeader($ns, "messageContext", $header);
$phpClient->__setSoapHeaders($soap_header);
try {
$result = $phpClient->orderCheck($param);
} catch (Exception $e) {
/*
print_r($e);
print $phpClient->__getLastRequest();
print $phpClient->__getLastResponse();
*/
}
// check response from credit assessment
if(isset($result) && $result->myDecision->decision == 'GREEN') {
$ca_ok_dv = 1;
} else {
$ca_ok_dv = 0;
}
} else {
$ca_ok_dv = 0;
}
?>


Can anyone help me out, please, to get that work for me?
If any further infrmation is needed, please ask for it.
Thanks in advance to all.



Stefan

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  Rick Strahl
  Stefan Zehner
  Mar 3, 2015 @ 12:18pm
Stefan,

Since you're just starting out with this could I suggest you take a look at the West Wind Web Service Proxy generator instead? wwSoap has been deprecated years ago in favor of this approach that's more automated and much more complete in support of a variety of services.

http://west-wind.com/WsdlGenerator/

+++ Rick ---



Hi there,

first time I shall asking a SOAP-Webservice fpr information.
I got a wdsl-file and information to create an XML to send as question.
Within the wsdl-file I can locate the service 'OrderCheck'.

So I go and start to create with wwsoap the following code:

DO WWSOAP
lcWSDL = "dspone-interface-ordercheck_V001.wsdl"
this.oSOAP = CREATEOBJECT("wwSOAP")
this.oSoap.cServerUrl = ALLTRIM(pcWebService)
this.oSOAP.ParseServiceWSDL(lcWSDL)
IF this.oSOAP.lError = .T.
MESSAGEBOX("Die Verbindung wurde mit einem Fehler abgebrochen: " + CHR(13) + ;
TRANSFORM(this.oSOAP.cErrorMsg)+CHR(13)+;
"Bitte wiederholen Sie es später nochmals.",64,_screen.caption)
RETURN .F.
ENDIF
this.oSOAP.AddParameter("username",this.cUserName)
this.oSOAP.AddParameter("password",this.cPassword)
THIS.oSOAP.cRequestXML = pcString
lvResult = this.oSOAP.CallMethod("OrderCheck")

Most of the code comes from the wwsoap help. But now I recognized other methods, wich I can call and because got the following error with the code above:

The endpoint reference (EPR) for the Operation not found is http://test-dspone.deltavista.com/dspone/services/OrderCheckService and the WSA Action = https://test-dspone.deltavista.com/dspone/services/OrderCheckService.OrderCheck. If this EPR was previously reachable, please contact the server administrator.

I askes myself: Is my way the right way?

I have an example in PHP. but can't read and work it out the right way to get it in use for me, FoxPro and wSOAP:

<?php
/**
* Credit assesment check from Deltavista
*
* A SOAP Request with the current user-information will be sent to Deltavista
* Allow only decision "GREEN" to show up "Zahlen per Rechnung"
*
* @autor xxxxxxx
*
*
*/

if($dv_aktiv == 1 && $global['credit-assessment-dv-active'] == true) {
// data for XML file
// credentials
$dv_user = 'xxxxxx';
$dv_pw = 'xxxx';
// Unique ID to link request to response
$dv_correlationID = md5($customer_data['nachname'] . $customer_data['vorname']);
// Order check request
/* Available:
QuickCheckConsumer
CreditCheckConsumer
QuickCheckBusiness
CreditCheckBusiness
IdentificationSearch
*/
$dv_product = 'QuickCheckConsumer';
// ISO_3166-1_alpha-3 Country Code
$dv_country_product = "DEU";
// Code "BER" for credit assessment
$dv_proofOfInterest = 'BER';

// customer
if($customer_data['anrede'] == 'Herr') {
$dv_gender = 'MALE';
} elseif($customer_data['anrede'] == 'Frau') {
$dv_gender = 'FEMALE';
} else {
$dv_gender = 'UNKNOWN';
}

$dv_firstName = $customer_data['vorname'];
$dv_lastName = $customer_data['nachname'];
$dv_street = $customer_data['strasse'];
$dv_city = $customer_data['ort'];
$dv_zip = $customer_data['plz'];
$dv_country = $customer_data['land'];
$db_country = new DB_Example;
$db_country->query("SELECT * FROM `mod_shop_laender` WHERE id = $dv_country");
if($db_country->next_record()) {
$dv_country = convertToISO3166_1alpha3($db_country->f('kuerzel'));
}
$dv_birthday = date("Ymd", strtotime($customer_data['geburtsdatum']));


$param = array();
$param['product']['name'] = $dv_product;
$param['product']['country'] = $dv_country_product;
$param['product']['proofOfInterest'] = $dv_proofOfInterest;
$param['searchedAddress']['legalForm'] = "PERSON";
$param['searchedAddress']['address']['name'] = $dv_lastName;
$param['searchedAddress']['address']['firstName'] = $dv_firstName;
$param['searchedAddress']['address']['gender'] = $dv_gender;
$param['searchedAddress']['address']['dateOfBirth'] = $dv_birthday;
$param['searchedAddress']['address']['location']['street'] = $dv_street;
$param['searchedAddress']['address']['location']['house'] = 2;
$param['searchedAddress']['address']['location']['city'] = $dv_city;
$param['searchedAddress']['address']['location']['zip'] = $dv_zip;
$param['searchedAddress']['address']['location']['country'] = $dv_country;
$header['credentials']['user'] = $dv_user;
$header['credentials']['password'] = $dv_pw;
$header['correlationID'] = $dv_correlationID;

if($global['credit-assessment-dv-test-mode']) {
$soap_location = "https://test-dspone.deltavista.com/dspone/services/OrderCheckService";
} else {
$soap_location = "https://dspone.deltavista.com/dspone/services/OrderCheckService";
}


$phpClient = new SoapClient("https://" . $shop_url .'/kasse/dspone-interface-ordercheck_V001.wsdl',
array(
'location ' => $soap_location,
'trace' => 1,
'exceptions' => 1,
'soap_version' => SOAP_1_1
)
);
$ns = "http://www.deltavista.com/dspone/ordercheck-if/V001";
$soap_header = new SOAPHeader($ns, "messageContext", $header);
$phpClient->__setSoapHeaders($soap_header);
try {
$result = $phpClient->orderCheck($param);
} catch (Exception $e) {
/*
print_r($e);
print $phpClient->__getLastRequest();
print $phpClient->__getLastResponse();
*/
}
// check response from credit assessment
if(isset($result) && $result->myDecision->decision == 'GREEN') {
$ca_ok_dv = 1;
} else {
$ca_ok_dv = 0;
}
} else {
$ca_ok_dv = 0;
}
?>


Can anyone help me out, please, to get that work for me?
If any further infrmation is needed, please ask for it.
Thanks in advance to all.



Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  n/a
  Rick Strahl
  Mar 3, 2015 @ 11:35pm
Hi Rick,

thanks for your answer.
I wanted to try your generator, but get errors:

---------------------------
West Wind Web Service Proxy Generator
---------------------------
Service Generation failed:
WSDL Parsing Error: Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: Die OrderCheckServiceBinding-Bindung von Namespace 'http://www.deltavista.com/dspone/ordercheck_V001' kann nicht importiert werden.
- Der orderCheck-Vorgang kann nicht importiert werden.
- Das Element 'http://www.deltavista.com/dspone/ordercheck-if/V001:messageContext' ist nicht vorhanden.
If you would like more help, please type "wsdl /?".

But anyway, why can't I use wwSoap?

Thanks a lot!
Stefan


Stefan,

Since you're just starting out with this could I suggest you take a look at the West Wind Web Service Proxy generator instead? wwSoap has been deprecated years ago in favor of this approach that's more automated and much more complete in support of a variety of services.

http://west-wind.com/WsdlGenerator/

+++ Rick ---


Stefan

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  Rick Strahl
  Stefan Zehner
  Mar 4, 2015 @ 01:15pm
Stefan,

Do you have a WSDL URL for the service you can share I can take a quick look.

You can use wwSoap, but I won't be much help trying to figure out issues with the service if there are any. I can tell you if the proxy generator is failing on it that it's most likely a fairly off standard service you're dealing with (or a WS* service) so you are also going to have issues with wwSOAP which expects a fairly common structure.

But wwSoap works the way it always has it just requires a lot of manual tweaking of namespaces/headers etc. to get it to work if the service doesn't 'just work'. This is the primary reason I stopped officially supporting it - too many variations and tedious configuration.

+++ Rick ---



Hi Rick,

thanks for your answer.
I wanted to try your generator, but get errors:

---------------------------
West Wind Web Service Proxy Generator
---------------------------
Service Generation failed:
WSDL Parsing Error: Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: Die OrderCheckServiceBinding-Bindung von Namespace 'http://www.deltavista.com/dspone/ordercheck_V001' kann nicht importiert werden.
- Der orderCheck-Vorgang kann nicht importiert werden.
- Das Element 'http://www.deltavista.com/dspone/ordercheck-if/V001:messageContext' ist nicht vorhanden.
If you would like more help, please type "wsdl /?".

But anyway, why can't I use wwSoap?

Thanks a lot!
Stefan


Stefan,

Since you're just starting out with this could I suggest you take a look at the West Wind Web Service Proxy generator instead? wwSoap has been deprecated years ago in favor of this approach that's more automated and much more complete in support of a variety of services.

http://west-wind.com/WsdlGenerator/

+++ Rick ---




Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  n/a
  Rick Strahl
  Mar 4, 2015 @ 11:46pm
Hi Rick,

no I haven't got. But I have the wsdl itself. The service providor wants all custumers to use the local wsdl. I don't know why, may be, they have several services (methods) and I get a wsdl with onle that service i booked? Anywa. I'll send u an email with the package I got.
Thanks for having a look on it!

Stefan


Stefan,

Do you have a WSDL URL for the service you can share I can take a quick look.

You can use wwSoap, but I won't be much help trying to figure out issues with the service if there are any. I can tell you if the proxy generator is failing on it that it's most likely a fairly off standard service you're dealing with (or a WS* service) so you are also going to have issues with wwSOAP which expects a fairly common structure.

But wwSoap works the way it always has it just requires a lot of manual tweaking of namespaces/headers etc. to get it to work if the service doesn't 'just work'. This is the primary reason I stopped officially supporting it - too many variations and tedious configuration.

+++ Rick ---



Hi Rick,

thanks for your answer.
I wanted to try your generator, but get errors:

---------------------------
West Wind Web Service Proxy Generator
---------------------------
Service Generation failed:
WSDL Parsing Error: Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: Die OrderCheckServiceBinding-Bindung von Namespace 'http://www.deltavista.com/dspone/ordercheck_V001' kann nicht importiert werden.
- Der orderCheck-Vorgang kann nicht importiert werden.
- Das Element 'http://www.deltavista.com/dspone/ordercheck-if/V001:messageContext' ist nicht vorhanden.
If you would like more help, please type "wsdl /?".

But anyway, why can't I use wwSoap?

Thanks a lot!
Stefan


Stefan,

Since you're just starting out with this could I suggest you take a look at the West Wind Web Service Proxy generator instead? wwSoap has been deprecated years ago in favor of this approach that's more automated and much more complete in support of a variety of services.

http://west-wind.com/WsdlGenerator/

+++ Rick ---





Stefan

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  Rick Strahl
  Rick Strahl
  Mar 5, 2015 @ 06:27pm
Tried importing the service from the WSDL file on disk. Worked for me. Created a massive service definition in the .NET assembly and a single method in the service class.

Not sure why you would see something different. Make sure you have rights to write out the assemblies - if you rn from fox run as administrator. The standalone Wizard should ask to elevate.

+++ Rick ---



Stefan,

Do you have a WSDL URL for the service you can share I can take a quick look.

You can use wwSoap, but I won't be much help trying to figure out issues with the service if there are any. I can tell you if the proxy generator is failing on it that it's most likely a fairly off standard service you're dealing with (or a WS* service) so you are also going to have issues with wwSOAP which expects a fairly common structure.

But wwSoap works the way it always has it just requires a lot of manual tweaking of namespaces/headers etc. to get it to work if the service doesn't 'just work'. This is the primary reason I stopped officially supporting it - too many variations and tedious configuration.

+++ Rick ---



Hi Rick,

thanks for your answer.
I wanted to try your generator, but get errors:

---------------------------
West Wind Web Service Proxy Generator
---------------------------
Service Generation failed:
WSDL Parsing Error: Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: Die OrderCheckServiceBinding-Bindung von Namespace 'http://www.deltavista.com/dspone/ordercheck_V001' kann nicht importiert werden.
- Der orderCheck-Vorgang kann nicht importiert werden.
- Das Element 'http://www.deltavista.com/dspone/ordercheck-if/V001:messageContext' ist nicht vorhanden.
If you would like more help, please type "wsdl /?".

But anyway, why can't I use wwSoap?

Thanks a lot!
Stefan


Stefan,

Since you're just starting out with this could I suggest you take a look at the West Wind Web Service Proxy generator instead? wwSoap has been deprecated years ago in favor of this approach that's more automated and much more complete in support of a variety of services.

http://west-wind.com/WsdlGenerator/

+++ Rick ---






Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  Rick Strahl
  Stefan Zehner
  Mar 5, 2015 @ 06:28pm
Worked for me when I imported your WDSL files from disk. Created huge .NET and a single method FoxPro proxy.

What exactly doesn't work?

+++ Rick ---



Hi Rick,

no I haven't got. But I have the wsdl itself. The service providor wants all custumers to use the local wsdl. I don't know why, may be, they have several services (methods) and I get a wsdl with onle that service i booked? Anywa. I'll send u an email with the package I got.
Thanks for having a look on it!

Stefan


Stefan,

Do you have a WSDL URL for the service you can share I can take a quick look.

You can use wwSoap, but I won't be much help trying to figure out issues with the service if there are any. I can tell you if the proxy generator is failing on it that it's most likely a fairly off standard service you're dealing with (or a WS* service) so you are also going to have issues with wwSOAP which expects a fairly common structure.

But wwSoap works the way it always has it just requires a lot of manual tweaking of namespaces/headers etc. to get it to work if the service doesn't 'just work'. This is the primary reason I stopped officially supporting it - too many variations and tedious configuration.

+++ Rick ---



Hi Rick,

thanks for your answer.
I wanted to try your generator, but get errors:

---------------------------
West Wind Web Service Proxy Generator
---------------------------
Service Generation failed:
WSDL Parsing Error: Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: Die OrderCheckServiceBinding-Bindung von Namespace 'http://www.deltavista.com/dspone/ordercheck_V001' kann nicht importiert werden.
- Der orderCheck-Vorgang kann nicht importiert werden.
- Das Element 'http://www.deltavista.com/dspone/ordercheck-if/V001:messageContext' ist nicht vorhanden.
If you would like more help, please type "wsdl /?".

But anyway, why can't I use wwSoap?

Thanks a lot!
Stefan


Stefan,

Since you're just starting out with this could I suggest you take a look at the West Wind Web Service Proxy generator instead? wwSoap has been deprecated years ago in favor of this approach that's more automated and much more complete in support of a variety of services.

http://west-wind.com/WsdlGenerator/

+++ Rick ---







Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  n/a
  Rick Strahl
  Mar 5, 2015 @ 11:19pm
Hi Rick,

I'll try it again. But I got en error, I posted you already.

I can make it, if I upload my wdsl to the internet and put the URL into the generator. So, thats OK now :-).

After browsing with the reflector and coding as documented, I got an error back, similar with that one I got with wwsoap:

"The method "OrderCheckService.OrderCheckService.orderCheck" could not been found..."

With wwSOAP the text is a little different:

Error validating 'orderCheck' body element: cvc-elt.1: Cannot find the declaration of element 'orderCheck'.


But browsing in the reflector shows the way:

OrderCheckServiceProxy.dll
-> OrderCheckService
-> OrderCheckService
->orderCheck(OrderCheckRequest)


Spelling of the method, case sensitive, and Parameter is correct.

In the FoxPro-Code in the method "orderCheck", it sais this.oBridge.InvokeMethod(THIS.OSERVICE....
THIS.OSERVISE has only ONE method: httplogin. Nothing else. I am confused...


Thanks,
Stefan



Worked for me when I imported your WDSL files from disk. Created huge .NET and a single method FoxPro proxy.

What exactly doesn't work?

+++ Rick ---


Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  Rick Strahl
  Stefan Zehner
  Mar 6, 2015 @ 03:12am
Not sure really - I suspect it's a permissions problem. You have to have both the WSDL and the XSD file in the same folder as well...

As to the error it means you're not passing the right type for the parameter. Please post your relevant code...

+++ Rick ---


Hi Rick,

I'll try it again. But I got en error, I posted you already.

I can make it, if I upload my wdsl to the internet and put the URL into the generator. So, thats OK now :-).

After browsing with the reflector and coding as documented, I got an error back, similar with that one I got with wwsoap:

"The method "OrderCheckService.OrderCheckService.orderCheck" could not been found..."

With wwSOAP the text is a little different:

Error validating 'orderCheck' body element: cvc-elt.1: Cannot find the declaration of element 'orderCheck'.


But browsing in the reflector shows the way:

OrderCheckServiceProxy.dll
-> OrderCheckService
-> OrderCheckService
->orderCheck(OrderCheckRequest)


Spelling of the method, case sensitive, and Parameter is correct.

In the FoxPro-Code in the method "orderCheck", it sais this.oBridge.InvokeMethod(THIS.OSERVICE....
THIS.OSERVISE has only ONE method: httplogin. Nothing else. I am confused...


Thanks,
Stefan



Worked for me when I imported your WDSL files from disk. Created huge .NET and a single method FoxPro proxy.

What exactly doesn't work?

+++ Rick ---



Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  n/a
  Rick Strahl
  Mar 6, 2015 @ 03:58am
OK, here is the code for testing. wsdl and xsd files are in the same folder. In the current folder. The generatet files are in program-folder (prg) and current folder (dll), as well as the code in aprg file:

DO program\ordercheckserviceproxy.PRG
LOCAL loProxy
loProxy = CREATEOBJECT("OrderCheckServiceProxy")
llOK = loProxy.HttpLogin("interfina_test_xml","q@Y8tmru",.T.)

IF !llOK
MESSAGEBOX("Anmeldung fehl geschlagen!")
loProxy = null
RETURN
ENDIF

TEXT TO m.lcString ADDITIVE TEXTMERGE NOSHOW
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<messageContext xmlns="http://www.deltavista.com/dspone/ordercheck-if/V001">
<credentials>
<user>interfina_test_xml</user>
<password>q@Y8tmru</password>
</credentials>
<correlationID>DE-456321</correlationID>
</messageContext>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<orderCheckRequest xmlns="http://www.deltavista.com/dspone/ordercheck-if/V001">
<product>
<name>IdentCheckConsumer</name>
<country>DEU</country>
<proofOfInterest>ABI</proofOfInterest>
</product>
<searchedAddress>
<legalForm>PERSON</legalForm>
<address>
<name>Falk</name>
<firstName>Quintus</firstName>
<gender>MALE</gender>
<dateOfBirth>19680414</dateOfBirth>
<location>
<street>Rathausstrasse</street>
<house>2</house>
<city>Glücksburg</city>
<zip>24960</zip>
<country>DEU</country>
</location>
</address>
</searchedAddress>
<clientData>
<reference>Test_Ident_01</reference>
<order>
<contact>
<item>email</item>
<value>f.quintus@deltavista.com</value>
</contact>
</order>
</clientData>
</orderCheckRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
ENDTEXT

loResponse = loProxy.ordercheck(m.lcString)


IF loResponse = .T.
MESSAGEBOX(":-)")
ELSE
MESSAGEBOX(":-(" + CHR(13) + loProxy.CERRORMSG)
ENDIF

loService = null


Not sure really - I suspect it's a permissions problem. You have to have both the WSDL and the XSD file in the same folder as well...

As to the error it means you're not passing the right type for the parameter. Please post your relevant code...

+++ Rick ---

Stefan

Gravatar is a globally recognized avatar based on your email address. Re: What to use of the big variaty of methods :-)?
  Rick Strahl
  Stefan Zehner
  Mar 8, 2015 @ 05:41am
Stefan,

I think you're not understanding how the proxy generator works. You have to pass an object not XML to this function...

Please review the basic documentation for the proxy generator or watch the video to understand how this works. You don't pass XML - you use objects to fill the data and then pass that object to the method.

+++ Rick ---



OK, here is the code for testing. wsdl and xsd files are in the same folder. In the current folder. The generatet files are in program-folder (prg) and current folder (dll), as well as the code in aprg file:

DO program\ordercheckserviceproxy.PRG
LOCAL loProxy
loProxy = CREATEOBJECT("OrderCheckServiceProxy")
llOK = loProxy.HttpLogin("interfina_test_xml","q@Y8tmru",.T.)

IF !llOK
MESSAGEBOX("Anmeldung fehl geschlagen!")
loProxy = null
RETURN
ENDIF

TEXT TO m.lcString ADDITIVE TEXTMERGE NOSHOW
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<messageContext xmlns="http://www.deltavista.com/dspone/ordercheck-if/V001">
<credentials>
<user>interfina_test_xml</user>
<password>q@Y8tmru</password>
</credentials>
<correlationID>DE-456321</correlationID>
</messageContext>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<orderCheckRequest xmlns="http://www.deltavista.com/dspone/ordercheck-if/V001">
<product>
<<span class="properties">name>IdentCheckConsumer</name>
<country>DEU</country>
<proofOfInterest>ABI</proofOfInterest>
</product>
<searchedAddress>
<legalForm>PERSON</legalForm>
<address>
<<span class="properties">name>Falk</name>
<firstName>Quintus</firstName>
<gender>MALE</gender>
<dateOfBirth>19680414</dateOfBirth>
<location>
<street>Rathausstrasse</street>
<house>2</house>
<city>Glücksburg</city>
<zip>24960</zip>
<country>DEU</country>
</location>
</address>
</searchedAddress>
<clientData>
<reference>Test_Ident_01</reference>
<<span class="functions">order>
<contact>
<<span class="methods">item>email</item>
<<span class="properties">value>f.quintus@deltavista.com</value>
</contact>
</order>
</clientData>
</orderCheckRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
ENDTEXT

loResponse = loProxy.ordercheck(m.lcString)


IF loResponse = .T.
MESSAGEBOX(":-)")
ELSE
MESSAGEBOX(":-(" + CHR(13) + loProxy.CERRORMSG)
ENDIF

loService = null


Not sure really - I suspect it's a permissions problem. You have to have both the WSDL and the XSD file in the same folder as well...

As to the error it means you're not passing the right type for the parameter. Please post your relevant code...

+++ Rick ---



Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

© 1996-2024