Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

Beispiel-Metadatum mit einem JS-Handler definieren

Diese Dokumentation zeigt, wie Sie anhand eines JS-DataHandlers Suchen für Anwender angenehm gestalten können.

Szenario/Konfigurationsziel


In Ihrem System befinden sich Objekte, die Lieferanten zugeordnet worden sind. Die Objekte besitzen diese Metadaten:

Um Ihren Anwendern eine schnelle Suche / Angabe zu ermöglichen, können Ihre Anwender in einem Eingabefeld den Lieferantennamen oder die Lieferantennummer eintragen:

Szenario/Konfigurationsziel
 

Ein Metadatum anlegen


  1. Öffnen Sie Ihr Konfigurationsprojekt:

    Eigene Dateien‎/Administration‎/customers‎/<Ihr Konfigurationsprojekt>
  2. Legen Sie ein neues JavaScript namens data-lieferant-name-nummer.js und ggf. Unterordner an:
    Eigene Dateien‎/Administration‎/customers‎/<Ihr Konfigurationsprojekt>/js/dataHandler
  3. Tragen Sie diesen Code ein:
    /* global sc, query: true, parameters, command */
    
    let objects = require('common/objects');
    
    // only 'read' is supported
    if (command !== 'read') {
      throw 'This data handler does not support the command "' + command + '"';
    }
    
    // build query
    let parts = [
      'identifier:Lieferantenakte'
    ];
    
    if (query) {
      query = '(' + query.trim() + '*)';
    }
    else {
      query = '*';
    }
    
    parts.push('(ag_doku_lieferanten_name:' + query + ' OR ag_doku_lieferanten_nummer:' + query + ')');
    
    // execute query and map the resulting rows
    objects
    .query(parts.join(' '))
    .limit(100)
    .sort('ag_doku_lieferanten_name')
    .search('ag_doku_lieferanten_name', 'lieferanten_nummer')
    .rows
    .map(function(row) {
      let value = row.ag_doku_lieferanten_name + ' - ' + row.lieferanten_nummer;
    
      return {
        value: value,
        text: value
      };
    });
    
  4. Legen Sie ein neues Metadatum über die Datei metadata.yml an.

    Beispiel
    # -- global
    _group: AG.Doku
    _prefix: ag_doku_
    _dataPrefix: MAIN_MODULE_MANAGEMENT/customers/AG.Doku/Data/
    _csvPrefix: /agorum/roi/customers/AG.Doku/csv/
    _encoding: UTF-8
    
    _default:
      # string, long, double, date, boolean
      type: string
      # inherited, notInherited, builtIn
      kind: notInherited
      
    
    lieferanten_name:
      displayName: Lieferantenname
      
    lieferanten_nummer:
      displayName: Lieferantennummer
    
    // Der JS-DataHandler
    lieferanten_name_nummer:
      displayName: Lieferant
      data: js
      script: "/agorum/roi/customers/AG.Doku/js/dataHandler/data-lieferant-name-nummer.js"
      minChars: 1
      optional: true

    Hinweis: Der Parameter script verweist auf Ihr eben erstelltes JavaScript

Die Einstellungen testen (optional)


Dieses Beispiel zeigt, wie Sie Metadaten schnell über die metadata-collection.yml testen können.

  1. Ergänzen Sie die Datei metadata-collection.yml um folgenden Eintrag:
    beispiel_javascript_datahandler_lieferanten:   
      displayName: Lieferantenname & -nummer (Bsp JS-DataHandler)
      # Angabe wo unsere Metadaten Kollektion Verwendung findet
      usage:     
         # Wir möchtend ie Kollektion über die Übersicht setzen
         - form
      
      # Berechtigung, wer diese Kollektion einsehen darf
      acl: published
    
      # Angabe, welche Metadaten in der Kollektion genutzt werden
      items:
        - lieferanten_nummer
        - lieferanten_name
        - lieferanten_name_nummer
  2. Setzen Sie auf die gewünschten Objekte die Metadaten Lieferantennamen und Lieferantennummer.
  3. Testen Sie den JS-DataHandler.

    Tipp: Sie können diese metadata collection in der Registerkarte Übersicht über den usage form setzen (siehe Verwendungsarten (usage) der metadata-collection.yml).

Ergebnis des Tests