Verfeinerung des Rechtemodells

Eine typische Anforderung insbesondere in großen Organisationen ist, dass Informationen nur von den entsprechend betroffenen Personen eingesehen werden dürfen. Wir wollen dies anhand der folgenden Situation simulieren: ein Ticket darf nur von dem Manager, der dem Produkt zugeordnet ist, geprüft werden.

Aus diesem Grund haben wir bei den Testdaten auch zwei Manager definiert, von denen ein Manager genau ein Produkt betreut, der andere dagegen 2.

Es muss also zu einem Ticket der dazugehörige Manager (bzw. Entwickler und Tester) ermittelt werden. Diesen finden wir in unserem Modell, wenn wir exakt die rote Linie entlanglaufen.

Wie bereits im Kapitel "TopLogic Skript" erklärt, tragen wir folgenden Code nun im Prozessmodell im Feld Akteurfunktion der Lane für den Produktmanager ein. Ferner löschen wir den Eintrag in der Gruppe der Akteure.

x->$x.get(`MyEntities:Ticket#refersTo`).get(`MyEntities:Product#managedBy`)

Erläuterung:

  • x deklariert die Variable, mit der wir hier arbeiten.
  • Durch ->$x wird auf die Variable zugegriffen.
  • .get teilt dem System mit, dass aus dem Modell ausgelesen werden soll
  • Was ausgelesen werden soll steht in der Klammer. Es wird hier vom Ticket zum dazugehörigen Produkt gelesen.

Das Weiterlesen vom Objekt Produkt zum Objekt Person (die zweite rote Linie) wird durch die zweite .get-Anweisung ausgelöst.

Entsprechend tragen wir x->$x.get(`MyEntities:Ticket#refersTo`).get(`MyEntities:Product#developers`) bzw. x->$x.get(`MyEntities:Ticket#refersTo`).get(`MyEntities:Product#testers`) in der Lane Entwickler bzw. Tester ein.

Aus reinen Zeitgründen werden wir bei der Installation auf die analogen Prüfungen bei der Umsetzung und beim Test verzichten, zumal wir hier auch nur jeweils einen User haben, mit dem wir die Voraussetzungen erfüllen könnten.