Új feature: számított mező

Ha új ötlet vagy kérés érkezik, mindig arra törekszem, hogy azt ne az adott felhasználó  egyedi problémájaként, hanem minél általánosabb problémaként kezeljem. Igy persze bizonyosan több időt vesz igénybe az új feature tervezése és a fejlesztése, de szerencsés esetben olyan széleskörűen használható, általános képességet kapok eredményképpen, ami nem csak az aktuális ügyfélnek, nem csak az összes többi ügyfélnek, de magának a szoftvernek is előnyére válik, növelve a jövőbeli eladások esélyeit. Aktuálisan is agyalok egy ilyenen – elmesélem…

Felbukkan az igény

Először valahogy úgy, hogy "de jó lenne, hogy ha felviszek egy ajánlatot, akkor az ügyfél státusza rögtön változzon meg". Aztán Endre részéről úgy, hogy "de jó lenne egy cég adatlapján rögtön látni, hogy mi a számlatételeinek az összege". Kis tétovázás után: "vagy végül is de jó lenne bármilyen más szummát látni vele kapcsolatban, amit kitalálunk". A Victus aktuálisan a cég követelésállományát szeretné így látni, Assono pedig etikettezési okokból egy ember adatlapján a cégének a címét is szerette volna látni már egy ideje.

Definiálódik a feature

A legelső igény rögtön egy redundáns érték tárolását implikálja, méghozzá egy nem egyszerű, de automatikus karbantartással. Ez több szempontból sem tetszik. Olyan értéket, ami más tárolt értékekből is kiszámítható, nem tárolunk (hacsak nem a tárolással rendkívül költséges számításokat spórolunk meg, és erre feltétlen szükség van). Az adatbázis konzisztenciája sokkal előbbre való, mint a teljesítmény. Az élőerő, ami egy inkozisztencia helyreállításához kell: drága. A hardware, amivel a teljesítmény fokozható: olcsó. Gondolkozzunk hát valamifajta számított értékekben, amit az Opteamus a kellő pillanatokban kikalkulál és megmutat. Kis gondolkodás után, a fenti igények mindegyikét kielégíti, ha az adatlapokhoz definiálható egy olyan csak olvasható mező, amely mögött nem adat, hanem egy ad hoc kiszámítandó sql select utasítás áll.

A megvalósítás tervei

Nagy a csábítás hamar bevállalni a feladatot, mert az tényleg lelkesítő. Mégis muszáj előtte alaposan megnézni a megvalósíthatóságot. Első ránézésre semmi gond, valahol definiálni kell ezeket a számított mezőket, és az adatlapot megjelenítő képernyőt kell kiegészíteni ezek értelmezésével és kijelzésével. Ha ez így lenne, az idegesítő öngól lenne, mert a felhasználók nem annyira örülnének, mint inkább nyafognának, hogy hiába látják az adatlapon az új tulajdonságot, az nem jelenik meg az excel riportban, nem tudnak rákérdezni a keresővel, és nem tudják semmilyen listába se betenni. Szóval a feature csak úgy ér valamit, ha az új számított mezők szinte teljesen rendes mezőként viselkednek minden esetben. Ergo: sokkal mélyebbre kell nyúlni, nem elég magát az adatlapos képernyőt megpiszkálni, hanem magát az adatlapos tulajdonságok rendszerét kell kiegészíteni az újfajta képességgel. Hát ez rögtön nem egynapos munka, hanem sokkal több.

Kell egy igazán nyugodt pillanat (ez a legnehezebb ügy), amikor végiggondolom, hogyan tudna mindez a lehető legtermészetesebben belesimulni a jelenlegi architektúrába. Mint mindig, az alkalmas pillanatban most is villámcsapásszerűen és azonnal jön a megoldás. A kulcs most is – mint gyakran – egy jó analógia. Van-e hasonló feladat vagy megoldás most valahol a rendszerben, amit alapul vehetnék? Van bizony. Jelen pillanatban is vannak olyan adatlapos tulajdonságok, amelyeknél mély szinten nem maga a végleges érték tárolt, hanem egy idegen kulcs kódérték, amit ráadásul vagylagosan kell egyik, vagy másik módon kell kifejteni. Ha ezt és itt kiegészítem egy harmadik lehetőséggel, akkor csak és pontosan azokon a helyeken, ahol ez a kódkifejtés jelenleg is megtörténik, csak ott kell egy harmadik programágról gondoskodni. Igy ráadásul az új mezők teljesen úgy viselkednek mint a többiek, azaz, minden olyan rutin ami ezeket a mezőket eddig kezelte (lekérdező, listázó, exportáló) transzparensen, magától értetődően fogja az új sql alapú számított mezőket kezelni!

Halleluja!

És igen! Aki rugalmasságban fel akarja velünk venni a versenyt, annak eddig se volt könnyű dolga. Egy klasszikus ERP vagy CRM rendszer annyira rögzített mezőkkel dolgozik, hogy azokat gyakran még kiegészíteni sem engedi, mondjuk egy közönséges "haja színe" mezővel. Nálunk eddig is teljesen szabadon definiálható volt nem hogy minden mező, de maga az adatok köre is (azaz a cég, ember, ajánlat szentháromság mellé akármilyen másfajta anyag vagy adatlap is definiálható). Hamarosan pedig: jöhetnek a tetszőleges számított mezők is!

Közzétéve: gergelyhoppan

Én vagyok az Opteamus rendszer büszke apukája.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s

%d blogger ezt szereti: