Customizing

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 BaseProtocolAction erbt.

Vorgehensweise

  • Eine Klasse definieren,

    • hierfür eine Unterklasse von ppms.protocol.BaseProtocolAction erzeugen,

  • execute()-Methode implementieren,

  • auf URL-Parameter zugreifen,

    • self.path_parameters für Pfadsegmente und

    • self.query_parameters für Query-Strings.

Beispiel

Python
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.

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_module das 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.