Die Vertec Python Module für das Arbeiten mit der Ressourcenplanung
Betriebsart
Cloud Abo
|ON-PREMISES
Module
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Ab Version 6.6. gibt es das Python Modul vtcplanningcore für die Ressourcenplanung mit folgenden Methoden:
Methode / Funktion | Beschreibung |
---|---|
increment_interval_date(datum, increment): date |
Funktion zum Inkrementieren und Dekrementieren von Perioden-Start-Daten. Inkrementiert das angegebene Datum um die in increment angegebene Anzahl Intervalle. Für das Dekrementieren kann eine negative Anzahl Intervalle angegeben werden. |
get_planning_level(): string |
Gibt die Planungsebene als String zurück. Mögliche Resultate: 'Projekt' oder 'ProjektPhase' . |
get_planning_interval_type(): string |
Gibt das Planungsintervall als String zurück. Mögliche Resultate: 'day' , 'week' oder 'month' . |
show_bulk_planning_dialog(left_obj, right_obj) |
Zeigt einen Dialog zum effizienten Setzen mehrerer Planungswerte für die angegebenen Objekte. Die Reihenfolge, in der die Objekte bereitgestellt werden, spielt keine Rolle, aber der Aufrufer muss sicherstellen, dass eines davon ein Objekt vom Typ |
Zur Umsetzung der Ressourcenplanungs Listen steht in diesem Modul auch eine ResourcePlanningProvider
Klasse zur Verfügung, welche das Auslesen und Setzen von Plandaten erlaubt und die in einem List Controller verwendet werden kann.
Ein ResourcePlanningProvider
Objekt wird für eine Liste von Einträgen (Bearbeiter, Projekte oder Phasen) und eine Zeitperiode angelegt. Der Provider lädt dann sämtliche Planungsdaten für diese Source Objekte und für die angegebene Periode. Anschliessend können die geplanten Werte abgerufen oder gesetzt werden.
Ein Planwert im ResourcePlanningProvider
gilt immer für 2 Einträge und ein Datum, z.B. für den Bearbeiter "Christoph Keller", das Projekt "AZZ2" und den Monat beginnend mit 01.08.2022.
Der eine Eintrag (der Source-Eintrag, sourceEntry
) muss aus der Liste der bei der Initialisierung angegebenen Einträge stammen. Den anderen Eintrag nennen wir "gegenüberliegend" (othersideEntry
).
Die folgenden Methoden stehen auf einem ResourcePlanningProvider Objekt zur Verfügung:
ResourcePlanningProvider(sourceEntries, start, end) |
Constructor, erstellt einen Planning-Provider und lädt die Plandaten für die angegebenen Objekte und Periode. |
add_entry(obj) |
Fügt ein neues Objekt zur Ursprungsliste (sourceEntries) des Providers hinzu. |
add_otherside_entry(obj) |
Fügt ein neues Objekt temporär in die Liste der otherside Einträge hinzu. Dadurch können für dieses Objekt mit set_planned_minutes() Planwerte eingetragen werden. |
get_planned_minutes(date, sourceEntry, othersideEntry, subscriber): int |
Liefert die geplante Zeit in Minuten für die Planungs-Zelle mit Intervall-Datum date und die beiden angegebenen Einträge. Falls keine Plandaten vorhanden sind, wird None zurückgegeben. |
set_planned_minutes(date, sourceEntry, othersideEntry, value) |
Setzt die geplante Zeit in Minuten für die Planungszelle mit Intervall-Datum date und die angegebenen Einträge.Das Setzen eines None Wertes als value entfernt die Plandaten für diese Zelle. |
has_write_access(sourceEntry, othersideEntry, subscriber): boolean |
Überprüft, ob für die beiden Objekte und das Datumsintervall Schreibrechte bestehen. |
get_planned_minutes_aggregated (source_entry, otherside_entry, dateFrom, dateTo=None, subscriber=None): int |
Liefert die aggregierte geplante Zeit für die beiden angegebenen Einträge im angegebenen Zeitraum.
None zurück, wenn keine Planwerte mit den angegebenen Kriterien gefunden werden. |
get_net_capacity_minutes(self, worker, dateFrom, dateTo=None, subscriber=None): int |
Netto-Kapazität in Minuten pro Bearbeiter.
|
get_custom_net_capacity_minutes(self, worker, dateFrom, dateTo=None, subscriber=None): int |
Ab Vertec 6.7.0.5. Netto-Kapazität in Minuten pro Bearbeiter unter Berücksichtigung der Systemeinstellung Angepasste Nettokapazität (Prozent). Gibt |
get_gross_capacity_minutes(self, worker, dateFrom, dateTo=None, subscriber=None): int |
Brutto-Kapazität in Minuten pro Bearbeiter.
|
get_remaining_capacity_minutes(worker, dateFrom, dateTo=None, subscriber=None): int |
Verbleibende freie Kapazität in Minuten für einen bestimmten Bearbeiter und einen bestimmten Datumsbereich (net_capacity - planned_minutes).
|
get_custom_remaining_capacity_minutes(self,worker, dateFrom, dateTo=None, subscriber=None): int |
Ab Vertec 6.7.0.5. Verbleibende freie Kapazität in Minuten für einen bestimmten Bearbeiter und einen bestimmten Datumsbereich unter Berücksichtigung der Systemeinstellung Angepasste Nettokapazität (Prozent). Gibt |
get_otherside_entries(subscriber): list of entries |
Liefert die Liste der Einträge für welche bereits Plandaten vorhanden sind, ausgehend von den im Constructor angegebenen Objekten sourceEntries. |
generate_date_range(start, end) |
Liefert eine Liste von Datumswerten für Planungsintervalle von start bis end . Richtet sich nach der systemweiten Einstellung des Planungs-Intervalls (Monate, Wochen, Tage). |
get_start_preceding_interval(): date |
Gibt das Datum des Intervalls zurück, das dem Startintervall vorausgeht. |
get_column_title_by_date(date): string |
Liefert bei Angabe des Datumswert für ein bestimmtes Planungsintervall den geeigneten Spalten-Titel. |
ResourcePlanningProvider werden üblicherweise in List Controllern und Custom Renderern für Planungslisten ver-wendet. Der List Controller instanziiert einen Planning-Provider, welcher dann zum Anzeigen und Setzen der Werte in Plan Zellen verwendet wird.
Das vtcplanningcore Modul ist auch als Python Stub File verfügbar. Es heisst vtcplanningcore.py
und ist wie die anderen Stub Files im Unterordner PythonStubs im Vertec Installationsverzeichnis abgelegt.
Ab Version 6.6. gibt es das Python Modul vtcplanning
, mit dem Standard Implementierungen von List Controllern für die Ressourcenplanung mitgeliefert werden.
Diese besitzen alle eine initialize_with_period(start, end, interval)
Methode, welche vom Vertec Kern aufgerufen wird und die darzustellende Planungsperiode sowie das Planungsintervall angibt.
Damit eine Planungsliste, welche auf einem neuen Intervall (z.B. aktueller Monat) startet, nicht ganz leer ist, laden die List Controller jeweils auch Planungsdaten für ein Intervall vor dem angegebenen Startdatum.
Das heisst, wenn als Planungsperiode August - Oktober angegeben ist (Planungsintervall "Monat") dann werden auch Zeilenobjekte dargestellt, welche im Juli, nicht aber in August-Oktober Planungsdaten haben.
Die Zeittabellen basieren auf einem Einzelobjekt und zeigen pro geplantes gegenüberliegendes Objekt eine Zeile an. Die Spalten entsprechen den zeitlichen Planungsintervallen.
Zeittabellen können, basierend auf einer Liste, auch als read-only Summentabellen angezeigt werden.
Wir liefern im Python Modul vtcplanning die folgenden List Controller Klassen mit:
List Controller | Beschreibung |
---|---|
vtcplanning.SingleObjectTimeTableController |
Wird verwendet, um auf einzelnen Objekten zu planen (Häkchen Der Controller kann selbst mit den verschiedenen Klassen (Projekt, ProjektPhase, AbstractWorker, Projektbearbeiter oder PlanningWorker) umgehen, es kann immer derselbe Controller angegeben werden. |
vtcplanning.ReadonlySingleObjectTimeTableController | Basierend auf einem Einzelobjekt, jedoch read-only, nicht zur Planung. Wird verwendet für Zeittabellen auf einzelnen Objekten, auf die nicht geplant werden kann. |
vtcplanning.ReadonlyProjectsSingleObjectTimeTableController | Für read-only Projekt-Zeittabellen auf einzelnen Objekten. Werden verwendet, um Projektsummen anzuzeigen, falls die Planungsebene Phasen ist. |
vtcplanning.ReadonlyPhasesSingleObjectTimeTableController | Für read-only Phasen-Zeittabellen auf einzelnen Objekten. Werden verwendet, um Phasensummen anzuzeigen, falls die Planungsart Bearbeiter-Phasen-Zuordnung ist. |
vtcplanning.ReadonlyContainerTimeTableController | Für read-only Zeittabellen auf Listen (Häkchen Für Listen anzeigen? ist gesetzt).Wird verwendet für Summen-Zeittabellen. |
vtcplanning.ReadonlyOtherSideContainerTimeTableController | Für Read-only Zeittabellen auf Listen (Häkchen Für Listen anzeigen? ist gesetzt).Wird verwendet für Summen-Zeittabellen, um auf einer Liste von Objekten die Summen der Gegenseite anzuzeigen (z.B. Bearbeitersummen auf einer Projektliste). |
vtcplanning.ReadonlyPhasesContainerTimeTableController | Für Read-only Zeittabellen auf Listen (Häkchen Für Listen anzeigen? ist gesetzt), um auf einer Liste von Projekten oder Bearbeiter Summen von Phasen anzuzeigen, wenn die Planungsebene Projekt ist (in diesem Fall würden die normalen Listen-Controller auf Projekten nicht angezeigt). |
Ausgehend von einer Liste von Einträgen (AbstractWorker, Projekt oder Phasen) kann eine Ressourcenplanungs Pivottabelle dargestellt werden. Die Pivottabelle zeigt die Einträge als Spalten und die geplanten gegenüberliegenden Einträge als Zeilen. Dies ermöglich es, via Stern-Zeile Plandaten für neue gegenüberliegende Einträge zu erfassen.
Zur Realisierung von Pivottabellen Ansichten stehen die folgenden List Controller Klassen zur Verfügung:
List Controller | Beschreibung |
---|---|
vtcplanning.RegularPivotTableController |
Für Pivottabellen mit den Einträgen in der Liste als Zeilen und der Gegenseite als Spalten. Wird verwendet, um auf einer Liste zu planen (Häkchen Der Controller kann selbst mit den verschiedenen Klassen (Projekt, ProjektPhase, AbstractWorker, Projektbearbeiter oder PlanningWorker) umgehen, es kann immer derselbe Controller angegeben werden. |
vtcplanning.MirroredPivotTableController |
Für Pivottabellen mit den Einträgen in der Liste als Spalten und der Gegenseite als Zeilen. Wird verwendet, um auf einer Liste zu planen (Häkchen In dieser Liste kann eine Stern-Zeile angezeigt werden, um neue zu planende Objekte einzufügen. Genauere Informationen dazu finden Sie hier. Der Controller kann selbst mit den verschiedenen Klassen (Projekt, ProjektPhase, AbstractWorker, Projektbearbeiter oder PlanningWorker) umgehen, es kann immer derselbe Controller angegeben werden. |
vtcplanning.ReadonlyRegularPivotTableController | Wird verwendet, um Projekt – Bearbeiter Pivottabellen anzuzeigen, wenn die Planungsebene Phasen ist, mit den Einträgen der Liste als Zeilen und der Gegenseite als Spalten. |
vtcplanning.ReadonlyMirroredPivotTableController | Wird verwendet, um Projekt – Bearbeiter Pivottabellen anzuzeigen, wenn die Planungsebene Phasen ist, mit den Einträgen der Liste als Spalten und der Gegenseite als Zeilen. |
vtcplanning.RegularSingleObjectPivotTableController | Wird verwendet, um auch auf einem Einzelprojekt in Pivottabellen zu planen. Zeigt eine Pivottabelle mit dem einzelnen Eintrag als Zeile und der Gegenseite als Spalten. |
vtcplanning.MirroredSingleObjectPivotTableController | Wird verwendet, um auch auf einem Einzelprojekt in Pivottabellen zu planen. Zeigt eine Pivottabelle mit dem einzelnen Eintrag als Spalte und der Gegenseite als Zeilen. |
Dazu passend gibt es folgende Custom Renderer zur Verwendung in den Ressourcenplanungstabellen. Alle diese Renderer können in den Listeneinstellungen auf zwei Arten verwendet werden:
%col%
Ja
Zeigt in der Zelle den Wert, welcher zur Kombination Zeile/Spalte passt.
Checkbox Dynamisch: Nein
Zeigt pro Zeile den summierten Wert über alle Spalten.
Custom Renderer | Beschreibung |
---|---|
vtcplanning.PlannedMinutesRenderer |
Renderer für die Planungszeiten. Ermöglicht die Eingabe der Planwerte in den einzelnen Zellen. |
vtcplanning.NetCapacityRenderer |
Renderer, um die Netto-Verfügbarkeit von Bearbeitern anzuzeigen. |
vtcplanning.CustomNetCapacityRenderer |
Ab Vertec 6.7.0.5. Zeigt die Netto-Verfügbarkeit von Bearbeitern unter Berücksichtigung der Systemeinstellung Angepasste Nettokapazität (Prozent). |
vtcplanning.GrossCapacityRenderer |
Renderer, um die Brutto-Verfügbarkeit von Bearbeitern anzuzeigen. |
vtcplanning.RemainingCapacityRenderer |
Renderer, um die Rest-Verfügbarkeit von Bearbeitern anzuzeigen. |
vtcplanning.CustomRemainingCapacityRenderer |
Ab Vertec 6.7.0.5. Zeigt die Rest-Verfügbarkeit von Bearbeitern unter Berücksichtigung der Systemeinstellung Angepasste Nettokapazität (Prozent). |
Das vtcplanning Modul ist auch als Python Stub File verfügbar. Es heisst vtcplanning.py
und ist wie die anderen Stub Files im Unterordner PythonStubs im Vertec Installationsverzeichnis abgelegt.