CustForms / CustomForms

Über die CustForms (CustomForms) können im esmobile benutzerdefinierte Felder eingeblendet und bearbeitet werden.

Für die folgenden Programmbereiche können CustForms / CustomForms im esmobile verwendet werden:

Zusätzliche Felder anlegen

Die zusätzlich benötigten Felder werden übers Customizing im eserp angelegt.

Eine ausführliche Beschreibung finden Sie im Thema Eigene Felder anlegen.

Die folgenden Datenquellen werden dabei für die CustForms unterstützt:

  • Arbeitsberichte

  • Anlagen

  • Anlagenkomponenten

  • Auftragsanlagenkomponenten (Durchführung - Prüfung)

Layout konfigurieren

Das Layout wird im JSONGeschlossen Die JavaScript Object Notation (JSON) ist ein kompaktes Datenformat in einer einfach lesbaren Textform für den Datenaustausch zwischen Anwendungen. JSON ist von Programmiersprachen unabhängig. Format im einem Editor (Notepad, Atom etc.) erstellt. Dabei ist es erforderlich, dass die IDs im Layout so benannt werden, wie die Spalten in der jeweiligen Customizing Tabelle.

Um ein neues Layout zu erstellen, ist es notwendig die Customizing Tabelle um die benötigten Felder zu erweitern und diese Namen dann als ID im Layout zu verwenden.

Ist ID im Layout nicht in der Customizing Tabelle vorhanden, werden die Felder im Layout nicht übernommen und angezeigt. Es ist erforderlich, dass der Datentyp der Spalten mit der ID übereinstimmt.

Das Layout besteht aus einem JSON-Array, welches ein oder mehrere Objekte beinhalten kann.

Jedes Objekt wird im esmobile in einer eigenen Bereich dargestellt.

Objekte enthalten eine Eigenschaft Name und ein Array Items.

Der Wert der Eigenschaft Name gibt die Beschriftung des zugehörigen Bereichs im esmobile an.

Das Array Items definiert die einzelnen Felder innerhalb der Gruppe.

Für jedes Feld ist es erforderlich ein eigenes Item-Objekt anzulegen.

Objekttypen

Folgende Typen von Items sind möglich:

  • StringFormItem

    Einzeilige Textbox

  • IntegerFormItem

    Ganzzahlen

  • DecimalFormItem

    Dezimalzahlen

  • DateTimeFormItem

    Datum und Zeit

  • BooleanFormItem

    Switches

  • MemoFormItem

    Memotexte

  • SelectionFormItem

    Combobox Auswahl mit Werten aus der Tabelle CustomLookup (über die LookupIdNr)

    Siehe auch Benutzerdefinierte Datenmengen

  • SeparatorFormItem

    Trennlinie

Objekt-Eigenschaften

Innerhalb der Item-Objekte können folgende Eigenschaften verwendet werden

  • Id

    Feldname in der CUST-Tabelle (zum Beispiel CUST_ANLAGEN)

  • Name

    Beschriftung in der Oberfläche

  • Placeholder

    Platzhalter Text, der angezeigt wird, solange im Feld noch keinen Wert eingetragen ist

  • ToolTip

    Diese Eigenschaft wird noch nicht verwendet

  • Type

    Nur bei DateTimeFormItem

    0 = Datum

    1 = Zeit

  • LookupIdNr

    Nur bei SelectionFormItem

    LookupIdNr der benutzerdefinierten Datenmenge in Tabelle CustomLookup

    Der Itemtyp sollte dabei dem Datentyp des korrespondierenden Felds in der Customizing-Tabelle entsprechen.

Layout in Datenbank hinterlegen

Es ist erforderlich die definierten Layouts manuell in der Tabelle CustFormLayout in der Datenbank anzulegen.

Diese umfasst folgende Felder

  • LayoutIdNr

    Primärschlüssel

  • CustFormTable

    Verweis auf die Customizing-Tabelle.

    Mögliche Werte

    0 = Auftragsanlagenkomponenten

    1 = Arbeitsberichte

    2 = Anlagenkomponenten

    3 = Anlagen

  • Feldname / Feldwert

    Kriterien, um anzugeben, ob ein Formular angezeigt werden soll.

    Darüber können speziell auf dem Register Durchführung / Wartung für unterschiedliche Komponenten unterschiedliche Felder sichtbar gemacht werden.

    Als Feldname sind dabei alle Felder aus der Tabelle und zusätzlich WarenGruppe und MatGruppe (Werte aus dem Artikelstamm) möglich. Der Feldwert gibt dabei den jeweiligen Wert an, bei dem das Formular angezeigt wird.

  • ReportId

    Nur für Auftragsanlagenkomponenten relevant.

    Verweis auf ReportId aus Tabelle RvReport, siehe Reportgenerierung

  • Reihenfolge

    Nur für Auftragsanlagenkomponenten relevant.

    Hier können mehrere Layouts definiert werden. Diese werden dann nach Reihenfolge sortiert in der Oberfläche angezeigt.

  • Layout

    Layout im JSON-Format (siehe Layout konfigurieren)

  • Exportname

    Dateiname des generierten Report-PDFs.

    Per Platzhalterlogik (<>) kann auf alle Felder der Tabellen Anlage und Auftrag zugegriffen werden.

    Felder aus dem Auftrag können direkt angesprochen werden.

     

    <Matchcode>

    Für Felder aus der Anlage ist als Präfix A“ bzw. Anlagen anzugeben.

     

    <A.MatchCode> oder <Anlagen.MatchCode>

    Über die Platzhalter D.Year, D,Month und D.Day können Jahr, Monat und Tag des aktuellen Datums ausgegeben werden.

     

    Wird kein ExportName in der Tabelle CustFormlayout angegeben, wird der Name des Reports als Dateiname für die PDF Datei verwendet.

Reportgenerierung

Die im esmobile erfassten Feldwerte werden für den jeweiligen Vorgang in der zugehörigen CUST-Tabelle abgespeichert und können somit im Report verwendet und dargestellt werden.

Beim Abschluss auf dem Register Durchführung / Wartung zum Beispiel werden die in den verwendeten Layouts hinterlegten Reports über den Businessserver ausgeführt und als PDF im DMS abgelegt.

Die PDFs haben als Hauptvorgang den Auftrag und die dem Auftrag zugeordneten Anlagen als Subvorgänge.

Über das Feld Nur aktuellen Datensatz in der Reportregistrierung (Feld NurAktDs aus Tabelle RvReport) kann konfiguriert werden, ob bei Aufträgen zu mehreren Anlagen ein Report pro Anlage generiert oder eine PDF über alle Anlagen erzeugt wird.

Allgemeines zum JSON Format (Quelle Wikipedia)

Die JavaScript Object Notation (JSON [ˈdʒeɪsən]) ist ein kompaktes Datenformat in einer einfach lesbaren Textform für den Datenaustausch zwischen Anwendungen. JSON ist von Programmiersprachen unabhängig. Parser und Generatoren existieren in allen verbreiteten Sprachen.

JSON wurde ursprünglich 1997 von Douglas Crockford spezifiziert. Derzeit (Stand Ende 2017) wird es durch zwei inhaltlich gleiche Standards spezifiziert – RFC 8259 sowie ECMA-404.

Einsatzgebiete

JSON wird zur Übertragung und zum Speichern strukturierter Daten eingesetzt. Es dient als Datenformat bei der Datenübertragung (Serialisierung). Insbesondere bei Webanwendungen und mobilen Apps wird es in Verbindung mit JavaScript, Ajax oder WebSockets zum Übertragen von Daten zwischen dem Client und dem Server häufig genutzt.

Datenstruktur und Formatdefinition

Zeichencodierung und Datentypen

Die Daten können beliebig verschachtelt werden, beispielsweise ist eine indizierte Liste (englisch array) von Objekten möglich, welche wiederum arrays oder Objekte enthalten. Als Zeichenkodierung benutzt JSON standardmäßig UTF-8. Auch UTF-16 und UTF-32 sind möglich.

JSON kennt die folgenden Typen von Elementen.

Nullwert

wird durch das Schlüsselwort null dargestellt.

Boolescher Wert

wird durch die Schlüsselwörter true und false dargestellt. Dies sind keine Zeichenketten. Sie werden daher, wie null, nicht in Anführungszeichen gesetzt.

Zahl

Ist eine Folge der Ziffern 0–9. Diese Folge kann durch ein negatives Vorzeichen - eingeleitet und durch einen Dezimalpunkt . unterbrochen sein. Die Zahl kann durch die Angabe eines Exponenten e oder E ergänzt werden, dem ein optionales Vorzeichen + oder - und eine Folge der Ziffern 0–9 folgt.

Zeichenkette

Beginnt und endet mit doppelten geraden Anführungszeichen (").

Sie kann Unicode-Zeichen und durch \ eingeleitete Escape-Sequenzen enthalten.

Array

Beginnt mit [ und endet mit ] (eckige Klammern).

Es enthält eine durch Kommata geteilte, indizierte Liste von Elementen gleichen oder verschiedenen Typs.

Leere Arrays sind zulässig.

Objekt

beginnt mit { und endet mit }. Es enthält eine durch Kommata geteilte, ungeordnete Liste von Eigenschaften. Objekte ohne Eigenschaften (leere Objekte) sind zulässig.

Eigenschaft

besteht aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt (Schlüssel : Wert).

Die Schlüssel sollten eindeutig sein, da unterschiedliche Parser mit mehrfach vorkommenden Schlüsseln unterschiedlich umgehen. Während ECMA-404 keine Eindeutigkeit voraussetzt, fordert RFC 7159,[3] dass Schlüssel innerhalb eines Objekts eindeutig sind.

  • der Schlüssel ist eine Zeichenkette.

  • der Wert ist ein beliebiges Element.

Nicht signifikante Leerraum-Zeichen sind erlaubt, also Leerzeichen (Unicode U+0020), horizontale Tabs (U+0009), Zeilenumbrüche mittels LF und / oder CR (U+000D und U+000A). Diese Zeichen werden außerhalb von Zeichenketten bei der Interpretation ignoriert.

Beispiel Layout

Beispiellayout für Aufzugsdaten.

Die Spalte CustFormTable bezieht sich auf die Tabelle.

Bisher sind folgende möglich:

  • 0 = AuftAnlgPos

    Auftrags Anlagenpositionen

  • 1 = ArbBeri

    Arbeitsberichte, Register Details

  • 2 = AnlgPos

    Anlagenpositionen

  • 3 = Anlagen

    Anlagen, Register Detail

Weitere Tabellen werden nicht unterstützt.

Es besteht die Möglichkeit über bestimmte Kriterien anzugeben, ob ein Formular angezeigt werden soll. Das ist speziell für die Tabelle AuftAnlgPos wichtig, da pro Komponente ggf. unterschiedliche Formulare auszufüllen sind.

Hier kann als Feldname einer der folgenden Angaben getätigt werden:

  • ArtikelNr (Artikelnummer)

  • WarenGruppe (Warengruppe)

  • MatGruppe (Materialgruppe)

Es ist nur für die Tabelle AuftAnlgPos möglich mehrere Layouts zu konfigurieren.

Der Feldwert gibt dabei die jeweilige Nummer an, bei der das Formular angezeigt wird.

Wenn in Feldwert ArtikelNr konfiguriert ist, dann bezieht es sich auf die Artikelnummer der Tabelle Artikel des in der AnlgPos konfigurierten Artikels.

Als normales Customizing kann es in der Arbeitsberichtdetailseite und Anlagenkomponentendetailseite verwendet werden. Ein CustFormLayout ist auch hier erforderlich, damit etwas angezeigt werden kann. Änderungen werden über die normale Synchronisation abgearbeitet.

Für das normale Customizing kann anders als bei AuftAnlgPos nur ein Layout konfiguriert werden.

Felder der Customizingtabelle sollten für verschiedene Formulare möglichst wiederverwendet werden, denn wir unterstützen nur bis zu maximal 999 Spalten in einer Customizingtabelle.

Bei AuftAnlgPos in der Durchführung / Wartung werden beim Abschluss Reports über den Businessserver erstellt. Der Report der verwendet werden soll, wird in CustFormlayout konfiguriert. Im Report (RvReport) kann mit dem Feld NurAktDs (Nur aktueller Datensatz) konfiguriert werden, ob die Reports pro Anlage einzeln generiert werden sollen oder eine PDF mit allen Komponenten aller Anlagen. Sind schon Reports zu der Durchführung / Wartung im DMS, werden diese als neue Version hinzugefügt. Die Reports haben als Hauptvorgang den Auftrag und die Anlagen als Subvorgänge

Alle Daten der CustomForms werden pro Referenztabelle in eine ein neue Tabelle geschrieben. Es wird also für ArbBeri, AnlgPos und AuftAnlgPos jeweils eine Cust-Tabelle in der Datenbank angelegt.

 

Einschränkungen

Pro Datenquelle können maximal 1.000 eigene Felder angelegt werden. Werden umfangreiche Feldnamen und Bezeichnungen verwendet, können durch die Einschränkungen der Datenbanksysteme auch weniger Felder möglich sein.