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