Einführung
Skripte im iCL Designer bieten eine Vielzahl von Möglichkeiten, Inhalte voneinander abhängig zu machen und miteinander zu verknüpfen.
Sie sind in der Lage, die Sichtbarkeit zu ändern, Berechnungen durchzuführen oder Fragen und Antworten zu erweitern.
Gleichzeitig sind Skripte sehr zugänglich, da Sie keine Programmierkenntnisse haben müssen, um sie zu verwenden. Dies wird durch die Verwendung von Blockly erreicht, einem Editor, mit dem Sie Skripte definieren können, ähnlich wie beim Zusammensetzen eines Puzzles.
Wann werden Skripte verwendet?
Es gibt eine breite Palette von Anwendungsfällen für Blockly-Skripte. Sie werden häufig verwendet, um dynamische Antworten zu erstellen oder um die Sichtbarkeit bestimmter Arbeitsmappenbereiche auf der Grundlage von Eingaben zu ändern.
Ein weiteres Einsatzgebiet für Skripte sind Inhaltselemente, die Daten aus früheren Prüfungen erhalten sowie bestehende Daten aktualisieren oder neue Datensätze erstellen können.
Skripte werden auch verwendet, um Daten oder Listen einzuschränken, zu filtern oder zu sortieren, Berechnungen durchzuführen oder Datums- und Zeitwerte für die Arbeit bereitzustellen.
Blockly Skript UI
Alle Skripte werden in einem separaten Fenster erstellt - dem Blockly-Editor. Standardmäßig befindet er sich am unteren Rand der Benutzeroberfläche.
Sie können den Blockly-Editor im Eigenschaftsfenster bei jedem Puzzle-Icon durch Anklicken aufrufen.
Nun kann ein Skript erstellt werden
- mit einem der bereitgestellten BlöckeThe fallback content to display on prerendering
- oder den Wert eines anderen Feldes durch Ziehen und Ablegen dieses Feldes in den Blockly-Designer verwendenThe fallback content to display on prerendering
Der Unterschied ist der folgende: Wenn Sie nur einen konstanten Wert in Ihrem Skript verwenden, wie im ersten Fall (1), wird dieses Skript einmal ausgewertet (wenn das Feld, zu dem es gehört, erstellt wird). Danach wird es sich nicht mehr ändern. Daher erzeugt das erste Skript einen Standardwert, den der Benutzer später überschreiben kann.
Wenn Sie jedoch den Wert eines anderen Feldes in Ihrem Skript verwenden, wie in Fall (2), ist Ihr Skript jetzt von diesem Feld abhängig. Das bedeutet, dass Ihr Skript jedes Mal, wenn sich diese anderen Felder ändern (z. B. weil der Benutzer einen anderen Wert eingibt), neu ausgewertet wird.
Beim Erstellen eines neuen Skripts wird der Editor rot umrandet, was darauf hinweist, dass dem Skript etwas fehlt oder es unverbundene Elemente im Skriptbereich hat. Dies wird beim Erstellen oder Ändern von Skripten häufig vorkommen. Solange ein roter Rand vorhanden ist, funktioniert das Skript nicht und kann daher nicht gespeichert werden.
Sie können den Editor jederzeit schließen, indem Sie auf das X oben rechts im Fenster klicken. Wenn beim Schließen des Blockly-Fensters immer noch ein Skript-Fehler auftritt, erscheint eine Abfrage, ob Sie das Fenster schließen wollen und die aktuellen ungespeicherten Änderungen dieses Skripts verloren gehen.
Blockly Fenster andocken
Sie können die Position des Blockly-Editors ändern, indem Sie eine Drag&Drop-Aktion auf seiner farbigen Überschrift durchführen. In den Ecken und in der Mitte erscheinen mehrere Pfeile, die Sie ansteuern können, indem Sie das Fenster über den Pfeil halten. Das Fenster wird dann im angegebenen grauen Bereich positioniert.
Die neue Fensterposition wird nach dem Schließen der Arbeitsmappe nicht gespeichert.
Skriptbare Eigenschaften
Sie finden den Blockly-Editor an den folgenden Stellen:
Eigenschaft | Verwendbar bei | Zulässige Ausgabe | Zweck |
---|---|---|---|
Titel | Arbeitsmappe / Checkliste / Kapitel / Überschrift / Feld | Text, Zahl | Ändert den Titel dieses Knotens. |
Obligatorisches | Feld | Boolean | Wenn die Ausgabe true ist, wird dieses Feld obligatorisch. Mit False wird der Pflichtstatus deaktiviert. |
Existiert | Kapitel / Überschrift / Feld | Boolean | Wenn die Ausgabe True ist, existiert das Feld im iCL Filler. Wenn es nicht existiert, werden alle zugehörigen Skripte und Folgefelder als nicht existent behandelt. |
Versteckt | Kapitel / Überschrift / Feld | Boolean | Wenn die Ausgabe true ist, können Sie dieses Feld nicht sehen, aber der iCL Filler kann trotzdem auf seine Daten und Werte zugreifen. |
Nur lesen | Wenn die Ausgabe true ist, befindet sich das Feld in einem schreibgeschützten Zustand, in dem keine Änderungen vorgenommen werden können. Seien Sie vorsichtig, wenn Sie obligatorische und schreibgeschützte Parameter mischen. | ||
Geskriptete Antwort | Feld | Text Zahl Datum Zeit | Dieses Skript setzt automatisch die Antwort des Feldes mit oder ohne eine Bedingung/Relation. |
Minimum/Maximum | Kapitel / Überschrift | Zahl | Ändert das minimale und maximale Vorkommen dieses Knotens. |
Abfrage | Kapitel / Überschrift / Feld (Datenbindung) | - | Erzeugt eine Verbindung zwischen zwei Inhaltstypen basierend auf einem übereinstimmenden Eintrag. |
Ordnen nach | Kapitel / Überschrift | - | Ändert die Reihenfolge dieses wiederholten Abschnitts. |
Filter | Inhaltstyp / Feld (Inhaltselement) | - | Setzt einen Filter für die geladenen Inhaltselemente dieses Feldes, um Daten einzuschränken/begrenzen/zu filtern. |
Zuordnung | Feld (Inhaltselement) | abhängig vom Zuordnungstyp | Eine Zuordnung speichert Daten zum Hinzufügen/Ändern von Inhaltselementdaten für Inhaltstypen. |
Liste | Feld (Datenbindung) | Liste | liefert Antworten basierend auf einer Liste von Daten |
Um ein Verständnis dafür zu bekommen, wann und warum solche Skripte ausgewertet werden, siehe hier.
Verfügbare Blöcke
Textblöcke
Block | Funktion | Erlaubte Typen | |
---|---|---|---|
Erlaubt übersetzbare und nicht übersetzbare Eingaben | Text, Zahlen, Sonderzeichen | ||
Verbindet mehrere Anzeigeelemente miteinander. | Alle | ||
Gibt true zurück, wenn die beiden Texte gleich sind, sonst false. | Text | ||
Gibt ein Zeilenumbruchszeichen zurück. | - | ||
Gibt eine Kopie des Textes zurück, bei der die Leerzeichen an einem oder beiden Enden entfernt wurden. | Text | ||
Zeigt den angehängten Text in Groß-/Kleinschreibung oder als Titel an. | Text | ||
Gibt die Position des ersten/letzten Vorkommens des ersten Textes im zweiten Text zurück. Gibt 0 zurück, wenn der Text nicht gefunden wird. | |||
Gibt den Buchstaben an der angegebenen Position zurück. #1 ist die erste Position. | Erste Eingabe: Text, Zweite Eingabe: Zahl | ||
Gibt einen bestimmten Teil des Textes zurück. | Erste Eingabe: Text, Zweite und dritte Eingabe: Zahl |
Mathe-Blöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Ermöglicht die Eingabe von Zahlen. | Nummer | |
Erzeugt eine Zahl aus Text. | Text | |
Ermöglicht mathematische Berechnungen - Summe, Minimal- und Maximalwert, Durchschnitt. | Zahl, Zahlenfelder | |
Vergleicht zwei Zahlen miteinander. | Zahl | |
Ermöglicht grundlegende mathematische Berechnungen. | Zahl, Zahlenfelder | |
Ermöglicht Rundungen - kaufmännisch, aufwärts, abwärts. | Zahl, Zahlenfelder | |
Ermöglicht das Runden mit definierten Dezimalstellen - kaufmännisch, aufwärts, abwärts. | Zahl, Zahlenfelder | |
Berechnet die Wurzel aus einer Zahl. | Zahl | |
Berechnet den Rest einer Division. | Zahl | |
Gibt eine Zufallszahl zwischen -2.147.483.648 und 2.147.483.648 zurück. | ||
Gibt eine Zufallszahl zwischen dem angegebenen Mindest- und Höchstwert zurück. Die untere Grenze ist inklusiv, während der Höchstwert exklusiv ist. Das bedeutet zum Beispiel: Wenn Sie ein Mindestwert von 0 und ein Höchstwert von 3 angeben, sind die möglichen Werte: 0,1,2 (3 ist also nicht Teil der Ergebnismenge). | Zahl, Zahlenfelder | |
Gibt ein Array mit der angegebenen Anzahl eindeutiger/nicht eindeutiger Zufallszahlen zwischen dem angegebenen Mindest- und Höchstwert zurück. Die untere Grenze ist inklusiv, während die obere Grenze exklusiv ist. Das bedeutet zum Beispiel: Wenn Sie ein Mindestwert von 2 und ein Höchstwert von 5 angeben, sind die möglichen Werte: 2,3,4 (5 ist also nicht Teil der Ergebnismenge). | Zahl, Zahlenfelder |
Datum & Zeit Blöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Gibt das aktuelle Datum des Gerätes zurück. | Datetime | |
Ein Datumsfeld, das sich aus den einzelnen Datumskomponenten zusammensetzt. | Number | |
Hängt eine bestimmte Anzahl von Tagen/Monaten/Jahren an ein Datum an. | Erste Eingabe: Zahl, Zweite Eingabe: Datum | |
Gibt entweder das Jahr, den Monat, den Tag oder den Wochentag als Zahl zurück. | Datum | |
Vergleicht zwei Datumsfelder und gibt einen booleschen Wert zurück. | Date | |
Gibt den angegebenen Text als formatiertes Datum zurück. | Text | |
Gibt den angegebenen Text als benutzerdefiniert formatiertes Datum zurück. | Erste Eingabe: Text, Zweite Eingabe: Text | |
Berechnet die Dauer zwischen zwei Zeitpunkten. | Timepicker |
Wenn Sie ein Textfeld als Eingabe für einen Datumsblock/ein Datumsfeld verwenden müssen, wird der Text als gültiges Datum interpretiert, wenn er eines der folgenden Datumsformate verwendet:
MM/tt/jjjj HH:mm:ss
MM/tt/jjjj HH:mm
MM/tt/jjjj
jjjj-MM-ddTHH:mm:ssZ
Das letzte Format ist ein internationaler Standard namens "ISO 8601", der auch in der REST-Schnittstelle des iCL Portals verwendet wird.
Logische Blöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Ein Verzweigungsoperator, um verschiedene Fälle logisch abzudecken. | Erste Eingabe: boolesch, zweite und dritte Eingabe: alle | |
Ein Verzweigungsoperator, um verschiedene Fälle logisch abzudecken. Ermöglicht das Hinzufügen zusätzlicher else-if-Verzweigungen. | Erste Eingabe: boolean, zweite und dritte Eingabe: all | |
Ein logischer Wahrheitsoperator für wahr und falsch. | - | |
Ermöglicht mathematische Vergleiche. | Boolean | |
Negiert eine folgende logische Aussage. | Boolean | |
Gibt den Wert null zurück. | - | |
Wenn das Ergebnis des ersten Blocks ein Fehler ist, wird der Wert des zweiten Blocks zurückgegeben, ansonsten das Ergebnis des ersten Blocks | any |
Listet Blöcke auf
Block | Funktion | Erlaubte Typen |
---|---|---|
Filtert in einer Liste nach bestimmten Kriterien. | List | |
Erzeugt eine Liste mit 1 Eintrag, kann erweitert werden. | All | |
Erzeugt eine Liste mit 3 Einträgen, kann reduziert/erweitert werden. | All | |
Filtert die angegebene Liste mit Hilfe des angegebenen logischen Blocks, wobei der logische Block für jedes einzelne Element der Liste verwendet wird. | Erste Eingabe: Liste, Zweite Eingabe: boolean | |
Gibt die Länge einer Liste zurück. | List | |
Nimmt eine Liste oder einen einzelnen Wert. Wenn es sich um einen einzelnen Wert handelt, wird er in eine Liste eingeschlossen. Handelt es sich um eine Liste, die Listen enthält, werden diese entfernt und stattdessen deren Elemente in die Hauptliste verschoben. | ||
Wenn es mit text from list verwendet wird, nimmt es eine Liste und fügt sie mit dem angegebenen Begrenzer zusammen. Wenn es mit list from text verwendet wird, nimmt es einen Text und teilt ihn mit dem angegebenen Begrenzungszeichen auf. | ||
vertauscht die Elemente der angegebenen Liste. | List | |
Gibt eindeutige Elemente der gegebenen Liste zurück. | List | |
Sortiert die Elemente der angegebenen Liste aufsteigend/absteigend. | List | |
Sortiert die Elemente der angegebenen Liste aufsteigend/absteigend nach einem angegebenen Ausdruck. | Erste Eingabe: Liste, Zweite Eingabe: Text, Zahl, boolesch, Datum | |
Prüft, ob irgendein/jedes Element in der Liste den angegebenen booleschen Ausdruck erfüllt. Erste Eingabe: Liste, Zweite Eingabe: boolescher Ausdruck. | ||
Erzeugt eine neue Liste mit den Ergebnissen der Ausführung des angegebenen Ausdrucks auf jedes Element in der angegebenen Liste. | Erste Eingabe: list, Zweite Eingabe: all |
Checkliste Feldblöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Vergleicht zwei Werte miteinander. Beachten Sie, dass Sie hier nicht mit Zahlen vergleichen können. Verwenden Sie für den Vergleich einen Text-Block im 'create list with'-Teil oder wechseln Sie zu Mathe-Blöcken, wenn Sie zwei Zahlen vergleichen. | ||
Prüft, ob ein Feld einen Wert oder gar keinen Wert hat. | Fields | |
Ermöglicht das Auflösen aller Eingabefelder, die dem angegebenen Muster entsprechen. Sie können damit alle Eingabefelder auflösen oder nur bestimmte Arten von Eingabefeldern erhalten, z.B. alle Textfelder, alle Zahlenfelder, etc. | - | |
Ermöglicht die Auflösung aller Optionsfelder, die dem angegebenen Muster entsprechen. Sie können damit alle Optionsfelder auflösen oder nur bestimmte Typen von Optionsfeldern erhalten, z.B. alle Checkbox-Felder, alle Dropdown-Felder, usw. | - |
Benutzereigenschaften Blöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Zeigt die ID des angemeldeten Benutzers an. | - | |
Zeigt den Benutzernamen des angemeldeten Benutzers an. | - | |
Zeigt den Vornamen des angemeldeten Benutzers an. | - | |
Zeigt den Nachnamen des angemeldeten Benutzers an. | - | |
Zeigt die E-Mail-Adresse des angemeldeten Benutzers an. | - |
Formatierungsblöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Gibt das angegebene Datum als formatierten Text zurück. Bietet eine Dropdown-Liste, um das gewünschte Format auszuwählen. | Datum | |
Gibt die angegebene Zeit als formatierten Text zurück. Bietet eine Dropdown-Liste zur Auswahl des gewünschten Formats. | Timepicker | |
Gibt die angegebene Zahl als formatierten Text zurück. Bietet eine Dropdown-Liste zur Auswahl des gewünschten Formats. | Nummer | |
Gibt das angegebene Objekt (kann eine Zahl/ein Datum/etc. sein) als formatierten Text unter Verwendung des angegebenen Formatstrings zurück. Sie können mehr über Formatstrings in Microsoft Docs oder in unserer Dokumentation nachlesen. | Alle |
Aufgabenblöcke
Block | Funktion | Erlaubte Typen |
---|---|---|
Ermöglicht es, bestimmte Eigenschaften der task der Inspektion zu erhalten. Eigenschaften: Externe ID, Titel, Prüfer, geprüfte(s) Objekt(e), Beschreibung, Start- und Fälligkeitsdatum. | - | |
Gibt true zurück, wenn die Inspektion mit einer Aufgabe gestartet wurde, false sonst. | - |
Inspektionsblöcke
Block | Function | Allowed Types |
---|---|---|
Gibt die Informationen von der laufenden Inspektion an. Eigenschaften: Sprache. | - |