1 Bob's Low Cost Insurance 2 Tom's Great Insurance #### sub doGetClientList { # deal with arguments # warn Dumper(\@_); shift; # remove class name my $cookie = shift; # unused currently # talk to database my $dbh = _dbh(); my $sql = "select * from client"; my $sth = $dbh->prepare($sql) or die "prep $sql"; $sth->execute() or die "exec $sql"; my $clientlist = []; while (my $row = $sth->fetchrow_hashref()) { # my $soapclientrec = SOAP::Data->new(); # $soapclientrec->name('clientrecord'); # $soapclientrec->type('typens:ClientRecord'); push(@$clientlist,$row); } warn "PID=$$ " . Dumper($clientlist); # warn "PID=$$ clients=(" . join(',',@$clientlist) . ")"; # warn "here"; # return ({records=>$clientlist}); # return SOAP::Data->name("records" => # SOAP::Data->value( SOAP::Data->name("client" => @$clientlist) # ->type("ClientRecord") # ) # )->type("ClientRecordArray"); my @soaprecs; foreach my $row (@$clientlist) { foreach my $key (keys %$row) { unless (defined $row->{$key}) { $row->{$key} = ''; } } my $clirec = SOAP::Data->new(); $clirec->name('ClientRecord'); #$clirec->value($row->{clientid}); $clirec->value($row); $clirec->type('typens::ClientRecord'); push(@soaprecs,$clirec); } #warn Dumper(\@soaprecs); my $reccount = scalar(@soaprecs); my $clientarray = SOAP::Data->new(); $clientarray->name('ClientArray'); # $clientarray->value(@soaprecs); $clientarray->value('blah blah'); $clientarray->attr({'SOAP-ENC:arrayType'=>"typens:ClientRecord[$reccount]", # 'xsi:type' => 'SOAP-ENC:Array', }); $clientarray->type('SOAP-ENC:Array',); my $records = SOAP::Data->new(); $records->name('records'); $records->value($clientarray); $records->type('typens:ClientRecordList'); # warn "about to encode array"; # use warnings; # my $serializer = SOAP::Serializer->new(); # warn "got serializer"; # my $records = $serializer->encode_array($clientlist,'clientlist','ClientRecordArray',{}); # my $records = $serializer->encode_object($clientlist,'clientlist','ClientRecordArray'); # warn Dumper($records); return $records; }