IPS_CreateVariableProfile schlägt fehl obwohl IPS_VariableProfileExists false liefert

Hallo,

wenn man vor der Anlage eines Profils prüft, ob der Profilname bereits existiert, dann kann man sich auf das Ergebnis nicht verlassen. Wenn z.B. das Profil ‚MyTest‘ existiert, dann liefert die Abfrage auf die Existenz von ‚Mytest‘ false:

echo 'Profile Mytest existiert: ' . (int) IPS_VariableProfileExists('Mytest') . PHP_EOL;

-> Profile Mytest existiert: 0

aber die Anlage von ‚Mytest‘ schlägt fehl:

echo 'Profile Mytest angelegt: ' . (int) @IPS_CreateVariableProfile('Mytest', 0);

-> Profile Mytest angelegt: 0

Hintergrund ist, dass Profilnamen eindeutig sein müssen, dabei die Groß-/Kleinschreibung aber ignoriert wird. Hier sollte das Verhalten konsistent sein: wenn bei der Anlage die Groß-/Kleinschreibung ignoriert wird, dann sollte auch bei der Abfrage auf Existenz (und auch beim Löschen) die Groß-/Kleinschreibung ebenfalls ignoriert werden.

Zusätzlicher Hinweis: in der Doku gibt es leider keinen Hinweis auf die (Nicht-)Berücksichtigung der Groß-/Kleinschreibung bei den Profilfunktionen.

Gruß

Burkhard

Der Fehler war schon Mal da, und wurde aber behoben.
Welche IPS Version?
Michael

4.30 vom 22.8.2017 (Windows)

:cool: Ist bei mir auch wieder kaputt.

War aber schon einmal behoben, leider weiß ich nicht mehr wie viele Versionen das schon her ist :smiley:

Michael

Ich finde es auch gerade nicht - Ich werde es nach meinem Urlaub mal suchen :slight_smile:

Habe dafür direkt mal ein Ticket gemacht.

Änderung ist am 16.11.2016 passiert. Warum weiß ich noch nicht.

paresy

Das Problem wird nun sauber zu IP-Symcon 5.0 gelöst, sodass alle Profilnamen Case Sensitive sind. Ggf. ist das für Module/Skripte ein Problem, welche die Groß-/Kleinschreibung nicht beachtet habe. Für alle über die Konsole gesetzten Profile wird alles korrekt sein.

paresy