Adatváltozás figyelése

témakör: Keretrendszer

A rendszer az adatok közül csak azokat menti el, amelyek megváltoztak. Némely esetben ezeket az adatváltozásokat jó lenne figyelemmel kísérni. Erre biztosít lehetőséget a void EntityChanged(PlugInEntityChangeInfo[] entitychangeinfos) metódus felülírása.

A metódus felülírásával bizonyos adatok (adatbázis tábla szerint) bizonyos műveletei (adatbázis műveletek = Insert, Update, Delete) alapján dönthetünk arról, hogy a SyX beépülő végrehajtson-e egy műveletet.

Minden adatváltozás megjelenítése üzenetablakban:

        protected override void EntityChanged(PlugInEntityChangeInfo[] entitychangeinfos)
        {
            List<string> s = new List<string>();
            foreach (PlugInEntityChangeInfo pieci in entitychangeinfos)
                s.Add(String.Format(“{0} {1} {2}”,
                     pieci.EntityType,
                     pieci.EntityChangeMode,
                     pieci.Id));
            MessageBox.Show(String.Join(“\n”, s.ToArray()));
        }

Működési modell jellemzői:

  • Az adatváltozásról szóló értesítés csak akkor érkezik meg, ha az adatok mentése sikeres volt. Tranzakció visszagörgetésekor semmilyen változás értesítés nem fut be.
  • A tranzakció közben mentett adatok (új számla, azon egy új vevő, és egy most létrehozozz fizetési mód, majd a számla 15 tétele) együttesen érkeznek be az értesítési folyamatba. Táblánként lehet dönteni arról, hogy mely adatokkal foglalkozunk. A megkapott Id azonosítókon keresztül hozzáférünk a már mentett adatokhoz.
  • A fenti példával ellentétben nem célszerű felhasználói beavatkozást igénylő műveleteket kötni az adatváltozáshoz.

Felhasználási példa:

  • Adott bizonylattömbbe rögzített, 1M Ft-nál nagyobb vevői rendelésről automatikusan értesítést küld a rendszer a vezetőnek.
  • Számla pénzügyi kiegyenlítésekor automatikusan SMS-t küld a vevőnek.

Hozzászólok