Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core JavaScript-API
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.
Binden Sie die Bibliothek stets am Anfang eines Skripts ein:
let workers = require('common/workers');
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.
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.
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.
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.
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');