Seite 1 von 1

Lokale Variablen mit mehrfachem Aufruf

Verfasst: 22 Nov 2017, 09:36
von leonardo
Hallo zusammen,

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$)
Beispiel der aufgerufenen Funktion

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
Selbstverständlich kann ich das Problem "umgehen", indem ich die Variable $exitcode$ im Hauptscript definiere und nicht in der Funktion. Aber es wäre viel schöner, wenn o.g. Beispiel funktionieren würde :)

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

Re: Lokale Variablen mit mehrfachem Aufruf

Verfasst: 04 Dez 2017, 12:40
von d.oertel
Hallo leonardo,

vielen Dank für den Bug Report.
Ich war in Urlaub und habe mir jetzt dazu ein internes Ticket aufgemacht.
Ich gehe mal davon aus, das es in den nächsten 2 Wochen eine Fix gibt .....

Ich melde mich dann.

gruß
d.oertel

Re: Lokale Variablen mit mehrfachem Aufruf

Verfasst: 08 Dez 2017, 12:25
von d.oertel
Hi,

hier ist der Fix:
https://download.uib.de/opsi4.0/experim ... .10-1.opsi

gruß
d.oertel

Re: Lokale Variablen mit mehrfachem Aufruf

Verfasst: 09 Dez 2017, 22:47
von leonardo
Hi,

vielen Dank für den schnellen Fix (das waren die schnellsten 2 Wochen in meinem Leben :D ).
Funktioniert jetzt wie gewünscht.

Viele Grüße
Leonardo