zehner: Probleme mit SOAP / WSDL (für Zugriff auf TecDoc) via SOAP::Lite

Hallo,
ich arbeite derzeit an einem Script, das auf die TecDoc-Datenbank(en) zugreifen soll. Dies wird über SOAP / WSDL durchgeführt.

Allerdings habe ich noch nie mir SOAP und WSDL respektive TecDoc gearbeitet und daher sehr große Probleme, einen Connect hinzubekommen. TecDoc gibt leider auch keine Hilfe.

Es sollen später die Daten zu Fahrzeugteilen aus der TecDoc-Datenbank geholt werden, doch das scheint derzeit noch in weiter Ferne...

Mein mini-Testscript sieht derzeit folgendermaßen aus:

#!/usr/bin/perl -w  
#!/usr/bin/composite  
use SOAP::Lite;  
  
my $soap = SOAP::Lite  
    -> proxy('http://webservicepilot.tecdoc.net/pegasus-2-0/services/TecdocToCat')  
    -> uri('http://webservicepilot.tecdoc.net/pegasus-2-0/services/TecdocToCat')  
    -> getPegasusVersionInfo()  
    -> result;  
  
print "Content-type: text/html \n\n";	  
print $soap;

Es *sollten* folgende Infos ausgegeben werden zu:

build=1015  
date=2009/10/08 14:04  
major=2  
minor=0  
revision=1  
status=200

Folgendes wird jedoch ausgegeben:
VersionInfoResponse=HASH(0x87c3bc0)
Dass dort ein Hash dabei ist, sehe ich auch - doch wie komme ich da dran?
Wie kann ich das Hash auslesen, denn das liegt ja zusammen mit dem "VersionInfoResponse=" in der Variablen $soap...

Ich hoffe, ihr könnt mir weiterhelfen. Ich sitze seit bestimmt 3 Tagen da dran uns sehe langsam den Wald vor lauter Bäumen nicht mehr... :(

Vielen Dank im Voraus und viele Grüße
zehner

  1. my $soap = SOAP::Lite
        -> proxy('http://webservicepilot.tecdoc.net/pegasus-2-0/services/TecdocToCat')
        -> uri('http://webservicepilot.tecdoc.net/pegasus-2-0/services/TecdocToCat')
        -> getPegasusVersionInfo()
        -> result;

    print "Content-type: text/html \n\n";
    print $soap;[/code]

    Folgendes wird jedoch ausgegeben:
    VersionInfoResponse=HASH(0x87c3bc0)
    Dass dort ein Hash dabei ist, sehe ich auch - doch wie komme ich da dran?

    keine Ahnung davon.
    aber mal mit
       print $soap->{VersionInfoResponse};
    versucht (die Hashreferenz dereferenzieren)

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  2. Folgendes wird jedoch ausgegeben:
    VersionInfoResponse=HASH(0x87c3bc0)
    Dass dort ein Hash dabei ist, sehe ich auch - doch wie komme ich da dran?

    use Data::Dumper;

    Struppi.

    1. use Data::Dumper;

      Vielen Dank für deine Hilfe, nun erhalte ich tatsächlich eine Auflistung aller enthaltenen Datenstrukturen:
      $VAR1 = bless( { 'revision' => '1', 'status' => '200', 'date' => '2009/10/08 14:04', 'minor' => '0', 'statusText' => undef, 'major' => '2', 'build' => '1015' }, 'VersionInfoResponse' );

      Allerdings fehlt mir jetzt noch ein Tipp, wie ich an einzelne Variablen, also z.B. "status" dran komme...
      Ich bin für jeden Tipp sehr dankbar!!

      Vielen Dank & viele Grüße
      zehner

      1. Allerdings fehlt mir jetzt noch ein Tipp, wie ich an einzelne Variablen, also z.B. "status" dran komme...
        Ich bin für jeden Tipp sehr dankbar!!

        Ich vermute mal über die Funktion status, was sagt denn die Doku?

        Struppi.