Beetje moeilijk om passende titel te vinden
Indien nodig, pas maar aan hoor.
Ben mij sinds een paar dagen aan het inlezen in SOAP, webservices, SOAP Toolkit 3.0, etc.
Het is de bedoeling dat ik een bestaande tool (VB6) ga uitbreiden met een module om berichten ( die lokaal beheerd worden met die tool) te plaatsen op een website van een andere firma.
Deze firma heeft een webservice beschikbaar die voor de afhandeling zorgt.
Ik beschik over een url naar een WSDL, met de omschrijving van de webservice, en een overzicht van de berichtsoorten die verstuurd kunnen worden naar de service.
Om met dit nieuwe speeltje aan de slag te gaan heb ik een van de simpele modules genomen en geprobeerd deze te gebruiken. Ik loop echter tegen een foutmelding (slaat terug op regel 8 in de code hieronder) aan die ik niet kan plaatsen:
Bijkomende gegevens:
Omschrijving module: GetCategories
Berichtsoort
Returnvariabelen
Mijn huidige code:
Om te testen of de verbinding met de webservice correct is heb ook al niet-bestaande berichtsoorten (bv. getBlabla) naar de service gestuurd en die resulteren in totaal andere foutmeldingen. De communicatie met de service is volgens mij dus inorde.
Als ik alles op een rijtje zet lijkt het mij dat het probleem wordt gecreëerd door de variabele die de return moet opvangen (strReturn). Ik heb echter al verschillende voorbeelden gevonden en geïmplementeerd om de result op te vangen maar die resulteren ook in foutmeldingen:
* gebruik van xml-object om return op te vangen
* gebruik van integer om return op te vangen
* gebruik van array om return op te vangen
Kan iemand mij aub duidelijk maken wat ik verkeerd doe of waar het verkeerd loopt? Ik zie door de bomen het bos niet meer op dit moment.
*voetnoot: het is geen optie om VB.net in te schakelen vermits de bestaande toepassing in VB6 geschreven is, en ook moet blijven.
Ben mij sinds een paar dagen aan het inlezen in SOAP, webservices, SOAP Toolkit 3.0, etc.
Het is de bedoeling dat ik een bestaande tool (VB6) ga uitbreiden met een module om berichten ( die lokaal beheerd worden met die tool) te plaatsen op een website van een andere firma.
Deze firma heeft een webservice beschikbaar die voor de afhandeling zorgt.
Ik beschik over een url naar een WSDL, met de omschrijving van de webservice, en een overzicht van de berichtsoorten die verstuurd kunnen worden naar de service.
Om met dit nieuwe speeltje aan de slag te gaan heb ik een van de simpele modules genomen en geprobeerd deze te gebruiken. Ik loop echter tegen een foutmelding (slaat terug op regel 8 in de code hieronder) aan die ik niet kan plaatsen:
code:
1
2
3
| Run-time error '13': type mismatch |
Bijkomende gegevens:
Omschrijving module: GetCategories
Berichtsoort
| Veldnaam | Formaat | Verplicht | Inhoud | Toelichting |
| Username | A(15) | J | Gebruikersnaam | / |
| Password | A(15) | J | Wachtwoord | / |
| Country | A(2) | J | Land | NL of BE |
| Returntype | A(5) | Type structuur | array of query | / |
Returnvariabelen
| Veldnaam | Formaat | Inhoud | Toelichting |
| Result | N(1) | Resultaat van actie | 1 of 0 |
| Categories | Array/query | array/query met rubrieken | / |
Mijn huidige code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
| Dim oClient As Object Dim strReturn As String Set oClient = CreateObject("MSSoap.SoapClient30") oClient.MSSoapInit WEBSERVICE_URL strReturn = oClient.GetCategories(GEBRUIKERSNAAM, PASWOORD, "BE", "query") MsgBox (strReturn) |
Om te testen of de verbinding met de webservice correct is heb ook al niet-bestaande berichtsoorten (bv. getBlabla) naar de service gestuurd en die resulteren in totaal andere foutmeldingen. De communicatie met de service is volgens mij dus inorde.
Als ik alles op een rijtje zet lijkt het mij dat het probleem wordt gecreëerd door de variabele die de return moet opvangen (strReturn). Ik heb echter al verschillende voorbeelden gevonden en geïmplementeerd om de result op te vangen maar die resulteren ook in foutmeldingen:
* gebruik van xml-object om return op te vangen
* gebruik van integer om return op te vangen
* gebruik van array om return op te vangen
Kan iemand mij aub duidelijk maken wat ik verkeerd doe of waar het verkeerd loopt? Ik zie door de bomen het bos niet meer op dit moment.
*voetnoot: het is geen optie om VB.net in te schakelen vermits de bestaande toepassing in VB6 geschreven is, en ook moet blijven.