Skip to main content
Skip table of contents

Python API

Information

  • Nachfolgend finden Sie die Beschreibung der PLANTA-Python-API.

Technische Details

Informationen

  • Innerhalb des PLANTA-Servers läuft ein CPython-Interpreter (Versionen sind in bei der Installation / dem Update im PLANTA-Installer auswählbar).
  • Da sich alle Sessions eines Servers den gleichen Interpreter teilen, werden auch alle globalen Objekte zwischen allen Sessions geteilt.
    • Fügt man also beispielsweise einem Python-Modul ein neues Attribut hinzu, ist dieses Attribut auch in anderen Session abfragbar. Soll ein Zustand nur in der aktiven Session gespeichert werden, sollte hierfür ppms.get_session_dict() verwendet werden.

ppms-Modul

Informationen

  • Der in C geschriebene Teil des PLANTA-Servers stellt bestimmte Funktionen in einer Funktionsbibliothek zur Verfügung.
    • Diese Funktonsbibliothek liegt standardmäßig im Server-Verzeichnis unter /dlls/ und heißt je nach Betriebssystem _ppms.so oder _ppms.dll.
  • Im Verzeichnis ppms befindet sich:
    • die Datei ppms_.py. Diese Datei wird mithilfe von SWIG automatisch generiert und macht die C-Funktionen aufrufbar.
    • die Datei ppms.py, die die beiden Module kombiniert und die eigentliche Schnittstelle zu PLANTA beinhaltet. Die PLANTA-Objekte werden hier noch um Funktionen erweitert, die in purem Python geschrieben sind.

Injections

Informationen

  • An mehreren Stellen im System kann Python-Code hinterlegt werden, der vom Programm ausgeführt wird.
  • Bei der Ausführung wird aus dem Quelltext ein Python-Modul-Objekt erzeugt. Dabei werden ggf. weitere Attribute automatisch eingefügt.
  • An jeder Stelle im System wird das ppms -Modul automatisch verfügbar gemacht. Bei Code im Feld Wertebereich wird noch zusätzlich das inspect -Modul importiert.

Python-Pfad

Informationen

  • Die Umgebungsvariable PYTHONPATH wird standardmäßig von den entsprechenden Start-Skripten für den Server gesetzt.
  • Nachdem der Server den Python-Interpreter gestartet hat, wird die startup.py importiert, die den Pfad weiter anpasst
  • Die Standard-Reihenfolge, die von PLANTA konfiguriert wird, lautet wie folgt:
  1. py/distribution
  2. dlls
  3. dlls/python34.zip
  4. lib
  5. py
  6. py/pysrc
  7. py/distribution/site-packages
  8. py/api/ppms/wrapper/system
  9. py/api/ppms/wrapper
  10. py/api/ppms/customizing/venus
  11. py/api/ppms/server

Python-IDs

Individuelle Python Dateien

  • Individuelle Dateien sollten am Besten in einem eigenen Verzeichnis unter /py/<kunde> liegen 

Logging

Sie können Logging-Aufrufe verwenden, um Ihren Python-Code zu debuggen.

  • Das Logging wird sowohl in den Wwrapper als auch in das session log geschrieben
  • Um mit eigenen Python-Paketen zu arbeiten, müssen diese in ihrem /py/api/-Ordner liegen
PY
import logging

logger = logging.getLogger(__name__)


def my_func(arg):
    logger.info('Custom func was called!')
    
    # ...

Customizing API

NamespaceTopic
ppms.assignment_moduleGeneral assignment API
ppms.create_projectProjekte erstellen
ppms.create_reportBerichte erstellen
ppms.cu_accessCustomizer-Zugang
ppms.debuggingDebugging-Python-Code
ppms.dimmerDimmer Client-seitig
ppms.file_utilsHilfsprogramme zum Arbeiten mit Dateien 
ppms.global_settingGlobale Einstellungen lesen 
ppms.periodPerioden-Datensätze erstellen
ppms.project_rightsProjektrechte
ppms.psp_elementsPSP-Elemente
ppms.rightsAllgemeine Rechte-API
ppms.sqlHilfsprogramme zum Arbeiten mit der Datenbank

ppms.user_interface

Das ppms.user_interface-Paket stellt unterschiedliche Hilfsfunktionen bereit, die einen Einfluss auf die Art und Weise haben, in der der Nutzer mit dem Client interagiert.

ppms.interface

Das ppms.interface-Paket enthält das PLANTA link API.

Server API

NamespaceInhalt
ppms.text_constantVerwendung von Textkonstanten
planta_logging.loggingPLANTA-Server-Logging

ppms.migration

Das ppms.migration-Paket implementiert das Migrationsframework und stellt die Basisklasse zum Schreiben von Migrationspaketen zur Verfügung.

Related topics

Den API-Style-Guide finden Sie im PythonApiStyleGuide Topic.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.