Export von Moduldaten in JSON-Datei
Allgemeines
Mit Hilfe der Schnittstelle Moduldaten auslesen können die Daten eines PLANTA project-Moduls über das Web ausgelesen und in einer JSON-Datei gespeichert zur einfachen Lesbarkeit oder um die Daten weiterzuverarbeiten oder zwischen weiteren Plattformen auszutauschen.
Dieser Ansatz kann als eine umfangreichere Alternative zur Transformation der Daten über Web-Entitäten, deren Möglichkeit dadurch beschränkt sind, da sich Web-Entitäten immer auf eine Tabelle beziehen und dadurch komplexe Modulkonstruktionen nicht über sie abgebildet werden können.
Auch kann der Ansatz zum vereinfachten Customizing verwendet werden, da der gesamte Customizing-Baukasten (Formate, Verdichtung, Gruppierung, virtuelle Felder, ...) zur Verfügung steht.
Modul-Endpunkt
Über den Modul-Endpunkt ModuleReaderImplementation
kann ein freigegebenes Modul übers Web ausgelesen werden. Die Query-Parameter werden an die Modulklasse weitergegeben. Standardmäßig bekommt man die Daten zu einem Modul als JSON. Übergibt man “format=json-schema", bekommt man eine JSON-Schema Datei zum Modul, statt den Moduldaten.
Die Implementation prüft, ob das angeforderte Modul für das Web freigegeben ist. Wenn ja, wird es über ein Makromodul (009DVH) in einer Clientless-Session geöffnet und die read_module_data_for_web()
-Methode aufgerufen.
Konfiguration im Customizing
Im Modul Weitere Modulparameter muss für das Modul, dessen Daten exportiert werden sollen, die Checkbox Web-Export aktiviert werden.
Die Datenbereiche des Moduls, die beim Export berücksichtigt werden sollen, müssen eine Python-ID und Datenfelder in Fenster 1/2/3 haben.
Ist für einen Datenbereich auf oberster Ebene die Checkbox Nie Anzeigen aktiviert, wird er übersprungen.
Über die Datenfeld-Konfiguration kann das Verhalten für einzelne Felder angepasst werden:
get-tech-value: Liest den technischen Wert aus dem Feld, statt die String Repräsentation
use-df-heading: Statt der Python-ID wird die DF-Überschrift als Schlüssel verwendet
Individuelle Kundencustomizings
Die Methode read_module_data_for_web(self, query_parameters)
auf der Modulklasse ist dafür verantwortlich, die Daten auszulesen und zurückzugeben. Sie kann in einer Modulunterklasse überschrieben werden, um das Verhalten anzupassen und z.B. über die Query-Parameter, die Filter im Modul zu setzen.
class ExampleCustomerReader(Base):
def read_module_data_for_web(self, query_parameters):
# Read a project_id from the query parameters and set it as search criteria in a specific DA
project_id = query_parameters.get('project_id', None)
if project_id is not None:
self.project.get_customizing().pr_id.set_search_criteria(project_id, project_id)
return super().read_module_data_for_web(query_parameters)