Information
-
This topic describes the public Python API of PLANTA
-
These functions are guaranteed to be supported in future versions
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
You can use logging calls to debug your Python code.
-
The logging is written to both the wrapper and session log file
-
To work with custom python packages they must reside in your /py/api/ folder
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 |
Creating projects |
| ppms.create_report |
Creating reports |
| ppms.cu_access |
Customizer access |
|
API for sending emails |
|
| ppms.debugging |
Debugging Python code |
| ppms.dimmer |
Client-side dimmer |
| ppms.file_utils |
Utilities for working with files |
| ppms.global_setting |
Reading global settings |
| ppms.period |
Creating period records |
| ppms.project_rights |
Project rights |
| ppms.psp_elements |
PSP elements |
| ppms.rights |
General rights API |
| ppms.sql |
Utilities for working with the database |
ppms.user_interface
The ppms.user_interface package provides various helper functions that affect how the user interacts with the client.
ppms.interface
The ppms.interface package contains the PLANTA link API.
Server API
|
Namespace |
Content |
|---|---|
|
ppms.text_constant |
Using text constants |
|
planta_logging.logging |
PLANTA Server Logging |
ppms.migration
The ppms.migration package implements the migration framework and provides the base classes for writing new migration packets.
|
Topic |
|---|
|
Enums |
|
Dependencies |
|
Packets |
Related topics
The API style guide can be found (in German) in the topic PythonApiStyleGuide