IPSView synchronisiert nicht die Assoziationen bei Profiländerungen

Hallo Andreas,

bei Association Buttons mit automatischer Synchronisation werden die Assoziationen in folgenden Fällen nicht synchronisiert.

	/*
	Ein neues Profil wird von IPSView erst erkannt, wenn die View neu geladen
	worden ist. Aus diesem Grund darf das Profil nicht komplett gelöscht und
	dann neu angelegt werden, sondern es müssen die einzelnen Assoziationen
	gelöscht und neu angelegt werden. Damit funktioniert dies nicht!

	IPS_DeleteVariableProfile("JK_Wochenplan");
	IPS_CreateVariableProfile("JK_Wochenplan", 1);
*/

Dies Problem gilt ab Version 3.3.

Heute ist mir dann noch folgendes Problem aufgefallen unter 3.4 Beta. Es handelt sich um einen Ausschnitt aus dem Pollenflugvorhersage Skript von Pitti (Heiko) Pollenflug Vorhersage von DWD auslesen - Seite 3.

        // Profile austauschen? 
        if (IPS_GetName($_IPS['VARIABLE']) == 'Bundesland') { 
            $vid = CreateVariableByName($_IPS['SELF'], "Region", 1); 
            $vpn = "Pollen.".$_IPS['VALUE']; 
            IPS_SetVariableCustomProfile($vid, $vpn); 
            // automatisch erstes auswählen 
            $vp = IPS_GetVariableProfile($vpn); 
            SetValue($vid, $vp['Associations'][0]['Value']); echo "$vpn - $vid";
        } 

Wenn man das Bundesland für die Anzeige wechselt, dann muss auch das Profil für die Variable mit den Regionen ausgetauscht werden, was Heiko wie oben gezeigt löst. Im WebFront führt dies dazu, dass die neuen Regionen angezeigt werden. Unter IPSView ist dies unter Verwendung der identischen Variablen nicht der Fall - es passiert nichts.

Nachtrag: Auch in diesem Fall gilt, dass die Synchronisation erst nach dem erneuten Laden der View erfolgt.

Gruß
Hans

Das war auch nie so definiert - der Client reagiert auf Änderungen von Assoziationen eines bestehenden Variablenprofiles.
Der Wechsel eines VariablenProfils bzw. auch das Löschen und wieder Anlegen würde noch einiges an Mehraufwand im Sync bedeuten.

Hallo Andreas,

kannst du dir denn vorstellen dies einzubauen damit die Kompatibilität zum WebFront gegeben ist? :smiley:

In meinen eigenen Skripten habe ich bislang immer eine Lösung gefunden was aber jedes Mal einen höheren Aufwand nach sich gezogen hat.

Gruß
Hans

Aus derzeitiger Sicht eher nicht:eek:

Ist relativ aufwendig und zusammen mit den IPSView eigenene Assoziationen ergeben sich jede Menge Speziallfälle. Mir fallen realtiv weing Anwendungsfälle ein, wo man ein komplettes Profil löscht und wieder neu anlegen muss.

Hallo Andreas,

was die Anzahl der Fälle angeht gebe ich dir Recht und als IPSView Anwender schreibt man seine Skripte so, dass es kein Problem gibt.

Problematisch sind Skripte die allgemein zur Verfügung gestellt werden und wo die Entwickler die Tücken von IPSView gar nicht erst kennen. Du schreibst, dass die IPSView eigenen Assoziationen in Kombination mit den IPS Assoziationen das Problem darstellen. Vielleicht ist es ja mittelfristig analog zu den Charts machbar, wo ja nun die IPS Charts die Basis bilden - wenn es geht ohne Komfortverluste (Stichwort Entfall der Sichtbarkeit von Graphen) :smiley:

Gruß
Hans