From 596a0b72bc0c547faac9d4d19385a1a1a1a730d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20Cesar=20Laura=20Avenda=C3=B1o?= Date: Wed, 26 Feb 2020 16:23:08 -0400 Subject: [PATCH] PMCORE-864 --- workflow/engine/classes/SpoolRun.php | 10 ++++++++++ workflow/engine/classes/WsBase.php | 15 +++++++++++++-- .../engine/src/ProcessMaker/Core/JobsManager.php | 1 + 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/SpoolRun.php b/workflow/engine/classes/SpoolRun.php index 22ccea260..d16ba5fb1 100644 --- a/workflow/engine/classes/SpoolRun.php +++ b/workflow/engine/classes/SpoolRun.php @@ -111,6 +111,16 @@ class SpoolRun return $this->spoolId; } + /** + * Set the fileData property + * + * @param array $fileData + */ + public function setFileData($fileData) + { + $this->fileData = $fileData; + } + /** * Get the fileData property * diff --git a/workflow/engine/classes/WsBase.php b/workflow/engine/classes/WsBase.php index ff4c22fc8..898b2af56 100644 --- a/workflow/engine/classes/WsBase.php +++ b/workflow/engine/classes/WsBase.php @@ -1007,10 +1007,21 @@ class WsBase $result = ""; if ($gmail != 1) { - $closure = function() use ($setup, $messageArray, $gmail, $to) { + // Create always the record in APP_MESSAGE table + $spool = new SpoolRun(); + $spool->setConfig($setup); + $spool->create($messageArray); + + // Get the data of the record created + $fileData = $spool->getFileData(); + $fileData['spoolId'] = $spool->getSpoolId(); + + // Create the closure and send the required data + $closure = function() use ($setup, $fileData, $gmail, $to) { $spool = new SpoolRun(); $spool->setConfig($setup); - $spool->create($messageArray); + $spool->setSpoolId($fileData['spoolId']); + $spool->setFileData($fileData); $spool->sendMail(); return $spool; }; diff --git a/workflow/engine/src/ProcessMaker/Core/JobsManager.php b/workflow/engine/src/ProcessMaker/Core/JobsManager.php index cd2ea1480..e96b998fe 100644 --- a/workflow/engine/src/ProcessMaker/Core/JobsManager.php +++ b/workflow/engine/src/ProcessMaker/Core/JobsManager.php @@ -190,6 +190,7 @@ class JobsManager $callback($environment); } catch (Exception $e) { Log::error($e->getMessage() . ": " . $e->getTraceAsString()); + throw $e; } }); $instance->delay($this->delay);