Skip to content

Commit a5b0df0

Browse files
committed
Check if Script/Service Job failed
1 parent 47d0d18 commit a5b0df0

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

‎ProcessMaker/Jobs/RunScriptTask.php‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,26 @@ public function action(ProcessRequestToken $token = null, ScriptTaskInterface $e
105105
Log::error($exception->getTraceAsString());
106106
}
107107
}
108+
109+
/**
110+
* When Job fails
111+
*/
112+
public function failed(Throwable $exception)
113+
{
114+
if (!$this->tokenId) {
115+
Log::error('Script failed: ' . $exception->getMessage());
116+
return;
117+
}
118+
Log::error('Script (#' . $this->tokenId . ') failed: ' . $exception->getMessage());
119+
$token = ProcessRequestToken::find($this->tokenId);
120+
if ($token) {
121+
$element = $token->getBpmnDefinition();
122+
$token->setStatus(ScriptTaskInterface::TOKEN_STATE_FAILING);
123+
$error = $element->getRepository()->createError();
124+
$error->setName($exception->getMessage());
125+
$token->setProperty('error', $error);
126+
Log::error($exception->getTraceAsString());
127+
$token->save();
128+
}
129+
}
108130
}

‎ProcessMaker/Jobs/RunServiceTask.php‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,26 @@ public function action(ProcessRequestToken $token = null, ServiceTaskInterface $
9696
Log::error($exception->getTraceAsString());
9797
}
9898
}
99+
100+
/**
101+
* When Job fails
102+
*/
103+
public function failed(Throwable $exception)
104+
{
105+
if (!$this->tokenId) {
106+
Log::error('Script failed: ' . $exception->getMessage());
107+
return;
108+
}
109+
Log::error('Script (#' . $this->tokenId . ') failed: ' . $exception->getMessage());
110+
$token = ProcessRequestToken::find($this->tokenId);
111+
if ($token) {
112+
$element = $token->getBpmnDefinition();
113+
$token->setStatus(ServiceTaskInterface::TOKEN_STATE_FAILING);
114+
$error = $element->getRepository()->createError();
115+
$error->setName($exception->getMessage());
116+
$token->setProperty('error', $error);
117+
Log::error($exception->getTraceAsString());
118+
$token->save();
119+
}
120+
}
99121
}

0 commit comments

Comments
 (0)