Egy vállalatirányítási (erp) rendszer kiegyensúlyozott működése nagyban meghatározza a felhasználói élményt. Ezzel a cikkel a Microsoft Business Central fejlesztés egyik teljesítmény optimalizálással kapcsolatos lehetőségére szeretnénk felhívni a figyelmet.
A Microsoft Dynamics 365 Business Central oldal háttérfeladatok olyan aszinkron műveleteket jelentenek, amelyek a háttérben futnak, miközben a felhasználó egy oldallal dolgozik. Ezek a feladatok a felhasználói élmény javítása érdekében működnek, mivel lehetővé teszik az összetett vagy időigényes műveletek végrehajtását anélkül, hogy blokkolnák a felhasználói felületet. Így a felhasználók folytathatják munkájukat anélkül, hogy várniuk kellene ezeknek a műveleteknek a befejezésére. Tipikus helyek, ahol háttérfeladatokat használhatunk, a csempék (Cue) és az oldalak jobboldali területén található információs blokkok (FactBox).
Mire jó és miért alkalmazzuk az oldal háttérfeladatokat?
Képzeljük el, hogy egy felhasználó egy készletkezelési oldalon dolgozik, és egy összetett jelentést kell generálnia a jelenlegi készletszintek, múltbeli eladási adatok és beszállítói átfutási idők alapján. Ennek a jelentésnek a generálása jelentős időt vehet igénybe, ha szinkron módon történik. Ehelyett egy oldal háttérfolyamat indítható a jelentés elkészítéséhez. Amíg a feladat a háttérben fut, a felhasználó folytathatja más feladatok végzését, például készletrekordok frissítését vagy új rendelések leadását. Amint a jelentés elkészül, a felhasználó értesítést kap, és késedelem nélkül hozzáférhet a kész jelentéshez.
Feladatok kezelése háttérfolyamatokban
A háttérfeladat egy többszálú művelet és alapvetően a munkamenetek közötti szülő-gyermek összefüggésekre épül. A következő ábra egy háttérfeladat menetét szemlélteti. Az ábrán a szálak a következő sorrendben kezdődnek: THREAD A, THREAD B, THREAD C.

(Forrás: Microsoft Business Central kézikönyv)
Háttérfeladatok jellemzői és viselkedésük
- Csak olvasható műveleteket végez, nem tudja írni vagy zárolni az adatbázist.
- Ugyanazon a Business Central Server-példányon fut, mint a szülő munkamenet.
- Az oldal háttérfeladatának átadott és onnan visszaadott paraméterek a következő formában vannak: dictionary<string, string>
- Meghívja az OpenCompany-t, és végrehajtja a saját tranzakcióját.
- A callback triggerek nem tudnak végrehajtani felhasználói felületi műveleteket, kivéve az értesítéseket és a vezérlőfrissítéseket.
- Ha a hívó oldal vagy munkamenet bezárul, vagy az aktuális rekord megváltozik, a háttérfeladat törlődik.
- Alapértelmezett és maximális időtúllépéssel rendelkezik, amely automatikusan törli a feladatot.
- Nem szúr be munkamenet eseményrekordokat, a szülői munkamenet eseményrekordjaira támaszkodik.
- A szülő munkamenettől elkülönítve fut. A befejezési és hibaindítókon kívül nem tud visszahívni szülő munkamenetet.
- A háttérfeladatok munkamenetenkénti száma korlátozott. Ha több feladat van, mint a munkamenetenként megadott küszöbérték, akkor a kérések sorba kerülnek.
- Webszolgáltatásokból indított szinkron végrehajtás.
- Nem számít bele a licencszámításba.
- Háttérfeladatokat lehet API-n keresztül is indítani