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 und -
self.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 Deeplink 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.