[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