Remedy-ARSTools
view release on metacpan or search on metacpan
ARSTools.pm view on Meta::CPAN
return (undef);
}
}
#here we go
if ($p{'ObjectType'} =~/^active_link$/i){
#ars_DeleteActiveLink
ARS::ars_DeleteActiveLink( $self->{'ctrl'}, $p{'ObjectName'} ) || do {
$self->{'errstr'} = "DeleteObjectFromServer: failed to delete object from server: " . $ARS::ars_errstr;
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
};
}elsif ($p{'ObjectType'} =~/^char_menu$/i){
#ars_DeleteCharMenu
ARS::ars_DeleteCharMenu( $self->{'ctrl'}, $p{'ObjectName'} ) || do {
$self->{'errstr'} = "DeleteObjectFromServer: failed to delete object from server: " . $ARS::ars_errstr;
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
};
}elsif ($p{'ObjectType'} =~/^escalation$/i){
#ars_DeleteEscalation
ARS::ars_DeleteEscalation( $self->{'ctrl'}, $p{'ObjectName'} ) || do {
$self->{'errstr'} = "DeleteObjectFromServer: failed to delete object from server: " . $ARS::ars_errstr;
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
};
}elsif ($p{'ObjectType'} =~/^filter$/i){
#ars_DeleteFilter
ARS::ars_DeleteFilter( $self->{'ctrl'}, $p{'ObjectName'} ) || do {
$self->{'errstr'} = "DeleteObjectFromServer: failed to delete object from server: " . $ARS::ars_errstr;
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
};
}elsif ($p{'ObjectType'} =~/^schema$/i){
#ars_DeleteSchema
ARS::ars_DeleteSchema( $self->{'ctrl'}, $p{'ObjectName'}, 1 ) || do {
## NOTE: setting deleteOption to 1 (force_delete). whoo chile! be careful!
$self->{'errstr'} = "DeleteObjectFromServer: failed to delete object from server: " . $ARS::ars_errstr;
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
};
}else{
$self->{'errstr'} = "DeleteObjectFromServer: I don't know how to delete the specified ObjectType: " . $p{'ObjectType'};
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
}
return (1);
}
## ExportDefinition #############################
## export a serialized ARS Object from the ARServer in def or xml format
## on success return the serialized object, on error undef
## ObjectName => "Remedy:ARSTools:CrazyActiveLink",
## ObjectType => "active_link",
## DefinitionType => "xml"
## NOTE: ISS04238696 on BMC ... XML export will not work with overlays on form defs
sub ExportDefinition {
my ($self, %p) = @_;
#make sure we got our required and default options, yadda yadda
foreach ('DefinitionType', 'ObjectName', 'ObjectType'){
if ((! exists($p{$_})) || ($p{$_} =~/^\s*$/)){
$self->{'errstr'} = "ExportDefinition: " . $_ . " is a required option";
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
}
}
if ($p{'DefinitionType'} =~/^xml$/){
$p{'DefinitionType'} = "xml";
$p{'DefinitionType'} = "xml_" . $p{'ObjectType'}; ## <-- yeah that's how it works
}elsif ($p{'DefinitionType'} =~/^def$/){
$p{'DefinitionType'} = "def";
}else{
$self->{'errstr'} = "ExportDefinition: unknown 'DefinitionType' value: " . $p{'DefinitionType'};
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
}
#"don't dude me, bro!" -- ghost adventures
(my $def = ARS::ars_Export(
$self->{'ctrl'},
'', ## <-- '' = NULL = "get definition including all views" (if it's a form of course)
'', ## <-- arsperl says '' is the same as &ARS::AR_VUI_TYPE_NONE, and I can dig it
$p{'ObjectType'},
$p{'ObjectName'}
)) || do {
$self->{'errstr'} = "ExportDefinition: failed to export definition: " . $ARS::ars_errstr;
warn ($self->{'errstr'}) if $self->{'Debug'};
return (undef);
};
return($def);
}
## ImportDefinition #############################
## import a serialized ARS Object, this will be either in *.def or *.xml format
## return 1 on success. return undef on failure.
## I s'pose it goes without saying, but you know ...
## be careful, m'kay?
## options:
## * Definition => $string_containing_serialized_def
## * DefinitionType => "xml" | "def"
## * ObjectName => $the_name_of_the_object_to_import
## * ObjectType => "schema" | "filter" | "active_link" | "char_menu" | "escalation" | "dist_map" | "container" | "dist_pool"
## * UpdateCache => 1 | 0 (default 0)
## * OverwriteExistingObject => 1 | 0 (default 0)
sub ImportDefinition {
my ($self, %p) = @_;
#make sure we got our required and default options, yadda yadda
foreach ('Definition', 'DefinitionType', 'ObjectName', 'ObjectType'){
if ((! exists($p{$_})) || ($p{$_} =~/^\s*$/)){
$self->{'errstr'} = "ImportDefinition: " . $_ . " is a required option";
warn ($self->{'errstr'}) if $self->{'Debug'};
( run in 2.382 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )