NWC Services Blog
Verwendung von Variablen aus Hauptpaketen in Job-Scripts
In diesem Artikel möchte ich ein etwas älteres Feature der DSM beschreiben (Bestandteil seit DSM 7.2.1), welches bei der Verwendung von Job-Scripts sehr hilfreich sein kann, jedoch relativ unbekannt ist. Das neu eingeführte Feature wurde zwar in den Release Notes erwähnt und ist auch in der Online-Hilfe dokumentiert, dennoch zeigt die Erfahrung, dass nur wenige DSM-Kunden Kenntnis über die Existenz oder Verwendung haben.
Es handelt sich um die Möglichkeit, in Job-Scripts auf die Werte von Variablen und Installationsparametern von Aufrufpaketen (Main Packages) zugreifen zu können.
Um die Werte von Variablen eines Hauptpakets ermitteln zu können, wurde die DSM Scriptsprache "eScript" um drei neue Variablenzusätze erweitert:
- CallingPackage
- CallingPolicy
- CallingPolicyInstance
Um genau festlegen zu können, aus welchem Paket ein möglicher Wert ausgelesen werden soll, kann die eScript-Variable einfach mit dem Zusatz versehen werden. (z.B. "CallingPackage.Object.Name")
Da es noch den etwas älteren Zusatz „CurrentPackage“ gibt, muss man hier etwas aufpassen welcher Variablenzusatz der richtige für das gewünschte Verhalten ist. „CurrentPackage“ beschreibt an dieser Stelle immer das aktuell ausgeführte Paket, wohingegen „CallingPackage“ für das aufrufende Paket steht.
Analog hierzu kann, wie bereits weiter oben erwähnt, auch eine Policy oder eine Policyinstanz mit „CallingPolicy“ oder „CallingPolicyInstance“ angesprochen werden.
Um die Vorgehensweise etwas zu verdeutlichen, habe ich hier ein kleines Beispiel angefügt, welches sich auf den Variablenzusatz „CallingPackage“ bezieht. In dem Beispiel habe ich ein Hauptpaket mit einem Installationsparameter "Param1" und dem Wert "Wert1".
Nun möchte ich über ein zweites Paket, welches ale Job Policy zugewiesen wird, auf diesen Installationsparameter zugreifen. Dies kann dann wie folgt realisiert werden.
Durch die Verwendung dieses Features wären unter anderem, folgende Anwendungsbeispiele denkbar:
- Aufbau einer eigenen Rebootsteuerung, die Job-basiert eine "Reboot Variable" abfragt und darauf reagieren kann
- Error Handling über Job-Pakete
Besonders zu beachten ist an dieser Stelle, dass bei Verwendung von Software Sets der Zugriff auf CallingPackage-Variablen für Komponenten des Sets nicht funktioniert da es sich bei Software Sets nicht um „normale“ Pakete handelt. Ebenso ist darauf zu achten, dass auch wirklich ein „aufrufendes Paket“ existiert. Gemäß dem Falle, dass kein aufrufendes Paket vorhanden ist, wird sonst ein leerer Wert für die Variable zurückgegeben.
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Kommentare 2
Ich habe die 2014.1 im Einsatz, aber ich kann die hier beschriebenen Variablen nicht finden.
Muss ich noch etwas tun, um diese Variablen benutzen zu können?
Mit freundlichen Grüßen
Thomas Rothe
Hallo Herr Rothe,
die beschriebenen Variablen werden nicht, wie z.B. %ProgramFilesDir% über den Auswahldialog angezeigt. Eine genaue Beschreibung dieser Variablen finden Sie in der DSM Online-Hilfe unter: „Konzept › Infrastruktur › Konfiguration › Variablen › Auflösung von Variablen aus aufrufenden Paketen“ (Allerdings müssen Sie hierfür die aktuelle Online-Hilfe aus dem DSM 2015.1 ISO verwenden.)
Wenn Sie dieses nicht zur Hand haben können Sie mir alternativ auch eine kurze Email mit Ihren Kontaktdaten zukommen lassen. Ich würde Ihnen das Hilfe-File dann per Mail zukommen lassen. (benedikt.gunzelmann [at] nwc-services.de)
Mit freundlichen Grüßen,
Benedikt Gunzelmann