Zum Inhalt springen

Personen hinter einer Rolle zuordnen

Manche Beziehungen brauchen mehr als zwei Beteiligte. Wenn du einem Projekt eine Rolle zuordnest (z.B. @Operations Lead), willst du oft auch festhalten, welche Person diese Rolle am Projekt tatsächlich ausfüllt. Genau das bildet eine Zuordnung mit Beteiligten ab:

„Person P arbeitet in Rolle R an Projekt Pr mit.”

Der direkte Weg führt über das Formular des Vorhabens — beim Anlegen wie beim Bearbeiten:

  1. Klicke auf „Neues Projekt” (oder öffne ein Projekt und dort Bearbeiten).
  2. Unter den Fachdaten steht der Abschnitt Zuständigkeit mit dem Feld Zuständige Rolle. Wähle dort die Rolle.
  3. Erst danach füllt sich darunter das Feld Personen — mit genau denen, die diese Rolle ausüben. Füge eine oder mehrere hinzu.
  4. Veröffentlichen. Das Vorhaben und seine Zuordnung entstehen in einem Zug; du musst nicht erst speichern und dann verknüpfen.

Personen-Auswahl bei der Rollen-Zuordnung

Wichtig: Wenn sich die Besetzung ändert, ändere sie im selben Feld. Öffne das Vorhaben, im Reiter Beziehungen steht das Feld Personen — Klick auf „Ändern”, alten Namen entfernen, neuen wählen, veröffentlichen. Ein Formular brauchst du dafür nicht; siehe Beziehungen verstehen.

Was du nicht tun solltest: die Zuordnung ein zweites Mal über die Schnellverknüpfung anlegen. Dabei entsteht eine zweite Beziehung derselben Art, und danach steht in der Organisation zweimal „zuständig”, einmal richtig und einmal veraltet. Das Formularfeld hängt an der bestehenden Beziehung und ändert sie; die Schnellverknüpfung legt immer eine neue an.

Mehrere gleichartige Zuordnungen sind übrigens erlaubt und manchmal richtig — etwa zwei Einsatzzeiträume derselben Rolle am selben Vorhaben. Deshalb verhindert roleALPHA sie nicht, sondern weist beim Freigeben darauf hin, dass es schon eine gleichartige Beziehung gibt.

Abgelehnt wird nur die wortgleiche Wiederholung — gleiche Objekte, gleiche Angaben, gleiche Beteiligte (siehe Beziehungen verstehen). Beim Austauschen einer Person hilft dir das ausdrücklich nicht: die alte und die neue Besetzung unterscheiden sich, also sind es für die Anwendung zwei Aussagen und beide dürfen stehen. Dass die alte weg soll, weißt nur du — deshalb der Weg über dasselbe Feld statt über eine zweite Verknüpfung.

Der Personen-Picker zeigt ausschließlich die Rolleninhaber — also die Personen, die die gewählte Rolle über die Beziehung „führt aus” (EXECUTES) tatsächlich ausüben. So wählst du die Person eindeutig aus und kannst dich nicht vertun. Trägt eine Rolle noch keine Inhaber, bleibt die Liste leer.

Und wenn jemand die Rolle nicht (mehr) ausübt? Die Liste gilt nur für die Auswahl. Eine Person, die schon eingetragen ist, bleibt stehen, auch wenn sie die Rolle inzwischen nicht mehr ausübt oder nie ausgeübt hat (zum Beispiel aus einem älteren Stand oder einem Import). Du siehst sie dann mit ihrem Namen und dem Zusatz „übt die Rolle nicht aus”. roleALPHA entfernt sie nicht von selbst. Entscheide, was stimmt: die Person aus dem Feld nehmen oder ihr die Rolle über „führt aus” geben.

  • In der Sektion „Beziehungen” stehen die zugeordneten Personen als anklickbare Chips direkt unter der Zuordnung — sowohl in der Normal- als auch in der Expertenansicht.
  • Auf der Personen-Detailseite steht unter „Beziehungen” der Abschnitt „Beteiligt an”: in welchen Projekten die Person im Einsatz ist und in welcher Rolle, z.B. „Bilddatenbank · als Operations Lead”. Ein Klick auf den Namen öffnet das Projekt. Wer im Projekt-Kanban in der Bahn einer Person steht, ist also auch auf ihrer eigenen Seite zu finden.

Das Prinzip ist nicht auf Personen und Rollen beschränkt. Beliebige Zuordnungen können weitere Beteiligte tragen, sofern der Beziehungstyp das vorsieht — z.B. auch transversal im Kreis.

Ob ein Beziehungstyp Beteiligte trägt, ist datengetrieben und wird am Beziehungstyp selbst hinterlegt — im Feld descJsonb unter dem Schlüssel participants. Jeder Eintrag beschreibt einen Slot (eine Kapazität), in den Beteiligte eines bestimmten Entitätstyps aufgenommen werden.

{
"participants": [
{
"slot": "holder",
"moduleId": "person",
"min": 0,
"max": null,
"label": { "de": "Personen", "en": "Persons" },
"filterByExecutes": {
"baseEndpoint": "from",
"relType": "EXECUTES",
"participantSide": "source"
}
}
]
}

Felder je Slot

FeldPflichtBedeutung
slotjaStabiler Schlüssel der Kapazität (z.B. holder). Wird pro Beteiligtem gespeichert.
moduleIdjaModul/Entitätstyp der Beteiligten (z.B. person, ea für Softwaresysteme).
min / maxneinKardinalität. max: null = beliebig viele (N Beteiligte).
labelneinAnzeige-Label je Sprache (de / en).
filterByExecutesneinOpt-in-Filter. Fehlt er, ist der Picker unbeschränkt (alle Entitäten des moduleId).

filterByExecutes (2-Hop-Einschränkung)

FeldBedeutung
baseEndpointAn welchem Ende der Basis-Relation die Anker-Entität sitzt: from oder to. Im Beispiel die Rolle (Quelle).
relTypeÜber welchen Beziehungstyp gefiltert wird (Inzumbenz), üblicherweise EXECUTES.
participantSideAuf welcher Seite dieser Kante der Kandidat steht: source (= Quelle) oder target (= Ziel).

Das Beispiel liest sich als: „Kandidaten sind Personen, die die Quell-Rolle via EXECUTES ausüben” — also genau die Rolleninhaber.

Die Auswertung erfolgt zentral über einen einzigen Resolver; die Werte sind nie im Anwendungscode hartcodiert, sondern werden ausschließlich aus dieser Konfiguration gelesen. So kann jeder Mandant seine Zuordnungen selbst festlegen.