Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core JavaScript-API


JavaScript-Bibliothek common/workers

Diese Bibliothek bietet Funktionen zum Steuern von Workern. Worker sind Objekte, die Aufgaben oder Skripte ausführen können und im Support-Tool konfiguriert werden. Für weitere Informationen zu Workern siehe Worker im agorum core support tool verwenden.

Die Bibliothek bietet Funktionen zum Auflisten, Exportieren, Importieren und Zurücksetzen dieser Worker.

Verwendung


Binden Sie die Bibliothek stets am Anfang eines Skripts ein:

let workers = require('common/workers');

Funktionen


exp

Exportiert die Konfiguration eines Workers für die weitere Verarbeitung oder Speicherung.

Syntax

workers.exp(name)

Parameter

Parameter Beschreibung Pflicht Standard
name (string) Der Name des Workers, dessen Konfiguration exportiert werden soll. - -

Beispiel: Exportieren der Konfiguration eines Workers

let workers = require('common/workers');

workers.exp('doc.beispiele.mailverarbeitung');

Beispiel: Exportieren der Konfiguration mehrerer Worker

let workers = require('common/workers');

[workers.exp('doc.beispiele.mailverarbeitung'), workers.exp('agorum core mail archive')];

Rückgabewert

Die exp-Funktion prüft, ob ein Worker mit dem angegebenen Namen existiert und liefert ein Worker-Objekt zurück. Das zurückgelieferte Worker-Objekt enthält die exportierte Spezifikation des Workers. Falls der Worker nicht existiert, wird undefined zurückgegeben.

Für QueryScript-Worker werden die folgenden Angaben inklusive der Abfrage für die zu verarbeitenden Objekte und des konfigurierten Skripts mit den durchzuführenden Aktionen zurückgegeben:

Für ScriptWorker enthält die Rückgabe folgende Angaben. ScriptWorker suchen über ein Producer-Skript die Objekte, die verarbeitet werden sollen; ein Consumer-Skript gibt an, welche Aktionen der Worker auf den gefundenen Objekten ausführt.

imp

Importiert und konfiguriert einen Worker mit den angegebenen Parametern. Nach dem Import ist der importierte Worker im Support-Tool sichtbar.

Syntax für ScriptWorker

workers.imp({
  name: 'worker-name',
  producer: "// insert producer script",
  type: 'ScriptWorker',
  consumer: "// insert consumer script",
  concurrency: 0,
});

Syntax für QueryScript-Worker

workers.imp({
  name: 'worker-name',
  query: '// insert query',
  includeHidden: false,
  type: 'QueryScript',
  properties: ['uuid'],
  script: "// insert script",
  concurrency: 0,
});

Gemeinsame Parameter

Parameter Beschreibung Pflicht Standard
name (string) Der Name, mit dem der Worker angelegt werden soll. ja -
concurrency Gibt die Anzahl der verwendeten Threads an. ja -
type Typ des Workers: ScriptWorker oder QueryScript ja -

Zusätzliche Parameter für ScriptWorker

Parameter Beschreibung Pflicht Standard
producer JavaScript, das die zu bearbeitenden Objekte sucht ja -
consumer JavaScript, das die Worker-Aktionen für die gefundenen Objekte angibt ja -

Zusätzliche Parameter für QueryScript-Worker

Parameter Beschreibung Pflicht Standard
query ja -
includeHidden Legt fest, ob die Abfrage auch ausgeblendete Elemente, etwa zur Versionierung, zurückliefert. nein false
properties Definiert, welche Attribute / Metadaten der gefundenen Objekte der Worker an das JavaScript übergibt. nein uuid
script JavaScript, das die Worker-Aktionen für die gefundenen Objekte angibt ja -

Beispiel für ein Importskript für den Import eines ScriptWorkers

let workers = require('common/workers');

workers.imp({
  name: 'test-scriptworker',
  producer:
    "/* global sc, limit, idle */\n\nlet objects = require('common/objects');\n\nobjects.find('/agorum/roi/Files/Eingang').items().slice(0, limit).map(item => ({id: item.ID,object: item}));",
  type: 'ScriptWorker',
  consumer:
    "/* global sc, data */\n\nlet workflows = require('common/workflows');\n\nworkflows.start('FileWorkflow2', data.object);",
  concurrency: 0,
});

Beispiel für ein ImportSkript für den Import eines QueryScript-Workers

let workers = require('common/workers');

workers.imp({
  // includeHidden: false,
  query:
    'inpath:${FOLDERPATH:/agorum/roi/Files/agorum core mail archive/Mail-Eingang} ancestors:mailobject NOT ismailattachment:true NOT acmailarchive_archived:true',
  name: 'test-queryscript',
  type: 'QueryScript',
  // properties: ['uuid'],
  script:
    "/* global data */\n\nlet objects = require('common/objects');\nlet consumer = require('/agorum/roi/customers/acmailarchive/js/mail-archive-consumer');\n\nconsumer(objects.find(data.uuid));\n",
  concurrency: 0,
  name: 'test-queryscript2',
});

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

list

Listet alle Worker eines bestimmten Typs auf und ermöglicht deren weitere Filterung und Verarbeitung.

Syntax

workers.list(type)

Parameter

Parameter Beschreibung Pflicht Standard
type (string) Der Typ der Worker, die aufgelistet werden sollen. Die gültigen Typen sind QueryScript und ScriptWorker.

Diese Funktion nutzt die MetaDB, um alle existierenden Worker eines bestimmten Typs abzufragen.

ja nein

Beispiel

let workers = require('common/workers');

workers.list('QueryScript');

Rückgabewert

Die Funktion gibt ein Array von Strings zurück, welches die Namen der verfügbaren Worker des angegebenen Typs enthält.

remove

Entfernt den Worker aus dem System, inklusive aller dazugehörigen Informationen und Statistiken.

Syntax

workers.remove(name)

Parameter

Parameter Beschreibung Pflicht Standard
name (string) Der Name des Workers, der gelöscht werden soll. - -

Beispiel

let workers = require('common/workers');

workers.remove('doc.beispiele.mailverarbeitung');

Rückgabewert

Die remove-Funktion gibt keinen Wert zurück. Falls der angegebene Worker nicht existiert, wird undefined zurückgegeben.

reset

Setzt entweder einen spezifischen Worker oder alle Worker eines Typs zurück und entfernt dazu alle geladenen Skripte aus dem Cache und lädt sie neu. Wenn kein Name angegeben wird, werden alle Worker auf ihre Standardwerte zurückgesetzt.

Syntax

workers.reset(); // resets all workers

// or

workers.reset(name); // resets only the worker with the specified name


Parameter

Parameter Beschreibung Pflicht Standard
name (string) Der Name des Workers, der zurückgesetzt werden soll. - Wenn kein Name angegeben ist, werden alle Worker zurückgesetzt.

Beispiel

let workers = require('common/workers');
workers.reset();

// or specifically only one worker:
workers.reset('agorum_composite_acic_notifications');