Grundlagen:Systemanpassung

Aus ADempiere Handbuch von metas GmbH

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

ADempiere Customizing

Tabellen/ Spalten

  • Metainformationen zu den einzelnen DB-Tabellen.
  • Fenster "Tabelle und Spalte" (Rolle "System Administrator")
    • Tab "Tabelle"
      • DB-Tabellenname
      • ADempiere-TAbellenname
      • Zugriffsrechte
      • ...
    • Tab "Spalte"
      • Anlage/Änderung einzelner Spalten
    • Danach ist ein Abgleich mit dem Datenbank-Schema (z.B. Tabellen-Neuanlage, neue Spalte usw.) möglich ("Spalte Synchronisieren" in Tab "Spalte")
  • (Alternative Möglichkeit, nur der Vollständigkeit halber)
    • Datenbank-Tabelle direkt in der DB anlegen (z.B. mit pgAdmin)
    • ADempiere analysiert die Tabelle und erzeugt Meta-Informationen im Application-Dictionary
    • ("Spalten aus Datenbank erzeugen in Tab "Tabelle")

Referenzen

  • "Spalten-Typen", werden zu einer Spalte in Tab "Spalte" fest gelegt
  • Gewählte Referenz hat Auswirkungen darauf,
    • wie ein Spaltenwert im Client-Fenster angezeigt wird (z.B. Datum, Textbox)
    • wie ein Spaltenwert inter verarbeitet wird, z.B.
      • "Table Direct" -> Spaltenwert ist ein Fremdschlüssel, fremder Datensatz kann über API geladen werden
      • "Yes-No" -> Autom. Sicherstellung, das die Spalte nur den 'Y' oder 'N' enthält.

Fenster

  • Zeigt eine oder mehrere Tabellen im Client an.
  • Fenster "Fenster, Register und Feld" (Rolle "System Administrator")
    • Tab Fenster
    • Tab Register (Register=Tab)
      • Zuordnung zu einer ADempiere-Tabelle
      • Ggf. Verknüpfung mit Elterntab per Link Column (=Fremdschlüssel zu Tabelle des Elterntabs)
    • Tab Feld
      • Auswahl einiger Spalten der ADempiere-Tabelle
      • Wichtig: Nur die Datenbank-Spalten, zu denen es ein Feld gibt, sind im Client-Kontext zugreifbar
      • Displayed: Feld kann ausgeblended werden (ist aber trotzdem Client-Kontext zugreifbar)
      • Anzeigelogik: Bedingte Feldanzeige
        • Beispiel: Fenster "Auftrag", Register "Auftrag", Feld "Priorität"
          • Feld wird nur bei Standardaufträgen gezeigt
          • Anzeigelogik ist "@OrderType@='SO'",
          • "@OrderType@": Zugriff auf Wert der DB-Spalte OrderType, der sich im Client-Kontext befindet.

Berechtigungen

Berchtigungen können in ADempiere auf Reolenebene vergeben werden. Hiervon sind die folgenden Berechtigungsobjekte betroffen:

  • Fenster
  • Bericht & Prozess
  • Form
  • Workflow

Menü

Unter der Rolle des Systemadministrators können Menübaumänderungen vorgenommen werden. Die Erweiterung und Anpassung des Menübaums kann bequem über die Menübaumstruktur auf der linken Seiten des Fensters heraus vorgenommen werden. Zur Änderung ist einfach im Menübaum per Mausklick ein Eintrag auszuwählen und auf der rechten Seite abzuändern. Soll ein neuer Eintrag aufgenommen werden, ist dies über den ADempieretypischen Vorgang "Neuer Datensatz" anzustossen. In einen Menübaum können die folgenden Elemente eingebunden werden:

  • Fenster
  • Form
  • Workflow
  • Ordner
  • Berichte
  • Prozesse

Forms

Forms sind die nicht generischen Fenster in ADempiere. Sie werden komplett in Java geschrieben, können aber auf bereits in ADempiere verwendete GUI-Komponenten zurückgreifen, um ein einheitliches Look & Feel zu behalten.

Berichte/ Prozesse

Bei Berichten handelt es sich um die am meisten verwendeten Erweiterungsmöglichkeiten in ADempiere.

Workflows

In ADempiere werden interne und externe Workflows unterschieden. Während die externen Workflows eine visuelle Anweisung zur Abarbeitung von Erfassungen darstellt, behandelt die interne Workflowgestaltung eher Themen, die in der Prozesssteuerung anzutreffen sind. Hierbei handelt es sich um Prozesse wie die Dokumentenverarbeitung in ADempiere. Am besten lassen sich die Möglichkeiten zur Workflowgestaltung und Anpassung an einem praktischen Beispiel erläutern. Zu diesem Zeweck werden wir Änderungen en einem bestehenden Workflow vornehmen, um das 4-Augenprinzip bei der Freigabe von Aufträgen oberhalb einer festgelegten Auftragssumme umzusetzen.

Workflow Anpassung

  • Einloggen unter der Rolle Systemadministrator
  • Öffnen des Fensters Workflow
  • Auswählen des Prozesses Process_Order

Knoten Register/Tab

  • Hinzufügen eines neuen Knoten Datensatzes
    • Name (DocApprove)
    • Aktion User Choice
    • Spalte "isApprove"

Übergang Tab

  • Hinzufügen eines neuen Arbeitsschritt Übergangs zum Knoten (DocApprove)
    • Nächster Knoten (DocComplete)
  • Wechsel zurück zum Knoten (DocPrepare)
  • Hinzufügen eines neuen Arbeitsschritt Übergangs zum Knoten (DocPrepare)
    • Nächster Knoten (DocApprove)
  • Wichtig: Sicherstellen, dass der neue Übergang eine kleinere Reihenfolge hat, als evtl. bestehende Übergänge

Test des neuen/ geänderten Workflows

  • Einloggen als Administrator
  • Anpassung der Rolle
    • Freigabe-Betrag z.B. 100,00
    • Checkbox: Freigabe eigener Dokumente
  • Erfassen eines Auftrags > 100,00

Validator

Mit Validatoren lassen sich neben den Referenzen weitere Prüfungen bzw. Eingrenzungen zum jeweiligen Datenfeld vornehmen.

Beispiel: Kindergeburtstag

  • Geschäftsleitung will die Geburtstage der Kinder ihrer Mitarbeiter erfassen

Neue Tabelle anlegen

  • Fenster "Tabelle und Spalte" öffnen
  • Tab "Tabelle"
    • Neue Tabelle "Kindergeburtstag"
    • Berechtigunsstufe Mandant+Organisation
    • Abkürzung für Spaltenerstellung
      • "Copy Columns from Table" -> Table "C_Cycle_Projekt-Zyklus" wählen
      • Metadaten für Tabelle "Kindergeburtstag" werden von Tabelle "C_Cycle" kopiert
  • Wechsel zu Tab "Spalte"
    • Aufräumen: Spalte "C_Currency_ID" löschen
    • ->ADempiere-Standard-Spalten sind angelegt
    • Neue Spalten:
      • Mitarbeiter
        • System-Element "AD_User" + Enter -> Autovervollständigung mit Bestehendem System-Element
        • Nur Mitarbeiter sollen auswählbar sein: Dynamische Validierung "AD_User - Internal"
        • Spätere Erfassung macht ohne Angabe des Mitarbeiters keinen Sinn: Mandatory = true
        • Referenz "Table Direct"
      • Kind
        • Neues System-Element: Spaltenname, Name und Drucktext "Kind", Beschreibung = "Name des Kindes"
        • Referenz "String", Länge = 255
        • Mandatory = true
      • Geburtstag
        • Systemelement "Birthday
        • Referenz "Date"
        • Mandatory = true
  • Status: Metainformationen angelegt
  • Tabelle in Datenbank übernehmen
    • Knopf "Spalte Synchonisieren"
    • Da Tabelle noch nicht existiert, wird nicht nur die Spalte synchronisiert, sondern die ganze Tabelle mit allen Spalten angelegt.

Fenster anpassen

  • Mitarbeiter sind Geschäftspartner -> Neues Tab im Fenster "Mitarbeiter"
  • Fenster "Fenster, Register und Feld" öffnen
    • zum Fenster-Datensatz "Geschäftspartner" navigieren
  • Tab "Register"
    • Neues Register erzeugen
      • Name "Kindergeburtstag"
      • Reihenfolge 65 (Mitarbeiter hat 60)
      • Tab Level 2 (Mitarbeiter hat 1)
      • Tabelle Kindergeburtstag
      • Link Column "AD_User_ID_Nutzer/Kontakt"
      • Knopf "Felder anlegen" drücken: Zu jeder Spalte (maßgeblich: "Tabelle und Spalte", nicht Datenbank!!) wird ein Feld angelegt
  • Aufräumen: Tab "Feld-Reihenfolge"
    • Felder "Aktiv", "Aktualisiert", "Aktualisiert durch" usw sind in der Regel in Client-Fenster irrelevant
    • Layout über "Reihenfolge" und "Same Line" (Tab Feld")
Ansichten
Persönliche Werkzeuge