Loading ...
Sorry, an error occurred while loading the content.

Arrays of Arrays?

Expand Messages
  • robertatelastica
    So I have a complex type thus my $params = SOAP::Data- type( SysHashMap )- name( arg0 = SOAP::Data- value( @keys, @values)); @keys are strings and values
    Message 1 of 2 , Oct 1, 2004
    • 0 Attachment
      So I have a complex type thus

      my $params = SOAP::Data->type('SysHashMap')->name("arg0" =>
      \SOAP::Data->value( @keys, @values));

      @keys are strings and values are nearly all strings except for one
      value I want as another complex that's also a SysHashMap

      so I'm constructing that the same way I construct the above one.

      my $time_params = SOAP::Data->type('SysHashMap')->name("
      arg0" => \SOAP::Data->value( @time_keys, @time_values));
      push @keys, SOAP::Data->name("keys" => $k);
      push @values, $time_params;

      So basically one of the values of the $params complex type is
      another complex type.

      Is this supported?

      however when I send my request I get the dredded.

      Unable to execute SOAP request.
      XML parse has failed on (Line 1, Column 2282).
      main::__ANON/XXXX/run.pl:222]('ReportService=HASH
      (0xa417fc)','SOAP::SOM=HASH(0x9b33d4)') called
      at /sbcimp/run/pd/cpan/5.8.0-2003.05/lib/SOAP/Lite.pm line 2839
      SOAP::Lite::call('ReportService=HASH
      (0xa417fc)','executeReport','SOAP::Data=HASH(0xa7cd3c)') called at
      (eval 93)[/sbcimp/run/pd/cpan/5.8.0-2003.05/lib/SOAP/Lite.pm:2487]
      line 44
      ReportService::__ANON__[(eval 93)[/sbcimp/run/pd/cpan/5.8.0-
      2003.05/lib/SOAP/Lite.pm:2487]:47]('ReportService=HASH
      (0xa417fc)','SOAP::Data=HASH(0x6c7118)') called
      at /XXXX/runReport.pl line 236
      main::executeReport('HASH
      (0x49d800)','localhost:7001','ReportWebService') called
      at /XXXX/runReport.pl line 175
    • jpeyser
      It might work if SOAP::Lite knew the definition of type SysHashMap. The following will generate an array of an array. my $time_params = SOAP::Data- name( arg0
      Message 2 of 2 , Oct 6, 2004
      • 0 Attachment
        It might work if SOAP::Lite knew the definition of type SysHashMap.

        The following will generate an array of an array.

        my $time_params = SOAP::Data->name("arg0" =>
        [@time_keys, @time_values]);
        push @keys, SOAP::Data->name("keys" => $k);
        push @values, $time_params;

        my $params = SOAP::Data->name("arg0" => [@keys, @values]);

        Jonathan

        --- In soaplite@yahoogroups.com, "robertatelastica" <robert@e...> wrote:
        > So I have a complex type thus
        >
        > my $params = SOAP::Data->type('SysHashMap')->name("arg0" =>
        > \SOAP::Data->value( @keys, @values));
        >
        > @keys are strings and values are nearly all strings except for one
        > value I want as another complex that's also a SysHashMap
        >
        > so I'm constructing that the same way I construct the above one.
        >
        > my $time_params = SOAP::Data->type('SysHashMap')->name("
        > arg0" => \SOAP::Data->value( @time_keys, @time_values));
        > push @keys, SOAP::Data->name("keys" => $k);
        > push @values, $time_params;
        >
        > So basically one of the values of the $params complex type is
        > another complex type.
        >
        > Is this supported?
        >
        > however when I send my request I get the dredded.
        >
        > Unable to execute SOAP request.
        > XML parse has failed on (Line 1, Column 2282).
        > main::__ANON/XXXX/run.pl:222]('ReportService=HASH
        > (0xa417fc)','SOAP::SOM=HASH(0x9b33d4)') called
        > at /sbcimp/run/pd/cpan/5.8.0-2003.05/lib/SOAP/Lite.pm line 2839
        > SOAP::Lite::call('ReportService=HASH
        > (0xa417fc)','executeReport','SOAP::Data=HASH(0xa7cd3c)') called at
        > (eval 93)[/sbcimp/run/pd/cpan/5.8.0-2003.05/lib/SOAP/Lite.pm:2487]
        > line 44
        > ReportService::__ANON__[(eval 93)[/sbcimp/run/pd/cpan/5.8.0-
        > 2003.05/lib/SOAP/Lite.pm:2487]:47]('ReportService=HASH
        > (0xa417fc)','SOAP::Data=HASH(0x6c7118)') called
        > at /XXXX/runReport.pl line 236
        > main::executeReport('HASH
        > (0x49d800)','localhost:7001','ReportWebService') called
        > at /XXXX/runReport.pl line 175
      Your message has been successfully submitted and would be delivered to recipients shortly.