Zum Hauptinhalt springen

Umgang mit Mängeln

Im vorherigen Leitfaden haben wir etwas über Inhaltstypen im Allgemeinen gelernt. Wir haben einen Inhaltstyp building erstellt, um Gebäude im iCL-System darzustellen. Nun wollen wir den nächsten Schritt machen und einen neuen Inhaltstyp namens "Mangel" einführen. Durch die Erstellung eines Inhaltstyps defect können wir Probleme oder Mängel, die in Gebäuden auftreten können, effektiv verfolgen und verwalten.

In diesem Leitfaden führen wir Sie durch den Prozess der Erstellung eines Inhaltstyps "Mangel", der Verknüpfung mit dem Inhaltstyp "Gebäude" und der Erstellung von Mangel-Instanzen für einzelne Gebäude. Am Ende dieses Tutorials werden Sie eine solide Grundlage für die Verwaltung von Mängeln in Gebäuden mit dem iCL-System haben.

für den Einstieg

Bevor Sie beginnen, lesen Sie den vorherigen Leitfaden über allgemeine Inhaltstypen und lesen Sie unsere Wissensdatenbank-Artikel über Inhaltstypen. Dieser Leitfaden baut auf dem in diesen Artikeln vermittelten Wissen auf.

Wir werden die Arbeit an der Arbeitsmappe zur Gebäudeinspektion aus den vorherigen Leitfäden fortsetzen,
💾 Sie können sie hier herunterladen

Erstellen Sie einen defect Inhaltstyp

Im iCL-System wird zwischen allgemeinen Inhaltstypen (z.B. building) und Mangel-Inhaltstypen unterschieden. Zusätzlich zu den grundlegenden Eigenschaften definieren Mangel-Inhaltstypen ein Objekt, zu dem sie gehören (genannt "parent") und den Zustand, in dem sie sich gerade befinden (z.B.: offen, in Bearbeitung, gelöst).

Lassen Sie uns einen Inhaltstyp defect erstellen, der zu dem Inhaltstyp building gehört, den wir bereits erstellt haben.

Der Anfang der JSON-Datei ist der building-Content-Type-Definition sehr ähnlich, aber in diesem Fall definieren wir nicht 'canBeInspected', sondern wir haben eine 'builtinTypeId' und diese ist auf 6 gesetzt. Wenn Sie nicht wissen, warum, lesen Sie den Beitrag hier.

  "$type": "contentType",
"name": "defect",
"displayName": "Defect",
"builtinTypeId": 6,
"titleFieldName": "defect_title",
"icon": ""

Lassen Sie uns nun die "Felder" definieren. Wir brauchen einen Titel, optional ein Foto und eine Beschreibung des Mangels, sowie das Elternelement und den Zustand, wie oben erwähnt.

"fields": [
{
"$type": "contentField",
"name": "defect_title",
"displayName": "Defect title",
"isRequired": true
},
{
"$type": "contentField",
"type": "FileEntry",
"name": "defect_photo",
"displayName": "Photo"
},
{
"$type": "contentField",
"type": "LongText",
"name": "description",
"displayName": "Description"
},
{
"$type": "contentField",
"type": "ContentItem",
"name": "building_ct",
"displayName": "Building",
"isRequired": true,
"builtInField": "ParentContentItemId"
},
{
"$type": "contentField",
"type": "Number",
"name": "status",
"displayName": "Status",
"builtInField": "Status"
}
]

Beachten Sie, dass der "Typ" des Feldes, das das Gebäude speichert, "ContentItem" ist und die Eigenschaft "builtInField" auf "ParentContentItemId" gesetzt ist. Dies teilt dem iCL-System mit, dass unser Mangel-Inhaltstyp ein Kind des Gebäude-Inhaltstyps ist, sodass wir ihn später in die Checkliste laden können.

Außerdem ist der Wert von 'builtInField' des letzten Feldes Status, was dem iCL-System mitteilt, dass es dieses Feld für alle statusbezogenen Funktionalitäten verwenden soll.

Nach den "Feldern" müssen wir auch die "Beziehungen" definieren. Hier geben wir die Beziehung zwischen dem Mangel und dem Gebäude an. Achten Sie darauf, dass Sie hier die ID des Inhaltstyps building verwenden!

"relationships": [
{
"$type": "contentRelationship",
"name": "buildingrelation",
"displayName": "Building",
"foreignKeyField": "building_ct",
"targetContentType": {
"$type": "contentTypeRef",
"id": "216bf3e2-a3a1-4941-9e58-dccf79f2038b",
"version": 1
}
}
]

Sehen wir uns die gesamte Mangel-Inhaltstypdefinition an.

{
"$type": "contentType",
"name": "defect",
"displayName": "Defect",
"builtinTypeId": 6,
"titleFieldName": "defect_title",
"icon": "",
"fields": [
{
"$type": "contentField",
"name": "defect_title",
"displayName": "Defect title",
"isRequired": true
},
{
"$type": "contentField",
"type": "FileEntry",
"name": "defect_photo",
"displayName": "Photo"
},
{
"$type": "contentField",
"type": "LongText",
"name": "description",
"displayName": "Description"
},
{
"$type": "contentField",
"type": "ContentItem",
"name": "building_ct",
"displayName": "Building",
"isRequired": true,
"builtInField": "ParentContentItemId"
},
{
"$type": "contentField",
"type": "Number",
"name": "status",
"displayName": "Status",
"builtInField": "Status"
}
],
"relationships": [
{
"$type": "contentRelationship",
"name": "buildingrelation",
"displayName": "Building",
"foreignKeyField": "building_ct",
"targetContentType": {
"$type": "contentTypeRef",
"id": "216bf3e2-a3a1-4941-9e58-dccf79f2038b",
"version": 1
}
}
],
"id": "86dc8088-520f-4f2b-9b09-c9578c2f16e7",
"version": 1
}

Laden wir sie in das iCL Portal hoch! Folgen Sie den Schritten aus dem vorherigen Tutorial.

Im iCL Portal sind die Mangel-Inhaltstypen mit einem kleinen Fehlersymbol in der Spalte 'Basistyp' gekennzeichnet.

Importieren Sie den Inhaltstyp in die Arbeitsmappe

Um dieses Tutorial übersichtlicher zu gestalten, ignorieren wir, dass Gebäude mehrere Stockwerke mit individuellen Mängeln haben können. Wir gehen davon aus, dass das Gebäude eine einzige Einheit ist und wir es als Ganzes prüfen.

Die folgenden Änderungen sind erforderlich:

  • das Kapitel "Kontrolle" nicht wiederholbar machen,
  • das Skript der Kapitelüberschrift löschen (durch Rechtsklick und 'Löschen'),
  • Entfernen Sie in der Überschrift "Kontrolle" das Feld "Stockwerk",
  • benennen Sie die Frage "Ist der Boden sicher?" in "Ist das Gebäude sicher?" um,
  • und schließlich löschen Sie die Frage "Ist es sehr gefährlich?" aus der Überschrift "Mangel" und auch das Skript "Existieren" aus dem Fotofeld, in dem das Feld verwendet wurde.
Hinweis

Dies ist ein sehr vereinfachtes Szenario, das der Demonstration dient. In komplexeren Szenarien (z.B. wenn jedes Stockwerk separat inspiziert wird) ist es natürlich auch möglich, Mängel zu erstellen und zu pflegen. In diesem Fall empfehlen wir, einen Inhaltstyp Etage zu erstellen (der zum Gebäude gehört), und die Mängel sollten dann zu den Etagen gehören.

Erstellen Sie das Feld für den Inhaltstyp

Erweitern wir nun die Arbeitsmappe um unseren neuen Inhaltstyp. Importieren Sie zunächst die JSON-Datei in die Arbeitsmappe.

Wir haben bereits eine Überschrift "Mangel" in der Arbeitsmappe. Erweitern wir sie ein wenig, um Mangel-Inhaltselemente erstellen zu können. Wir werden ein neues Inhaltselement und ein Textfeld hinzufügen.

Das Feld für das Inhaltselement sollte:

  • schreibgeschützt sein,
  • die Optionen "Automatische Erstellung", "Automatische Aktualisierung" und "Automatisches Ausfüllen" aktiviert haben und
  • die Mappings korrekt angeben.
Automatische Erstellung

Die 'Automatische Erstellung' ermöglicht es Ihnen, Inhaltselemente des ausgewählten Typs zu erstellen, wenn die Prüfung in iCL Filler abgeschlossen wird. Auf diese Weise können wir neue Mängel während einer Inspektion registrieren.


Hinweis

Beachten Sie, dass wir in der übergeordneten Zuordnung (building_ct) die id des building content item verwenden.

Hinzufügen des Statusfeldes

Wir brauchen ein weiteres Feld in der Überschrift "Mangel" für den Zustand des Mangels.

Der Zustand des Mangels muss eine Zahl sein. Wir können hier aber nicht einfach ein Zahlenfeld anlegen, denn woher sollen die Benutzer wissen, was sie eingeben sollen, welche Zahl was bedeutet? Stattdessen erstellen wir einen Radio-Button (ein Radio-Button erlaubt es dem Benutzer, nur eine von mehreren vordefinierten Optionen zu wählen).

Normalerweise hat ein Mangel die folgenden Zustände: neu, offen, behoben und archiviert. Erstellen wir einen Radiobutton mit diesen Optionen.

Das einzige Problem ist nun, dass dies keine Zahlen sind, sodass wir sie (noch) nicht im Feld "Status" des Inhaltselements verwenden können.

Im iCL Designer können Sie bei Multiple-Choice-Fragen Titel und Werte für die Antworten angeben. Die Titel werden dem Benutzer in iCL Filler angezeigt, aber die Werte können auch in Skripten verwendet werden. Lesen Sie mehr über Werte und Titel hier.

Wir können also Zahlen als Werte für die Optionen festlegen.

best practice

Sie können eine beliebige Zahl für den Status verwenden, aber bedenken Sie, dass Mängel mit einem Status über 9 in iCL Filler nicht angezeigt werden, wenn bestehende Mängel geladen werden.

Am besten verwenden Sie Zahlen zwischen 0 und 9 für Zustände wie neu/offen/behoben, und 10 für archiviert.


Das Mapping für "status" sollte wie folgt aussehen:

Antwortskripte erstellen

Wie im vorherigen Leitfaden fügen wir nun Skripte für die Antworten der Felder defect_title, description, photo und state hinzu. Verwenden Sie in diesen Skripten das Feld defect1 für das Inhaltselement.

Die 'Scripted Answer' des Feldes defect_title sollte sein:

Die Skripte für Beschreibung und Foto sind dem hier sehr ähnlich.

Die "Scripted Answer" für das Feld "state" sollte jedoch etwas komplexer sein. Wenn ein Mangel bereits existiert, sollten wir seinen Status laden, aber wenn er gerade erst erstellt wurde, sollte der Status automatisch auf "Neu" (mit dem Wert 0) gesetzt werden. Um dieses Skript hinzuzufügen, müssen wir zuerst lernen, wie man bestehende Mängel lädt.

Laden vorhandener Mängel

Ein Gebäude kann mehrere Mängel aufweisen. Wenn ein Gebäude inspiziert wird, sollte der Inspektor alle vorhandenen Mängel sehen und auch neue hinzufügen können.

Zuallererst müssen wir die Überschrift "Mangel" wiederholbar machen. Dies ermöglicht es den Benutzern, manuell neue Instanzen dieser Überschrift hinzuzufügen, wodurch für jede Überschrift ein neuer Mangel erstellt wird, da wir "Automatische Erstellung" gewählt haben.

Um alle vorhandenen Mängel zu laden, benötigen wir die Eigenschaft "Wiederholen für". In diesem Fall verwenden wir die Option "Verwandte Elemente".

Wir wollen die Überschrift für alle Objekte des Typs defect wiederholen, die zu dem Gebäude gehören, das gerade inspiziert wird. Hierfür verwenden wir die 'Abfrage'. Das folgende Skript wird die Aufgabe erfüllen:

Um sowohl die Wiederholung für vorhandene Elemente als auch das manuelle Hinzufügen von Elementen zu ermöglichen, wählen Sie in der Eigenschaft "Bearbeitung zulassen" die Option "Manuell hinzufügen/entfernen". Damit dies funktioniert, ist ein databound Feld erforderlich, klicken Sie auf 'Erstellen'.

Information

Das Ja/Nein-Feld für die Datenbindung gibt an, ob die Überschrift automatisch erstellt wurde (für einen bestehenden Mangel) oder vom Benutzer manuell hinzugefügt wurde (um einen neuen Mangel zu erstellen).

Wenn die Überschrift automatisch erstellt wurde, ist der Wert "Ja", andernfalls "Nein".

Diese Information wird vom System verwendet, um zu verhindern, dass Benutzer automatisch erstellte Überschriften/Kapitel entfernen. Auch wenn "Manuell hinzufügen/entfernen" konfiguriert ist, kann ein Benutzer immer nur die Überschriften/Kapitel löschen, die er manuell erstellt hat.

Mit diesem neuen Feld können wir nun das Antwortskript für das Feld State hinzufügen:

Es gibt nur noch eine letzte Sache, die in der Arbeitsmappe geändert werden muss: Derzeit gibt es die Überschrift "Mangel" nur, wenn die Antwort auf die Frage "Ist das Gebäude sicher?" falsch ist. Bei einem Gebäude, das zum ersten Mal inspiziert wird, kann das funktionieren. Bei einer erneuten Inspektion eines Gebäudes, das bereits Mängel aufweist, sollten diese jedoch geladen werden, unabhängig davon, ob Sie die Frage beantwortet haben oder nicht. Löschen wir das 'Exist'-Skript der Überschrift 'Mangel'.


Wir haben die Arbeitsmappe fertiggestellt. Laden Sie sie in das iCL Portal hoch.

Download der Arbeitsmappe

Sie können die icl-Datei von hier herunterladen.

Sehen wir uns das alles in iCL Filler an

Starten Sie eine neue Inspektion, wählen Sie das inspizierte Gebäude aus. Navigieren Sie dann zur Überschrift "Kontrolle" und wählen Sie die Option, dass das Gebäude nicht sicher ist.

Fügen Sie eine Überschrift "Mangel" hinzu, indem Sie auf das Symbol "+" klicken. Der Status der Überschrift wird automatisch auf "Neu" gesetzt.


Beachten Sie, dass Sie so viele Mängel hinzufügen können, wie Sie wollen.

Geben Sie nun den Titel und die Beschreibung ein und schließen Sie die Prüfung ab.

Hinweis

Beachten Sie, dass der Artikel erst nach Abschluss der Inspektion erstellt wird! Dies hat einen Grund:

Bevor Sie eine Inspektion abschließen, können Sie die Daten in der Checkliste nach Belieben ändern - und zwar so, wie es die Checkliste erlaubt. Sie können sogar eine Inspektion abbrechen und damit die Daten in den Checklisten löschen. Inhaltselemente live zu ändern, wäre keine gute Idee, da Sie versehentlich Daten löschen oder beschädigen könnten.

Aus diesem Grund werden Änderungen an Inhaltselementen erst nach Abschluss der Inspektion übernommen.

Finden Sie den Mangel im iCL Portal

Gehen Sie zum iCL Portal und navigieren Sie zur Liste der Mangel Inhaltselemente. Sie sollten das neu erstellte Element dort finden. Beachten Sie, dass der Status als Zahl angezeigt wird.

Dies führt zu zwei Problemen:

  • Erstens wird es für die Benutzer schwierig, sich zu merken, welche Zahl für welchen Zustand steht
  • und zweitens kann die Möglichkeit, einfache Zahlen einzugeben, dazu führen, dass die Benutzer falsche Daten eingeben (d. h. eine Zahl, die keinen Zustand darstellt).

Um hier Abhilfe zu schaffen, ändern wir unseren Inhaltstyp „Mangel“ so, dass er den Namen des Status und eine vorausgefüllte Auswahlliste im Bearbeitungsformular anzeigt.

Ändern Sie das Statusfeld so, dass der Statusname angezeigt wird.

Um dies zu tun, werden wir einen kleinen Hack durchführen: Wir werden iCL Designer verwenden, um die UI-Definition zu erstellen, die wir in unserem Mangel-Inhaltstyp verwenden werden.

Starten Sie zunächst iCL Designer und erstellen Sie eine neue Arbeitsmappe. Fügen Sie eine Checkliste mit einem leeren Kapitel und einer Überschrift hinzu.

Kopieren Sie dann das Feld „state“ und fügen Sie es in die leere Überschrift der neuen Checkliste ein. Damit dies funktioniert, muss der Name des Feldes für den Inhaltstyp mit dem Namen des Feldes in der Checkliste übereinstimmen. Da das Feld des Defekts „status“ heißt, benennen wir auch das Feld der Checkliste in „status“ um. Stellen Sie außerdem sicher, dass Sie den Namen aller verfügbaren Werte das Präfix „status_“ voranstellen, um sicherzustellen, dass ihr Name eindeutig ist.

Lassen Sie uns nun die Arbeitsmappe speichern und diese Benutzeroberflächendefinition extrahieren. Ändern Sie zunächst die Erweiterung von „icl“ in „zip“ und entpacken Sie das Archiv. Dann finden Sie im Unterordner „iclx\form\xxxx.json“ die Benutzeroberflächendefinition des Formulars/der Checkliste.

Öffnen Sie sie mit einem Texteditor, kopieren Sie sie und fügen Sie sie in einen JSON-Editor wie diesen ein. Suchen Sie dann die Definition unseres Checklistenfeldes „status“ und kopieren Sie sie.

Laden Sie schließlich die Definition des Inhaltstyps „Mangel“ vom iCL-Portal herunter und öffnen Sie sie mit Ihrem bevorzugten Texteditor.

Hinweis

Bitte stellen Sie sicher, dass Sie nicht Ihre lokale 'defect.json' verwenden, sondern diese vom iCL Portal herunterladen, da diese das formTemplate enthält, das wir gleich bearbeiten werden!

Suchen Sie den Abschnitt formTemplate und darin die Felddefinition für status und ersetzen Sie sie:

Laden Sie nun Ihren geänderten Inhaltstyp in das iCL Portal hoch und drücken Sie F5, damit die Seite neu geladen wird.

Navigieren Sie zur Liste der Mängel und Sie können nun den Status „Neu“ sehen.

Verwenden Sie nun das Bearbeitungsformular, um den Defektstatus von 'Neu' (0) auf 'Offen' (1) zu ändern.

Erneute Inspektion des Gebäudes

Stellen Sie sich vor, dass ein Monat vergangen ist und es an der Zeit ist, das Gebäude erneut zu inspizieren.

Synchronisieren Sie und starten Sie eine neue Inspektion mit demselben Gebäude. Wenn Sie nun zum Kapitel "Kontrolle" navigieren, sollte der bestehende Mangel bereits mit dem Status "Offen" geladen sein.


Wenn der Mangel noch vorhanden ist, können Sie ihn unberührt lassen oder ein Bild des aktuellen Zustands hinzufügen oder die Beschreibung ändern usw. Andernfalls, wenn das Problem behoben wurde, ändern Sie den Status in 'Behoben'.

Sie können auch neue Mängel hinzufügen, falls erforderlich.

Zusammenfassung

Mithilfe dieses Leitfadens haben Sie ein solides Verständnis für die effektive Verwaltung von Mängeln in Gebäuden mit dem iCL-System erlangt. Sie verfügen nun über die Werkzeuge und das Wissen, um Mängel zu erstellen und zu verfolgen und sicherzustellen, dass Probleme sofort erkannt, angegangen und behoben werden.

Wir hoffen, dass dieser Leitfaden informativ war und Sie mit den notwendigen Fähigkeiten ausgestattet hat, um Mängel in Zukunft effizient zu verwalten.

Wenn Sie das Gefühl haben, dass Sie verstehen, was Sie hier gelernt haben, und bereit sind, Ihr Wissen zu testen, ändern Sie die Arbeitsmappe zurück, um die Mängel Etage für Etage zu behandeln und die Mängel so zu verwalten.