Seite 1 von 1
isFatalError <String> funktioniert sporadisch nicht
Verfasst: 17 Mär 2022, 11:45
von Valentino-46
Hallo zusammen,
wir verwenden neuerdings häufiger die Funktion isFatalError, allerdings mit String Funktion. Leider funktioniert das sporadisch nicht richtig?
Kann es sein, dass nur bestimmte Textlängen erlaubt sind? Gibt es sonst irgendwelche Einschränkungen?!
Code: Alles auswählen
DefVar $FatalErrorText$
set $FatalErrorText$ = "fatal"
if ( $ExitCodeLine$ = "" )
logError "Wenn er das obere Suchwort NICHT findet dann geht er hier rein! - ExitCode: " + $ExitCodeLine$
logError "Diese Java Version wurde nicht sauber installiert!?"
set $FatalErrorText$ = "Java failed"
isFatalError $FatalErrorText$
endif
Wäre über jeden Tipp dankbar. In der Doku finde ich dazu aktuell nichts.
Vielen Fank!
Mit freundlichen Grüßen,
Valentino
Re: isFatalError <String> funktioniert sporadisch nicht
Verfasst: 20 Mär 2022, 11:05
von Jan.Schmidt
Hi,
ich vermute das ist ehr an etwas anderem geschuldet...
probier das mal so herum:
Code: Alles auswählen
DefVar $FatalErrorText$
set $FatalErrorText$ = ""
if ( $ExitCodeLine$ = "" )
logError "Wenn er das obere Suchwort NICHT findet dann geht er hier rein! - ExitCode: " + $ExitCodeLine$
logError "Diese Java Version wurde nicht sauber installiert!?"
set $FatalErrorText$ = "Java failed"
endif
if not ( $FatalErrorText$ = "" )
isFatalError $FatalErrorText$
endif
Re: isFatalError <String> funktioniert sporadisch nicht
Verfasst: 22 Mär 2022, 18:24
von Valentino-46
Hi Jan,
vielen Dank für die Hilfe. Ich habe das jetzt mal umgeschrieben, aber noch nicht ganz verstanden was der Unterschied zu meinem Code ist?
Aktuell trat wieder ein Problem auf, aber er hat den Text nicht geschrieben. In der Log war das:
Code: Alles auswählen
If
ErrorsOccuredSinceMark > 0 <<< result true
Then
Set $FatalErrorText$ = "ErrorsOccuredSinceMark"
The value of the variable "$FatalErrorText$" is now: "ErrorsOccuredSinceMark"
Error level set to fatal
Process aborted
___________________
script finished: failed
1 error
0 warnings
der tatsächliche Code war:
Code: Alles auswählen
if ErrorsOccuredSinceMark > 0
set $FatalErrorText$ = "ErrorsOccuredSinceMark"
isFatalError $FatalErrorText$
endif
Hier sieht man ja, dass der Text definitiv in die Variable geschrieben wurde und sie somit nicht "" leer ist!?
Und danach wurde ja auch isfatalerror aufgerufen!? Verstehe ich irgendwie nicht was ich falsch mache?
Danke nochmal,
Mit freundlichen Grüßen,
Valentino
Re: isFatalError <String> funktioniert sporadisch nicht
Verfasst: 24 Mär 2022, 18:48
von Jan.Schmidt
Verstehe ich irgendwie nicht was ich falsch mache?
ich allerdings auch nicht - aber
vermutlich liegt es daran, dass du
Code: Alles auswählen
Set $FatalErrorText$ = "ErrorsOccuredSinceMark"
isFatalError $FatalErrorText$
das da machst.
Ich weis ehrlich nicht welche
Sprache das ist - das ist irgendeine Abart von ? und ??
Probier halt mal aus, das so zu umbiegen:
Code: Alles auswählen
Set $FatalErrorText$ = "'ErrorsOccuredSinceMark'"
isFatalError $FatalErrorText$
oder so
Code: Alles auswählen
Set $FatalErrorText$ = "ErrorsOccuredSinceMark"
isFatalError "$FatalErrorText$"
ich nutze das auch ziemlich oft, aber nie mit Variablen, sondern in einzelnen
Code: Alles auswählen
if
\snip
/snap
isFatalError "ziemlich langer Text wie z.B Kein Openvpn gefunden" oder "Dienst Schiessmichtod nicht installiert"
endifs
Also immer direkt mit "" - entweder musst du die maskieren siehe Idee #1 oder #2 oder so umbauen, dass du die Variable nicht nutzt, sondern da den Abbruch machst, wo der Fehler "gefunden" wird.
Re: isFatalError <String> funktioniert sporadisch nicht
Verfasst: 25 Mär 2022, 11:47
von Valentino-46
Hi Jan,
vielen Dank für die Rückmeldung. Ich habe auch schon ein wenig mit den Anführungszeichen usw. gespielt.
Mich würde das Thema auch nicht so irritieren, wenn es nicht manchmal funktionieren würde und manchmal eben nicht
Die "Sprache" ist ja eigentlich ganz normale OPSI Script Sprache?
Was ich halt damit bezwecke, dass ich mit Variablen arbeite ist, dass ich viele verschiedene Fehlerprüfungen in den Scripten laufen habe und ganz unten fange ich alle Fehler die ich gefunden habe auf und überlege, welcher Fehler ein fatal bekommt und welcher nicht. Und dann gebe ich den Text der Variable mit, die eben der Auslöser war. So sehe ich sofort und auf anhieb im OPSI-configed, welcher Fehler der Auslöser war.
Da wird auf spezielle Softwarefehler geprüft und die kann ich dann direkt auf einen Blick über den configed auf setup setzen und beheben. Das spart enorm Zeit.
Aber ja irgendwas ist im Busch, dass es manchmal geht und manchmal nicht.
Danke dir aber für deine Geduld!
Grüße Valentino
Re: isFatalError <String> funktioniert sporadisch nicht
Verfasst: 26 Mär 2022, 17:24
von Jan.Schmidt
Valentino-46 hat geschrieben: ↑25 Mär 2022, 11:47
Die "Sprache" ist ja eigentlich ganz normale OPSI Script Sprache?

Jaja ich weiss aber was steckt dahinter?
Genau das ist ja immer die Frage, wenns um so
kleinigkeiten geht.
Am ehesten erinnert mich das ganze an kixtart
angenommen die Sprache kann ansi - dann könnte sowas funktionieren - wenn das denn die Ursache wäre
Code: Alles auswählen
Set $FatalErrorText$ = Chr$(34) + "ErrorsOccuredSinceMark" +Chr$(34)
isFatalError $FatalErrorText$
oder so
Code: Alles auswählen
Set $FatalErrorText$ = "ErrorsOccuredSinceMark"
isFatalError Chr$(34) + $FatalErrorText$ + Chr$(34)
alles ungetestet und ohne Ahnung, ob die " überhaupt der Grund sind...
Re: isFatalError <String> funktioniert sporadisch nicht
Verfasst: 28 Mär 2022, 12:14
von Valentino-46
Hallo nochmal,
um dem ganzen Thema "Variablen" zu entgehen habe ich es nun ohne Variablen gescriptet, ausschließlich mit Texten.
Hier kann ich jetzt folgendes sagen:
Das "sporadisch" könnte damit zusammen hängen, wie das Script ausgeführt wird. Starte ich es "on demand" oder "on demand silent" dann werden die texte angezeigt, startet das Script automatisiert alle 2 stunden, dann glaube ich kommen die texte nicht.
Ein und dasselbe Script übrigens und ich kann es mindestens nachstellen, wieso es mal auf dem Rechner angezeigt wird und mal nicht.
Jetzt ist nur die Frage, wieso es nur bei "on demand" und "on demand silent" die Texte anzeigt.
Das wo es nicht funktioniert ist: event_timer_silentinstall
In den Logs sehe ich übrigens dazu leider nichts auffälliges. Auch den Text sehe ich in den logs nicht, auch nicht bei on demand.
Grüße,
Valentino