Zum Inhalt

MDE Miniforms

Allgemeines

Neue Versionen der MDE-Miniforms

Für viele Prozesse existieren derzeit 2.0-Versionen der Miniforms. Es wird empfohlen, diese Versionen in den (Neu-)Projekten zu nutzen. Neben den geänderten Minforms wurden auch neue Prozess-Codeunits etabliert. Aktuell konzentriert sich die Weiterenticklung auf genau diese Implementierungen. Voraussichtlich mit Version 27 der App werden die "alten" Prozesscodeunits auf obsolet gesetzt.

Aufbau

Eine Miniform besteht immer aus den vier Teilen Header, Zeile, Subzeilen und Codeunit.

Feld

Erläuterung

Code

Eindeutiger Code der Miniform

Beschreibung

Beschreibung der Miniform

Codeunit

Die Codeunit, in der sich die Funktionen befinden, die für diese Miniform benötigt werden.

Nächste Miniform

Die Miniform, die als nächstes aufgerufen wird, wenn in den Zeilen keine definiert wurde. Hinweis: Diese Logik wurde für den Prozess "PICK" bereits durch die MDE Ergebnis Codes ersetzt und wird nicht mehr genutzt.

Status

Miniforms können freigegeben werden, damit sie vor versehentlichen Änderungen geschützt sind

Zeile

Spalte

Erläuterung

Typ

Um welchen Typ es sich in der Zeile handelt

Verbunden mit Zeilennr.

Die Zeilennr, die diese Zeile zugeordnet ist. Nur wichtig, bei Zeilen, die aus mehreren dynamischen Inhalten zusammen gesetzt werden

Inhalt

Text der angezeigt werden soll. Abhängig vom Typ können Platzhalter (%1) verwendet werden. Über den AssistEdit Button können Übersetzungen hinterlegt werden.

Länge

Nur für Zeilentyp "Eingabe". Gibt die mögliche Länge der Eingabe an.

Tabellennr.

Für dynamische Inhalte. Die Tabelle, aus der die Information kommt.

Feldnr.

Für dynamische Inhalte. Das Feld, dessen Information angezeigt werden soll.

Berechtigung

Welche Berechtigung muss erfüllt sein, damit die Zeile angezeigt wird.

Nächste Miniform

Welche Miniform wird aufgerufen, wenn die Zeile ausgewält wurde. Hinweis: Diese Logik wurde für den Prozess "PICK" bereits durch die MDE Ergebnis Codes ersetzt und wird nicht mehr genutzt.

Funktion

Welche, in der Codeunit registrierte, Funktion wird ausgerufen, wenn die Zeile ausgewält wurde.

Zeile ohne Inhalt ausblenden

Gibt an, dass Textzeilen ohne Text ausgeblendet werden.

Inaktiv

Gibt an, ob die Miniformzeile deaktiviert ist. Deaktivierte Zeilen werden nicht im MDE Client angezeigt. Dieses Feld in der Standardeinrichtung u.a. genutzt, um unterschiedliche Prozessvarianten abzubilden.

Subzeile

Spalte

Erläuterung

MDE Ergebnis Code

Welcher, in der Codeunit registrierte, Ergebnis Code wird ausgerufen, wenn die referenzierte Zeile ausgewält wurde.

Nächste Miniform

Welche Miniform wird aufgerufen, wenn der jeweilige Ergebnis Code ausgewält wurde.

Anmerkung

Anmerkung dazu, welche Variablen zusätzlich im Programmcode gesetzt werden.

Das Registrieren der Ergebnis Codes erfolgt über die Seite "MDE Ergebnis Codes" (aufrufbar über die Aktion in der Miniform Zeile).

Einrichtung

Die Einrichtung erfolgt in mehreren Schritten:

Codeunit erstellen

Jede Miniform benötigt eine Codeunit. Es empfiehlt sich, für thematisch gleiche Miniforms eine gemeinsame Codeunit zu nutzen (z.B. alle Miniform die für die Umlagerung zuständig sind). Es gibt bestimmte Anforderungen an den Aufbau der Codeunit. Siehe Entwickler Hinweise - Codeunits).

Miniform anlegen

Auf der Seite "MDE Miniforms" wird mit dem Button "Neu" eine neue Miniform angelegt. Im Feld "Codeunit" kann beispielweise eine zuvor selbst erstellte Codeunit eingetragen werden.

Zeilen erstellen

Feld: "Typ"

Das Feld "Typ" gibt an, um was für eine Art Zeile es sich handelt.

Typ

Erläuterung

Text

Eine Zeile, die den Text aus dem Feld "Inhalt" ausgibt. Es ist möglich mit %1 einen Platzhalter zu erstellen, der durch den Inhalt der in der Zeile ausgewälten Tabelle und Feld ersetzt wird. Die Zeile ist auf 20 Zeichen beschränkt.

Eingabe

Eine Zeile in der der Benutzer einen Code eintragen oder scannen kann. Das Feld Länge gibt den dafür erlaubten Platz an.

Auswahl

Genau wie der Typ "Text". Allerdings kann der benutzer diese Zeile auswählen. Anschließend wird die Funktion ausgeführt, die in der Zeile angegeben wurde und die Nächste Miniform aufgerufen.

Feld: "Eingabeart"

Das Feld "Eingabeart" gibt an, ob es sich um ein Mengenfeld handelt. Für Mengenfelder erfolgt eine zusätzliche Konvertierung in Abhängigkeit der für den Scanner gesetzten Sprachkultur (MDE Einrichtung). Ist keine Konvertierung erforderlich, so kann das Feld leer bleiben.

Feld: "Assigned To Line No."

Das Feld "Typ" gibt an, um was für eine Art Zeile es sich handelt. Manchmal ist es notwendig, dass Informationen aus mehreren Tabellenfeldern in einer Zeile angezeigt werden. Dafür ist das Feld "Assigned To Line No." vorgesehen. Eine Zeile, die die Restmenge, den Einheitencode und die noch zu verarbeitende Menge ausgibt, würde beispielhaft wie folgt erstellt werden:

Zeilennr

Typ

Assigned To Line No.

Inhalt

Tabellennr.

Tabellenname

Feldnr.

Feldname

50000

Text

%1 %2 (%3)

60000

Text

50000

%1

5371154

MDE Lageraktivitätszeile

24

Restmenge

70000

Text

50000

%1

5371154

MDE Lageraktivitätszeile

16

Einheitencode

80000

Text

50000

%1

5371154

MDE Lageraktivitätszeile

60836

Qty. Outstanding rest

Die drei Platzhalter in Zeile 50000 werden dann der Reihe nach von oben nach unten ersetzt. ACHTUNG: Es ist nicht möglich Berechnungen o.ä. in der Zeile vorzunehmen. Die Informationen müssen in einer Tabelle stehen.

Feld: "Berechtigung"

In diesem Feld lassen sich Berechtigungen zum Anzeigen der Zeile auswählen. Die Berechtigungen richten sich an den MDE Funktionsgruppen (vgl. MDE Einrichtung), welche am MDE Mitarbeiter und am MDE Gerät hinterlegt ist.
Außerdem stehen noch die Optionen Bool1, Bool2 und Bool3 zur Verfügung. Hiermit ist es möglich, z.B. Fehlermeldungen zu integrieren, die nur angezeigt werden, wenn die entsprechenden Bools in der Tabelle "ADCS Device Activity" (5371158) gesetzt wurden. Mit Hilfe der Berechtigung Scan erfolgreich können Zeilen des Typs Info erstellt werden, um damit z.B. auch einen positiven Quittungston auf dem MDE Client zu erzeugen.

Feld: "Nächste Miniform"

Hier kann aus einer Liste der bestehenden Miniforms eine ausgewählt werden, die aufgerufen wird, wenn die Eingabe erfolgt ist oder der Menüpunkt ausgewählt wurde. Hinweis: Diese Logik wurde für den Prozess "PICK" bereits durch die MDE Ergebnis Codes ersetzt und wird nicht mehr genutzt.

Feld: "Funktion"

Hier kann aus einer Liste eine Funktion ausgewählt werden, die ausgeführt wird, wenn die Eingabe erfolgt ist oder der Menüpunkt ausgewählt wurde. Hier werden nur Funktionen angezeigt, die in der im Header angegebenen Codeunit registriert oder allgemeingültige Funktionen wie "Back" sind. Das Registrieren der Funktionen erfolgt über die Seite "MDE Scannervorgänge".

Feld: "Inaktiv"

Gibt an, ob die Miniformzeile deaktiviert ist. Deaktivierte Zeilen werden nicht im MDE Client angezeigt. Dieses Feld in der Standardeinrichtung u.a. genutzt, um unterschiedliche Prozessvarianten abzubilden.

Feld: "Universal View Funktion"

Ab Version 19.5.34.0 wird die so genannte "Universelle Ansicht" unterstützt. Dahinter verbirgt sich die Möglichkeit, in einer Prozesscodeunit eine flexible Liste von Datensätzen (z.B. auch temporären Datensätzen) aufzubauen und diese auf dem MDE visualisieren zu können. Die generierte Liste wird dazu im Json Format am Datensatz "MDE Geräteaktivität" gespeichert, so dass die Daten im Folgeschritt genau so zur Verfügung stehen, wie sie an den MDE Client gesendet wurden. Die "Universal View Funktion" wird analog zu den anderen Funktionen in der Prozesscodeunit über die Funktion ADCSManagement.RegisterAction() mit dem Typ "Universal View" registriert. Die Listeneinträge werden mit Hilfe der temporären Tabelle "RepeaterListEntryTDCS" gebildet. Einem einzelnen Listeneintrag kann wiederum eine Liste mit Name/Value Paaren (Tabelle "Name/Value Buffer") übergeben werden. Auf diese Wert kann im Miniformdesign über das Feld "Feldname (Universelle Ansicht)" zugegriffen werden.

Feld "Feldname (Universelle Ansicht)"

Hierüber kann auf Felder einer universellen Ansicht zugegriffen werden. Das Feld ist mit einer generischen Auswahlliste verknüpft. Diese Auswahlliste kann über die jeweilige Prozesscodeunit implementiert werden. Dazu wird das Event "OnGetUniversalViewFields" aus der Tabelle "ADCSActionTDCS" abonniert und eine gewünschte Liste mit Feldname/Feldcpation Paaren übergeben. Über den eindeutigen Feldnamen erfolgt dann bei Erstellung der Miniform der Zugriff auf den hinterlegten Listeneintrag mit dessen Name/Value Paaren. In diesen Miniformzeilen wird auch die zugehörige "Universal View Funktion" eingetragen. Diese dynamische Liste wird in der MDE Standard Einrichtung für die Miniforms der Lagerplatzauskunft (BIN_INFO) verwendet.

Subzeilen erstellen

Die Miniform-Subzeilen können über die Zeilenaktion [Miniform-Subzeilen] aufgerufen werden.

Feld "MDE Ergebnis Code"

Hier können Ergebnis Codes aus einer Liste ausgewählt werden, die ausgeführt werden, wenn die Eingabe erfolgt ist oder der Menüpunkt ausgewählt wurde. Hier werden nur Ergebnis Codes angezeigt, die in der im Header angegebenen Codeunit registriert wurden oder allgemeingültige Ergebnis Codes wie z.B. "OK" oder "NOT OK" sind.

Zusätzlich werden in der Factbox der Miniform Page die aktiven Miniform-Subzeilen zu der selektierten Miniformzeile angezeigt.

Folgende Ergebnis Codes stehen global zu Verfügung:

Code

Erläuterung

"OK"

Wird gesetzt, wenn das Ausführen des Scannervorgangs erfolgreich ist.

"NOT OK"

Wird gesetzt, wenn das Ausführen des Scannervorgangs fehlschlägt.

"SCANNER ERROR"

Wird gesetzt, wenn bei der Übetragung vom Scanner zum Client ein Fehler entsteht.

"DOCUMENT COMPLETED"

Wird gesetzt, wenn ein Scanner-Client Übertragungsfehler auftritt.

"DOCUMENT NOT FOUND"

Wird gesetzt, wenn ein Beleg nicht gefunden werden konnte.

"PAUSED DOCUMENT"

wird gesetzt, wenn mit einem pausierter Beleg fortgefahren werden soll.

"OK_SINGLESCAN"

wird gesetzt, wenn der Mitarbeiter die Berechtigung besitzt, den Einzelscan zu nutzen.

"OK_MULTISCAN"

wird gesetzt, wenn der Mitarbeiter die Berechtigung besitzt, den Mengenscan zu nutzen.

"SERIALNO_SCAN"

wird gesetzt, wenn für einen gescannten Artikel die Artikelverfolgung aktiviert ist und eine Seriennummer eingegeben werden muss.

"LOTNO_SCAN"

wird gesetzt, wenn für einen gescannten Artikel die Artikelverfolgung aktiviert ist und eine Chargennummer eingegeben werden muss.

"EXPIRATIONDATE_SCAN"

wird gesetzt, wenn für einen gescannten Artikel die Artikelverfolgung aktiviert ist und ein Ablaufdatum eingegeben werden muss.

Feld "Nächste Miniform"

Hier kann aus einer Liste der bestehenden Miniforms eine ausgewählt werden, die aufgerufen wird, wenn der entsprechende Ergebnis Code gesetzt wurde.

Feld "Anmerkung"

Kann beispielsweise angeben, welche Berechtigungs-Variable (Bool1, Bool2 und Bool3) im Programmcode beim Setzen des Ergebnis Codes auf true gesetzt wird.

Nutzung individueller Codeunits und Ergebnis Codes

Siehe Entwickler Hinweise - Nutzung individuelle Codeunit und Ergebnis Codes)

Einrichtungspakete

Die Einrichtungspakete werden über die MDE-App selbst zur Verfügung gestellt. Siehe dazu MDE Einrichtung - Konfigurationspakete