M
I
N
I
S
Y
S
©
O
R
G
T
U
T
O
R
I
A
L
S
  ADT-HANDMADE (ADTHANDM) MINISYS Vers. 7070.2
ADT steht für "Application Development Tools"
Handmade steht für "Von Hand erstellt/ Manuell erstellt."

Neben den Möglichkeiten zur Erstellung von MINISYS Anwendungen über die internen Masken - Programm - Generatoren bietet MINISYS auch die Möglichkeit, vom Programmierer in einem Webseiten Erstellungsprogramm erstellte Bildschirmmasken im HTML Format zu verarbeiten. Der Vorteil ist, dass es keine starre Bindung an die MINISYS Konventionen gibt und der Programmierer in seiner Vorgehensweise nicht eingeschränkt wird. Nachteilig ist mit Sicherheit der höhere Arbeitsaufwand und die Notwendigkeit der manuellen Integrität und Verbindung zu MINISYS selbst herstellen zu müssen.
Hierfür gibt es allerdings eine Anzahl von Programmen innerhalb von MINISYS, die diesen Aufwand reduzieren und ihn somit darstellbar gestalten.

Um eine Maske bzw. ein interaktives HTML - Programm in MINISYS integrieren zu können, muss es vom MINISYS Mask-Loader dem Teilnehmer zur Verfügung gestellt werden.
Normalerweise passiert dieses durch das MINISYS Interne Menusystem.

Begeben Sie sich in den Masken-Programm-Generator (SYSTEM (Rescue) -> MAINTAIN -> Maskenerstellung), wählen dort den Programmbereich aus oder legen einen neuen an und erfassen dann entweder eine Advanced oder eine Handmade (Ab Version 7071(!)) Maske.

Geben Sie dort unter dem Punkt "WEB-MASK" die Position und den Namen der von Ihnen erstellten bzw. zu erstellenden Maske bzw. HTML-Programmes ein.
Dort könnte z.B. "/elements/apps/abcfibu/konten.htm" eingetragen werden.

Wichtig sind neben der Beschreibung auch noch die Angaben der Anzahl der Subscripte und vor allen Dingen, zumindest beim Maskentyp Advanced, dass die Maske WEB-Ready und WEB-Only ist.
WEB-Only ist im Übrigen ein sehr großer Nachteil, wenn Sie sich nicht die Mühe machen wollen, diese Maske auch für den Consolenbetrieb zusätzlich zu erfassen. Damit steht diese Maske dann natürlich, wie es die Bezeichnung ja bereits vorgibt, nicht im Consolenbetrieb zur Verfügung.

Unter "/elements/adt/adthandm.htm" steht eine Beispielmaske zur Verfügung, die erklärend die notwendigen Elemente zur Integration in MINISYS enthält. Die hier verwendeten Programmteile sind dieser Beispielmaske entnommen worden. Dieses Programm kann über die Centerprogramme direkt eingebunden und getestet werden.
Auch sollte der MINISYS Routine "MINISYSadtHANDM" einmal Beachtung geschenkt werden, einige Details sind dieser Routine zu entnehmen. Es spricht auch nichts gegen die Verwendung dieser Routine zur Datenverwaltung, wie alle anderen MINISYS Routinen ist diese Routine mit in die regelmäßige Revision mit eingebunden.

Die Elemente im Einzelnen:

1. FORM
Die folgenden Elemente müssen von einem geschlossenem HTML-Form umschlossen sein. Das ist notwendig, damit der Browser im Falle einer Datenübertragung sämtliche Dateninhalte überträgt.
Innerhalb des HTML-Files sieht das wie folgt aus:

<form action="/minisyscgi/query" method="post" name="MAIN">

2. GLOBAL/ Datenbank/ varGLOBAL
Um den Datenbereich fix zuordnen zu können, ist die Angabe des Datensegmentes bzw. der Globals notwendig. In der Hierachie wird hiermit die oberste Ebene deklariert, verglichen mit einem Filesystem quasi der File- oder Dateiname. In dem Beispiel html - File wird dieser mit "ADTHANDM" dotiert, unter diesem Namen werden die Daten abgelegt und können dort auch wieder abgerufen werden. Innerhalb des HTML-Files sieht das wie folgt aus:

<input name="varGLOBAL" value="ADTHANDM" type="hidden">

3. MINISYSpinfo

Diese Variable definiert, welches M bzw. MINISYS Programm im Falle eines submits, also einer Übertragung zum WEB-Server, die Verarbeitung der Daten bzw. der Inhalte der WEB-Maske übernehmen soll. Es können Programmnamen (^PROGRAM) oder Tag/Programmnamen (Run^PROGRAM) angegeben werden. Die Angesprochene Routine MUSS existieren und über einen ggf. definierten TAG verfügen. Innerhalb des HTML-Files sieht das wie folgt aus:

<input name="MINISYSpinfo" value="^MINISYSadtHANDM" type="hidden">

4. NEXTMASK / Nächste Maske/ varNEXTMASK
Nach einer Datenübertragung muss MINISYS eine weitere Maske laden und ggf. dotieren, um die Ergebnisse sichtbar zu machen oder für die nächste Operation zur Verfügung zu stehen.
Das kann z.B. auch dieselbe Maske sein, in der der vorhergehende Aufruf stattgefunden hat. Genau diesen Fall beschreibt das Beispiel HTML - File, jedoch ist diese Vorgehensweise nicht zu empfehlen.
Innerhalb des HTML-Files sieht das wie folgt aus:

<input name="varNEXTMASK" value="ELEMENTS/ADT/ADTHANDM.HTM" type="hidden">

5. ACTION/ Aktion/ varACTION
Daten können entweder erfasst (gespeichert), abgerufen oder gelöscht werden.
Parallel zu diesen Möglichkeiten können Daten gegen Überschreiben kurzfristig blockert (gelockt) oder wieder zur Überschreibung freigegeben (unlock) werden. Dazu wird die Variable varACTION, innerhalb von MINISYS ACTION verwendet. Diese Variable kann entweder im HTML-File fix gesetzt werden oder mit einer Button Aktivität verbunden werden. Im Beispiel HTML - File wird diese Variable vordeklariert über

<input name="varACTION" value="" type="hidden">

und über die Buttons nachdotiert

<!-- GET / Daten holen-->
<input class="buttonsubmit" name="BG" value="Get" size="10" type="button"  onClick="javascript:varACTION.value='GET';document.MAIN.submit();">

<!-- SET / Daten speichern-->
<input class="buttonsubmit" name="BS" value="Set" size="10" type="button" onClick="javascript:varACTION.value='SET';document.MAIN.submit();">

<!-- DELETE / Daten löschen-->
<input class="buttonsubmit" name="BD" value="Delete" size="10" type="button" onClick="javascript:varACTION.value='DELETE';document.MAIN.submit();">

<!-- GETLOCK / Daten holen und sperren (lock)-->
<input class="buttonsubmit" name="BGL" value="Get&Lock" size="10" type="button" onClick="javascript:varACTION.value='GETLOCK';document.MAIN.submit();">

<!-- SETUNLOCK / Daten speichern und entsperren (unlock)-->
<input class="buttonsubmit" name="BSU" value="Set&Unlock" size="10" type="button" onClick="javascript:varACTION.value='SETUNLOCK';document.MAIN.submit();">

6. SUBn/ Keyfeld(er)/ varSUBn
Zur eindeutigen Zuordnung der Datensätze innerhalb des Datenbereiches (File) ist mindestens ein eindeutiger Zugriffsschlüssel/ Key/ Subscript notwendig. Kunden-Nummer, Artikel Nummer etc. identifizieren. Die Anzahl der Keys dürfen 5 nicht überschreiten, die Gesamtlänge der Keys dürfen 255 Zeichen nicht überschreiten. Diese Werte werden in der Praxis allerdings kaum erreicht.
Die Variablennamen für die Keys sind von MINISYS vorgegeben, SUB1 - SUB5. Innerhalb des HTML-Files sieht das wie folgt aus:

<input class="texteingabe" name="varSUB1" size="10" value="~sub1~" maxlength="10" type="text">

Die Angabe ~sub1~ dient der Redotierung der Variable im Falle der Datenübergabe an das HTML - File, wenn MINISYS z.B. über varACTION mit GET zum Datenholen aufgefordert wird.
Besondere Beachtung verdient die Gleichförmigkeit der Bezeichnungen, SUB1 gehört zu sub1, SUB2 zu sub2 usw.

7. DATA / Datenvariablen/ varXXXXXn
Die Vergabe der Variablennamen der Datenfelder unterliegen folgenden Einschränkungen bzw. Vorgaben:

a) Übergabevariablen MÜSSEN mit 'var' beginnen, Kleinschreibung beachten.

b) Der nachfolgende Teil entspricht dem Variablennamen innerhalb von M bzw. MINISYS.

c) Der nachfolgende Teil MUSS mit einem GROSSBUCHSTABEN BEGINNEN.

d) Der nachfolgende Teil darf abschliessende Ziffern enthalten.

e) Der nachfolgende Teil darf keine durch Buchstaben eingeschlossene Ziffern enthalten.

f) Der nachfolgende Teil darf NUR Grossbuchstaben enthalten.

g) Der nachfolgende Teil darf NUR aus Ziffern und Großbuchstaben bestehen.

Beispiele für Zulässig:
'varDAT1' 'varX' 'varKUNDENNAME' 'varDEPT2104'

Beispiele für Unzulässig:
'VARTTT' 'var12TEST' 'varT%' 'var100' 'varM H'

Innerhalb des HTML-Files sieht das wie folgt aus:

<input class="texteingabe" name="varDAT1" size="20" value="~dat1~" maxlength="20" type="text">
(Auch hier wieder zur Redotierung im value ~dat1~ / kleingeschriebener Variablenname OHNE das führende var!)

<input class="texteingabe" name="varDAT2" size="20" value="~dat2~" maxlength="20" type="text">
(Auch hier wieder zur Redotierung im value ~dat2~ / kleingeschriebener Variablenname OHNE das führende var!)

...

Natürlich muss das geöffnete Form auch wieder geschlossen werden (</form>).
Die Anzahl der Datenfelder ist nicht begrenzt, die maximale Länge eines Datenfeldes darf 4088 Zeichen nicht überschreiten, dieser Hinweis ist als technischer zu verstehen.

Wichtiger Hinweis:
Wenn Veränderungen an bestehenden HTML - Files/ somit integrierten MINISYS HTML - Programmdateien/ vorgenommen werden, sollten KEINESFALLS, sofern bereits Daten erfasst worden sind, die Variablen - Namen geändert werden! Diese Variablennamen werden innerhalb der Datenbank als Zuordnungskriterium verwendet, Datenkonfusionen wären bei einer Missachtung dieses Hinweises die Folge.