Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core workflow 3.0


Workflow 3.0 - Assignment-Bibliothek

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.

Die Bibliothek laden

let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');

Funktionen

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
Definiert die Benutzergruppe der Bearbeiter, der ein Token zugewiesen wird. Zusätzlich können Sie auch die Berechtigungen für Anhänge (Attachments) neu setzen.

substitutes
Definiert die Benutzergruppe der Vertreter, der ein Token zugewiesen wird.

viewers
Definiert die Benutzergruppe der Betrachter, der ein Token zugewiesen wird.

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.

assignment.assign(token, {
  assignees: [
    'group:GRP_Demo',
    {
      attachmentPermission: 'write',
      id: 'group:d4wdr'
    }
  ],
  substitutes: [],
  viewers: [],
});
getAssignment Fragt Berechtigungen für ein Token ab und gibt eine Antwort nach folgendem Muster zurück:
{"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.

parameters
Das Parameter-Objekt, das migriert werden soll.

Rückgabe: Das migrierte Parameter-Objekt (eine Kopie – das Originalobjekt wird nicht verändert).
let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');

// Alte Parameter migrieren
let upgraded = assignment.upgrade(parameters);

Attachment-Berechtigungen

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:

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-Format


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. Wird ein einzelner Benutzer angegeben, wird intern automatisch eine Gruppe für diesen Benutzer erstellt (mit dem Namensschema GRP_acw_<UUID>).

Beispiel

/* 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
  //viewers: [],
});

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('');