Command Line Argumente

Allgemeine Definitionen:

Ein Command Line Argument beginn immer mit einem Schrägstrich (/). Danach wird der Name der Option angegeben. Die Grossschreibung ist dabei nicht relevant.

Wird im Anschluss nichts mehr angegeben, dann wird die entsprechende Option auf 1 gesetzt. Um die Option auszuschalten kann auch /Option=0 angegeben werden.

Wird im Anschluss ein Gleichzeichen (=) angegeben, dann können entsprechende Optionsdefinitionen angegeben werden. Der Text darf keine "/" enthalten. Muss dieses Zeichen angegeben werden, dann muss der Text zwischen { und } angegeben werden. Werden Anführungszeichen (") angegeben, dann werden diese am Anfang und am Ende des Textes entfernt. Anführungszeichen sind also erlaubt, wenn diese zur Klarheit dienen. Sobald ein "/" ausserhalb von { und } gefunden (also auch zwischen zwei Anführungszeichen), wird angenommen, dass eine neue Option beginnt.

Manche Optionen können mehrfach angegeben werden, dann gelten alle Einträge in der angegebenen Reihenfolge. Andere sind nur einmal anzugeben, wobei bei Mehrfachnennungen einfach der letzte angegebene Eintrag gilt.

Ist eine Datei "command.smt" vorhanden, dann werden die dort auf einer Zeile angegebenen Optionen am Ende angefügt. Sind in dieser Datei mehrere Zeilen vorhanden, dann wird der Benutzer für die Auswahl einer der Zeilen gefragt. Die Argumente werden an die direkt angegebenen Argumente angefügt.

In der Registry können unter Computer\HKEY_CURRENT_USER\Software\Swiss Mains\{AppKey}\Application\Commands (String Value) ebenfalls Argumente definiert werden. Diese werden allen anderen Argumenten vorangestellt.

Es ergibt sich folgende Reihenfolge:

(Registry Argumente) + (Mit dem Programmaufruf angegebene Argumente) + (im command.smt angegebene Argumente)

Für die Erkennung der command.smt Datei, muss der "Start in" Ordner auf das Programmverzeichnis gesetzt sein.

Die Registry Argumente müssen im AppKey 


Argumente für Auswertungsmodul (SSD)

SwitchMehrfachBeschreibung
/Execute=NameJa

Führt beim Start der Software ein Makro mit dem angegebenen Namen aus. Wird eine reine Zahl übergeben und entspricht dies nicht dem Namen eines Makros, dann wird dies als ID des Makros interpretiert und dieses ausgeführt.

Wird diese Option mehrfach angegeben, dann werden die Makros hintereinander in der angegebenen Reihenfolge ausgeführt.

/StopAfterMacroNeinBeendet die Software nach Abschluss aller angegebenen Makros
/OpusServerNeinStartet den Server zur Behandlung von Remote Procedures in Opus
/InterfaceServerNeinStartet den Server zur Behandlung von Schnittstellen per Datenbank (Tabellen SSD_InterfaceRequest und SSD_InterfaceResult).
/InterfaceCheckRepetitionTime=SecondsNein

Zeit in Sekunden, die zwischen den Abfragen, ob neue Anfragen vorhanden sind. Wird dies nicht angegeben, ist die Zeit auf 1 Sekunde eingestellt.

Es ist möglich, einen Fliesskommawert anzugeben, z.B. 0.5.

 /InterfaceProcessGroupJaMakros mit dieser  ProcessGroup werden ausgeführt. Damit lässt sich einschränken, welche Makros überhaupt ausgeführt werden sollen und auch eine Verteilung auf mehrere Server für unterschiedliche Makros erreichen.
/InterfaceProcessWebRequestsNeinGibt an, ob HTTP Requests ausgeführt werden sollen.
/FileSystemWatcher_DirectoryNeinÜberwacht beim Starten den angegebenen Ordner inklusive Unterordner und startet nach FSW Event ein Makro.
/FileSystemWatcher_Execute=NameJaName oder ID des/der auszuführenden Opus Makros.
/FileSystemWatcher_NotifyOn=NameNein

Zu überwachenden Event Typ im Ordner. Auswahl von:

  • Created
  • Changed
  • Deleted
  • Error
  • Renamed
/FileSystemWatcher_Filter=NameNeinDateifilter der zu berwachenden Objekte. Standartwert (alle Dateien): "*.*".


Argumente für Login (SSE)

SwitchMehrfachBeschreibung
/User=UsernameNeinBenutzername
/Password=PasswordNeinPasswort
/PwHashNeinPasswort Hash SHA-256 verschlüsselt. Ab Version 2.2.155
/Domain=DomainNeinDomäne
/DBUser=UsernameNeinBenutzername für Datenbanklogin
/DBPassword=PasswordNeinPasswort für Datenbanklogin
/DBIntegratedSecurityNeinWird dies gesetzt, dann wird der eingeloggte Windows Benutzer für das Datenbanklogin verwendet
/PropagateDBUserNein

Wird dieses Argument angegeben, dann wird direkt versucht, mit dem DB User und DB Password auch in die Software einzuloggen.

/Token=MyTokenNein

Access Token für die Versionsverwaltung (höhere Gewichtung als Wert aus der Datenbank).

Read Berechtigung auf Update Berechtigung wird benütigt.

/InstallerPath=PfadNeinPfad der Installationsdatei *.exe, welche beim Update Check gelöscht wird.

/AutoUpdateTime=dd.MM.yyyy hh:mm

default: /AutoUpdateTime="01.01.2021 03:00"

Nein

Start Zeitpunkt des periodischen Update Checks, dieses Argument ativiert die automaitsche Update Funktion. Ab Version 2.2.51

Damit die Funktion unterbruchsfrei ausgeführt werden kann muss in Windows unter "Control Panel" → "System And Security" → "Security and Maintainance" → "Security" → "User Account Control" → "Change Settings" den Balken auf "Never Notify" gestellt werden!

/AutoUpdateInterval=hhNeinOptional: Interval in Stunden für Update Check, Standartwert ist 24.
/AutoUpdateIntervalUnit=ssNeinErgibt Multipliziert mit AutoUpdateInterval die Zeitdifferenz in Sekunden. Standwartwert ist 3600 (also 1h). 
/RestartOnUpdateCheckNeinStartet SMT School neu bei jedem automatischen Update check. Ab Version 2.2.53.
/AutoUpdateAndCloseNeinBeim Ausführen wird nur der automatische Update Prozess angestossen, ansonsten schliesst sich die Software wieder.
/MonitoringName=xyzNeinName für Erkennung des SMT School Monitoring Checks
/Priority=xyzNeinProzess Priorität in Windows. Mögliche Werte: "Low", "BelowNormal", "Normal", "AboveNormal", "High", "Realtime". Ab Version 2.2.157. 
/SingleInstanceID=xyzNeinIdentifikator für einzigartige Instanz. Werden mehrere SMT Instanzen mit demselben SingleInstanceID Wert gestartet, werden alle neuen Instanzen direkt wieder beendet. Angabe ohne Wert verwendet den AppKey als Identifikator. Ab Version 2.2.209.
/ShowArchiveDataNein

Datensätze, die als archiviert gekennzeichnet sind, sollen ebenfalls geladen werden. Das Archivierungs-Flag ist jeweils das Feld i_Archive auf jeder Tabelle.

Wird dieses Argument nicht angegeben, dann werden nur Datensätze geladen, welche i_Archive gleich NULL haben.


Argumente für CRM Modul (SSR)

SwitchMehrfachBeschreibung
/SurveyServerNeinWird dies gesetzt, dann wird die Software so gestartet, dass jeweils aktuelle Umfragen versendet werden.
/SurveyCheckRepetitionTime=SecondsNeinZeit in Sekunden, die zwischen den Abfragen, ob Umfragen versendet werden sollen. Wird dies nicht angegeben, ist die Zeit auf 10 Sekunden eingestellt.


Argumente für Signage Modul (SSG)

SwitchMehrfachBeschreibung
/SignageScreen=NameNeinWird dies gesetzt, dann wird die Software so gestartet, dass die angegebene Bildschirminformation angezeigt wird.


Argumente für Fakturierungs-Modul und Kassensystem (SSF)

SwitchMehrfachBeschreibung
/StartCheckoutNeinDie Software soll im Kassenmodus gestartet werden.
/LockCheckoutNeinDie Kasse soll geschlossen werden. Es muss sich also zuerst ein Kassier anmelden.


Argumente für Terminal Modul (SST)

SwitchMehrfachBeschreibung
/TerminalNeinTerminaldienst starten.
/TerminalPort=PortNeinNetzwerkport für den Netzwerkdienst für die Anbindung von Terminals.


Argumente für allgemeine Einstellungen (SSX)

SwitchMehrfachBeschreibung
/StopOnErrorNeinBeendet die Software ohne Rückfrage bei einem schweren Fehler
/RestartOnErrorNeinStartet die Software automatisch neu bei einem schweren Fehler
/NoSplashNeinKeine Anzeige des Splash-Fensters während dem Aufstarten
/ConnectionString={connection string}NeinZu verwendender Connection String (anstatt aus der Registry)
/CsHash=hashNeinConnection String Hash. Erstellbar im SMT unter Help, Verschlüsseln/Entschlüsseln. Ab Version 2.2.157
/AppKey=KeyNeinRegistry Key, der für die Einstellungen verwendet werden soll. Dies übersteuert einen eventuellen Eintrag in "config.smt".
/Language=LanguageNeinSpracheinstellung
/SortCode=sortcodeNein

Sortierdefinition

/IniFile=FilenameNeinEinstellungen sollen in dem angegebenen INI File gespeichert werden
/SilentSQLNein

Keine SQL Fehlermeldungen anzeigen. Diese werden einfach übergangen und die Software weiter ausgeführt.

Diese Option neutralisiert die Optionen /StopOnError und /RestartOnError, welche für den Fall eines Datenbankfehlers keinen Effekt mehr haben.

/PlanningPeriodID=IDNeinID der ausgewählten Planungsperiode
/SeminarCenterID=IDNeinID des ausgewählten Standortes
/CompanyID=IDNeinID des ausgewählten Unternehmens
/LanguageID=IDNeinID der ausgewählten Sprache
/HiddenID=IDNein0 = Verborgene Elemente zeigen, 1 = Verborgene Elemente nicht zeigen
/OrgUnitID=IDNeinID der ausgewählten Organisationseinheit
/NoOpusDebuggerNeinEs soll auch im Fehlerfall kein Opus Debugger gestartet werden. Ein Fehlerhafter Opus Code wird dann einfach abgebrochen.
/CommandLineOptions=filenameJa

Hier kann ein Dateiname angegeben werden, aus welchem weitere Command Line Optionen gelesen werden sollen. Die Optionen können dort auf einer oder mehreren Zeilen angegeben werden.

Die aus der Datei gelesenen Optionen werden an diesem Ort eingefügt. So kann, falls die Reihenfolge relevant ist, auch dies berücksichtigt werden.

Falls nur diese angegebene Konfiguration verwendet werden soll, muss der "Start in" Parameter auf den typischerweise übergeordneten Order gesetzt werden.

/StartupDelayNeinEine Zeit in Millisekunden, die gewartet werden soll, bevor die Software effektiv startet. Dies kann z.B. benutzt werden, wenn die Datenbank auf dem selben Computer installiert ist und der entsprechende Dienst eine gewisse Zeit zum Aufstarten benötigt.
/LogAtOpusErrorNeinSchreibt ein Logfile bei jedem Opus Fehler.
/LogOnCloseNeinSchreibt ein Logfile sobald die Applikation ordnungsgemäss beendet wird. 
/FastStartupNein

1 = (Default) Es wird eine schnellere Startvariante gewählt, indem die Toolwindows nicht sofort geladen werden. Geeignet für Services.

0 = Es wird die Startvariante ausgeführt, mit welcher alle Toolwindows am Anfang geladen werden. Gleiche Funktion wie /NoFastStartup

/NoFastStartupNein/FastStartup wird aufgehoben.
/InstallerOptions=optionsNein

Zusätzliche Command Line Argumente für den Aufruf des Installers. Siehe auch die Argumente SSI SMT School Installer.

/WaitCriticalThreadTimeoutNein

Eine Zeit in Sekunden welche angibt wie lange beim Schliessen von SMT School auf kritische Threads maximal gewartet wird. Dieses Argument wird nur berücksichtig wenn SMT School nicht Interactive ist, also z.B. als Dienst gestartet wurde.

Der Standartwert ist 5 Sekunden.


Argumente Web Server (SSX)

SwitchMehrfachBeschreibung
/SSLCreateCSRNeinEs soll ein self signed Certificate (CRT) generiert werden. Dazu müssen auch SSLCountry, SSLProvince, SSLCity, SSLOrganization, SSLHost und SSLCSRFilename angegeben werden
/SSLCountry=countryNeinLand für das SSL Zertifikat
/SSLProvince=provinceNeinProvinz für das SSL Zertifikat
/SSLCity=cityNeinStadt für das SSL Zertifikat
/SSLOrganization=organizationNeinOrganisation für das SSL Zertifikat
/SSLHost=hostNeinHost Name für das SSL Zertifikat
/SSLCSRFilename=filenameNein

Filename des CSR (Certificate Signing Request)

-----BEGIN CERTIFICATE REQUEST-----
MIICnTCCAYUCAQAwWDELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDERMA8GA1UEAwwIKi5z
...
zj5FEaT7SSbETxuq25Xk3gkaFijgKwz2sNHrhqaETqOqSESDSfSd/E4U8FjeS/KP
KA==
-----END CERTIFICATE REQUEST-----

/SSLCRTFilename=filenameNein

Filename der Zertifikatsdatei, typischerweise *.pem. Der Inhalt sieht etwa so aus:

-----BEGIN CERTIFICATE-----
MIIHADCCBeigAwIBAgIUD6KXq4S0JsJkOSajCBa6+s0bQKEwDQYJKoZIhvcNAQEL
BQAwTTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxIzAh
....
3n9ux8E2EcITVqlLZ7Q2wPjkStE90YaIvrc9GF6cfwAzkoq3WaQHeFwhWwMLozWu
0448eIGelx7BiSW42tkgq60d7BU=
-----END CERTIFICATE-----
/SSLCRTChainFilename=filenameNein

Filename der Chain Zertifikatsdatei, Dies wird dann benötigt, wenn entsprechende Root-Zertifikate mitverwendet werden sollen. Eine solche Datei enthält mehrere Zertifikatsdatensätze (siehe /SSLCRTFilename) nacheinander. Die Reihenfolge muss so sein, dass das höhergestellte (Root-)Zertifikat nach dem tiefergestellten Zertifikat aufgeführt wird. Eine solche Datei kann auch als bundle bezeichnet werden.

Filename der Datei für die Chain, typischerweise *.pem. Eine solche Datei sieht etwa so aus:

-----BEGIN CERTIFICATE-----
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
....
lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
+AZxAeKCINT+b72x
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
....
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
pu/xO28QOG8=
-----END CERTIFICATE-----
/SSLRSAFilename=filenameNein

Filename der Datei für den privaten Schlüssel, typischerweise *.pem. Eine solche Datei sieht etwa so aus:

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDEzXmWhZGp0EUI
e5rF3RInn6+hm053sgvbUiGV29qSUx8wlqXrJRabnxcIBINkSblCZPlbLmxUFKhm
.....
ijuAy0xwJvJjr3bHP6f3wLrclO1bQDRHw5e+tIrjRosZdaxM0VqBuD1w8/IsRBZl
K8hH+/v15/q83zchgid4gta6og==
-----END PRIVATE KEY-----
/WebServerNeinWird dies angegeben, startet die Software als Web Server und kann damit Web Service Requests über HTTP beantworten. Dazu muss mindestens auch WebPort angegeben werden.
/SSLNeinSer Web Server soll mit SSL (Secure Sockets Layer) gestartet werden. SSLCRTFilename und SSLRSAFilename können angegeben werden, sonst wird ein Zertifikat über Letsencrypt automatisch ausgestellt.
/WebPort=portNeinPort, auf welchem der Web Server hören soll
/SSLNoCertCheckNeinAutomatische SSL Zertifikatserneuerung beim Programmstart deaktivieren.
/DoWebServiceLoggingNein

Standardmässig werden keine Webservices geloggt. Mit dieser Option werden Abfragen und Antworten in der Tabelle SSD_WebServiceLog gespeichert (mit /SSD/.

Das Logging verlangsamt die Abfragen, weshalb dies nicht grundsätzlich gemacht werden sollte.

Alternativ können Service-Abfragen anstatt mit /SSD/ mit /SSDN/ oder /SSDL/ aufgerufen werden. Die Abfragen mit SSDN werden nie geloggt, Abfragen mit /SSDL/ werden immer geloggt. So kann selektiv beim Aufruf entschieden werden, ob ein Logging notwendig ist oder nicht.


Argumente für Source Verwaltung

SwitchMehrfachBeschreibung
/Repository=RNein

Basisverzeichnis für das Repository von Opus Code und Reports. Typischerweise wird dies innerhalb eines git-Reositorys sein.

Wird dieses Argument angegeben, dann werden Änderungen in einer Verzeichnisstruktur abgelegt und nicht in der Datenbank. Beim Ausführen von Reports wird ebenfalls auf die Verzeichnisstruktur zugegriffen. So ist es möglich, dass pro User (typischerweise für technisches Personal) unterschiedliche Versionen ausgeführt werden.

Dies betrifft die Module SSD (Reporting) und SSN (Qualifikation)

Es ist darauf zu achten, dass zum gegebenen Zeitpunkt die Live Version wieder in die Datenbank übernommen wird.


Argumente für SMT School Online Syncher (SPO)

SwitchMehrfachBeschreibung
/AutoStartTime=nnNeinStartet die erste Synchronisation automatisch nach dieser Anzahl Sekunden
/RepeatTime=nnNeinWiederholt die Synchronisation nach dieser Anzahl Minuten
/SynchDocsHour=nnNeinDie Synchronisatino von Dokumenten wird zu dieser Stunde gemacht
/DoRepeatNeinDie Synchronisation soll nicht einmalig sondern wiederholt gemacht werden
/SynchDocsNeinSynchronisation von Dokumenten soll gemacht werden
/DoSingleNeinDie Synchronisation soll nur einmal gemacht werden, danach stoppt das Programm
/SourceConnectionString=ttNeinConnection String der Source Datenbank
/DestinationConnectionString=ttNeinConnection String der Zieldatenbank
/SynchName=ttNeinName im Titel des Synchronisationsfensters
/SOANeinDaten für Absenzen werden synchronisiert
/SOKNeinDaten für Kompetenzen werden synchronisiert
/SOFNein

Daten für Lohnfreigaben werden synchronisiert

/SODNeinDatensatzdokumente werde synchronisiert
/RSOANeinAbsenzendaten werden zurückgelesen
/OldDBNeinDie Source-Datenbank ist eine ältere Version (wird in einem zukünftigen Release nicht mehr unterstützt)
/FTPUrlNeinFTP Server für Dokumente
/FTPUserNameNeinBenutzername für FTP
/FTPPasswordNeinPasswort für FTP
/FTPFolderNeinVerzeichnis für FTP

/SynchStringField={Table,IDField,Field}

Ja

Die angegebenen Felder in den angegebenen Tabellen werden synchronisiert (es muss immer jeweils drei Komma-getrennte Werte geben):

  • Table = Tabellenname
  • IDField = Name des ID Feldes (dieses muss numerisch und eindeutig sein)
  • Field = Name des String Feldes, welches synchronisiert werden soll

/SynchIntField={Table,IDField,Field}

Ja

Die angegebenen Felder in den angegebenen Tabellen werden synchronisiert (es muss immer jeweils drei Komma-getrennte Werte geben):

  • Table = Tabellenname
  • IDField = Name des ID Feldes (dieses muss numerisch und eindeutig sein)
  • Field = Name des Integer Feldes, welches synchronisiert werden soll


Benutzerdefinierte Optionen

Es ist möglich, weitere Optionen anzugeben, welche oben nicht definiert sind. Alle Optionen können mit den Funktionen GetCommandLineArgument (Opus Funktion) und GetCommandLineArgumentList (Opus Funktion) abgerufen werden.


Automatisch definierte Werte

Es sind folgende Standardwerte verfügbar, welche mt Opus abgefragt werden können:

SwitchMehrfachBeschreibung
ApplicationFileNameNeinName der Applikationsdatei
ApplicationPathNeinPfad der Applikationsdatei
ApplicationArgumentsNeinVollständiger String der beim Aufruf der Applikation angegebenen Argumente. Allfällige weitere Argumente, welche von Dateien oder anderen Quellen geholt wurden, sind hier nicht dabei.
ExecutionDirectoryNeinStandardpfad für die Ausführung der Applikation. Dies wird typischerweise mit der Angabe von "Ausführen in..." in Links angegeben.


SSI SMT School Installer

Command Line Argumente welche dem SSI_Installer mitgegeben werden können, diese sind mit ' -' voneinander getrennt damit sie sich von den SMT School Argumenten unterscheiden:

SwitchMehrfachBeschreibung
-Token=tokenNeinAccess Token für die Versionsverwaltung. Wenn dieser ungültig oder nicht vorhanden ist, öffnet sich ein Fenster zur manuellen Eingabe des Tokens.
-DownloadDirectory=filenameNeinVollständiger Pfad wohin die Software heruntergeladen werden soll.
-InstallationDirectory=filenameNein

Vollständiger Pfad wohin die Software installiert werden soll.

Backups werden dabei in Zip Dateien im Installationsordner abgelegt. Existiert parallel ein Ordner mit dem Namen <InstallationsOrdnerName>_Backups, werden die Backups dort hin geschrieben.

Dies soll beispielsweise bei Softwareverteilungen gemacht werden, wo Instalaltionsordner möglichst kompakt gehalten werden müssen.

-SMTSchoolArguments=argumentsNeinAlle SMT School Command line Argumente welche beim anschiessenden Programmstart von SMT School übergeben werden.
-Autostart=1NeinAutomatischer Start des Installers beim Ausführen. Es wird 10 Sekunden gewartet um ein manuelles Abbrechen zu ermöglichen.
-Startmenu=1NeinStartmenu Verknüpfung aktivieren.
-Desktop=1NeinDesktop Verknüpfung erstellen.
-RunAfterInstall=0NeinSoftware nach erfolgreicher Installation nicht ausführen.
-ConfirmInstall=1NeinSoftware Installation nach dem Herunterladen manuell bestätigen.
-Uninstall=1NeinProgramm deinstallieren
-SkipRedist=1NeinDie Überprüfung der C++ Redistributable Version nicht durchführen. (nicht empfohlen).
-DisableUAC=1NeinWindows UAC Warnung deaktivieren.
-Close=1NeinInstaller nach nach Abschluss schliessen.
-Silent=1NeinInstallation im Hintergrund, ohne Fenster durchführen. Die Parameter Autostart, Close, SkipDelay werden dabei aktiviert.
-SkipDelay=1NeinVerzögerung bei automatischer Installation deaktivieren.
-SkipSymbols=1NeinDas Laden von Microsoft pdb Symbolen für Error Handling überspringen.
-InstallWacs=1NeinSSL win-acme client installieren.
-Failsafe=1NeinScheduled Task für Automatischer Start falls gecrashed einrichten. Setzt voraus, dass command.smt angezogen wird und crash-autostart.ps1 im Installationsverzeichnis liegt.