my $state = shift;
return undef unless ($state);
+ my $fields = shift;
+
$self->editor->xact_begin || return undef;
my @oks;
$e->update_time( 'now' );
$e->update_process( $$ );
$e->state( $state );
-
+
$e->clear_start_time() if ($e->state eq 'pending');
-
+
+ if ($fields && ref($fields)) {
+ $e->$_($$fields{$_}) for (keys %$fields);
+ }
+
my $ok = $self->editor->update_action_trigger_event( $e );
if ($ok) {
push @oks, $ok;
my $self = shift;
my $env = $self->environment;
+ $$env{EventProcessor} = $self;
$$env{target} = [];
$$env{event} = [];
for my $e ( @{ $self->events } ) {
for my $env_part ( keys %{ $e->environment } ) {
+ next if ($env_part eq 'EventProcessor');
if ($env_part eq 'target') {
push @{ $$env{target} }, $e->environment->{target};
} elsif ($env_part eq 'event') {
$tt->process(\$env->{template}, $env, \$output) or
$logger->error("Error processing Trigger template: " . $tt->error);
+ if (!$nostore && $output) {
+ my $t_o = Fieldmapper::action_trigger::template_output->new;
+ $t_o->data( $output );
+
+ $env->{EventProcessor}->editor->xact_begin;
+ $t_o = $env->{EventProcessor}->editor->create_action_trigger_template_output( $t_o );
+ $env->{EventProcessor}->update_state( $env->{event}->state, { template_output => $t_o->id } );
+ }
+
return $output;
}