Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core information center entwickeln


Eingang (Inbox) konfigurieren

Der Eingang stellt Objekte dar, die einem Benutzer direkt zugeteilt wurden, für diesen relevant sind und abgearbeitet gehören.

Zu diesen Objekten zählen:

Der Eingang lässt sich durch Erstellung eines Konfigurationsprojekts erweitern, indem Sie weitere Objekte im Eingang (aktuell) abhängig von bestimmten Metadaten anzeigen lassen. Sie müssen zwei Einstellungen vornehmen:

Eigene Objekte dem Eingang (aktuell) hinzufügen


  1. Öffnen Sie Ihr Konfigurationsprojekt:
    Eigene Dateien/Administration/customers/<Konfigurationsprojekt>
  2. Wählen Sie im Kontextmenü die Aktion agorum core template manager > Eingang (aktuell) - neues Objekt zuordnen.

    Ergebnis: Ein Dialog öffnet sich.
  3. Wählen Sie ein Metadatum.

    Das System verwendet dieses Metadatum als Grundlage zur Erstellung von Skripten. Die Skripte überarbeiten Sie im nächsten Schritt.

    Ergebnis: Das Feld Zuordnungs-Name bildet sich automatisch aus Metadatum und Projektname. Sie können den Zuordnungs-Namen manuell anpassen.

     
     
    Metadatum und Zuordnungs-Name wählen
  4. Klicken Sie auf Anlegen.

    Ergebnis: Das System erstellt automatisch die Skripte query.js und done.js. Diese passen Sie im nächsten Schritt an.

    Pfad des query-Skripts (Beispiel)
    Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js/inbox/query/<Zuordnungsname>-query.js
    
    Pfad des done-Skripts (Beispiel)
    Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js/inbox/done/<Zuordnungsname>-done.js
  5. Klicken Sie auf OK oder Rückgängig machen.

     
    Schaltfläche OK oder Rückgängig machen

    Hinweise:

    • Mit Rückgängig machen rollt das System die Aktion vollständig zurück, nach Durchführung aller Schritte ist dies nur noch manuell oder per uninstall-Datei möglich.
    • Wenn Sie auf OK klicken, startet der inbox-Worker neu, sodass er diese Konfiguration ab jetzt beachtet.

  6. Passen Sie das Skript query.js an, sodass das Objekt, auf dem die Wiedervorlage sitzt, im Eingang (aktuell) erscheint. Erweitern Sie dazu die Angabe von queryOr mit Unterstützung der Dokumentation Eingang (Inbox) konfigurieren.
    /* global sc */
    /* jshint unused: true */
    // configuration for elements in inbox
    
    // exportieren der Konfiguration
    exports.settings = user => { 
      return [
        {
          name: 'testregister-user-testregister-wiedervorlage-query',
          queryOr: [ 
            // Metadatum: user_testregister_wiedervorlage
            'user_testregister_wiedervorlage:' + user
          ]
        }
      ];
    };
  7. Passen Sie das Skript done.js an, sodass das Objekt, auf dem die Wiedervorlage sitzt, aus Eingang (aktuell) wieder verschwindet. Verwenden Sie zur Unterstützung die Dokumentation Eingang (Inbox) konfigurieren.
    /* jshint unused: true */
    // configuration for elements in inbox
    
    exports.settings = () => { 
      return [
        {
          name: 'testregister-user-testregister-wiedervorlage-done',
          selectors: [
            '[~user_testregister_wiedervorlage]'
          ],
          handler: object => {
            // user_testregister_wiedervorlage
            // here something can be done ...
            // in our sample, nothing is done
            // return true=refresh result list
            return false;
          }
        }
      ];
    };
    
    Ergebnis: Das System erstellt automatisch die Registrierungen für die beiden Skripte:

    Beispiel für das query-Skript
    MAIN_MODULE_MANAGEMENT/customers/agorum.inbox/query-settings/[ <Konfigurationsprojekt> ]/<Zuordnungsname>-query
    
    Beispiel für das done-Skript
    MAIN_MODULE_MANAGEMENT/customers/agorum.inbox/done-settings/[ <Konfigurationsprojekt>]/<Zuordnungsname>-done
    
    Außerdem wurde automatisch der Eintrag in die export.yml sowie die uninstall-Datei erstellt:
    Eigene Dateien/Administration//workspace/actempman/uninstall-new-object-to-inbox-current/<Konfigurationsprojekt>/uninstall-new-object-to-inbox-current.json'
    
  8. Testen Sie Ihre Konfiguration.

    Tipp: Wenn der Eingang (aktuell) die neuen Objekte nicht anzeigt, starten Sie den verantwortlichen Worker neu. Wechseln Sie dazu ins agorum core support tool und klicken Sie beim Worker QueryScript : agorum_composite_acic_notifications auf die Schaltfläche Reset worker.

    Ergebnis: Das System hat zwei neue Skripte in Ihrem Konfigurationsprojekt angelegt:

    - <Zuordnungsname>-query.js
    Bedingungen, unter denen ein Objekt im Eingang erscheint (Beschreibung des Skripts siehe Bedingungen, unter denen ein Objekt im Eingang erscheint (query.js)).

    - <Zuordnungsname>-done.js
    Erledigt-Verhalten definieren (Beschreibung des Skripts siehe Erledigt-Verhalten definieren (done.js)).

Bedingungen, unter denen ein Objekt im Eingang erscheint (query.js)


Das System legt das Skript query.js automatisch an, wenn Sie über den agorum core template manager ein neues Objekt dem Eingang (aktuell) zuordnen. Sie müssen die Konfiguration anschließend manuell in der MetaDB registrieren.


Pfad zum angelegten Skript 

Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js/inbox/query/<Zuordnungsname>-query.js


Quellcode

/* global sc */
/* jshint unused: true */
// configuration for elements in inbox

// exportieren der Konfiguration
exports.settings = user => {
  return [
    {
      name: 'ag.doku-dmsimporter-customername-query',
      queryOr: [
        // Metadatum: dmsimporter_customername
        'dmsimporter_customername:' + user
      ]
    }
  ];
};
  1. Passen Sie das JavaScript query.js an, sodass das Objekt, auf dem die Wiedervorlage sitzt, im Eingang (aktuell) erscheint. Erweitern Sie dazu die Angabe von queryOr.

    Beispiel
    Neben den Standardobjekten sollen alle Objekte mit den Metadaten identifier:testObject und testinbox_user:user im Eingang (aktuell) erscheinen.
    /* global sc */
    /* jshint unused: true */
    // configuration for elements in inbox
    
    // exportieren der Konfiguration
    exports.settings = user => {
      return [
        {
          name: 'testObject',
          queryOr: [
            'identifier:testObject testinbox_user:' + user
          ]
        }
      ];
    };

    Ergebnis:

    • Das System fügt queryOr als ODER-Erweiterung zur Query des Eingang (aktuell) hinzu.
    • Die Standardobjekte und Ihre gewünschten Objekte erscheinen im Eingang (aktuell).

Weitere Query-Optionen (queryOr, queryAnd, queryAppend)

Sie können die Query im Skript inbox.js mithilfe von Keywörtern anpassen.

Keywort Beschreibung
queryOr Definiert ODER -Suchanfragen, die das System zur globalen Inbox-Suchanfrage hinzufügt (Beispiel).
queryAnd Definiert UND-Suchanfragen, die das System zur globalen Inbox-Suchanfrage hinzufügt (Beispiel).
queryAppend Reihe von Suchanfragen, die zu einer anderen vorhandenen Konfiguration hinzugefügt werden (Beispiel).


Beispiel zu queryOr

Fügt zur globalen Suchanfrage als ODER-Suche alle Objekte des Typs Notizen an, bei denen der angemeldete Benutzer der Empfänger ist.

[
  {
    name: 'sample1',
    queryOr: [ 
      'classname:noteobject recipients:' + user ]
  }
]


Beispiel zu queryAnd

Fügt eine UND-Suche hinzu, sodass ausschließlich die Objekte erscheinen, die jünger als der 01.01.2018 sind.

[
  {
    name: 'sample2',
    queryAnd: [ 
      'lastmodifydate_date_range:[2018-01-10 TO *]'
    ]
  }
]


Beispiel zu queryAppend

Fügt zur Konfiguration sample1 (Beispiel zu queryOr) ein weiteres Kriterium hinzu, sodass keine Objekte erscheinen, die die area agorumTask besitzen. So können Sie bereits vorhandene Konfigurationen, etwa die Standardkonfigurationen, erweitern.

[
  {
    name: 'sample3',
    queryAppend: [
      {
        area: 'sample1',
        query: 'NOT area:agorumTask'
      }
    ]
  }
]


Kombiniertes Beispiel

[
  {
    name: 'sample4',
    queryOr: [ 'classname:noteobject recipients:' + user ],
    queryAnd: [ 
      'lastmodifydate_date_range:[2018-01-10 TO *]'
    ],
    queryAppend: [
      {
        area: 'sample1',
        query: 'NOT area:agorumTask'
      }
    ]
  }
]

Das Erledigt-Verhalten definieren (done.js)


Im Eingang befindliche Elemente können Sie über das Kontextmenü oder der rechten Pfeiltaste als Erledigt markieren. Im Standard erhält das markierte Objekt ein Metadatum und es verschwindet aus dem Eingang.

Wünschen Sie ein anderes Verhalten, etwa, dass eine Wiedervorlage nicht einfach verschwindet, sondern erst abgeschlossen oder neu terminiert werden soll, können Sie das Standard-Verhalten überschreiben.


Pfad zum angelegten Skript 

Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js/inbox/query/<Zuordnungsname>-done.js


Quellcode

/* jshint unused: true */
// configuration for elements in inbox

exports.settings = () => { 
  return [
    {
      name: 'ag.doku-dmsimporter-customername-done',
      selectors: [
        '[~dmsimporter_customername]'
      ],
      handler: object => {
        // dmsimporter_customername
        // here something can be done ...
        // in our sample, nothing is done
        // return true=refresh result list
        return false;
      }
    }
  ];
};


Parameter im Skript

Parameter Beschreibung
name Definiert einen eindeutigen Namen für diese Konfiguration.

Hinweis: Der agorum core template manager setzt diesen Parameter automatisch durch die jeweilige Aktion. Sie müssen diesen Parameter daher nicht überarbeiten.

selectors
  • selectors ist ein Array von Selektoren
  • Mehrere Definitionen im Array interpretiert das System als ODER.
  • Die Konfiguration greift, wenn mindestens einer der definierten Selektoren passt.
  • Das System wendet die Selektoren auf das Objekt / die Objekte an, die in der Liste markiert sind und für die der Pfeil nach rechts gedrückt wurde. 
  • Passt einer der Selektoren, ruft das System die Funktion auf, die im Parameter handler definiert ist.
handler Ist in handler keine Funktion definiert, führt das System nichts aus. Der return-Wert (true/false) definiert, ob sich die Listendarstellung aktualisiert (true) oder nicht (false).

Hinweis: Das System setzt als return immer den Wert false, auch wenn Sie true verwenden. Damit ist sichergestellt, dass Dokumente im Eingang nicht sofort verschwinden, sondern erst, wenn der Benutzer die Liste neu lädt.

Weitere Beispiele siehe Beispiele zum Parameter „handler

Beispiele zum Parameter „handler“



Standard-Verhalten

Im Standard verwendet das System als gelesen markieren. Das folgende Beispiel funktioniert wie das Standard-Verhalten.

exports.settings = () => { 
  return [
    {
      name: 'testinbox_testObject',
      selectors: [
        '[~identifier=testObject]'
      ],
      handler: object => {
        require('/agorum/roi/customers/inbox/js/inbox').setDone(object);
        return true;
      }
    }
  ];
};


Ein aguila-widget aufrufen

Sie können ein aguila-widget aufrufen, um etwa dem Benutzer eine Oberfläche zur Verfügung zu stellen. Das nachfolgende Beispiel ruft etwa die Suche auf:

exports.settings = () => { 
  return [
    {
      name: 'testinbox_testObject',
      selectors: [
        '[~identifier=testObject]'
      ],
      handler: object => {
        require('common/aguila').enter(() => {
          let window = aguila.create({
            type: 'agorum.composite.acic'
          });

          window.popup({
            title: 'Test'
          });
        });        

        return false;
      }
    }
  ];
};


Eine Aktion des agorum core smart assistant konfigurators aufrufen

Sie können eine Aktion im agorum core explorer aufrufen, um etwa dem Benutzer eine Oberfläche zur Verfügung zu stellen, die Sie im agorum core smart assistant konfigurator konfiguriert haben.

Nachfolgendes Beispiel ruft aus dem agorum core basic archive eine Aktion auf, die das Setzen einer neuen Wiedervorlage für das Objekt abfragt:

let service = require('filingassistant/service');
let aguila = require('common/aguila');
let inbox = require('/agorum/roi/customers/inbox/js/inbox');

exports.settings = () => { 
  return [
    {
      name: 'meine.eigene.konfiguration.acic-user-acbasicarchive-wiedervorlage-done',
      selectors: [
        '[~user_acbasicarchive_wiedervorlage]'
      ],
      handler: object => {
                
        // Anbindung Kontextmenü
        // Ruft durch die Nutzung des filingassistant/service eine aktive Aktion aus dem agorum core explorer auf
        aguila.enter(() => {
          service.action('acbasicarchive_Wiedervorlagesetzen', [ object ]);  
        });

        return false;
      }
    }
  ];
};

Ein Objekt ab einem gewissen Datum anzeigen


Die Inbox können Sie über einen Schlüssel in der MetaDB konfigurieren, sodass die Inbox erst ab einem bestimmten Startdatum Objekte / Inhalte im Eingang anzeigt. Das ist etwa sinnvoll, wenn Benutzer agorum core zuvor getestet haben und erst danach produktiv mit dem System arbeiten. So befinden sich pro Benutzer schnell Hunderte Einträge im Eingang, die nicht alle manuell auf erledigt gesetzt werden können.

  1. Öffnen Sie links in der Seitenleiste Administration und dann MetaDB.
  2. Öffnen Sie den Pfad:
    MAIN_MODULE_MANAGEMENT/aguila/control/widgets/[ agorum.inbox ]/agorum.inbox/
  3. Wählen Sie mit einem Rechtsklick im Kontextmenü Neu > MetaDb Property-Entry anlegen.
  4. Füllen Sie die Felder wie folgt:

    Name
    startDate

    Datentyp
    Zeichenkette (String)

    Wert (String)
    2021-01-21

    Hinweise:
    • Der angegebene Wert dient als Beispiel.
    • Aufbau des Werts: yyyy-MM-dd

  5. Klicken Sie auf Speichern.
Property-Entry startDate anlegen