diff --git a/workflow/engine/classes/WsBase.php b/workflow/engine/classes/WsBase.php index f05fb7682..5e41c6e81 100644 --- a/workflow/engine/classes/WsBase.php +++ b/workflow/engine/classes/WsBase.php @@ -1147,7 +1147,7 @@ class WsBase try { $uFields = $oTask->load($aAppDel['TAS_UID']); - $taskName = $uFields['TAS_TITLE']; + $taskName = $uFields['TAS_TITLE'] ?? ''; } catch (Exception $e) { $taskName = ''; } diff --git a/workflow/engine/methods/services/upload.php b/workflow/engine/methods/services/upload.php index 39811031a..1660b5545 100644 --- a/workflow/engine/methods/services/upload.php +++ b/workflow/engine/methods/services/upload.php @@ -1,12 +1,13 @@ exists($_POST["APPLICATION"])) { @@ -120,7 +121,13 @@ if (isset($_FILES) && $_FILES["ATTACH_FILE"]["error"] == 0) { if ($oPluginRegistry->existsTrigger(PM_UPLOAD_DOCUMENT) && class_exists("uploadDocumentData")) { $triggerDetail = $oPluginRegistry->getTriggerInfo(PM_UPLOAD_DOCUMENT); $documentData = new uploadDocumentData($_POST["APPLICATION"], $_POST["USR_UID"], $sPathName . $sFileName, $aFields["APP_DOC_FILENAME"], $sAppDocUid, $iDocVersion); - $uploadReturn = $oPluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData); + try { + $uploadReturn = $oPluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData); + } catch (Exception $error) { + // Is expected an exception when the user tries to upload a versioned input document, the file is removed and the error bubbled + Documents::where('APP_DOC_UID', $sAppDocUid)->where('DOC_VERSION', $iDocVersion)->delete(); + throw $error; + } if ($uploadReturn) { $aFields["APP_DOC_PLUGIN"] = $triggerDetail->getNamespace(); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 006f33eb0..7424d8005 100755 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -3975,13 +3975,19 @@ class Cases $info = pathinfo($arrayFileName['name']); $extension = (isset($info['extension'])) ? $info['extension'] : ''; $pathCase = G::getPathFromUID($appUid); - $pathFile = PATH_DOCUMENT . $pathCase . PATH_SEP . $objCreated->getAppDocUid() . '_1.' . $extension; + $pathFile = PATH_DOCUMENT . $pathCase . PATH_SEP . $objCreated->getAppDocUid() . '_' . $objCreated->getDocVersion() . '.' . $extension; // Instance object used by the hook - $documentData = new uploadDocumentData($appUid, $userUid, $pathFile, $objCreated->getAppDocFilename(), $objCreated->getAppDocUid(), 1); + $documentData = new uploadDocumentData($appUid, $userUid, $pathFile, $objCreated->getAppDocFilename(), $objCreated->getAppDocUid(), $objCreated->getDocVersion()); // Execute hook - $uploadReturn = $pluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData); + try { + $uploadReturn = $pluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData); + } catch (Exception $error) { + // Is expected an exception when the user tries to upload a versioned input document, the file is removed and the error bubbled + Documents::where('APP_DOC_UID', $objCreated->getAppDocUid())->where('DOC_VERSION', $objCreated->getDocVersion())->delete(); + throw $error; + } // If the executions is correct, update the record related to the document if ($uploadReturn) {