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. Siehe auch Klassenbezeichnung.

DI057862 Klassenbezeichnung

Inkarnationsfeld des Parameters Klasse. Hier wird festgelegt, ob die Regel in Python oder SQL geschrieben wird.

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.

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.

DI041230 Regel

Hier wird die Regel definiert.

Information

  • 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.

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):
    • Innerhalb dieser Funktionen können diverse Operationen durchgeführt werden
      • Diese Operationen werden individuell pro Regel definiert
      • Wenn eine Operation mehrfach verwendet werden soll, muss diese in einem Python-Modul bereitgestellt werden und von dort aus gestartet werden
    • Die Funktion wird beim Ausführen in den builtins bereitgestellt und einem Modulobjekt zugeordnet, wenn die Aktion des Prozessschritts in den operativen Daten ausgeführt wird

  • __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
      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]

         PLANTA project









 
  • Suche in Topic-Namen

  • Suche in Topic-Inhalten
This site is powered by the TWiki collaboration platform Powered by Perl