DT489 Prozessregeln
DI041217 Prozessregel
Identnummer der Prozessregel wird automatisch beim Anlegen generiert.
DI041228 Prozessregel-Bezeichnung
Bezeichnung der Prozessregel.
DI041229 Kommentar
Hier kann ein Kommentar zur Prozessregel eingetragen werden.
DI057861 Klassenbezeichnung
Bezeichnung des Parameters
Klasse. Die Beschreibung siehe
Klassenbezeichnung.
DI057862 Klassenbezeichnung
Inkarnationsfeld des Parameters
Klasse. Hier wird festgelegt, ob die Regel in Python oder SQL geschrieben wird.
Hinweis
- Dieses Feld ist ein Muss-Feld.
DI057966 Objektartbezeichnung
Inkarnationsfeld des Parameters
Objektart. Hier wird festgelegt, ob die Regel für Projekte, Ideen, Vorhaben oder für Requests zur Verfügung steht.
Hinweis
- Dieses Feld ist ein Muss-Feld.
DI059086 Regelartbezeichnung
Inkarnationsfeld des Parameters
Regelart.
Details
- Hier wird festgelegt, ob es sich bei der Prozessregel um eine Prozessaktion (z.B. Statusbericht erstellen oder Projektart ändern) oder um eine Prüfregel (z.B. Feld Projektleiter ist gefüllt) handelt.
- Die Werte in diesem Feld bestimmen, ob die Prozessregel im Modul Prozessmodell-Templates in der Listbox auf dem Feld Prozessregel-Bezeichnung oder Prozessaktion-Bezeichnung angezeigt wird.
Hinweis
- Dieses Feld ist ein Muss-Feld.
DI041230 Regel
Hier wird die Regel definiert.
Informationen
- Die Prozessregeln werden vom Customizer bereitgestellt.
- Bei den Regeln handelt es sich um SQL-Statements oder Python-Methoden, die bei der Prüfung eines Prozessschrittes ausgeführt werden.
- Die Prozessregeln mit Regelart Prüfregel können mit SQL-Statements oder Python-Methoden geschrieben werden.
- Die Prozessregeln mit Regelart Aktion können nur mit Python-Methoden geschrieben werden.
- Bei den Prozessregeln, die mit Python-Methoden geschrieben werden, wird das Feld Regel automatisch mit den Standardzeilen (Anfangszeile, Return-Zeile und Endzeile) für die entsprechende Regelart gefüllt. Die Regel soll danach erweitert werden.
Methode |
Definition |
SQL-Statement |
Wenn es sich um eine Quantitätsprüfung mehrerer Felder auf Projektebene handelt, müssen die Spalten des Select-Statements mit einem Platzhalter besetzt werden, da diese aus den Regelparametern der Prozessschritte ausgelesen werden. Beispiel: Prüfregel Prüfung auf Projekt. Diese Regel fragt, anhand der in den Stammdaten hinterlegten Regelparameter, Spalten aus der Projekttabelle ab. - Select {0} from DT461 WHERE DI001001='{1}'
Details - Der Platzhalter {0} wird mit den Regelparametern der Prozessschritt-Stammdaten befüllt
- Der Platzhalter {1} wird mit der aktuellen Projektnummer befüllt
Wenn es sich um eine Qualitäts- oder Verwendungshäufigkeit-Prüfung handelt, muss für Suchkriterium auf Projekt ein Platzhalter definiert werden. Beispiel: Prüfregel VH-Risiken. Diese Regel prüft, ob für das aktuelle Projekt bereits Risiken definiert wurden. - SELECT count(DI007696) FROM DT810 p WHERE p.DI007696='{0}'
|
Python-Methode |
Die Methode "computeProcessRule" wird für Prüfregeln verwendet und an das Dataitem-Objekt vererbt. Allgemeiner Aufbau einer Prüfregel: - def computeProcessRule(result,di_to_check,object_id,dtp_rec):
- INHALT der Methode
- return result
- di.computeProcessRule=computeProcessRule
Beispiel: Prüfregel Prüfung auf Projekt. Diese Regel fragt, anhand der in den Stammdaten hinterlegten Regelparameter, Spalten aus der Projekttabelle ab. - def computeProcessRule(result,di_to_check,object_id,dtp_rec):
- di_list=di_to_check.split(",")
- for attribute in ppms.db_select("""Select {0} from DT461 WHERE DI001001='{1}'""".format(di_to_check,object_id))[0]:
- if attribute in ("",0):
- result+=1
- return result
- di.computeProcessRule = computeProcessRule
Details - di_to_check beinhaltet die zu prüfenden Spalten des Regelparameters der Prozessschritt-Stammdaten
- object_id beinhaltet die Identnummer zu prüfenden Projekts
Die Methode "executeProcessAction" wird für Prozessaktionen verwendet und an das Dataitem-Objekt vererbt. Allgemeiner Aufbau einer Aktion: - def executeProcessAction(mts_rec=None,object_id=None):
- __builtins__["planta_functions"]=[executeProcessAction]
Beispiel: Prozessaktion Statusbericht erstellen: def executeProcessAction(mts_rec=None,object_id=None):
from ppms import create_report
from ppms import processes
from ppms import project_rights
#create report<br />mapping_dict=project_rights.get_report_mapping_definition()
vzh = create_report.Versionizer_helper(mapping_dict["source_dt"], mapping_dict["target_dt"], mapping_dict["data_items"], object_id)
processes.create_report_for_processes(processes.get_object_type_by_pr_id(object_id),object_id,vzh.report_id)
project_rights.set_report_title(object_id,vzh.report_id)
return [mts_rec,object_id]
__builtins__["planta_functions"]=[executeProcessAction]
|