Deeplinks customizen
Allgemeines
Mit Deeplinks in PLANTA project lassen sich benutzerdefinierte Aktionen direkt über eine URL ausführen. So können Benutzer beispielsweise aus einer E-Mail heraus unmittelbar auf ein verlinktes Modul zugreifen – ganz ohne manuelle Navigation im System.
Technische Implementierung
Voraussetzung
Erstellung einer benutzerdefinierten Klasse, die von
BaseProtocolActionerbt.
Vorgehensweise
Eine Klasse definieren,
hierfür eine Unterklasse von
ppms.protocol.BaseProtocolActionerzeugen,
execute()-Methode implementieren,
auf URL-Parameter zugreifen,
self.path_parametersfür Pfadsegmente undself.query_parametersfür Query-Strings.
Beispiel
from ppms.protocol import BaseProtocolAction, get_any_module_object
class OpenCustomerModuleAction(BaseProtocolAction):
def execute(self):
module = get_any_module_object()
module.open_module('100000')
Hinweis
Speichere die Klasse z. B. in
customer/protocol.py.
Deeplinks erstellen
Vorgehensweise
Im Modul Deeplinks einen neuen Eintrag erstellen:
Aktion auf eine benutzerdefinierte URL setzen (z. B.
/special_module),Python-Funktion auf den Pfad zu Ihrer Python-Klasse setzen (z. B.
customer.protocol.OpenCustomerModuleAction),Häkchen in der Checkbox Aktiviert setzen,
Python-ID definieren, um später auf diesen Deeplink verweisen zu können.
Nach der Einrichtung öffnet ein Aufruf von
<planta-web-client>/special_moduledas Modul 100000.
Pfad- und Query-Parameter
Information
PLANTA-Deeplinks unterstützen sowohl Pfadparameter als auch Query-Parameter. Beide können zur Filterung oder zur Navigation in verschachtelten Hierarchien verwendet werden.
Pfadparameter
Details
Wird verwendet, um hierarchische Ressourcen übersichtlich darzustellen.
Pfadparameter kann direkt in der Deeplink-URL in spitzen Klammern
< >definiert werden:z.B.:
project/<pr_id>.Verwendung des RESTful-URL-Designs.
Query-Parameter
Details
Wird für optionale Filter oder zusätzliche Modifikatoren verwendet.
Automatische Verfügbarkeit, ohne dass ein Query-Parameter explizit definiert werden muss:
z.B.:
project/4711?foo=bar
Die Flexibilität kann auch zu längeren URLs führen.
Query-Parameter-Werte sind immer Listen, da ein Parameter mehrfach vorkommen kann.
Fehlerbehandlung
Hinweis
Wenn ein Benutzer versucht, auf einen nicht existierenden Deeplink zuzugreifen, wird eine Fehlermeldung angezeigt (Textkonstante
002502). Deeplink-Aktionen müssen ungültige Benutzereingaben in ihrer Implementierung entsprechend behandeln.