From 54355e37c1c373ba57b7f8e7b6d89f818d44da91 Mon Sep 17 00:00:00 2001
From: Daniel Tran <d.tran@adito.de>
Date: Thu, 8 Apr 2021 10:25:36 +0000
Subject: [PATCH] [Projekt: xRM-ContactManagement][TicketNr.: 1046178][Bessere
 Fhelermeldungen, wenn bei den Dokuvorlagen das Template in asys_binaries
 fehlt] - Customized sendMail-action to prevent start download .eml after    
 error msg that no matching file in ASYS_BINARIES exists for doc-template.

---
 .../entityfields/openhtmleditor/stateProcess.js       | 11 +++++++++--
 .../entityfields/sendmail/onActionProcess.js          |  2 +-
 .../onActionProcess.js                                |  4 +---
 process/Email_lib/process.js                          |  9 +++++++--
 4 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/entity/DocumentTemplate_entity/entityfields/openhtmleditor/stateProcess.js b/entity/DocumentTemplate_entity/entityfields/openhtmleditor/stateProcess.js
index c0824ad21cb..718a9610902 100644
--- a/entity/DocumentTemplate_entity/entityfields/openhtmleditor/stateProcess.js
+++ b/entity/DocumentTemplate_entity/entityfields/openhtmleditor/stateProcess.js
@@ -7,5 +7,12 @@ import("system.neon");
 var template = DocumentTemplateUtils.getTemplate(vars.get("$field.DOCUMENTTEMPLATEID"), false);
 var kind = vars.get("$field.KIND");
 
-if(template.type == DocumentTemplate.types.HTML && kind == $KeywordRegistry.documentTemplateType$textModular() || kind == $KeywordRegistry.documentTemplateType$mail())
-    result.string(neon.COMPONENTSTATE_EDITABLE);
+if (template)
+{
+    if(template.type == DocumentTemplate.types.HTML && 
+        kind == $KeywordRegistry.documentTemplateType$textModular() || 
+        kind == $KeywordRegistry.documentTemplateType$mail())
+    {
+        result.string(neon.COMPONENTSTATE_EDITABLE);
+    }
+}
diff --git a/entity/Email_entity/entityfields/sendmail/onActionProcess.js b/entity/Email_entity/entityfields/sendmail/onActionProcess.js
index 0ee0af9d3e7..8c93bbcfad1 100644
--- a/entity/Email_entity/entityfields/sendmail/onActionProcess.js
+++ b/entity/Email_entity/entityfields/sendmail/onActionProcess.js
@@ -30,7 +30,7 @@ if (vars.exists("$param.AdditionalPlaceholders_param") && vars.get("$param.Addit
     });
 }
 
-var eml = EmailWritingUtils.openMailTemplate(
+EmailWritingUtils.openMailTemplate(
     vars.get("$field.RECIPIENT"), 
     EmployeeUtils.getCurrentContactId(), 
     vars.get("$field.DOCUMENT_TEMPLATE"), 
diff --git a/entity/Letter_entity/entityfields/downloadletterandcreateactivity/onActionProcess.js b/entity/Letter_entity/entityfields/downloadletterandcreateactivity/onActionProcess.js
index 0c453f91c3e..69b7b7b8cb8 100644
--- a/entity/Letter_entity/entityfields/downloadletterandcreateactivity/onActionProcess.js
+++ b/entity/Letter_entity/entityfields/downloadletterandcreateactivity/onActionProcess.js
@@ -33,6 +33,4 @@ if (template)
     }
 
     ActivityUtils.createNewActivity(null, links, null, null, translate.text("Letter"), text.parseDocument(content), $KeywordRegistry.activityDirection$outgoing(), [[template.filename, content, false]]);
-}
-else
-    throw new Error("Error while using a document template: The provided template does not contain data.");
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js
index 8f560c533ad..61787a5d831 100644
--- a/process/Email_lib/process.js
+++ b/process/Email_lib/process.js
@@ -34,7 +34,8 @@ function EmailWritingUtils () {}
  * @param {Placeholder[]} [pAdditionalPlaceholders] additional placeholders
  * @return {Array} the eml document as array with [filename, base64]
  */
-EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTemplateId, pRecipientContactId, pBindata, pAttachments, pSubject, pEmailFilename, pAdditionalPlaceholders)
+EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTemplateId, pRecipientContactId, pBindata, pAttachments, pSubject,
+                                                    pEmailFilename, pAdditionalPlaceholders)
 {
     if (pToRecipients && typeof(pToRecipients) == "string")
         pToRecipients = [pToRecipients];
@@ -66,9 +67,13 @@ EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId,
     }
     
     if (pSubject)
+    {
         email.subject = pSubject;
+    }
+    
+    var isBinaryExistent = db.getBinaryCount("DOCUMENTTEMPLATE", "DOCUMENT", pTemplateId, SqlUtils.getBinariesAlias(), null);
     
-    return email.downloadEML(pEmailFilename);
+    return isBinaryExistent > 0 ? email.downloadEML(pEmailFilename) : [];
 }
 
 
-- 
GitLab