IOSetAccessName (Funktion)
- Last UpdatedSep 14, 2023
- 2 minute read
Mit der Skriptfunktion IOSetAccessName() können Sie Zugriffsnamen zur Laufzeit umleiten. IOSetAccessName() ändert den Projekt- oder Topic-Namen des Zugriffsnamens einer E/A-Variable während der Laufzeit.
Hinweis: Wenn IOSetAccessName() ausgeführt wird, kommt es zu einer Verzögerung, da die bestehende Kommunikationsverbindung beendet und die neue gestartet wird. Alle während dieser Verarbeitungszeit unternommenen Schreibversuche in das neue Topic gehen verloren.
Kategorie
Sonstige
Syntax
IOSetAccessName("Zugriffsname", "Rechnername", "Anwendungsname", "TopicName");
Argumente
Zugriffsname
Der Zugriffsname, dem die neuen Werte für den Anwendungs- und Topic-Namen zugewiesen werden sollen. Zeichenfolgenkonstante oder Meldungsvariable.
Rechnername
Der neu zuzuweisende Rechnername. Zeichenfolgenkonstante oder Meldungsvariable.
Anwendungsname
Der neu zuzuweisende Anwendungsname. Zeichenfolgenkonstante oder Meldungsvariable.
Topic
Der neu zuzuweisende Topic-Name. Zeichenfolgenkonstante oder Meldungsvariable.
Anmerkungen
Sie können die Argumente als Zeichenfolgenwerte, Meldungsvariablen oder Zeichenfolgenausdrücke angeben.
Die Sekundärquelle eines Zugriffsnamens kann mit der Funktion IOSetAccessName() nicht umgeleitet werden. Es werden immer die Angaben verwendet, die Sie in der Failover-Konfiguration im Dialogfeld Zugriffsname hinzufügen eingerichtet haben.
Hinweis: Wenn Sie einen SuiteLink-Zugriffsnamen erstellen, verhindert InTouch durch eine entsprechende Prüfung, dass Sie zwei Zugriffsnamen mit identischen Angaben für Knoten, Anwendung und Topic anlegen. Achten Sie bei der Verwendung der Funktion IOSetAccessName() zum Umleiten von Zugriffsnamen zur Laufzeit ebenfalls darauf, dass keine solche Situation entsteht. IOSetAccessName() führt keine diesbezügliche Prüfung durch, sodass der Fehler nicht abgefangen wird. Der solchermaßen umgeleitete Zugriffsname funktioniert jedoch nicht ordnungsgemäß.
Beispiele
Die folgende Anweisung stellt den Zugriffsnamen MeinZN1 auf den Anwendungsnamen excel und den Topic-Namen [Mappe1]Tabelle1 um. Der Rechnername bleibt unverändert.
IOSetAccessName("MeinZN1", "", "excel", "[Mappe1]Tabelle1");
Wird eine leere Zeichenkette als Topic übergeben, so wird das aktuelle Topic des Zugriffsnamens beibehalten und nur der Anwendungsname aktualisiert.
Die folgende Anweisung ändert beispielsweise den Anwendungsnamen für den Zugriffsnamen MeinZN2 auf „excel“, ohne dass dies sich auf den aktuellen Topic-Wert auswirkt:
IOSetAccessName("MeinZN2", "", "excel", "");
Entsprechend wird bei Angabe einer leeren Zeichenfolge nur für den Anwendungsnamen der aktuelle Anwendungsname des Zugriffsnamens beibehalten und der Topic-Wert aktualisiert. Die folgende Anweisung ändert beispielsweise das Topic für den Zugriffsnamen MeinZN3 auf [Mappe2]Tabelle1, ohne dass sich dies auf den aktuellen Wert des Anwendungsnamens auswirkt:
IOSetAccessName("MeinZN3", "", "", "[Mappe2]Tabelle1");
Diese Skriptfunktion eignet sich beispielsweise, um zwischen zwei redundant angelegten Datenquellen umzuschalten.