Table of Contents

Attribut

Ein Attribut definiert einen Teil des Datenmodells, das von pit - Mobile für den Prozess verwendet wird. Es gibt zwei Arten von Attributen: Vertragsattribute und virtuelle Attribute. Vertragsattribute zusammen mit ihren Vertragsklassen werden dazu verwendet, um mit pit - FM einen Vertrag über das verwendete Datenmodel bei der Synchronisation auszuhandeln. Virtuelle Attribute existieren unabhängig von pit - FM und sind Teil von lokalen Datenbank-Views.

Attribute können in Detailansichten und in Skripten verwendet werden. Sie haben keinen Tab in der Bibliothek sondern sind dort über den Tab Verwendete Klassen zu erreichen. Hier sieht man die verwendeten Attribute der ausgewählten Klasse in einer Liste.

Vertragsattribut

Vertragsattribute haben einen eindeutigen Namen, um sie sowohl in pit - Mobile und pit - FM zu identifizieren. Sie lassen sich im Inspektor anzeigen, indem man sie entweder in der Attributliste ihrer Klasse untersucht oder ein verknüpftes Eingabefeld im Workflow-Editor doppelt anklickt.

Sobald eine Klasse in der Bibliothek unter Verwendete Klassen ausgewählt oder in einer Detailansicht der Attribut-Auswahldialog angezeigt wurde, werden vom Designer die Attribute der Klasse im Hintergrund vom Webservice heruntergeladen. Der Designer erkennt automatisch, welche Attribute vom Prozess verwendet werden und sammelt diese in der Attributliste Verwendete Attribute der Klasse. Über den Plus-Button können weitere Attribute manuell hinzugefügt werden. Nur die Attribute, die in Verwendung stehen, werden beim Export in die Contract.json geschrieben und an pit - Mobile weitergegeben.

Virtuelles Attribut

Beim Anlegen eines neuen Attributs erscheint ein Dialog, in dem man ein Webservice-Attribut auswählen soll. Zusätzlich kann über den Button Neues Attribut ein virtuelles Attribut erstellt werden. Der dabei zu vergebende Name muss eindeutig in Bezug auf alle bereits vorhandenen Attribute der Klasse sein. Zusätzlich muss der Attributtyp und evtl. eine Referenzklasse angegeben werden, damit die Neuanlage des Attributs vollständig ist. Alle weiteren Einstellungen für das Attribut erfolgen zu einem späteren Zeitpunkt.

An Virtuellen Klassen kann jegliche Art von Attributen angelegt werden. An Vertragsklassen kann man dagegen nur Listenattribute (vom Typ list oder htlist) erstellen, da diese sich nur über ihre Rückreferenz definieren und daher immer virtuell sind.

VirtualAttribute

Eigenschaften

Eigenschaft Typ Erklärung
Name Text Der eindeutige Systemname des Attributs. Kann nicht verändert werden.
Typ Dropdown Auswahl des Attributtyps. Wird zum Teil vom Webservice vorgegeben.
Referenzklassenname Text Gibt den Namen der Referenzklasse an, die der Webservice für dieses Attribut vorgibt. Kann nicht verändert werden. Wird nur für die Attributtypen ref, listref, htref, list und htlist angezeigt.
Referenzklasse Dropdown Auswahl der Referenzklasse. Kann auf eine abgeleitete Klasse geändert werden. Wird nur für die Attributtypen ref, listref, htref, list und htlist angezeigt.
Rückreferenz Dropdown Auswahl des Referenzattributs, über das sich diese Liste definiert. Wird nur für die Attributtypen list und htlist angezeigt. Bei einer HT-Liste muss das Referenzattribut den Typ htref haben.
Zielreferenz Dropdown Auswahl des Referenzattributs, das zur Zielklasse der HT-Verbindung führt. Wird nur für den Attributtyp htlist angezeigt. Das Attribut muss vom Typ htref sein.
Schreibgeschützt Ja / Nein Gibt an, ob dieses Attribut vom Benutzer verändert werden darf.
Pflichtfeld Ja / Nein Gibt an, ob der Benutzer dieses Attribut auf Detailansichten ausfüllen muss.

Attributtypen

Der Typ eines Attributs lässt sich während der Prozesserstellung nachträglich ändern. Dabei kann der Typ aber nur in einen anderen sinnvollen Attributtyp geändert werden, der die gleiche Bedeutung in pit - FM hat. Beispielsweise kann der Typ string in mstring geändert werden, da beide in pit - FM dem Typ Text entsprechen. Jedes Attribut gehört zu einer Gruppe von Attributtypen, in die das Attribut konvertiert werden kann. Nachfolgend sind diese Gruppen aufgelistet.

Kategorie Attributtyp Erklärung
Texte
string Einzeiliger Text.
mstring Mehrzeiliger Text.
identifier Eindeutiger Bezeichner. Beim Anlegen des Datensatzes wird von der App eine Id generiert und in dieses Feld eingetragen.
webpath Url-basierter Text, der eine Webansicht anzeigt.
valueref Textbasierter Vorschlagswert.
Pfade
path Pfad einer Datei aus dem Dateisystem des mobilen Geräts.
Ja / Nein
bool Boolesches Attribut mit Werten Ja und Nein.
Ganzzahlen
int Ganzzahliges Attribut.
valueref Ganzzahliger Vorschlagswert.
Fließkommazahlen
float Fließkommazahl mit Vor- und Nachkommastellen.
valueref Vorschlagswert als Fließkommazahl.
Zeiten
date Datumsattribut mit Informationen für Tag, Monat und Jahr.
time Zeitattribut mit Informationen für Stunde, Minute und Sekunde.
date-e Attribut für Datum und Zeit (kombiniert).
Referenzen
ref Referenzattribut. Zeigt auf eine Referenzklasse.
listref Referenzattribut, das als Rückreferenz einer Liste eingesetzt wird.
htref Referenzattribut, das als Rück- oder Zielreferenz einer HT-Liste eingesetzt wird.
Listen
list Listenattribut. Wird über die Rückreferenz an der Referenzklasse definiert.
htlist HT-Listenattribut. Wird über die Rück- und Zielreferenz an der HT-Klasse definiert. Beide müssen den Typ htref haben.
Binäre Daten
blob Binäres Datenobjekt.

Casten von Referenzen

Obwohl pit - FM über den Webservice die Referenzklasse eines Attributs bereits vorgibt, kann sie für pit - Mobile überdefiniert werden. Dafür lassen sich im Dropdown Referenzklasse auch alle (direkt oder indirekt) abgeleiteten Klassen auswählen - Die Referenz wird gecastet. Die App arbeitet beim Auflösen der Referenz dann nur noch mit der eingestellten abgeleiteten Klasse.

Beispielsweise kann man nur mit Liegenschaften arbeiten, wenn es eine Referenz auf einen Ort gibt, vorausgesetzt die Klasse Liegenschaft erbt von der Klasse Ort.

Rück- und Zielreferenzen

Listenattribute haben von allen Attributen die meisten Eigenschaften. Hier muss zusätzlich die Eigenschaft Rückreferenz ausgewählt werden. Normalerweise passiert das automatisch durch das Abfragen der Attribute über den Webservice. Die Rückreferenz ist ein Referenzattribut an der Referenzklasse und wird zum Aufbau der Liste benötigt. Beispielsweise werden in einer Dokumentenliste am Auftrag alle Dokumente angezeigt, die zurück auf den Auftrag über die Referenz ref_Task zeigen.

HT-Listen unterscheiden sich von normalen Listen darin, dass sie eine Hilfstabelle (HT) verwenden, um eine M-zu-N Beziehung zwischen zwei Klassen herzustellen. Die Referenzklasse einer HT-Liste ist folglich diese Hilfstabelle und nicht die Zielklasse. Erst mithilfe der Eigenschaft Zielreferenz wird festgelegt, welches Referenzattribut der Hilfstabelle auf die Zielklasse zeigt. Sowohl die Rück- als auch die Zielreferenz müssen dabei vom Typ htref sein, damit pit - Mobile erwartungsgemäß funktioniert. So werden nämlich nicht mehr Datensätze der Hilfstabelle in der Liste angezeigt, sondern von der Zielklasse.

Bei der Auswahl eines neuen Attributs auf einer Detailansicht ist darauf zu achten, ob eine (normale) 1-zu-N Liste oder eine M-zu-N Liste benötigt wird. Dementsprechend muss der Haken M-zu-N-Liste bei der Attributauswahl aktiv sein. Außerdem ist darauf zu achten, dass das Attribut vom Typ htlist ist und die Rück- und Zielreferenzen vom Typ htref.

HT-List

Eingabefelder

Eingabefelder, die in Detailansichten erstellt werden, sind mit Vertragsattributen oder virtuellen Attributen verknüpft. Um vom Eingabefeld zum verknüpften Attribut zu gelangen, reicht ein Doppelklick. Alternativ kann das Rechtsklick-Kontextmenü Vertragsattribut ansehen genutzt werden.

LinkedAttribute

Eingabefelder können die Angaben Schreibgeschützt und Pflichtfeld für eine bestimmte Detailansicht überdefinieren. Außerdem setzen sie das verknüpfte Attribut in Verwendung, so dass es automatisch vom Designer exportiert wird.

Kopiersemantik

pit - Mobile unterstützt das Kopieren von Datensätzen mit der Schnittstellenfunktion Ti.App.ex.copyModel. Hierbei wird das Verhalten der Funktion von der eingestellten Kopiersemantik der beteiligten Attribute gesteuert. Die Kopiersemantik wird über die dynamische Eigenschaft copySemantic vom Typ Text angegeben und kann folgende Werte haben:

Wert Attributtyp Erklärung
CopyNone alle Standardwert. Feldinhalt wird nicht kopiert. Das Feld bleibt im kopierten Datensatz leer bzw. erhält einen Standardwert.
CopyData alle außer Listen Kopiert den Wert des Felds in den neuen Datensatz.
CopyEntity nur Referenzen und Listen Erstellt eine Kopie des verlinkten Datensatzes bzw. der verlinkten Datensätze und ordnet sie der erstellten Kopie zu.

Siehe auch

Eingabefelder
Klassen