Aby došlo k volání této události pro určitou proměnnou, je nutno:
Pokud se toto vyvolání povolí pro každou proměnnou a dojde k zápisu do (změně) všech proměnných najednou, pak událost je vyvolána
pro každou proměnnou zvlášť!
Použití této události je vhodné například pro filtrování zapisovaných hodnot.
Vlastnost
pEvent.NewVal je určena pro čtení i zápis. Pokud se do tohoto parametru zapíše nová hodnota, pak do proměnné objektu se ve skutečnosti zapíše (po ukončení této události) hodnota, která je v tomto parametru.
Upozornění 1:
Doporučuje se využívat tuto událost pouze pro
speciální nezbytně nutné případy. Při povolení této události se pak totiž zápis hodnoty provádí interně komplikovaněji.
Pokud je zápis vyvolán v hlavním vlákně, pak událost je vyvolána synchronně a zápis se dokončí také
synchronně.
Pokud je ale zápis vyvolán z jiného vlákna (web, komunikace, objekt
PmaSequencer), pak událost je vyvolána
asynchronně, tzn. vyvolání této události a skutečný zápis do proměnné se neprovede ihned, ale později až po ukončení aktivního skriptu. U zpožděného asynchronního zápisu ale pak dojde k tomu, že po zápisu do proměnné ještě hodnota v proměnné není, takže následné vyčtení hodnoty (skript, trendy) pak pracují s původní hodnotou.
Upozornění 2:
Událost je vyvolána pouze pokud se
provede skutečný zápis (např.
objekt.Item(0).Value=3) do proměnné - označme ji
A.
Pokud ale v proměnné
A je
datová vazba (při čtení) na jinou proměnnou
B (v jiném objektu) a provede se zápis do proměnné
B, pak proměnná
A se o této změně nedozví a proto
událost není vyvolána (proměnná
A se o změně dozví teprve, až ji bude někdo číst - tehdy se "provede" datová vazba - ale opět událost není vyvolána !).