Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > Erste Schritte für Administratoren > agorum core fill template


agorum core fill template anpassen

Hinweis: Diese Dokumentation bezieht sich auf die aktuellste Version des Plugins. Aktualisieren Sie das hier beschriebene Plugin, um die Dokumentation verwenden zu können.

Sie können das Plugin agorum core fill template zur Erstellung von Serienbriefen und Serienmails anpassen, um:

Ändern Sie die in dieser Dokumentation beschriebenen Skripte oder fügen eigene Skripte hinzu, bleibt das Plugin weiterhin updatefähig.

Hinweis: Wenn Sie Anpassungen an Skripten vornehmen oder eigene Skripte erstellen:

  • Verwenden Sie stets eine Testumgebung.

  • Stellen Sie sicher, dass Sie dieselben Aufrufparameter und Returnwerte wie in den ursprünglichen Skripten verwenden.

Beschreibung der Skripte


load-customer-settings.js

Steuert das Plugin und fungiert als Hauptskript.

Sie finden dieses Skript als Super-Administrator roi unter:

/Eigene Dateien/Administration/customers/fill-template/js/tools/load-customer-settings.js

getCopyMailTemplatePath.js

Verweist auf das E-Mail-Template, das das System als Vorlage für ein neues E-Mail-Template kopiert.

Sie können sich ein eigenes Vorlagen-Template anlegen und den Pfad in die MetaDB eintragen.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/mail-template/copy-file

getDocTemplatePath.js

Stellt den Pfad ein, der auf Ihre Standard-Templates für die Serienbriefe verweist.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/template/doc-template-path

getMailTemplatePath.js

Stellt den Pfad ein, der auf Ihre Standard-Templates für die Serienmails verweist.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/template/mail-template-path

getMoveToFolderScript.js

Legt die Serienbriefe in Ihre Kunden-/Partnerakten ab.

Wenn Sie eine andere Ablage vorziehen, schreiben Sie ein entsprechendes Skript und geben den Pfad zu Ihrem Skript diese in der MetaDB an. 


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/moveToFolderScript

getFillDataScript.js

Nimmt Einfluss auf die Platzhalter, mit denen Sie einen Serienbrief erstellen.

Im Standard füllt das System die Platzhalter aus den Adressen, die in agorum core angelegt sind. Sie können dieses Skript durch ein eigenes Skript mit anderen Platzhaltern ersetzen. Geben Sie dazu den Pfad zu Ihrem Skript in der MetaDB an.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataScript

getFillDataScriptAll.js

Nimmt Einfluss auf die Platzhalter, mit denen Sie einen Serienbrief erstellen.

Im Standard füllt das System die Platzhalter aus den Adressen, die in agorum core angelegt sind, sowie aus allen definierten Metadaten (über die Datei metadata.yml). Sie können dieses Skript durch ein eigenes Skript mit anderen Platzhaltern ersetzen. Geben Sie dazu den Pfad zu Ihrem Skript in der MetaDB an.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataScriptAll

getFillDataMailScript.js

Nimmt Einfluss auf die Platzhalter, mit denen Sie eine Serienmail erstellen.

Im Standard füllt das System die Platzhalter aus den Adressen, die in agorum core angelegt sind. Sie können dieses Skript durch ein eigenes Skript mit anderen Platzhaltern ersetzen. Geben Sie dazu den Pfad zu Ihrem Skript in der MetaDB an.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataMailScript

getFillDataMailScriptAll.js

Nimmt Einfluss auf die Platzhalter, mit denen Sie eine Serienmail erstellen.

Im Standard füllt das System die Platzhalter aus den Adressen, die in agorum core angelegt sind, sowie aus allen definierten Metadaten (über die Datei metadata.yml). Sie können dieses Skript durch ein eigenes Skript mit anderen Platzhaltern ersetzen. Geben Sie dazu den Pfad zu Ihrem Skript in der MetaDB an.

Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataMailScriptAll

getCreateNewTemplatePath.js

Ersetzt die Platzhalter in der Vorlage.


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/template/create-new-template-path

getFillTemplateFilterPath.js (Filter registrieren)

Registriert ein eigenes Skript für einen Filter in der Suche.

Das System zeigt den Filter ebenso in der Suche im Filter Adressen - Personen an.


Zugehöriger MetaDb-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/acic/fill-template-filter-path

getDefaultScriptPath.js

Skript, das vor dem Erstellen der Serienmail oder des Serienbriefes ausgeführt wird. Im Standardskript werden Platzhalter für die Anrede erstellt. Sie können dieses Skript durch ein eigenes Skript mit anderen Platzhaltern ersetzen. Geben Sie dazu den Pfad zu Ihrem Skript in der MetaDB an.

Für weitere Informationen siehe Das Default-Skript verwalten.

Zugehöriger MetaDb-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/acic/fill-template-default-script-path

getDefaultPostFillScript.js

Hinterlegt ein eigenes Skript, das das System bei der Aktion E-Mail nach Vorlage erstellen aufruft.


Beispiel

Sie rufen die Aktion in einem Ordner oder an einem beliebigen Objekt auf. Sie wollen, dass diese E-Mail nach dem Versenden diesem Objekt wieder zugeordnet wird. Durch dieses Skript können Sie jetzt etwa in den Betreff einer Kennung anhängen, die signalisiert, dass diese Zuordnung möglich ist. Die Kennung erzeugt das System anhand des markierten Objekts, an dem Sie die Aktion aufgerufen haben. Sie kann von Metadaten abhängig sein, von einem Inhalt des Objekts oder vom Ablageort des Objekts.


Skript aufrufen (Beispiel)

// Skript für filltemplate + smart organisation für die ID
let mail = require('/agorum/roi/customers/kpva/JS/mail.js');

/*
   data beinhaltet die möglichen Vorgaben beim Template:
   Diese sind:
   
   data: {
     fromaddress: '...',
     toaddress: [ .... ],
     subject: '....',
     body: '',
     attachments: [...]
   };   
   
   Übergibt außerdem ein referenceObject, anhand dessen Sie die Metadaten oder den Ablageort manipulieren können
   Gibt das geänderte data zurück
   
   Für dieses Default-Skript können Sie in der MetaDB ein eigenes Skript aufrufen.
   
*/
function run(referenceObject, data) {
  // Kopie der Daten erstellen
  let retData = Object.assign({}, data);  
  if (referenceObject && data) {
    // in ihrem Skript hier die Implementierung erstellen
    // Das Skript verwenden Sie etwa für die Oberfläche zum Erstellen einer einzelnen E-Mail
    console.log('referenceObject', referenceObject.ID, referenceObject.name);
    let subject = mail.getSubject([referenceObject]);
    if (subject) {
      let refId = subject.replace('agorum', '');
      retData.subject = retData.subject ? (retData.subject + refId) : ('agorum ' +refId);
    }
    // In diesem Beispiel hängt das System eine Kennung an den Betreff, etwa: agorum - xyz - [#agp1234]
  }
  return retData;
}

module.exports = {
  run: run
};


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/acic/defaultPostFillScript

getMergeLimitPerFile (Limit für Briefe pro Druckdatei)

Registriert ein Limit für die Anzahl PDFs, die in einer Druckdatei zusammengefasst werden. Das kann notwendig sein, damit der Speicher nicht überläuft.

Hinweis: Wenn Sie das Limit erhöhen, müssen Sie testen, ob der Java-Maschine mehr Speicher zugeteilt werden muss.

Default: 1000 (PDFs/Briefe pro Druckdatei)


Zugehöriger MetaDB-Schlüssel

MAIN_MODULE_MANAGEMENT/customers/fill-template/template/merge-limit-per-file

Übersicht des Skripts „load-customer-settings“

Liest aus der MetaDB Ihre Konfiguration, wenn diese vorhanden ist.

Im Skript selbst sehen Sie auch die benötigen MetaDB-Keys, um die Methoden mit eigenen Skripten anzupassen.

let metadb = require('common/metadb');
let objects = require('common/objects');

// require('/agorum/roi/customers/fill-template/js/tools/load-customer-settings');
function getInitScript() {
  return '/* global data */\n\n';
}

function getCopyMailTemplatePath() {
  // Default
  let copyFilePath = '/agorum/roi/workspace/fill-template/templates/mailcopy/mail-template.mailtemplate';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/mail-template/copy-file');
  if (cfarr) {
    copyFilePath = cfarr[0];
  }
  return copyFilePath;
}

function getDocTemplatePath() {
  // Default
  let path = '/agorum/roi/workspace/fill-template/templates/document';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/template/doc-template-path');
  if (cfarr) {
    path = cfarr[0];
  }
  return path;
}

function getMoveToFolderScript() {
  // Default
  let script = '/agorum/roi/customers/fill-template/js/worker/tools/moveToFolder.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/moveToFolderScript');
  if (cfarr) {
    script = cfarr[0];
  }
  return script;
}

function getFillDataScriptAll() {
  // Default
  let script = '/agorum/roi/customers/fill-template/js/worker/tools/fill-data-all-metadata.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataScriptAll');
  if (cfarr) {
    script = cfarr[0];
  }
  return script;
}

function getMailTemplatesFillClearEmpty() {
  // Default
  let b = true;

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/tools/mailTemplatesFillClearEmpty');
  if (cfarr) {
    b = cfarr[0] === 'true' ? true : false;
  }
  return b;
}

function getPlaceholderWithMetadata() {
  // Default
  let b = false;

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/tools/placeholderWithMetadata');
  if (cfarr) {
    b = cfarr[0] === 'true' ? true : false;
  }
  return b;
}

function getEditMailtemplateWithFromaddress() {
  // Default
  let b = false;

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/tools/editMailtemplateWithFromaddress');
  if (cfarr) {
    b = cfarr[0] === 'true' ? true : false;
  }
  return b;
}

function getFillDataMailScriptAll() {
  // Default
  let script = '/agorum/roi/customers/fill-template/js/worker/tools/fill-data-all-metadata.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataMailScriptAll');
  if (cfarr) {
    script = cfarr[0];
  }
  return script;
}

function getFillDataScript() {
  // Default
  let script = '/agorum/roi/customers/fill-template/js/worker/tools/fill-data.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataScript');
  if (cfarr) {
    script = cfarr[0];
  }
  return script;
}

function getFillDataMailScript() {
  // Default
  let script = '/agorum/roi/customers/fill-template/js/worker/tools/fill-data.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/scripts/fillDataMailScript');
  if (cfarr) {
    script = cfarr[0];
  }
  return script;
}

function getMailTemplatePath() {
  // Default
  let path = '/agorum/roi/workspace/fill-template/templates/mail';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/template/mail-template-path');
  if (cfarr) {
    path = cfarr[0];
  }
  return path;
}

/*
   create(sc, created, object, template, fillData);
   
   sc: SessionController
   created: Objekt, wohin das erstellte Template abgelegt wird
   object:  Objekt, mit dem fillData erstellt wurde
   template: Template, mit dem das neue Objekt erstellt wird
   fillData: Die zu ersetzenden Daten

*/
function getCreateNewTemplatePath() {
  // Default
  let path = '/agorum/roi/customers/fill-template/js/worker/tools/create-new-template';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/template/create-new-template-path');
  if (cfarr) {
    path = cfarr[0];
  }
  return path;
}

function getFillTemplateFilterPath() {
  // Default
  let path = objects.mayDiscover('ACL_agorum core fill template_crm_collection')
    ? '/agorum/roi/customers/fill-template/js/acic/fill-template-ic-collection'
    : '/agorum/roi/customers/fill-template/js/acic/fill-template-ic';
  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/acic/fill-template-filter-path');
  if (cfarr) {
    path = cfarr[0];
  }
  return path;
}

function getDefaultScriptPath() {
  // Default - ACHTUNG hier immer mit .js am ende
  let path = '/agorum/roi/customers/fill-template/js/script/default-script.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/acic/fill-template-default-script-path');
  if (cfarr) {
    path = cfarr[0];
  }
  return path;
}

function getDefaultPostFillScript() {
  // Default - ACHTUNG hier immer mit .js am Ende
  let path = '/agorum/roi/customers/fill-template/js/script/default-post-fill-script.js';

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/acic/defaultPostFillScript');
  if (cfarr) {
    path = cfarr[0];
  }
  return path;
}

function getAreasThatMustNotBeSearchedQuery() {
  let file = objects.tryFind('/agorum/roi/workspace/fill-template/areas-that-must-not-be-searched.txt');
  let contentString = '';
  if (file) {
    contentString = objects.getContentString(file);
  }
  let ids = contentString
    .split('\n')
    .map(m => m.replace('\r', ''))
    .map(m => objects.tryFind(m))
    .filter(f => f)
    .map(m => m.ID);

  ids.push('0');
  let notInpathQuery = ' NOT inpath:(' + ids.join(' OR ') + ')';
  return notInpathQuery;
}

function getMergeLimitPerFile() {
  // Default
  let limit = 1000;

  // kann in der MetaDB überschrieben werden
  let cfarr = metadb.read('MAIN_MODULE_MANAGEMENT/customers/fill-template/template/merge-limit-per-file');
  if (cfarr) {
    limit = parseInt(cfarr[0], 10);
  }
  return limit;
}

module.exports = {
  getCopyMailTemplatePath: getCopyMailTemplatePath,
  getDocTemplatePath: getDocTemplatePath,
  getMailTemplatePath: getMailTemplatePath,
  getMoveToFolderScript: getMoveToFolderScript,
  getFillDataScript: getFillDataScript,
  getFillDataMailScript: getFillDataMailScript,
  getCreateNewTemplatePath: getCreateNewTemplatePath,
  getFillTemplateFilterPath: getFillTemplateFilterPath,
  getFillDataScriptAll: getFillDataScriptAll,
  getFillDataMailScriptAll: getFillDataMailScriptAll,
  getDefaultScriptPath: getDefaultScriptPath,
  getInitScript: getInitScript,
  getDefaultPostFillScript: getDefaultPostFillScript,
  getPlaceholderWithMetadata: getPlaceholderWithMetadata,
  getEditMailtemplateWithFromaddress: getEditMailtemplateWithFromaddress,
  getMailTemplatesFillClearEmpty: getMailTemplatesFillClearEmpty,
  getAreasThatMustNotBeSearchedQuery: getAreasThatMustNotBeSearchedQuery,
  getMergeLimitPerFile: getMergeLimitPerFile,
};

Ein Skript für Vorlagen erstellen


siehe Skript für Vorlagen