Install better error handling code into RequestApprovalForVersionTag. Do not generate leading commas in workflow instance scratch data.
This commit is contained in:
parent
503a378756
commit
55d55b4eee
3 changed files with 45 additions and 15 deletions
|
|
@ -208,7 +208,9 @@ sub execute {
|
|||
# Tag is approved
|
||||
elsif ( $instance->getScratch("status") eq "approved" ) {
|
||||
# Clean up after ourselves
|
||||
$self->setMessageCompleted( $instance );
|
||||
if (! $self->setMessageCompleted( $instance ) ) {
|
||||
return $self->ERROR;
|
||||
}
|
||||
$instance->deleteScratch( "status" );
|
||||
|
||||
# We're done here
|
||||
|
|
@ -278,7 +280,7 @@ sub sendMessage {
|
|||
groupId => $groupId,
|
||||
status => 'pending',
|
||||
});
|
||||
$messageIds = join ",", $messageIds, $message->getId;
|
||||
$messageIds = $messageIds ? join(",", $messageIds, $message->getId) : $message->getId;
|
||||
}
|
||||
|
||||
# Keep track of message Ids so we can complete them
|
||||
|
|
@ -335,23 +337,32 @@ workflow instance we're part of.
|
|||
=cut
|
||||
|
||||
sub setMessageCompleted {
|
||||
my $self = shift;
|
||||
my $instance = shift;
|
||||
my $inbox = WebGUI::Inbox->new( $self->session );
|
||||
my $self = shift;
|
||||
my $instance = shift;
|
||||
my $inbox = WebGUI::Inbox->new( $self->session );
|
||||
|
||||
# Set all messages to completed
|
||||
for my $messageId ( split /,/, $instance->getScratch("messageId") ) {
|
||||
if($messageId){
|
||||
my $message = $inbox->getMessage( $messageId );
|
||||
$message->setCompleted if $message;
|
||||
for my $messageId ( split /,/, $instance->getScratch("messageId") ) {
|
||||
if ($messageId) {
|
||||
my $message = $inbox->getMessage($messageId);
|
||||
if ($message) {
|
||||
$message->setCompleted;
|
||||
}
|
||||
else {
|
||||
$self->session->log->error("Could not get inbox message for messageId: $messageId");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$self->session->log->error("Malformed workflow instance scratch variable messageId for instance: ". $instance->getId);
|
||||
return 0;
|
||||
}
|
||||
} ## end for my $messageId ( split...)
|
||||
|
||||
$instance->deleteScratch( "messageId" );
|
||||
|
||||
return;
|
||||
}
|
||||
$instance->deleteScratch("messageId");
|
||||
|
||||
return 1;
|
||||
} ## end sub setMessageCompleted
|
||||
|
||||
1;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue