einer meiner groessten Wuensche an OPSI (resp. WInst) waere, dass man den Sub-Unterprogrammen Parameter uebergeben koennte. Sub-Sektionen sind dann besonders sinnvoll, wenn sie parametrisierbar sind. Im Moment ist das nur moeglich, indem man die Parameter als globale Variablen deklariert und im Unterprogramm abruft. Das ist fehleranfaellig und fuehrt auch innerhalb des Codes zu schlechter Lesbarkeit. Deshalb waere es toll, wenn man Sub-Unterprogramme aufrufen koennte mit
ich habe das als feature request in unseren internen Bugtracker aufgenommen.
Aber mit niedriger Priorität, da dies erhebliche Arbeiten am Parser erfordert.
das würde in meine Funktion zum überprüfen ob EXCEL läuft den Tastenmasken übergeben und würde in meiner Funktion den schalter setzen das er den Prozess nicht automatisch killen soll.
würde das script ein wenig übersichtlicher machen was variablen angeht.
Der vorteil an include im gegensatz zu einer sub_sektion ist das opsiinc dateien auch direkt im winst unter lib liegen können.
Ich kann also Standardroutinen bauen die ich aus jedem script quasi aufrufen kann.
als Rückgabe würde ich dann die info bekommen ob das Programm läuft oder eben nicht.
prinzipiell ja.
Man muss nur aktuell beachten das include einfach nur den inhalt der opsiinc in das laufendes script läd.
entweder ans ende oder an die stelle wo man den include befehl setzt.
Ich hab mir schon Gedanken gemacht wie man das gut umsetzen kann weil ja quasi Gefahr besteht das man variablen in der (ich nenns einfach mal funktion) hat die auch im script selber vorkommen.
Ich hab mir daher folgendes überlegt:
Variablen in der Funktion nenne ich in etwa so $func_variable$ und variablen die ich vom hauptscript in die Funktion übergebe nenne ich $option_variable$
option_var deklariere ich schon im hauptscript
func_var deklariere ich im opsiinc script.
Dann habe ich quasi das was ich will. Ich kann Optionen in den externen Scriptteil übergeben und bewahre trotz dem die Übersicht im hauptscript.
bezüglich der Einführung von frei definierbaren Funktionen (und das ist es ja letztlich, wenn es sub's mit Übergabe und Rückgabewerten gibt) werde ich mir Gedanken machen. Das wird aber wahrscheinlich ein wenig dauern.
Die include Anweisungen sind der Weg zu 'Globalen Scripten'.
Hier möchte ich auch eine Diskussion lostreten, was in einem zentralen Bibliotheks-Paket so alles drin sein sollte.
Der opsi-winst 4.11.4 an dem ich jetzt anfange zu arbeiten, wird eine Konfigurationsdatei haben, die analog der Konfiguration des opsiclientd über 'Hostparameter' steuerbar ist. Damit haben wir dann das Thema 'Globale Settings' in Arbeit. Weiterer Schwerpunkt ist eine durchgängige Unicode/UTF-8 Unterstützung.
d.oertel hat geschrieben:Hier möchte ich auch eine Diskussion lostreten, was in einem zentralen Bibliotheks-Paket so alles drin sein sollte.
In meiner eigenen Library (deren Funktionen ich per "sub "%SCRIPTPATH%\..\global\MeinSkript.sub" aufrufe), habe ich bisher folgende Funktionen implementiert:
Produktversion eines Files zurueckgeben
Dokumentversion eines Files zurueckgeben
Erzeugung eines spezifischen Submenus im Applikationsmenu
Loeschen dieses Submenus im Applikationsmenu
Das ist zugegebnermassen etwas speziell und auf unsere spezifischen Beduerfnisse zugeschnitten. Die fehlende Parametrisierung der Funktionen simuliere ich mit speziellen Variablen ($_variable).