X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FBackgroundJob.pm;h=3e6c03da58790873838ffee50debbdb6ef82c221;hb=0ebb8f829ac2d23b65e8d993c7d03aa0b172b637;hp=b567d364e8bcdaf4c8e7c7dc993288c235e78566;hpb=8e1151555c7383bdd4e9baca68e6fa29b48cbd29;p=kivitendo-erp.git diff --git a/SL/DB/BackgroundJob.pm b/SL/DB/BackgroundJob.pm index b567d364e..3e6c03da5 100644 --- a/SL/DB/BackgroundJob.pm +++ b/SL/DB/BackgroundJob.pm @@ -5,6 +5,8 @@ use strict; use DateTime::Event::Cron; use English qw(-no_match_vars); +use Rose::DB::Object::Helpers qw(as_tree); + use SL::DB::MetaSetup::BackgroundJob; use SL::DB::Manager::BackgroundJob; @@ -73,6 +75,9 @@ sub run { sub data_as_hash { my $self = shift; + + $self->data(YAML::Dump($_[0])) if @_; + return {} if !$self->data; return $self->data if ref($self->{data}) eq 'HASH'; return YAML::Load($self->{data}) if !ref($self->{data}); @@ -82,9 +87,10 @@ sub data_as_hash { sub set_data { my ($self, %data) = @_; - my $data = YAML::Load($self->data); - $data->{$_} = $data{$_} for keys %data; - $self->data(YAML::Dump($data)); + $self->data(YAML::Dump({ + %{ $self->data_as_hash }, + %data, + })); $self; }