DLE Editor Filter definieren

Ein Editorfilter kann pro User festgelegt werden.

Mit einem Filter können:

  • Metadaten (Pakete, Datenobjekte, Felder) ausgeblendet werden
  • Kommandos ausgeblendet werden
  • Die Sortierung der Kommandos in der Kommandoauswahl angepasst werden

Dazu wird eine Definitionsdatei benötigt. Hierbei handelt es sich um eine XML Datei, die normalerweise im client/ Verzeichnis der DLE liegt.

Zugeordnet wird sie einem Benutzer über das Zusatzattribut "Editor Filter":

  • In der Tabelle DLEATTRDAT
  • ATTR_IDC=DLE:EditorFilter
  • DATAOBJECT_IDC=DLE:DLEUSER
  • DATA_IDC=userid:1
  • VALUE=client/editorFilterExample.xml

Die DATA_IDC entspricht dabei der Benutzer-IDC, das VALUE ist der Dateiname, relativ zur DLE-Installation.

Die Einträge lassen sich auch Konfortabel über die DLE Benutzerverwaltung (Web-IDE oder Portal-Admin) verwalten.

Die Definition besteht aus zwei Teilen:

  1. Kommandofilter <CommandFilter>
  2. Metadatenfilter <MetaDataFilter>

Im Kommandofilter werden nacheinander einzelne Filterdefinitionen durchlaufen, mit denen man ganze Pakete, oder einzelne Kommandos jeweils hinzufügen oder entfernen kann. Als Filter kann jeweils ein Kommandoname, oder eine Kommandogruppe angegeben werden. Im Kommandonamen ist als letztes Zeichen ein Wildcard "*" erlaubt, es werden dann alle passenden Kommandos angesprochen.

Im Abschnitt <SetLevel> kann die Sortierreihenfolge (Level) der Kommandos angepasst werden. Hier sind keine Wildcards oder Kommandogruppen erlaubt.

Ähnlich funktioniert das Filtern der Metadaten im Abschnitt <MetaDataFilter>. Hier sind allerdings keine Wildcards erlaubt. Nur das alleinstehende Wildcard "*", um z.B. alle Pakete zu inkludieren, oder zu exkludieren.

Im folgenden die Beispieldatei "editorFilterExample.xml" aus dem client/ Verzeichnis, die als Vorlage dienen kann:

<?xml version="1.0"?>
<!--
    - An editor filter can be used to limit the viewable editor items for a user.
    - The file (relative to the DLE home directory) is specified in DLEATTRDAT.
    - ATTR_IDC=DLE:EditorFilter, DATAOBJECT_IDC=DLE:DLEUSER, DATA_IDC=userid:1, VALUE=client/editorFilterExample.xml
 -->
<DLEEditorFilter>
    <!--
        Each filter applied in the order it appears here. 
     -->
    <CommandFilter>
        <!--
            First, include all commands 
         -->
        <Include>
            <Command>*</Command>
        </Include>
        <!--
            Exclude certain commands or complete command groups 
         -->
        <Exclude>
            <Command>WEB:*</Command>
            <Command>EDI:FTPConnect</Command>
            <CommandGroup>expert</CommandGroup>
        </Exclude>
        <!--
            Adjust the level (priority) of any command 
         -->
        <SetLevel level="1">
            <Command>BASE:comment</Command>
            <Command>EDI:PdfGenerator</Command>
        </SetLevel>
        <SetLevel level="5">
            <Command>DCE:matrix</Command>
            <Command>BASE:if</Command>
        </SetLevel>
    </CommandFilter>
    <MetaDataFilter>
        <!--
            First, exclude all packages 
         -->
        <Exclude>
            <Package>*</Package>
        </Exclude>
        <!--
            Include certain packages, data objects or single fields 
         -->
        <Include>
            <Package>BASE</Package>
            <Package>DPE</Package>
            <Package>DCE</Package>
            <DataObject>DLE:DLETODO</DataObject>
            <DataObject>DLETEST:DemoForm</DataObject>
            <Field>DLE:DLESTATE.STATE_IDC</Field>
        </Include>
        <!--
            Exclude some more data objects and fields from the previous include 
         -->
        <Exclude>
            <DataObject>DLE:DLESTATEGR</DataObject>
            <Field>BASE:ExceptionText</Field>
            <Field>BASE:ExceptionType</Field>
            <Field>BASE:Language</Field>
            <Field>BASE:Country</Field>
            <Field>DLE:DLESTATE.CREATEDDATE</Field>
            <Field>DLE:DLESTATE.STATEGR_IDC</Field>
        </Exclude>
    </MetaDataFilter>
</DLEEditorFilter>
editorFilterExample.xml