Vorgänge

Neben den beiden Stammdatenkategorien "Adresse" und "Artikel" stellt der "Vorgang" die dritte und wahrscheinlich wichtigste Säule in UniERM dar. UniERM verallgemeinert sämtliche abgebildeten Prozesse in einem Vorgang.

Ein Vorgang ist die Hülle für einen Prozess. Er hat einen Namen (z.B. "Rechnung"), man kann ihm Adressen hinzufügen (Kundenadresse, Lieferantenadresse, Ansprechpartner, usw.) und er kann beliebig viele Artikel enthalten (egal, ob sie nun verkauft, gekauft, bestellt werden, als Text dienen oder einen Telefonanruf darstellen).

Dabei gehen die Anwendungsfälle eines Vorgangs weit über die Möglichkeiten einer Warenwirtschaft hinaus. Egal, ob es sich um einen Beleg handelt (Rechnung, Lieferschein), Mengen verbucht werden (Ein- / Auslagerung), Telefonanrufe oder Arbeitszeiten dokumentiert werden, Fertigungen gesteuert werden, Arbeitspakete verwaltet oder Projekte geplant werden: Immer handelt es sich um einen Vorgang, der Adressen und Artikel enthält.

Vorgangstypen

Vorgänge werden in UniERM nicht nach den herkömmlichen, statischen Bezeichnungen "Rechnung", "Lieferschein", usw. unterschieden, sondern sie unterscheiden sich alleine durch ihren Vorgangstyp.

Ein Vorgangstyp hat natürlich einen Namen, denn schließlich möchte man später trotzdem "seine Rechnung drucken" und nicht "Vorgang 1 in den Status 2" setzen.

Neben einem Namen besitzt jeder Vorgangstyp vier ganz entscheidende Attribute:

  • Wareneingang (Mengen werden hinzugebucht)
  • Warenausgang (Mengen werden abgebucht)
  • Debitorenberechnung (es wird gegen den Kunden abgerechnet)
  • Kreditorenberechnung (es wird gegen den Lieferanten abgerechnet)

Jeder Vorgangstyp kann einen abhängigen Vorgangstyp haben. Dadurch erfüllt der Vorgang den abhängigen Vorgang.
Beispiel: Der Vorgangstyp "Einkauf" hat als abhängigen den Vorgangstyp "Bestellung". Man erstellt also z.B. erst eine Bestellung über 10 Monitore und bei der Anlieferung dann einen Einkauf. Dieser Einkauf erfüllt dann die Bestellung, sodass an dieser immer genau ersichtlich ist, welche bestellten Artikel schon angekommen sind und welche noch ausstehen.

Dadurch lassen sich auch andere Prozessketten, wie Rechnung erfüllt den Lieferschein, Lieferschein erfüllt den Auftrag, Auftrag erfüllt das Angebot, usw. abbilden.

Alle diese Prozessketten sind über die Oberfläche konfigurierbar und beliebig erweiterbar. Wie Sie dies tun, können Sie hier nachlesen.

Status

Auch ein Status ist in UniERM nichts "Starres". Man kann beliebig viele Status anlegen und sie beliebig benennen. Jeder Vorgang kann beliebig viele Status enthalten.

Status bilden die Prozesskette an einem Vorgang ab. Im einfachsten Fall gibt es z.B. bei einer Rechnung folgende Status:

  1. offen
  2. gebucht
  3. storniert

Durch einen Status wird das Erreichen eines bestimmten Teilschritts von diesem Vorgang dokumentiert und bestimmte Dinge passieren (siehe Bedingungen und Ereignisse).

Beispiel: Eine neu erstellte Rechnung befindet sich im Status "offen". Sie wird nun bearbeitet, mit einem Kunden, Artikeln und Texten versehen und soll schließlich ausgedruckt werden. Nun wird der Status in "gebucht" gewechselt. Der Kunde stellt nun einen Fehler fest und die Rechnung wird in den Status "storniert" gesetzt.

Diese Prozessketten sind beliebig erweiterbar. Z.B. könnte es zwischen offen und gebucht noch einen weiteren Status geben, der die Rechnung zur Kontrolle bei dem Vorgesetzen bereitstellt. Außerdem können Sie mit Hilfe von Statusverzweigungen auch ganze Statusbäume anlegen und so komplexe Vorgänge abbilden. Hier benötigt wieder jedes Unternehmen seine individuellen Anpassungen, denn die Möglichkeiten, was genau passieren soll, sind unendlich. Übergabe in die FiBu, Benachrichtungen per Email, Aktualisieren einer Fremddatenbank, Auspielen von Dateien, Drucken von Belegen oder Labels, Folgeaufträge, usw.

Wie Sie Status an Vorgängen konfigurieren können Sie hier nachlesen.

Bedingungen

Bedingungen sind kleine, in sich abgeschlossene Programmteile (DLLs), die erfüllt sein müssen, um in einen bestimmten Status wechseln zu dürfen.

Eine Bedingung führt einen beliebigen Quellcode aus und gibt dann "erfüllt" oder "nicht erfüllt" zurück. Jeder Status kann beliebig viele Bedingungen enthalten. Erst wenn alle Bedingungen "erfüllt" zurückgeben, darf in den Status gewechselt werden. 

Auch hier sind den Möglichkeiten wieder keine Grenzen gesetzt.

  • wurden alle relevanten Daten eingegeben?
  • darf der User Rechnungen in dieser Höhe buchen?
  • wurde bei einer Schnittstelle ein bestimmter Wert gesetzt?
  • ist das Datum gültig?
  • usw.

Bedingungen bieten in UniERM die Option die abgebildeten Vorgänge/Prozesse gezielt zu steuern und so Fehler zu vermeiden.

Ereignisse

Ereignisse sind, genau wie Bedingungen, kleine Programmteile (DLLs). Es können beliebig viele davon einem Status zugewiesen werden.

Wird in einen Status gewechselt, werden alle verknüpften Ereignisse ausgeführt.

Auch hier hat jedes Unternehmen seine individuellen Wünsche und Vorstellungen, was passieren soll, wenn ein bestimmter Stand bei einem Vorgang erreicht ist. Häufig handelt es sich um einen Beleg oder ein Label, welches ausgedruckt werden soll, Daten, die an eine Schnittstelle für FiBu, usw. übergeben werden, Änderungen in der Datenbank, Benachrichtung eines Mitarbeiters, usw. Aber auch andere Optionen sind denkbar: Die Ansteuerung eines Gerätes, das Aktualisieren des Webshops, eine Email an den Kunden mit einer Versandbestätigung, usw.

Erweiterungen

Durch die von uns geschaffene Basis, können wir schnell auf Kundenwünsche reagieren, ohne die eigentliche Anwendung zu beeinflussen. Unsere Arbeit besteht häufig darin, den gewünschten Prozess in UniERM abzubilden.

Dafür erstellen wir individuelle Bedingungen, Ereignisse und Reports oder greifen auf schon bestehende Funktionen zurück. Diese, auf den Kunden zugeschnittenen, DLLs werden dann über die Oberfläche an genau die Stelle eingebunden, an der sie benötigt werden.

Auf diese Weise konnten wir bisher jeden Ablauf bei uns abbilden. Eine Dokumentation bereits vorhandener Erweiterungen finden Sie hier.

Letzte Änderung: 03.09.2018