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