im Zusammenhang mit der neuen Funktionen mit lokalen Variablen bin ich gestern auf ein Problem gestoßen.
Ein mehrfaches Aufrufen der Funktionen ist nicht möglich, wenn innerhalb der Funktion Variablen definiert (DefVar) werden.
Ein zweiter Aufruf ist dann nicht mehr möglich, da die Variablennamen dann doppelt sind.
Beispiel des Hauptscripts
Code: Alles auswählen
encoding=UTF-8
[Actions]
AutoActivityDisplay = true
DefVar $act_reboot_counter$
DefVar $max_reboot_counter$
DefVar $exit1$
DefVar $exit2$
Set $act_reboot_counter$ = "0"
Set $max_reboot_counter$ = GetProductProperty("max_reboot_counter", "15")
; --- Workflow ---
; Import Libraries
importLib "function-global.opsiscript"
; Prüfe Exitcode
set $exit1$ = function-exitcode_check($act_reboot_counter$,$max_reboot_counter$)
...
set $exit2$ = function-exitcode_check($act_reboot_counter$,$max_reboot_counter$)
Code: Alles auswählen
DefFunc function-exitcode_check(ref $act_reboot_counter$ : string, $max_reboot_counter$ : string) : string
DefVar $exitcode$
set $exitcode$ = "0"
Message "Teste Erfolg der Installation via exitcode ..."
; --- Workflow ---
set $exitcode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
Switch $exitcode$
...
endfunc
Versionen:
opsi Server = 4.0.7.45
opsi-client-agent = 4.0.7.23-4
opsi-winst = 4.12.0.7-1
Viele Grüße
Leonardo