workflows now run, but with errors, must fix that next

This commit is contained in:
JT Smith 2006-03-18 17:40:49 +00:00
parent 6fc6b00b49
commit ccf1b3633f
6 changed files with 38 additions and 31 deletions

View file

@ -309,21 +309,15 @@ Checks to ensure the requestor is who we think it is, and then executes a workfl
sub www_runWorkflow {
my $session = shift;
$session->errorHandler->warn("A");
$session->http->setMimeType("text/plain");
$session->errorHandler->warn("b");
return "error" unless (isInSubnet($session->env->get("REMOTE_ADDR"), $session->config->get("spectreSubnets")));
$session->errorHandler->warn("c");
my $instanceId = $session->form->param("instanceId");
if ($instanceId) {
$session->errorHandler->warn("d");
my $instance = WebGUI::Workflow::Instance->new($session, $instanceId);
if (defined $instance) {
$session->errorHandler->warn("e");
return $instance->run;
}
}
$session->errorHandler->warn("f");
return "error";
}

View file

@ -117,7 +117,7 @@ sub execute {
my $self = shift;
my $placeholders = shift || [];
my $sql = $self->{_sql};
$self->sth->execute(@{ $placeholders }) or $self->db->session->errorHandler->fatal("Couldn't execute prepared statement: $sql Root cause: ". $self->errorMessage);
$self->sth->execute(@{ $placeholders }) or $self->db->session->errorHandler->fatal("Couldn't execute prepared statement: $sql : With place holders: ".join(", ", @{$placeholders}).". Root cause: ". $self->errorMessage);
}

View file

@ -242,7 +242,7 @@ sub requestCommit {
my $instance = WebGUI::Workflow::Instance->create($self->session, {
workflowId=>$self->get("workflowId"),
className=>"WebGUI::VersionTag",
method=>"new",
methodName=>"new",
parameters=>$self->getId
});
}

View file

@ -214,20 +214,32 @@ sub run {
my $workflow = WebGUI::Workflow->new($self->session, $self->get("workflowId"));
return "undefined" unless (defined $workflow);
return "disabled" unless ($workflow->get("enabled"));
my $activity = $workflow->getNextActivity($self->get("currentActivity"));
return "done" unless (defined $activity);
my $activity = $workflow->getNextActivity($self->get("currentActivityId"));
if (defined $activity) {
$self->set({"currentActivityId",$activity->getId});
} else {
$self->delete;
return "done";
}
my $object = {};
my $class = $self->get("className");
my $method = $self->get("methodName");
my $params = $self->get("parameters");
if ($class && $method) {
$object = eval($class->$method($self->session, $params));
my $cmd = "use $class";
eval($cmd);
if ($@) {
$self->session->errorHandler->warn("Error instanciating activity (".$activity->getId.") pass-in object: ".$@);
$self->session->errorHandler->warn("Error loading activity class $class: ".$@);
return "error";
}
eval{ $object = $class->$method($self->session, $params) };
if ($@) {
$self->session->errorHandler->warn("Error instanciating activity (".$activity->getId.") pass-in object: ".$@);
return "error";
}
return $activity->execute($object, $self);
}
return $activity->execute($object, $self);
return $activity->execute(undef, $self);
}