[otrs-cvs] CVS: otrs/Kernel/System XML.pm,1.35,1.36
cvs-log at otrs.org
cvs-log at otrs.org
Mon Oct 2 15:34:02 CEST 2006
Update of /home/cvs/otrs/Kernel/System
In directory lancelot:/tmp/cvs-serv29431/Kernel/System
Modified Files:
XML.pm
Log Message:
added KeyAutoIncrement feature for XMLHashAdd()
Index: XML.pm
===================================================================
RCS file: /home/cvs/otrs/Kernel/System/XML.pm,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -r1.35 -r1.36
*** XML.pm 29 Sep 2006 14:25:11 -0000 1.35
--- XML.pm 2 Oct 2006 12:34:00 -0000 1.36
***************
*** 93,96 ****
--- 93,102 ----
);
+ my $Key = $XMLObject->XMLHashAdd(
+ Type => 'SomeType',
+ KeyAutoIncrement => 1,
+ XMLHash => \@XMLHash,
+ );
+
=cut
***************
*** 99,111 ****
my %Param = @_;
# check needed stuff
! foreach (qw(Type Key XMLHash)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
return;
- }
}
my %ValueHASH = $Self->XMLHash2D(XMLHash => $Param{XMLHash});
if (%ValueHASH) {
! $Self->XMLHashDelete(%Param);
# db quote
foreach (keys %Param) {
--- 105,129 ----
my %Param = @_;
# check needed stuff
! foreach (qw(Type XMLHash)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
! }
! if (!$Param{Key} && !$Param{KeyAutoIncrement}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need Key or KeyAutoIncrement param!");
return;
}
my %ValueHASH = $Self->XMLHash2D(XMLHash => $Param{XMLHash});
if (%ValueHASH) {
! if ($Param{Key}) {
! $Self->XMLHashDelete(%Param);
! }
! else {
! $Param{Key} = $Self->_XMLHashAddAutoIncrement(%Param);
! if (!$Param{Key}) {
! return;
! }
! }
# db quote
foreach (keys %Param) {
***************
*** 127,130 ****
--- 145,183 ----
}
+ sub _XMLHashAddAutoIncrement {
+ my $Self = shift;
+ my %Param = @_;
+ my $KeyAutoIncrement = 0;
+ # check needed stuff
+ foreach (qw(Type KeyAutoIncrement)) {
+ if (!$Param{$_}) {
+ $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
+ return;
+ }
+ }
+ my $SQL = "SELECT max(xml_key) " .
+ " FROM " .
+ " xml_storage " .
+ " WHERE " .
+ " xml_type = '$Param{Type}'";
+
+ if (!$Self->{DBObject}->Prepare(SQL => $SQL)) {
+ return;
+ }
+ while (my @Data = $Self->{DBObject}->FetchrowArray()) {
+ $KeyAutoIncrement = $Data[0];
+ }
+ if ($KeyAutoIncrement !~ /^\d+?$/) {
+ $Self->{LogObject}->Log(
+ Priority => 'error',
+ Message => "No KeyAutoIncrement possible, no int key exists ($KeyAutoIncrement)!",
+ );
+ return;
+ }
+ else {
+ $KeyAutoIncrement++;
+ return $KeyAutoIncrement;
+ }
+ }
=item XMLHashUpdate()
***************
*** 147,154 ****
# check needed stuff
foreach (qw(Type Key XMLHash)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
}
my %ValueHASH = $Self->XMLHash2D(XMLHash => $Param{XMLHash});
--- 200,207 ----
# check needed stuff
foreach (qw(Type Key XMLHash)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
}
my %ValueHASH = $Self->XMLHash2D(XMLHash => $Param{XMLHash});
***************
*** 195,202 ****
# check needed stuff
foreach (qw(Type Key)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
}
# db quote
--- 248,255 ----
# check needed stuff
foreach (qw(Type Key)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
}
# db quote
***************
*** 245,252 ****
# check needed stuff
foreach (qw(Type Key)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
}
# db quote
--- 298,305 ----
# check needed stuff
foreach (qw(Type Key)) {
! if (!$Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");
! return;
! }
}
# db quote
***************
*** 356,359 ****
--- 409,413 ----
return $Output;
}
+
sub _ElementBuild {
my $Self = shift;
***************
*** 529,536 ****
# check needed stuff
foreach (qw(XMLHash)) {
! if (!defined $Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "$_ not defined!");
! return;
! }
}
--- 583,590 ----
# check needed stuff
foreach (qw(XMLHash)) {
! if (!defined $Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "$_ not defined!");
! return;
! }
}
***************
*** 609,616 ****
# check needed stuff
foreach (qw(XMLStructur)) {
! if (!defined $Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "$_ not defined!");
! return;
! }
}
$Self->{Tll} = 0;
--- 663,670 ----
# check needed stuff
foreach (qw(XMLStructur)) {
! if (!defined $Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "$_ not defined!");
! return;
! }
}
$Self->{Tll} = 0;
***************
*** 629,632 ****
--- 683,687 ----
return (\%{$Self->{XMLHash2}});
}
+
sub _XMLStructur2XMLHash {
my $Self = shift;
***************
*** 820,827 ****
# check needed stuff
foreach (qw(String)) {
! if (!defined $Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "$_ not defined!");
! return;
! }
}
# cleanup global vars
--- 875,882 ----
# check needed stuff
foreach (qw(String)) {
! if (!defined $Param{$_}) {
! $Self->{LogObject}->Log(Priority => 'error', Message => "$_ not defined!");
! return;
! }
}
# cleanup global vars
More information about the cvs-log
mailing list