Prozess Aktionen

An Datensätzen im Monitor können Aktionen angeboten werden, die der Anwender auf bestehende Prozesse auslösen kann. Eine Aktion ruft in der Regel ein Backend System wie z.B. die INUBIT Process Engine auf und veranlasst dort die Verarbeitung der Aktion. So können z.B. Daten verändert oder Fachprozesse angestoßen werden.

Verfügbare Prozess Aktionen werden über entsprechende Eintragungen an den Datensätzen hinterlegt und dann in der Oberfläche angeboten.

  • Toolbar Funktion
    Verfügbare Aktionen werden in der Toolbar über Funktions-Icons angeboten.

  • Kontextmenü
    Über das Kontextmenü (Rechtsklick auf einen Datensatz) werden die verfügbaren Aktionen angeboten.

  • Aktions-Spalte
    Wird eine Aktions-Spalte konfiguriert, so wird in der Zeile des Datensatzes eine Schaltfläche mit Zugriff auf die Aktion(en) angeboten, siehe Aktionsspalte.

  • Detailansicht
    Siehe Prozess Aktionen in der Monitor-Detailansicht.

Die Anwender-Dokumentation zu dieser Funktion finden Sie hier.

Zugriffsrechte

Damit ein Benutzer Prozess Aktionen nutzen kann, benötigt er das Recht bpcMonitor_processAction.

Sollte das System, dass die Prozess-Aktion verarbeitet, über eine Backend Connection angesprochen werden, so wird für alle Nutzer der Funktion das Recht loadModule_backendconnection benötigt.

Aktionen über Datensätze bereitstellen

Um Aktionen anzubieten, müssen die Daten ein Feld mit dem Prefix ACTION_ bereitstellen. Dafür muss in der Regel in der Datenbank, die die Daten hält, eine neue Spalte angelegt werden.

Es können mehrere Felder mit dem Prefix verwendet werden, um mehr Aktionen anzubieten. Es können aber auch mehrere Aktionen über ein Feld bereitgestellt werden.

In den folgenden Abschnitten wird beschrieben, wie der Inhalt der Felder interpretiert wird.

Einzelne Aktion

Ein einfacher Text-Wert (ohne Separator, siehe Aktionsliste wird direkt als Aktion angeboten. Dabei bildet der Wert sowohl die ID der Aktion als auch die Beschriftung an der Oberfläche.

Beispiel: Freigeben

Aktionsliste

Text-Wert, der Separatoren (normalerweise Komma ",") enthält. Dabei wird der Text am Separator getrennt und für jeden Teil eine Aktion angeboten. Dabei bestehen die ID und Beschriftung aus dem jeweils separierten Textteil.

Beispiel: Freigeben,Ablehnen,Löschen

Detaillierte Aktionskonfiguration

Es ist auch möglich, einen JSON-String zu speichern. Dieser kann eine oder mehrere Aktionen enthalten. Dabei können folgende Attribute bestimmt werden:

  • id
    ID

  • name
    Beschriftung (einziges Pflicht-Attribute)

  • iconCls
    Icon (Font Awesome Icons - siehe FontAwesome-Bibliothek)

  • sortValue
    Reihenfolge, (sollte numerisch sein. (Default ist 1; es wird erst nach sortValue absteigend und dann nach name aufsteigend sortiert)

  • requireConfirmation
    Bestätigung ist erforderlich, bevor ein Nutzer die Aktion ausführt.

    process action requireConfirmation
  • requireComment
    Kommentar ist erforderlich, bevor ein Nutzer die Action ausführt.

    process action requireComment
  • confirmationText
    Bestätigungstext für die Confirmation Box. Hier kann auch ein Language Key verwendet werden. Wenn nicht konfiguriert, wird der Text wie oben als Default gesetzt.

  • role
    Beschränken der Anzeige je nach Rolle des Anwenders.

    Das ist nur eine Einschränkung der Sichtbarkeit. Das Backend-System muss die Rollen/Rechte des Benutzers beim Aufruf selbst prüfen.

  • right
    Beschränken der Anzeige je nach Recht des Anwenders.

    Das ist nur eine Einschränkung der Sichtbarkeit. Das Backend-System muss die Rollen/Rechte des Benutzers beim Aufruf selbst prüfen.

  • organisation
    Beschränken der Anzeige je nach Organisation/Gruppe des Anwenders.

    Das ist nur eine Einschränkung der Sichtbarkeit. Das Backend-System muss die Rollen/Rechte des Benutzers beim Aufruf selbst prüfen.

  • target
    Dieser Parameter gibt an, welches Ziel die Aktion hat. Mögliche Optionen sind:

  • params
    Über dieses Attribut kann ein Objekt mit zusätzlichen Parametern bereitgestellt werden. Wird z.B. für Prozess Starter über eine Aktion aufrufen verwendet.

Beispiel
[
   {
      "id": "actionId1",
      "name": "actionName1",
      "iconCls": "x-fal fa-fire",
      "sortValue": 1
   },
   {
      "id": "actionId2",
      "name": "actionName21",
      "iconCls": "x-fal fa-fire",
      "sortValue": 1,
	  "role": ["bpcadmin"]
   }
]

Prozess Starter über eine Aktion aufrufen

Man kann mit einer Aktion auch den Prozess Starter mit einem definierten Prozess aufrufen. Dafür ist es nötig, die Prozess Aktion über ein JSON-Objekt (siehe Detaillierte Aktionskonfiguration) zu konfigurieren.

Dabei wird als target der Wert processStarter gesetzt. Über params kann der key Zielprozess im Attribute process angegeben werden.

Beispiel
[
  {
  "id": "start-process",
  "name": "Prozessstarter",
  "iconCls": "x-fal fa-play",
  "target":"processStarter",
  "params":{
    "process":"testProcess"
    }
  }
]

Auf diesem Weg können auch Prozess Starter für Prozesse aufgerufen werden, die durch die Angabe von hidden: true ausgeblendet sind.

Forms über eine Aktion abschicken

Man kann mit einer Aktion gerade angezeigte BPC Forms abschicken. Dafür ist es nötig, die Prozess Aktion über ein JSON-Objekt (siehe Detaillierte Aktionskonfiguration) zu konfigurieren.

Dabei wird als target der Wert forms gesetzt. In diesem Fall wird das erste Forms, dass gefunden wird abgeschickt (Submit - Formularversand).

Es kann nur ein Forms abgeschickt werden, dass auch sichtbar ist. Der Einsatz dieser Funktion bietet sich daher in der Monitor Detailansicht an, wo Prozess Aktionen und BPC Forms parallel angezeigt werden können.

Um sicherzustellen, dass das richtige Forms abgeschickt wird, kann man die Auswahl über einen Selektor eingrenzen. Dafür wird unter params im Attribute selector ein zusätzlicher Selektor definiert, der bei Auswahl des Forms berücksichtigt wird.

Beispiel - mit einem Selektor für das Forms mit der ID FORMS-KOMPONENTEN-ID
[
  {
  "id": "start-process",
  "name": "Prozessstarter",
  "iconCls": "x-fal fa-play",
  "target":"forms",
  "params":{
    "selector":"moduleId=FORMS-KOMPONENTEN-ID"
    }
  }
]

Prozess Aktionen in der Monitor-Detailansicht

In der Detailansicht vom Monitor können ebenfalls Prozess Aktionen ausgelöst werden. Siehe dafür Konfiguration der Monitor-Detailansicht.

Aktionsspalte

Um eine Spalte im Monitor anzuzeigen, die direkten Zugriff auf die verfügbaren Aktionen bietet, muss in der Monitor_Column_Config eine Spalte vom Typ gridActionColumn hinzugefügt werden. Über den Parameter showIconOnly kann gesteuert werden, ob an der Schaltfläche nur die Icons dargestellt werden sollen.

Diese Aktionsspalte kann analog zum Monitor auch im Historien-Grid verwendet werden.

Beispiel - Aktionsspalte in Monitor_Column_Config
{
    "xtype": "gridActionColumn",
    "localized": {
        "text": "Aktionen"
    },
    "showIconOnly": true
}

Erwartetes Rückgabe-Format

Der Client erwartet vom Server eine JSON- oder XML-Antwort.

Die Antwort im JSON-Format ist zu empfehlen, da das XML-Format in der Zukunft weniger für die Prozess Aktion unterstützt wird.

Stelle sicher, dass der Content-Type-Header entsprechend gesetzt wird, um dem Client das Datenformat korrekt zu übermitteln:

  • JSON-Antworten benötigen Content-Type: application/json.

  • XML-Antworten benötigen Content-Type: application/xml.

Antwort auf Absenden des Prozesses

Beispiel Fehler
{
    "success": false,
    "msg": "Fehlermeldung"
}
<Response>
    <success>false</success>
    <msg>Fehlermeldung</msg>
</Response>
Beispiel OK
{
    "success": true,
    "msg": "Aktion vom Prozess 4711 erfolreich"
}
<Response>
    <success>true</success>
    <msg>Aktion vom Prozess 4711 erfolreich</msg>
</Response>
Beispiel Dateidownload
{
    "success": true,
    "msg": "Alles toll. Siehe Datei!",
    "download": {
        "data": "UHJvemVzc2FrdGlvbiBEb3dubG9hZCE",
        "fileName": "processAction.txt",
        "contentType": "text/plain"
    }
}
<Response>
    <success>true</success>
    <msg>Alles toll. Siehe Datei!</msg>
    <download>
        <data>UHJvemVzc2FrdGlvbiBEb3dubG9hZCE=</data>
        <fileName>processAction.txt</fileName>
        <contentType>text/plain</contentType>
    </download>
</Response>

Keywords: