Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core workflow 3.0
Dient zum programmatischen Lesen und Setzen von UI-Zuweisungen von Bearbeitern in Workflow-Knoten. Mit der assignment-Bibliothek können Sie
Wenn ein Workflow nach einem Speichervorgang nicht mehr direkt dem aktuellen Bearbeiter zugewiesen ist, navigiert die UI zu einem anderen Eintrag. Mit dem assign-Knoten wird die Zuweisung für den nächsten Schritt durchgeführt. Mit dem Skript-Knoten wird die aktuelle Token-Zuweisung, token.variables.sys_acw_assignee, gelöscht.
let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');
| Funktion | Beschreibung | Beispiel |
|---|---|---|
| assign | Weist Berechtigungen für ein Token zu. token Definiert das Token-Objekt, dem eine Benutzergruppe von Bearbeitern, Vertretern oder Betrachtern zugewiesen wird. assignees substitutes viewers Werden assignees, substitutes oder viewers nicht angegeben (undefined), bleiben die bisherigen Werte erhalten. Wird ein leeres Array übergeben, werden die bisherigen Einträge gelöscht. version_interaction_assign |
assignment.assign(token, {
assignees: [
'group:GRP_Demo',
{
attachmentPermission: 'write',
id: 'group:d4wdr'
}
],
substitutes: [],
viewers: [],
version_interaction_assign: 1,
}); |
| getAssignment | Fragt Berechtigungen für ein Token ab. Die Funktion liest die Teilnehmer, die zuvor assign im Token gespeichert hat (id und attachmentPermission). Wurde noch nie zugewiesen, sind assignees, substitutes und viewers nicht gesetzt (undefined). Die Funktion legt dabei die Variable sys_acw_internal im Token an, falls sie fehlt. Die Antwort hat folgendes Muster: {"viewers":[],"substitutes":[],"assignees":[{"attachmentPermission":"read","id":"group:GRP_Demo"},{"attachmentPermission":"write","id":"group:d4wdr"}]}
|
assignment.getAssignment(token) |
| upgrade | Migriert ältere Assignment-Strukturen auf die aktuelle Version. In früheren Versionen wurde die Eigenschaft viewers für Vertreter verwendet. Seit der Einführung der Vertreter-Unterscheidung heißt diese Eigenschaft substitutes. Die Funktion prüft, ob die Versionskennung version_interaction_assign vorhanden ist. Falls nicht, wird viewers in substitutes umbenannt und die Versionskennung gesetzt. Bereits angegebene substitutes ersetzt die Funktion dabei immer durch viewers. Ist viewers nicht angegeben, sind substitutes danach nicht angegeben. parameters Das Parameter-Objekt, das migriert werden soll. Rückgabe: Das migrierte Parameter-Objekt Bei einer Migration ist das eine Kopie, das Originalobjekt bleibt unverändert. Ist version_interaction_assign bereits gesetzt, gibt die Funktion dasselbe Objekt unverändert zurück. |
let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');
// Alte Parameter migrieren
let upgraded = assignment.upgrade(parameters); |
Hinweis: Um bei assignment.assign() sowohl substitutes als auch viewers gleichzeitig zuweisen zu können, muss der Parameter version_interaction_assign mit dem Wert 1 übergeben werden. Fehlt dieser Parameter, wird intern die Legacy-Logik verwendet, bei der viewers wie in älteren Versionen als Vertreter interpretiert wird.
Die Funktion assign speichert die Zuweisung in folgenden Variablen des Tokens:
| Variable | Inhalt |
|---|---|
| sys_acw_acls | Die UUIDs der ACLs von Bearbeitern, Vertretern und Betrachtern. Bearbeiter und Vertreter sind damit immer auch Betrachter. |
| sys_acw_assignee | Der Benutzer, dem der Schritt direkt zugewiesen ist. Die Funktion setzt ihn nur, wenn der bisherige Bearbeiter weiterhin zu den Bearbeitern gehört oder wenn alle Bearbeiter zusammen genau einen Benutzer ergeben. In allen anderen Fällen ist die Variable leer. |
| sys_acw_assignees | Die numerischen ACL-IDs der Bearbeiter |
| sys_acw_attachmentPermissionAll, sys_acw_attachmentPermissionCheckout, sys_acw_attachmentPermissionProtected, sys_acw_attachmentPermissionRead, sys_acw_attachmentPermissionWrite | Die UUIDs der Gruppen mit der jeweiligen Berechtigung auf die Anhänge. Gibt es zu einer Berechtigung keine Teilnehmer, entfernt die Funktion die Variable. |
| sys_acw_internal.assignees, sys_acw_internal.substitutes, sys_acw_internal.viewers | Die Teilnehmer mit id und attachmentPermission. Daraus liest getAssignment. |
| sys_acw_substitutes | Die numerischen ACL-IDs der Vertreter |
Beim Zuweisen von Teilnehmern können Sie über die Eigenschaft attachmentPermission festlegen, welche Berechtigungen der Teilnehmer auf die Workflow-Anhänge erhält. Folgende Werte sind möglich. Die Groß- und Kleinschreibung spielt keine Rolle. Die Funktion ignoriert einen unbekannten Wert ohne Fehlermeldung, der Teilnehmer erhält dann keine der Berechtigungen.
| Wert | Beschreibung |
|---|---|
| read | Lesezugriff auf Anhänge (Standard, wenn nicht angegeben) |
| write | Schreibzugriff auf Anhänge |
| checkout | Auschecken von Anhängen erlaubt |
| protected | Geschützter Zugriff auf Anhänge |
| all | Vollzugriff auf Anhänge |
Teilnehmer können in zwei Formaten angegeben werden:
// Als String (Standard: attachmentPermission = 'read')
'group:GRP_Demo'
// Als Objekt mit expliziter Berechtigung
{
id: 'group:GRP_Demo',
attachmentPermission: 'write'
}
Hinweis: Teilnehmer müssen Benutzer- oder Gruppenobjekte sein, sonst wirft assign einen Fehler. Wird ein einzelner Benutzer angegeben, wird intern automatisch eine Gruppe für diesen Benutzer erstellt (mit dem Namensschema GRP_acw_<UUID>).
/* global sc, sca, token, instance, outlets, inlet, parameters */
// Laden der assignment-Bibliothek
let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');
// Laden weiterer Bibliotheken
let objects = require('common/objects');
assignment.assign(token, {
assignees: [
// assignees: [{ attachmentPermission: 'read', id: 'group:GRP_Demo' }]
'group:GRP_Demo',
{
attachmentPermission: 'write',
id: 'group:d4wdr'
}
],
// substitutes werden zurückgesetzt
substitutes: [],
// viewers bleiben erhalten (nicht angegeben)
//viewers: [],
// ohne diese Kennung verwirft die Legacy-Logik substitutes
version_interaction_assign: 1,
});
console.log(assignment.getAssignment(token));
// {"viewers":[],"substitutes":[],"assignees":[{"attachmentPermission":"read","id":"group:GRP_Demo"},{"attachmentPermission":"write","id":"group:d4wdr"}]}
// direkt einem Benutzer zuweisen
token.variables.sys_acw_assignee = objects.find('user:demo').UUID;
// Zuweisung zu Benutzer entfernen
//delete token.variables.sys_acw_assignee;
// Sendet das Token über das Standard-Outlet
token.leave('');