ARS-Simple
view release on metacpan or search on metacpan
lib/ARS/Simple.pm view on Meta::CPAN
{
if (defined $args->{lvp}{$label})
{
$lvp{$args->{lfid}{$label}} = $lvp{$label};
delete $lvp{$label};
}
else
{
carp("update_record - label '$label' not found in lfid hash");
}
}
my $rv = ars_SetEntry($self->{ctl}, $form, $eID, 0, %lvp);
# Check for errors
unless (defined $rv && $rv == 1)
{
# Update failed
my $msg = "update_record(eid=$eID, form=$form, ...) failed:\nars_errstr=$ars_errstr\nlvp data was:\n";
foreach my $label (sort keys %{$args->{lvp}})
{
$msg .= sprintf("%30s (%10d) ---> %s\n", $label, $args->{lfid}{$label}, defined($lvp{$args->{lfid}{$label}}) ? $lvp{$args->{lfid}{$label}} : '<undefined>');
}
carp($msg);
}
return $rv;
}
sub get_ctl
{
my $self = shift;
return $self->{ctl};
}
sub _carp
{
my $self = shift;
my $msg = join('', @_);
carp $msg;
$self->{log}->exp($msg) if ($self->{log});
}
sub _init
{
my ($self, $args) = @_;
# Did we have any of the persistant variables passed
my $k = '5Jv@sI9^bl@D*j5H3@:7g4H[2]d%Ks314aNuGeX;';
if ($args->{user})
{
$self->{persistant}{user} = $args->{user};
}
else
{
if (defined $config{user})
{
my $s = pack('H*', $config{user});
my $x = substr($k, 0, length($s));
my $u = $s ^ $x;
$self->{persistant}{user} = $u;
}
else
{
croak "No user defined, quitting\n";
}
}
if ($args->{password})
{
$self->{persistant}{password} = $args->{password};
}
else
{
if (defined $config{password})
{
my $s = pack('H*', $config{password});
my $x = substr($k, 0, length($s));
my $u = $s ^ $x;
$self->{persistant}{password} = $u;
}
else
{
croak "No password defined, quitting\n";
}
}
$user = $self->{persistant}{user};
$pword = $self->{persistant}{password};
# Handle the other passed arguments
$self->{server} = $args->{server} if $args->{server};
$self->{log} = $args->{log} if $args->{log};
$self->{max_returns} = $args->{max_returns} if defined $args->{max_returns};
$self->{reset_limit} = $args->{reset_limit} if defined $args->{reset_limit};
if ($args->{ars_debug})
{
$ARS::DEBUGGING = 1;
}
$self->{debug} = $args->{debug} ? 1 : 0;
## Now connect to Remedy
if ($self->{server} && $user && $pword)
{
my $ctl = ars_Login($self->{server}, $user, $pword);
if ($ctl)
{
$self->{ctl} = $ctl;
}
else
{
croak(__PACKAGE__ . " object initialisation failed.\nFailed to log into Remedy server=" . $self->{server} . " as user '$user' with supplied password: $ars_errstr\n");
}
}
else
{
croak(__PACKAGE__ . " object initialisation failed, server, user and password are required\n");
}
}
# GG test - need to find and store the current value of AR_SERVER_INFO_MAX_ENTRIES
# so we can set reset_limit if not defined
#my %s = ars_GetServerInfo($self->{ctl});
#print Dumper(\%s);
1; # End of ARS::Simple
__END__
=head1 NAME
ARS::Simple - A simplified interface to Remedy ARSystem
=head1 SYNOPSIS
( run in 1.147 second using v1.01-cache-2.11-cpan-39bf76dae61 )