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.sooder_ppms.dll.
-
-
Im Verzeichnis
ppmsbefindet 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 dasinspect-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.pyimportiert, die den Pfad weiter anpasst -
Die Standard-Reihenfolge, die von PLANTA konfiguriert wird, lautet wie folgt:
Python-IDs
-
DI/DF-Python-IDs können in folgenden Dataitems verwendet werden:
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
import logging
logger = logging.getLogger(__name__)
def my_func(arg):
logger.info('Custom func was called!')
# ...
Customizing API
|
Namespace |
Topic |
|---|---|
| ppms.assignment_module |
General assignment API |
| ppms.create_project |
Projekte erstellen |
| ppms.create_report |
Berichte erstellen |
| ppms.cu_access |
Customizer-Zugang |
| ppms.debugging |
Debugging-Python-Code |
| ppms.dimmer |
Dimmer Client-seitig |
| ppms.file_utils |
Hilfsprogramme zum Arbeiten mit Dateien |
| ppms.global_setting |
Globale Einstellungen lesen |
| ppms.period |
Perioden-Datensätze erstellen |
| ppms.project_rights |
Projektrechte |
| ppms.psp_elements |
PSP-Elemente |
| ppms.rights |
Allgemeine Rechte-API |
| ppms.sql |
Hilfsprogramme 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
|
Namespace |
Inhalt |
|---|---|
|
ppms.text_constant |
Verwendung von Textkonstanten |
|
planta_logging.logging |
PLANTA-Server-Logging |
ppms.migration
Das ppms.migration-Paket implementiert das Migrationsframework und stellt die Basisklasse zum Schreiben von Migrationspaketen zur Verfügung.
|
Topic |
|---|
|
Enums |
|
Dependencies |
|
Packets |
Related topics
Den API-Style-Guide finden Sie im PythonApiStyleGuide Topic.