The return value (structure) of ars_GetField has changed. I don't know exact
version when this was changed.
This sub takes the return value of ars_GetField and returns an array. This sub
is also compatible to the old structure returned in earlier versions of ARSPerl.
sub enum_values ($) {
my $limit = $_[0]->{'limit'};
my @values;
if (ref($limit) eq 'HASH') {
my $h = $limit->{'enumLimits'};
if (ref($h) eq 'HASH') {
if (defined($h->{'regularList'} )){
my $z = $h->{'regularList'};
@values = @$z;
} elsif (defined($h->{'customList'} )){
foreach my $item (@{$h->{'customList'}}){
$values[$item->{'itemNumber'}] = $item->{'itemName'};
}
}
} else {
@values = @$h;
}
} else {
@values = @$limit;
}
return @values;
}
-----Ursprüngliche Nachricht-----
Von: Action Request System discussion list(ARSList)
[mailto:[email protected]] Im Auftrag von kishorkv
Gesendet: Freitag, 12. Dezember 2008 23:32
An: [email protected]
Betreff: Please Help - my enumvals ARS Perl 1.91 Remedy 7.1
I am new to Perl and ARSPerl. I have experience in Java Working on upgrade
project ARS 6.3 to 7.1 Upgrade.
I have started learning Perl and ARSPerl but NOT that good so far.
With Remedy 7.1 Perl api (1.91) and latest Active perl I get following error
for my existing (6.3 working) perl script.
CGI Error
The specified CGI application misbehaved by not returning a complete set of
HTTP headers.
My Perl script functions looks like this, after using log4perl and debuggin I
got the point where I have the issue, it is getting enum values.
Line: my @enumvals = @{$fieldinfo->{limit}};
sub ARS_getreportformat {
# returns a ptr to an array of ptrs (to arrays) containing display data for
this view
# NOTE: the returned data is sorted by display_order!!
my $c = $_[0];
my $view = $_[1];
my $ret_form;
my %ret_report_format;
# get grid defintions
my $form_def = "rdpv_grid_def";
my $qualification = qq,'View Name' = "$view",;
unless ($qual = ars_LoadQualifier($c, "$form_def", "$qualification")) {
print "$ars_errstr\n";
die;
}
%entries = ars_GetListEntry($c, "$form_def", $qual, 0, 0) ;
print "Grid definition not found : $view \n" if scalar(%entries) == 0 ;
# should only be one!!
foreach $entryid(keys %entries) {
unless (%fidvals = ars_GetEntry($c, "$form_def", "$entryid")) {
print "$ars_errstr\n";
die ;
}
$ret_report_format{display}{title} = $fidvals{536870913};
$ret_report_format{display}{excel} = $fidvals{536870914};
$ret_report_format{sql}{order} = $fidvals{536870915};
$ret_report_format{display}{denote_new_sorted_val} = $fidvals{536870916};
$ret_report_format{display}{javascript} = $fidvals{536870918};
$ret_report_format{display}{percmain1} = $fidvals{536870919};
}
# get grid-column defintions
my $form_cols = "rdpv_grid_def_cols";
my $display_order_fid = 536870916;
$qualification = qq,'View Name' = "$view",;
unless ($qual = ars_LoadQualifier($c, "$form_cols", "$qualification")) {
print "$ars_errstr\n";
die;
}
%entries = ars_GetListEntry($c, "$form_cols", $qual, 0, 0);
foreach $entryid(keys %entries) {
unless (%fidvals = ars_GetEntry($c, "$form_cols", "$entryid")) {
print "$ars_errstr\n";
die;
}
$order = $fidvals{$display_order_fid};
$ret_report_format{display}{columns}{$order}->{form} =
$fidvals{536870913};
$ret_report_format{display}{columns}{$order}->{field} =
&RAD_fid_til_semi($fidvals{536870914});
$ret_report_format{display}{columns}{$order}->{display_type} =
$fidvals{536870915};
# if enum, pass form and fid for reference
if ($fidvals{536870915} eq "enum") {
$fidvals{536870913};
my $frs_para = $c;
my $sec_para = $fidvals{536870913};
my $thrd_para =
$ret_report_format{display}{columns}{$order}->{field};
$ret_report_format{display}{columns}{$order}->{enum} =
&ARS_getEnumVals($c, $fidvals{536870913},
$ret_report_format{display}{columns}{$order}->{field});
}
$ret_report_format{display}{columns}{$order}->{alternate_label} =
$fidvals{536870917};
$ret_report_format{display}{columns}{$order}->{special_instructions} =
$fidvals{536870918};
$ret_report_format{display}{columns}{$order}->{max_width} =
$fidvals{536870919};
$ret_report_format{display}{columns}{$order}->{wrap_at} =
$fidvals{536870920};
$ret_report_format{display}{columns}{$order}->{convert_to} =
$fidvals{536870921};
$ret_report_format{display}{columns}{$order}->{url} = $fidvals{536870924};
$ret_report_format{display}{columns}{$order}->{sortorder} =
$fidvals{536870925};
$ret_report_format{display}{columns}{$order}->{sortedby} =
$fidvals{536870926};
$ret_form = $fidvals{536870913};
}
return ($ret_form, \%ret_report_format);
}
sub ARS_getEnumVals {
my $xc = $_[0];
my $xform = $_[1];
my $xfid = $_[2];
(my $fieldinfo = ars_GetField($xc, $xform, $xfid)) ||
die "GetField: $ars_errstr";
my @enumvals = @{$fieldinfo->{limit}};
return (\...@enumvals);
}
I did try different options but NO luck, I really appreciate if you can help me
fix this issue.
Thanks,
kishorkv
--
View this message in context:
http://www.nabble.com/Please-Help---my-enumvals-ARS-Perl-1.91-Remedy-7.1-tp20984758p20984758.html
Sent from the ARS (Action Request System) mailing list archive at Nabble.com.
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor:
www.rmsportal.com ARSlist: "Where the Answers Are"
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers Are"