opsi-script: Konstanten funktionieren nicht mit importLib

mpice-mn
Beiträge: 5
Registriert: 01 Nov 2017, 18:08

opsi-script: Konstanten funktionieren nicht mit importLib

Beitragvon mpice-mn » 03 Nov 2017, 18:16

Habe mir die neuen Befehle zu lokalen Funktionen (seit version 4.12) mal angeschaut. Sieht schon sehr nützlich aus, aber ich habe folgendes Problem gefunden:
Konstanten (z.B. %ScriptPath%) werden nicht aufgelöst wenn die Funktion über importLib eingebunden wird. Wenn die Funktion direkt in der gleichen Datei definiert wird (oder per include_insert eingebunden), klappt es. Hier ein kleiner Testcase:

setup.opsiscript:

Code: Alles auswählen

[Actions]
SetLogLevel = 5
importLib "testFunc_external.opsiscript"

DefFunc testFunc_inline($arg1$: string): string
        comment "testFunc_inline: %ScriptPath%"
EndFunc

comment "Main script: %ScriptPath%"
DefVar $tmp$
Set $tmp$ = testFunc_inline("test")
Set $tmp$ = testFunc_external("test")

testFunc_external.opsiscript:

Code: Alles auswählen

DefFunc testFunc_external($arg1$: string): string
        comment "testFunc_external: %ScriptPath%"
EndFunc

Output (Getestet mit opsi-script Version 4.12.0.7):

Code: Alles auswählen

comment: Main script: \\opsiserver\opsi_workbench\testFunc
comment: testFunc_inline: \\opsiserver\opsi_workbench\testFunc
comment: testFunc_external: %ScriptPath%

Aktuell scheint auch der Returnvalue und mindestens ein Argument Pflicht zu sein (deshalb sind im Code oben auch die unbenutzten $tmp$ und $arg1$ Variablen drin). Würde mir da noch Versionen von DefFunc wünschen, die das optional machen so dass man dann quasi ein Sub mit lokelen Variablen hat.

Gruß,
Martin

Benutzeravatar
d.oertel
Beiträge: 3228
Registriert: 04 Jun 2008, 14:27

Re: opsi-script: Konstanten funktionieren nicht mit importLib

Beitragvon d.oertel » 06 Nov 2017, 18:25

Hi mpice-mn,

das hier:
https://download.uib.de/opsi4.0/experimental/opsi-v407/products/localboot/opsi-winst_4.12.0.8-1.opsi
fixed hoffentlich das Konstanten Problem
Für Rückmeldungen bin ich dankbar.

Den Wunsch nach Proceduren bzw, void functions also ohne Rückgabewert und
den Wunsch das auch keine Argumente erlaubt sind nehme ich als internes Ticket auf.

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org

mpice-mn
Beiträge: 5
Registriert: 01 Nov 2017, 18:08

Re: opsi-script: Konstanten funktionieren nicht mit importLib

Beitragvon mpice-mn » 07 Nov 2017, 11:40

d.oertel hat geschrieben:https://download.uib.de/opsi4.0/experimental/opsi-v407/products/localboot/opsi-winst_4.12.0.8-1.opsi
fixed hoffentlich das Konstanten Problem
Für Rückmeldungen bin ich dankbar.

Damit funktioniert's!

Vielen Dank!
--
Martin