Scriptbibliotheken
Desigo CC-Skripte können in Skriptbibliotheken gepackt werden, die weitere Vorteile und Sicherheitsfunktionen bieten. So stellen beispielsweise einige Erweiterungen zu Desigo CC Skripte bereit, die in einer Bibliothek verpackt sind. Autorisierte Systemspezialisten können ebenfalls Skriptbibliotheken erstellen.
Bibliotheksskripte können signiert werden, um zu bestätigen, dass sie von einem autorisierten Entwickler bereitgestellt werden. Ferner können sie kopiergeschützt und gehasht werden, um Manipulationen zu verhindern.
Eine Liste der in einer Bibliothek enthaltenen Skripte kann angezeigt werden, indem Sie den Skriptblock der Bibliothek auswählen. Z.B. Projekt > Systemeinstellungen > Bibliotheken > L4-Projekt > [...] > [Script-Bibliothek] > [Scripte-Baustein]. Von hier aus können der Hash und die Signatur der Bibliotheksskripte überprüfen und verschiedene Operationen an den Bibliotheksskripten durchgeführt werden.
Um ein Bibliotheksskript (ob manuell oder automatisch) ausführen zu können, müssen Sie es dennoch in die Applikationssicht importieren, damit es unter Applikationen > Logik > Scripts hinzugefügt wird. Siehe Bibliotheksskripts in das Projekt importieren.
Scriptbibliothek für Headquarter
Wenn Sie die Erweiterung Scripts integrieren, wird dem Projekt die Scriptbibliothek L1-Headquarter hinzugefügt, und System Manager stellt einen Editor bereit, in dem Sie Scripts und Befehle zum Ausführen von Scripts schreiben können. Alle diese Operationen können durchgeführt werden, ohne dass die bereitgestellte Bibliothek geändert werden muss. Und Sie können die Funktion Importieren/Exportieren verwenden, um Skripte zwischen Projekten zu transportieren, ohne auf Bibliotheken angewiesen zu sein.
Für zusätzliche Funktionen und Vorteile kann es jedoch sinnvoll sein, Skripte in einer Bibliothek zusammenzufassen. Dadurch können die Skripte mit allen Versionierungsvorteilen einer Bibliothek transportiert werden. Ferner können Operationen wie Hashing, Signieren oder Objektverknüpfung für die in einer Bibliothek enthaltenen Skripte ausgeführt werden.
Skriptbibliotheken erstellen
Um Skripte in einer Bibliothek zusammenfassen zu können, müssen Sie zunächst in Ihrem gewünschten Bibliothekstyp eine Skriptbibliothek erstellen. Das können Sie entweder manuell oder über den Anpassungsmechanismus tun.

Nur Headquarter-Experten und Kundendienst sind berechtigt, die Scripting-Bibliothek des Typs L1-Headquarter zu ändern.
Abhängig vom Bibliothekstyp, für den sie befugt sind, können Experten Scriptbibliotheken auf der Ebene L2-Region, L3-Land oder L4-Projekt anpassen, erstellen oder bearbeiten. Jede neue Skriptbibliothek, die auf diesen unteren Ebenen erstellt wird, koexistiert mit der Standard-Skriptbibliothek von Headquarter und überschreibt deren Daten nicht.
Arbeitsbereich Script-Editor Workspace [Bibliotheksbaustein]
Wenn Sie den Scripts-Bibliotheksbaustein im System Browser auswählen, z.B. unter Projekt > Systemeinstellungen > Bibliotheken > L4-Projekt > […] > [Script-Bibliothek] > [Scripts-Baustein], können Sie im Register Script-Editor die in dieser Bibliothek enthaltenen Scripts anzeigen und Operationen für sie durchführen. Hier können Sie ausserdem Scripts importieren, um sie dieser Bibliothek hinzuzufügen. Anweisungen hierzu finden Sie unter Skriptbibliotheken konfigurieren.
Expander Scripts
Der Expander Scripts im Register Script-Editor zeigt die in dem ausgewählten Scripts-Bibliotheksbaustein enthaltenen Scripts an.

Jedes Script in der Liste wird durch den Namen, die Beschreibung, die Version und die Angabe, ob das Script signiert ist, einen gültigen Hash hat oder geschützt ist, identifiziert: Hier können Sie Scripts zur Bibliothek hinzufügen oder aus ihr entfernen sowie die Scripts mit einem Hash versehen, die Scripts signieren bzw. die Signatur entfernen oder die Scripts schützen.
Expander Viewer
Der Expander Viewer im Register Script-Editor zeigt den Code des Scripts an, das im Expander Scripts ausgewählt ist.

Expander Verknüpfte Objekte
Wenn ein Bibliotheks-Script bestimmte Systemobjekte erfordert, um korrekt ausgeführt zu werden, können Sie diese Objekte manuell mit dem Script verknüpfen, sodass das System die Präsenz der erforderlichen Objekte im aktuellen Desigo CC-Projekt überprüfen kann. Siehe Objekte mit einem Bibliotheks-Script verknüpfen und Für ein Bibliotheks-Script erforderliche fehlende Objekte erstellen.
Der Expander Verknüpfte Objekte zeigt eine Liste der Systemobjekte an, die mit dem ausgewählten Script verknüpft wurden, sowie eine farbliche Kennzeichnung, ob das Objekt im aktuellen Projekt vorhanden ist.

Vorhanden:
Das erforderliche Objekt ist bereits vorhanden und hat denselben Namen und Typ.Nicht gefunden
oderVorhanden mit falschem Typ
: Das erforderliche Objekt ist nicht vorhanden oder hat einen anderen Typ. Um dieses Problem zu beheben, klicken Sie Erstellen, um das fehlende Objekt zum Desigo CC-Projekt hinzuzufügen.Typ undefiniert:
Der Objekttyp ist nicht definiert. Um dieses Problem zu beheben, importieren Sie die Bibliothek, die den fehlenden Typ definiert.
Wenn ein Script mit einem ungültigen Objekt verknüpft ist, wird der Name des Scripts in der Farbe des kritischsten Fehlers hervorgehoben (z.B. rot, wenn ein verknüpftes Objekt nicht gefunden wird oder sein Typ undefiniert ist).
Skripte können auch virtuelle Objekte erfordern, die zur Interaktion mit Desigo CC verwendet werden. Zum Beispiel ist der Durchschnittswert mehrerer analoger Punkte kein Feldobjekt (daher ist es virtuell), kann aber von anderen Desigo CC-Applikationen verwendet werden (z.B. um den Trend der Wertänderungen zu überprüfen).
Hash eines Bibliotheksskripts
Die .js-Dateien dieser Bibliotheksskripte werden im Dateisystem unter dem entsprechenden Bibliotheksordner gespeichert. Zum Beispiel [Installationslaufwerk]:\[Installationsordner]\[Projektname]\libraries\Global_Scripting_Project_1. Um den spezifischen Speicherort zu finden, überprüfen Sie die Eigenschaft Dateisystempfad im Register Erweiterte Bedienung, wenn Sie den Skriptblock wählen.
Um diese Skripte vor Manipulationen zu schützen, wird beim Import in die Skriptbibliothek ein Hash-Wert berechnet. Wenn die Bibliotheksskriptdatei nachträglich auf der Festplatte geändert wird (z.B. mit einem externen Editor), zeigt der Expander Scripts das Skript im Register Skript-Editor rot an und das Feld Gültige Hash wird auf False
gesetzt.
Wenn Sie sicher sind, dass die Änderungen am Skript zulässig sind, können Sie das Skript entweder in die Bibliothek re-importieren oder Hash klicken, um einen neuen gültigen Hash für das Skript zu berechnen.
Schutz eines Bibliotheksscripts
Zum Schutz des geistigen Eigentums können Skripte in Bibliotheken verschlüsselt geliefert werden, so dass der ursprüngliche Quellcode nicht wiederhergestellt werden kann. Ein geschütztes Skript ist eine Binärdatei, die die ursprüngliche Skriptlogik ohne den Quellcode enthält.
Die Skriptverschlüsselung ist ein unumkehrbarer Prozess. Sobald Sie Schützen klicken, um ein Skript zu verschlüsseln, ist es nicht mehr möglich, den ursprünglichen Quellcode aus dieser Datei wiederherzustellen. Aus diesem Grund müssen Sie folgende Schritte durchführen:
- Erstellen Sie vor dem Schützen eine Sicherungskopie des ursprünglichen Skriptcodes.
Da der Inhalt eines geschützten Skripts für den Menschen nicht lesbar ist, kann es ausserdem schwierig sein, nachträglich festzustellen, was das Skript tut. Es wird daher empfohlen, folgendes zu tun:
- Geben Sie in der ersten Zeile eine klare Beschreibung des Skripts als Kommentar an. Wenn das geschützte Skript in ein Projekt importiert wird, wird dieser Kommentar im Editor angezeigt.
- Unterzeichnen Sie auch das geschützte Skript, damit es einen lesbaren Hinweis darauf gibt, wer der Autor ist.
Die folgenden Fehler können auftreten, wenn Sie versuchen, ein Skript zu schützen:
Diagnosemeldung | Beschreibung |
| Der Schutzvorgang schlägt fehl, weil das Skript Syntaxfehler enthält. Beheben Sie etwaige Fehler und versuchen Sie es dann erneut. |
| Die Sicherungskopie des Originalskripts kann nicht gespeichert werden. Dies kann passieren, wenn der Benutzer über keine Schreibrechte für den Sicherungspfads verfügt. Versuchen Sie es mit einem anderen Ordner. |
| Das geschützte Skript kann nicht gespeichert werden. Dies kann passieren, wenn der Benutzer über keine Schreibrechte für den Bausteinpfad der Skriptbibliothek verfügt. |

Verfügbarkeit des Script-Schutzes
Die Schutzfunktion ist für Windows App Clients nicht verfügbar.
Bibliotheks-Script signieren
Es wird dringend empfohlen, Bibliotheks-Scripte zu signieren:
- Um zu bestätigen, dass Scripts von autorisierten Entwicklern verfasst wurden.
- Um Scripts vor nachträglichen Änderungen oder Manipulationen zu schützen.
Weitere Anweisungen finden Sie im Abschnitt Bibliotheks-Scripte signieren oder Signatur entfernen.
Autorisierte Entwickler erhalten ein Zertifikat (.pfx-Datei - privater Schlüssel) oder eine .cer-Datei (öffentlicher Schlüssel) und verwenden ihren privaten Schlüssel, um das Zertifikat zu signieren.
Wenn ein signiertes Script in das Projekt importiert wird, steht es unter Applikationen > Logik > Scripts zur Ausführung zur Verfügung. Wenn Sie ein signiertes Script auswählen:
- Zeigt im Register Erweiterte Bedienung die Eigenschaft Signiert von den Namen des Scriptautors an.
- Zeigt im Register Script-Editor der Expander Editor den Code des Scripts an. Wenn jedoch der Code des Scripts hier geändert wird, wird die Signatur entfernt.
- Die sekundäre Kopfzeile des Registers Script-Editor zeigt ferner den Namen des Autors und alle Diagnosemeldungen über die Validierung der Signatur des Scripts an, nämlich:
Meldung in der sekundären Kopfzeile |
|
|
|
|
Validierung der Scriptsignatur
Um die Ausführung von Scripts mit nur scheinbar gültiger Signatur zu vermeiden, können zusätzliche Validierungsprüfungen für Scriptsignaturen auf der Ebene der Zertifizierungsstelle aktiviert werden, die die Ausführung von Scripts mit ungültiger Signatur verhindern.
Die Signaturvalidierung kann für jedes Script individuell eingestellt werden. Ferner kann eine Standardeinstellung definiert werden, die diese Validierungsprüfungen auf alle neu erstellten oder importierten Scripts anwendet. Anweisungen hierzu finden Sie unter Script-Signaturen validieren.
Hinweis: Wenn die Signaturvalidierung für ein Script festgelegt ist, wird die Prüfung auch für eingeschlossenen Scripte ausgeführt, die vom Haupt-Script aufgerufen werden.