Nutzung von Stapeljobs
Die Stapeljobs sind der einfachste Weg, Aufgaben nach einem bestimmten Schema ablaufen zu lassen. Dies kann sein, dass Daten aus verschiedenen Tabelle in einer bestimmten Reihenfolge importiert werden müssen, oder auch die vollständige Automatisierung von wiederkehrenden Aufgaben, wie das zeitgesteuerte Erstellen und Versenden einer bestimmten Auswertung.
So ein Stapeljob kann somit viele verschiedenen Aufgaben übernehmen.
Der Name Stapeljob kommt daher, dass innerhalb eines solchen Vorgangs auch mehrere Aufgaben hintereinander abgearbeitet werden, wie bei einem Stapel an Papier, wo sich jemand von oben nach unten durcharbeitet.
Die hier angeführten Beispiele sind die bis jetzt am häufigsten genutzten. Auch steht es dem Benutzer frei, selbst weitere Aufgaben zu neuen Jobs zu kombinieren.
Der Menüpunkt für die Stapeljobs ist in der Konfiguration zu finden:

2. Berichte automatisch erstellen und versenden
Eine Möglichkeit, die Stapeljobs zu nutzen, besteht darin, Berichte zu einer bestimmten Uhrzeit zu erstellen und zu versenden.
Dazu wird im Stapeljob im Register „Zeilen“ die Art des Stapeljobs auf „Bericht (InMemory)“ gestellt.
Anschließend wird im Feld „Detail Job“ der Bericht, der ausgeführt werden soll, ausgewählt.
Wichtig hierbei ist, dass der Bericht für einen Export ins Excel konfiguriert ist („Excel Download“ im Berichtsschema angehakt, Feld „Excel Speicherdatei“ mit einem Pfad und Dateinamen befüllt).

Anschließend muss der Punkt Generierung von „Excel Datei“ eingegeben werden.

Datenimporte sind ein Paradebeispiel für einen Stapeljob. Dabei können mehrere Importe hintereinander abgearbeitet werden.
Da sich mit der Zeit immer mehr Informationen und damit auch mehr Datenimporte auf einem System ansammeln, wird der tägliche Datenimport teilweise unübersichtlich, wenn Stammdaten (Dimensionen) und Bewegungsdaten im selben Stapeljob verarbeitet werden.
Im Speziellen ist dann die Gefahr gegeben, dass durch unbedachtes Einfügen der Schritte in einen bestehenden Stapeljob plötzlich die Bewegungsdaten vor den Stammdaten übernommen werden.
Um dies zu vermeiden hat sich ein Konzept bewährt, die Stammdaten von den Bewegungsdaten zu trennen und einen eigenen Stapeljob für die Stammdaten sowie einen für die Bewegungsdaten anzulegen.
Zur Anlage eines Datenimport-Jobs – egal ob Stammdaten oder Bewegungsdaten – wird im Register „Zeilen“ eine neue Zeile eingefügt.

In das Feld „Art“ wird als Typ „Datenimport“ ausgewählt und im Feld „Detail Job“ der gewünschte Datenimport. Damit ist die Einrichtung auch schon wieder abgeschlossen. Der Import wird dann mit ausgeführt, wenn der Stapeljob ausgeführt wird.
3.1 Verschachteln von Stapeljobs
Ein wichtiger Schritt, um Übersichtlichkeit zu gewinnen, ist, Stapeljobs ineinander zu verschachteln. Dadurch können Abhängigkeiten verschiedener Stapeljobs zueinander mit nur einer Zeitsteuerung gelöst werden.
Ein Beispiel hierfür ist der tägliche Datenimport.
Nachdem jetzt ein Stapeljob für die Stammdaten-Importe und ein Stapeljob für die Bewegungsdaten-Importe angelegt wurde, wird noch ein dritter Stapeljob für die Ausführungssteuerung angelegt.
Im Register Zeilen werden nun 2 Zeilen angelegt:

Bei beiden ist im Feld „Art“ der Wert „Stapel Job“ auszuwählen. In das Feld „Detail Job“ wird in der ersten Zeile der Name des Stammdaten-Jobs ausgewählt, in der 2. Zeile der Name des Bewegungsdaten-Jobs.
Da es bei der Beladung von Stammdaten, die hauptsächlich Dimensionsbeladungen sind, keinen Sinn macht, einen Zeitraum für die Befüllung anzugeben, da Dimensionsbeladungen diesen ignorieren, bleibt der Datumsbereich in Form der Datumsformeln für das Von- und Bis-Datum leer.
Bei den Bewegungsdaten hingegen ist es schon erforderlich, einen Datumsbereich anzugeben, auch um die Ladezeiten in einem erträglichen Rahmen zu halten.
Für den Bewegungsdatenimport wurde in diesem Beispiel das Zeitfenster 2 Monate vor dem aktuellen bis 1 Monat nach dem aktuellen Monat angenommen.
Dadurch, dass die Datumsformel an den Stapeljob übergeben wurde, gilt dieser Zeitbereich für alle einzelnen Schritte innerhalb des Stapeljobs. Eine eigene Definition für jeden einzelnen Datenimport ist somit nicht mehr erforderlich.
Eine weitere Anwendungsmöglichkeit für die Verschachtelung ist, einen Job für die Reorganisation, eine vollständige Neuübernahme der Daten. Dazu wird ein Stapeljob angelegt, der den auszuführenden Importjob enthält. Dies ist der Detail-Job.
Anschließend wird ein weiterer Stapeljob erstellt, der den Detailjob 12-mal aufruft, immer mit einer anderen Datumsformel.
Zuletzt wird ein Stapeljob erstellt, der den Monatsjob aufruft. In diesem Stapeljob wird für jedes Jahr, das importiert werden soll, eine Zeile angelegt, die den Monatsjob startet. Statt der Datumsformel wird hier allerdings in das Feld Datumsformel VonDatum das Raute-Zeichen gefolgt von Datum des 01. Jänners des Jahres, das importiert werden soll (z.B.: „#01.01.2019“) und in das Feld Datumsformel BisDatum das Raute-Zeichen gefolgt von dem Datum des 31. Dezembers desselben Jahres (z.B.: „#31.12.2019“) eingetragen.
Das Raute-Zeichen vor dem Datum bedeutet, dass es sich hier um ein fixes Datum handelt.
Somit ist ein leicht wartbarer Job entstanden, der über mehrere Jahre die Daten pro Monat importieren kann und bei dem der Importjob auch ohne großen Aufwand austauschbar ist.
4. Umlagen / Buchungsschlüssel
Ein spezielles Anwendungsbeispiel für einen Stapeljob sind die Umlagen. Diese werden durch die geordnete Ausführung eines oder mehrerer Buchungsschlüssel berechnet und gebucht.
Dazu wird, nachdem die Buchungsschlüssel angelegt und eingestellt sind, ein neuer Stapeljob angelegt. In den Zeilen wird dann als Art der Typ „Buchungsschlüssel“ ausgewählt. Dabei gibt es allerdings 2 Varianten: der Typ „Buchungsschlüssel (Einzeln)“ führt nur einen einzigen Buchungsschlüssel aus. Der Typ „Buchungsschlüssel (Multi)“ hingegen kann mehrere Buchungsschlüssel starten.
In der Spalte „Detail Job“ wird dann der Buchungsschlüssel bzw. der Suchtext für den Buchungsschlüssel eingetragen:

Hier in diesem Beispiel hätten die erste Buchungsschlüssel mit der Art „Buchungsschlüssel (Multi)“ und dem Suchtext „ILV-*“ zusammengefasst werden können. Dann wären die gefundenen Buchungsschlüssel alphabetisch sortiert ausgeführt worden.
Allerdings wurde hier darauf verzichtet, da in weiterer Folge neben Buchungsschlüsseln, die nach einem fixen Schema verteilen, auch solche verwendet wurden, die erst zur Laufzeit die Verteilung (variabel) berechnet haben. Diese mussten abwechselnd mit den fix-verteilenden in einer bestimmten Reihenfolge ausgeführt werden.
Die Ausführung dieser Umlagen Berechnung erfolgt gleich wie bei jedem anderen Stapeljob auch.
Um einen Stapeljob auszuführen, gibt es mehrere Möglichkeiten.
Eine Möglichkeit ist, eine Stapeljob über einen Bericht im Web vom Benutzer ausführen zu lassen.
Zuletzt gibt es noch die Möglichkeit, den Job zeitgesteuert automatisch ausführen zu lassen. Dazu sind noch einige weitere Einstellungen notwendig.
5.1 Manuelle Ausführung aus dem Web-Bericht
Jedem Bericht im Web können mehrere Stapeljobs zugeordnet werden, die dann über einen Klick auf die Buttons im Bericht ausgeführt werden können.
Diese sind im speziellen bei Importen aus Excel beliebt. Der Benutzer braucht dann nicht mehr ins Navision einsteigen, sondern kann über den Web-Bericht den oder die Stapeljobs starten.
Um einen Datenimport aus Excel aus einem Bericht zu starten wird dazu wird ein eigener Stapeljob für diesen Datenimport angelegt.
Danach wird das Berichtsschema des Berichts, über den der Import gestartet werden soll, geöffnet.
In der Menü-Leiste des Berichtsschemas befindet sich ein Button „Ausführbare Jobs“:

Durch Anklicken dieses Buttons wird die Liste der in diesem Bericht hinterlegten Stapeljobs geöffnet:

In die Spalte „Beschreibung“ kann ein kurzer Text, der dann im Menü im Web-Bericht angezeigt wird, eingetragen werden. Bleibt diese Spalte leer, so wird der Name bzw. die Beschreibung des Stapeljobs im Menü angezeigt.
In der Spalte „Art des Jobs“ wird dem System mitgeteilt, um welche Art des Jobs es sich hier handelt. Die Typen, die hier in Verwendung sind, sind Berechnung und Allgemeiner bzw. Datei Import. Der Datei-Import wird immer dann gewählt, wenn die Datenquelle eine Datei ist. Der allgemeine Import ist für den Import aus anderen Tabellen bzw. Datenbanken zuständig.
In der Spalte „Ausführbarer Job“ wird der Stapeljob, der ausgeführt werden soll, eingetragen.
Zuletzt kann noch das Symbol, mit dem der Job im Menü angezeigt werden soll, ausgewählt werden. Dies ist im speziellen dann interessant, wenn es mehrere Jobs in einem Bericht gibt, die sich schon durch das Symbol unterscheiden sollen.
Im Web-Bericht wird dann der Import rechts oben im Menü (3 waagrechte Striche) angezeigt. Abhängig von der Art des Jobs und des zugewiesenen Symbols scheinen hier unterschiedliche Symbole auf:

5.2 Wiederkehrende, automatische Ausführung
Damit ein Stapeljob automatisch ausgeführt werden kann, ist folgende einmalige Einstellung notwendig. In der Regel wird diese auch bereits bei der Einrichtung des Controlling-Moduls durchgeführt.
Im Controlling-Modul muss in der Benutzer Einrichtung ein Benutzer „TIMER“ angelegt werden und die Haken bei „Admin.“ und „Super Administrator“ gesetzt werden.
Dieser Benutzer wird dann vom System verwendet, um die Stapeljobs automatisch ausführen zu können. Damit das System auch alle Aufgaben erledigen kann, die im Stapeljob definiert sind, muss der Benutzer ein Superadministrator sein. Ansonsten könnte es vorkommen, dass das System auf Grund von fehlenden Berechtigungen einzelne Aufgaben nicht durchführen kann.
Damit der Stapeljob dann automatisch zu einer bestimmten Zeit ausgeführt wird, müssen die Zeiten, zu denen er ausgeführt werden soll, festgelegt werden. Dies geschieht am Stapeljob selbst:

5.3 Protokoll
Das Ergebnis des Stapeljobs und der einzelnen Schritte kann über den Button „Protokoll“ in der Menüleiste abgerufen werden. Dazu wird die Ausführungshistorie geladen und in einer Liste dargestellt. Die neuesten Einträge befinden sich dabei am oberen Ende der Liste.
Wenn ein Eintrag angeklickt wird und anschließend der Button „Detailprotokoll alle Ebenen“ angeklickt wird, so erhält man alle Ergebnisse der einzelnen Ausführungsschritte angezeigt. Damit kann man dann kontrollieren, ob irgendein Zwischenschritt ein Problem hatte oder ob alle wie erwartet durchgelaufen sind.


Um das Ergebnis der Ausführung eines Stapeljobs zu prüfen gibt es für jede Ausführung von jedem einzelnen Arbeitsschritt ein Ausführungsprotokoll.
Dieses Protokoll ist unter Konfiguration unter den Button Stapeljobs zu finden; hier erscheint ein Protokoll nur von dem ausgewählten Stapeljob oder eine Übersicht über alle Stapeljobs unter Konfiguration unter Protokoll.
Detailprotokoll: Um das Protokoll aufrufen zu können muss zunächst der gewünschte Job angeklickt werden. Danach kann das Protokoll durch Anklicken des Buttons „Protokoll“ in der Menüleiste geöffnet werden:


Protokoll über alle Stapeljobs:

Hier ist eine Übersicht über die einzelnen Ausführungen der jeweiligen Stapeljobs:

Daraus kann man schon einmal sehen, wann und wie lange ein Job gelaufen ist und ob die Ausführung erfolgreich war oder nicht.
Sollte ein Fehler aufgetreten sein, wird dieser in der Spalte Fehlermeldung angezeigt.