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.
Header
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



