[Gelöst]Automation findet keine Instanz

21. Juli 2014 08:48

Guten Morgen,

ich mal wieder... :-?

Problem: Fehlermeldung beim Zugriff auf eine Automation.
"Für diese Automation Variable wurde keine Instanz erstellt. Sie können ihr eine Instanz zuordnen, indem Sie sie entweder erstellen oder zuordnen".

Durch "Message('%1',ISCLEAR("xml_docu"))" gibt's aber die Info, dass es eine Instanz gibt. Die Fehlermeldung tritt ganz unten auf bei dem "IF XML_docu.selectSingleNode" auf.
Ich weiß nicht, was ihr für Informationen braucht, aber unten ist der entsprechende Quelltext (nicht von mir programmiert).

Name DataType Subtype
xml_docu Automation 'Microsoft XML, v3.0'.DOMDocument

Code:
CLEAR(UPSServer);
CLEAR(xml_docu);
CREATE(xml_docu);
CREATE(UPSServer);

xml_docu.async := FALSE;

ReqPart1 := '<?xml version="1.0"?>' + '<AccessRequest ' +
'xml:lang="en-US">' + '<AccessLicenseNumber>' + accesskey + '</AccessLicenseNumber>' +
'<UserId>' + txtuserid + '</UserId>' + '<Password>' + password + '</Password>' +
'</AccessRequest>' + '<?xml version="1.0"?>' + '<TrackRequest xml:lang=' +
'"en-US">' + '<Request>' + '<RequestAction>Track</RequestAction>' +
'<RequestOption>15</RequestOption>' + '</Request>' + '<TrackingNumber>';

ReqPart2 := '</TrackingNumber></TrackRequest>';
UPSServer.open('POST', 'https://www.ups.com/ups.app/xml/Track', FALSE);
UPSServer.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

xml_docu.loadXML(ReqPart1 + codeTrackingnummer + ReqPart2);
UPSServer.send(ReqPart1 + codeTrackingnummer + ReqPart2);

txtResponse := UPSServer.responseXML;
xml_docu.load(txtResponse);

//MESSAGE('%1',ISCLEAR("xml_docu"));

IF xml_docu.selectSingleNode('//TrackResponse/Response/ResponseStatusCode').text = '0' THEN
  EXIT;
Zuletzt geändert von Hannes Rathje am 9. September 2014 09:21, insgesamt 1-mal geändert.

Re: Automation findet keine Instanz

21. Juli 2014 16:44

Hallo Hannes,

wurde das Objekt verändert?

der Fehler liegt meiner Meinung nach am .text selectSingelNode bietet keine weiteren Argumente die Dir den Zugriff .text erlauben würden.
Für mich sieht es so aus, als ob das ') falsch gesetzt wurde und die Zeile nicht
Code:
IF xml_docu.selectSingleNode('//TrackResponse/Response/ResponseStatusCode').text = '0' THEN
  EXIT;


sondern

Code:
IF xml_docu.selectSingleNode('//TrackResponse/Response/ResponseStatusCode.text') = '0' THEN
  EXIT;


lauten sollte.

Gruß
42