Komponente für Ressourcenplanung
Die Ressourcenplanungskomponente bietet eine grafische Oberfläche für die zeitliche Planung von Ressourcen.
Nachfolgend eine Erläuterung anhand eines Fallbeispieles: Reservierung von Abteilungsfahrzeugen
Entitäten für Ressource und Planung definieren
Entität für die Ressource
Die Ressource ist der Kern der Ressourcenplanung. Auf diese werden später die Zeitbuchungen durchgeführt.
Beispiel: Abteilungsfahrzeug
Entität für die Planung
Um diese Entität für die Ressourcenplanung sinnvoll verwenden zu können benötigt sie folgende Felder:
- Referenz zur Ressourcenentität
- Datum von
- Datum bis
- Uhrzeit von (optional)
- Uhrzeit bis (optional)
Beispiel: Fahrzeugbuchung
Konfiguration der Ressourcenplanung
(Konfiguration Ressourcenplanung)
Ein Wizard führt sie durch die Einstellungen für die Ressourcenplanung.
Vergeben Sie einen internen Namen oder wählen Sie aus einer bestehenden Planung.
Tragen Sie eine Beschriftung und einen Menüpfad, unter dem die Planung später aufrufbar ist, ein.
Wählen Sie die Ressourcen-Entität mit Sortierfeld und die Buchungs-Entität mit der entsprechenden Bezeiehung zur Ressource aus. Unter Datum von, Datum bis legen sie die Datumsfelder in der Buchungsentität fest, die für die Zeitplanung herangezogen werden sollen. Entsprechend dazu können Sie die Felder für die Zeitabschnitte als Uhrzeit fest, falls diese in der Buchungsentität vorhanden sind. In der Tabelle Zeitabschnitte können Sie die bebuchbaren Zeitskalen festlegen, also z.B. im Rythmus von 1/2 Stunde.
Im Bereich Darstellung können Sie die Anzeige der Ressource, der Buchung und eine Legende festlegen. Dabei können die Inhalte von Feldern als Variable angegeben werden:
- Ressource: Attribute der Ressourcenentität (z.B. Kennzeichen: ${kennzeichen}
Name: ${name}) - Buchung: Attribute der Buchungsentität (z.B. Buchungsgrund: ${grundderbuchung}
- Legende: beliebiger Text
Der Standard Betrachtungs-Zeitraum wird immer abhängig von HEUTE eingestellt. Hierfür stehen 3 Funktionen und 4 Wertangaben zur Verfügung: - Addieren mit "+" - Subtrahieren mit "-" - Zum Anfang("[") oder Ende("]") einer Wertangabe springen mit "." - "t" steht für Tag (bzw. "d" für Day) - "w" steht für Woche - "m" steht für Monat - "j" steht für Jahr (bzw. "y" für Year)
Der Ausdruck wird von links nach rechts verarbeitet.
Es folgen ein paar Beispiele zum Verständnis. Zeitraum aktueller Monat: Von = .m[ Bis = .m]
Zeitraum aktuelles Jahr: Von = .j[ Bis = .j]
Zeitraum aktueller bis Ende nächsten Monat: Von = .m[ Bis = +1m.m]
Zeitraum aktueller bis 15. des nächsten Monats: Von = .m[ Bis = +1m.m[+14t (Bis Beispiel HEUTE = 03.01.2011 Berechnung +1m = 03.02.2011 Berechnung .m[ = 01.02.2011 Berechnung +14t = 15.02.2011)
Zeitraum 15. des vorherigen Monats bis 31.12. des aktuellen Jahres: Von = -1m.m[+14t Bis = .j]
Zeitraum 15. des vorherigen Monats bis 15. des nächsten Monats: Von = -1m.m[+14t Bis = +1m.m[+14t
In diesem Bereich können optional zusätzliche Skripte (in Groovy) ausgeführt werden. Mehr dazu im Kapitel Skriptcode (s.u.).
Die Konfiguration ist abgeschlossen.
Nachfolgebeziehungen und Meilensteine
In der Ressourcenplanung können außerdem Nachfolgebeziehungen bzw. Meilensteine angezeigt werden.
Nachfolgebeziehungen
Die Grundlage hierfür bildet eine Entität, die zwei Referenzfelder auf die jeweilige Buchungsentität enthält. Ein Beispiel wäre die Abbildung eines kritischen Pfades mit Vorgängern und Nachfolgern. Diese Referenzen werden in der Ressourcenplanung durch eine Verbindung dargestellt.
Darstellung:
Meilensteine
Die Buchungsentität kann optional als Meilenstein statt als Balken angezeigt werden. Dazu benötigt man ein Booleanfeld, das im "Meilensteinfeld" ausgewählt wird. Die Anzeige erfolgt dann als Raute statt als Balken.
Ressourcenplanung anwenden
Die Wochenenden werden Rot dargestellt, der aktuelle Tag wird Grün dargestellt.
Sie können nun neue Zeiten eintragen. Markieren Sie eine oder mehrere Zellen (durch Klicken, gedrückt Halten und Ziehen der Maus) und wählen Sie dann aus dem Kontextmenü Hinzufügen. Die Maske der Buchungsentität wird geöffnet und die jeweiligen Felder sind bereits mit den Zeiten vorgefüllt.
Nach dem Bearbeiten und Speichern dieses Datensatzes wird die Buchung grafisch in der Ressourcenplanung angezeigt.
Diese Blöcke können mit Drag&Drop auf andere Ressourcen oder andere Zeitblöcke verschoben werden. Desweiteren können die Termine auch durch Vergrößern oder Verkleinern der Blöcke verändert werden.
Skriptcode
Nachfolgend ein Dummy-Groovy-Skript. Definiert zwei Methoden:
- formatCell kann zum Formatieren von Zellen (Ressource/Buchung) benutzt werden. Übergeben wird das jeweilige Collectable zum Auswerten und ein Cell-Objekt über das Farbe, Text und ToolTip gesetzt werden können
- formatBg kann zum Formatieren des Hintergrundes benutzt werden. Übergeben wird das jeweilige Ressource-Collectable und das Zeitinterval (hat die beiden Properties start/end, jeweils Date-Objekte) sowie ein Background-Objekt über das die Farbe gesetzt werde kann.
def formatCell(clct, cell) { if (clct['meinFeld'] == 5) { cell.color = "#ff9999"; cell.toolTip = "Text"; } } def formatBg(clct, interval, bg) { if (interval.start <= new Date()) { bg.color = "#ffccff" } }
Die Namen der Methoden/Argumente sind egal (der Methodenname muss in den Einstellungen dann referenziert werden). Die Collectables-Attribute werden via clct['xxx'] angesprochen. Farben können entweder als Color-Objekt oder als String mit der Hex-Syntax "#rrggbb" gesetzt werden.
Einige (Syntax-)Fehler werden beim Speichern des Skriptes erkannt. Aufgrund der Dynamik von Groovy können aber fehlende Properties etc. erst zur Laufzeit erkannt werden. Das Öffnen der Ressourcenplanung sollte dann den Fehler anzeigen und der betroffene Renderer wird deaktiviert.
Verfügbare Methoden des cell Elements:
- cell.color
- cell.tooTip
- cell.text
Verfügbare Methoden des bg (Background) Elements:
- bg.color
Beispiel:
Nach der Definition der Skripte können Sie die entsprechenden Zuweisungen zur Ressourcen- bzw. Buchungsentität oder für den Hintergrund vornehmen.
- Die unter Regel für Formatierung Ressource: eingetragene Methode muss Felder der Ressourcenentität enthalten.
- Die unter Regel für Formatierung Buchung: eingetragene Methode muss Felder der Buchungsentität enthalten.
Achtung: Die Methoden sind noch nicht in den Dropdownfelder auswählbar, sondern müssen manuell eingegeben werden.