Wunsch: Parameter fuer Sub-Unterprogramme

Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von embl-structures »

Hallo,

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

Code: Alles auswählen

sub_MeineFunktion /parameter1 /parameter2
frank
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von d.oertel »

Hi,

ich habe das als feature request in unseren internen Bugtracker aufgenommen.
Aber mit niedriger Priorität, da dies erhebliche Arbeiten am Parser erfordert.

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Benutzeravatar
tobias
Beiträge: 1291
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von tobias »

vor allem nun mit der im testing winst integrierten möglichkeit scripte zu includen wären parameter & rückgabewerte richtig toll :D
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von embl-structures »

tobias hat geschrieben:vor allem nun mit der im testing winst integrierten möglichkeit scripte zu includen [...]
Meinst Du damit "sub irgendwas.sub"? Dieses Feature gibt es doch schon lange?

frank
Benutzeravatar
tobias
Beiträge: 1291
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von tobias »

nein quasi als externe funktion parameter übergeben zum bleistift:

include_checktask /program:EXCEL.EXE /KILLTASK:false

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.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von d.oertel »

@embl-structures

hier beschrieben:
http://download.uib.de/opsi4.0/testing/ ... tes-de.pdf

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von embl-structures »

d.oertel hat geschrieben: hier beschrieben: http://download.uib.de/opsi4.0/testing/ ... tes-de.pdf
Super! Ist das die offizielle Antwort auf viewtopic.php?f=7&t=3579 ("Globale Skripte/Settings?")?

/ft.
Benutzeravatar
tobias
Beiträge: 1291
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von tobias »

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.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von d.oertel »

Hi,

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.

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Wunsch: Parameter fuer Sub-Unterprogramme

Beitrag von embl-structures »

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).

ft.
Antworten