Ütemezett munkákkal való munka az OutSystems Agile platformon

Olvassa el a sorozat korábbi részleteit: Az OutSystems Agile platform használatának megkezdése, az OutSystems Agile Platform alapjainak megismerése, az OutSystems Agile Platform Service Studio tapasztalatainak leírása, az OutSystems Agile Platform Integrációs Stúdiójának használata, az OutSystems által létrehozott alkalmazás telepítése Agilis platform, és ECT hozzáadása az eSpace-hez az OutSystems Agile platformon keresztül.

A Rat Catcher egyik legfontosabb megkülönböztető képessége a hasonló termékekhez képest az az ötlet, hogy rendszeresen készítsen jelentést, amely megmutatja a felhasználót, hogy hol jelentek meg a dokumentumok az interneten. A feladatok ütemezése a webalapú alkalmazásokban általában nem a legkellemesebb dolog a világon.

Ennek egyik módja az alkalmazás teljes elválasztása a logikától, hogy könnyű alkalmazást írhasson az ütemezett feladatok kezelésére, és ütemezhetően hívja fel. Egy másik megközelítés egy szolgáltatás vagy démon írása, amely ütemezési komponenssel rendelkezik. Alternatív megoldásként beillesztheti a kódot egy weboldalra, és felhívhatja azt az oldalt az operációs rendszer ütemezőjéből. Egyes rendszerek "szegény ember krónát" használnak, amikor egy oldal meghívása az alkalmazásban és függőben lévő feladatok vannak futtatásra, egy másodlagos folyamat indul el a feladatok futtatásához. De nem számít, hogyan néz rá, a kötegelt feldolgozás hagyományos lehetőségei nem vonzóak, és további konfigurációt igényelnek. Az agilis platformon a feladatok ütemezése be van építve, és annak használata a munka többi részének sima és természetes kiterjesztése.

Az agilis platformon az ütemezett feladatokat időzítőknek nevezzük. Az időzítő létrehozása nagyon egyszerű. Az eSpace fában van egy csomópont számukra, és újat hoz létre, mintha az eSpace bármely más elemét létrehozná. Az Időzítőnek van néhány tulajdonsága (A ábra ), amelyeket beállítani szeretne, hogy biztosan működjön, ahogyan szüksége van rá:
  • Ütemezés: Ez határozza meg, hogy az Időzítő milyen gyakran hajtja végre a társított műveletet.
  • Prioritás: Ha egyszerre több időzítő van ütemezve, akkor a Prioritás attribútum határozza meg, hogy melyikük élvez elsőbbséget.
  • Művelet: Ez határozza meg, hogy mi fog történni, ha az időzítő ki lesz kapcsolva; Ha egy Akciót választ argumentumokkal, akkor ezeket is beállíthatja.
  • Időtúllépés percekben: Az időzítő beállítható egy időtúllépéssel, így az ütemező rendszer tudja törölni, ha túl hosszú ideig futott.
A ábra

A SendQuotaEmails időzítő tulajdonságai.
Az egyik csalódás az, hogy az ütemezési lehetőségek meglehetősen egyszerűek ( B ábra ). Az OutSystems a közelmúltban visszajelzést kért a közösségtől, és az ütemezés javítása szerepelt az emberek által javasolt dolgok listájában (az oldal eléréséhez be kell jelentkeznie). B. ábra

Az Időzítő ütemezési opciói megfelelőek, de lehetnek egy kicsit mélyebbek is.
Jelenlegi igényeimhez két időzítőt hozok létre. Az első időzítő megvizsgálja az összes felhasználói fiókot, megtudja, hány dokumentum folyik az ütemezésükön, megnézheti, hogy közel vannak-e a határértékhez, és elküldi a fiók rendszergazdájának egy "heads up" e-mailt. Ez a művelet jól működik, hogy hozzáadtam egy logikai attribútumot a entitásomhoz a fiókokhoz, amely jelzi, hogy elküldték-e a kvótát túlteljesítő e-mailt ( C ábra ). Amikor e-mailt küldök, ezt az attribútumot True értékre állítom. Minden olyan fiók esetében, amely jelenleg a kvóta alatt van, ez a jelző hamis értékre van állítva. Azt is módosítottam a fiók frissítési folyamatát, hogy visszaállítsam ezt az attribútumot Hamisra; így az e-maileket csak egyszer küldjük el, de mindig akkor küldjük el, ha egy fiók kvóta túllépi. C. ábra

A "kvóta feletti" e-mailek küldését kezelő művelet.

Az oldalsó megjegyzésben a C ábra borítékikonja e-mail üzenetet küld, amely az Agile Platform egyik nagyon szép tulajdonsága. Egyes általam használt rendszerekben el kell készíteni e-mail sablonokat, majd kitölteni az értékek gyűjteményét, és az e-mail sablont makrókkal kell kitölteni, hogy helyettesítsék a gyűjtemény értékeit. Az Agile platformon olyan e-mailt tervez, mint egy weblap, és ennek megvan a saját logikája, és szükség szerint elfogadhatja a paramétereket. Ebben az esetben az e-mail üzenetem érvként veszi figyelembe a fiók azonosítóját, és rendelkezik egy előkészítő művelettel, amely megkeresi az e-mail kitöltéséhez szükséges összes információt. Az e-mailben ugyanazokat a kütyüket használja, mint amelyeket a webes képernyőkhöz használ a megjelenített adatok megjelenítéséhez. Ennek eredményeként az e-mailekkel való munka nagyon kellemes és összhangban áll a rendszer többi részével.

A második időzítő futtatja az éjszakai jelentéseket ( D ábra ). Ezt nagyon könnyű megtenni. Először áttekintem az összes fiókot, és olyan jelentéseket keresek, amelyeknek az aktuális napja van a hónap napja a jelentések készítéséhez. A jelentések kezelésének módja az, hogy a JEL_TASK entitások listájával (mindegyik egy dokumentumot és annak kapcsolódó beállításait) a JELENTÉShez tartozó JOB_TASK entitások listájával készítem a JELENTÉS entitást az összes szükséges információval. Az ütemezett jelentésekhez a JOB_TASK adatait lemásolom egy SCHEDULED_JOB_TASK entitásból, ez az, amellyel a felhasználó manipulálja az ütemezett jelentések szerkesztésekor; Ilyen módon az archivált jelentések a jelentés futtatásához használt beállításokat mutatják, nem pedig a jelenleg kiválasztott beállításokat. A JELENTÉS entitás létrehozása után ugyanazt a RunReport funkciót hívom fel, amelyet felhívok, amikor egy felhasználó ad-hoc jelentést futtat. Végül e-mailben küldöm a fiók adminisztrátorát, és tudatom vele, hogy a jelentés futott, és csatolom a jelentés linkjét. D. ábra

A RunScheduledReports művelet elég egyszerű.

Létrehozhatok egy harmadik időzítőt a havi számlázás elvégzéséhez. Néhány hitelkártya-átjáró automatikusan végrehajthatja az ismétlődő számlázást. Ha megengedném, hogy az átjáró kezelje az ismétlődő számlázást, akkor egy kicsit a hátamat megterhelném, ha aggódnánk a hitelkártya-számok tárolása miatt, és ehhez kapcsolódó biztonsági aggályok merülnének fel. Nem úgy, hogy nem bízom magamban, sem az Agile Platformban, ez egyszerűen a kockázatcsökkentés kérdése. Miért tárolhat érzékeny adatokat és tehet magáévá hackerek célpontját, ha segíthet? De ha engedélyezem, hogy a hitelkártya-átjáró kezelje az ismétlődő számlázást, hozzá kell adnom a logikát, hogy megváltoztassam a számlázási információkat, amikor a felhasználók frissítik és leminősítik a fiókokat; határozottan kevesebb erőfeszítés lenne, ha csak egy olyan számlázási művelet lenne, amely havonta meghúzza a megfelelő számot, és azt felszámítja. És ezt a logikát már beépítettem a SZÁMLA entitásomba.

Hamarosan döntést fogok hozni erről a harmadik időzítőről. A számlázási helyzet, az általános „megjelenés és érzés”, valamint a rendszer önmaga magyarázóvá tétele a legnagyobb fennmaradó kihívásom, mielőtt elkezdenem a Rat Catcher teljes termékként való forgalmazását.

J.Ja

Justin iparági kapcsolatának közzététele: Justin James szerződést kötött a Spiceworks-rel a termékvásárlási útmutatók írására; szerződést kötött a Hapax tulajdonában lévő OpenAmplify-val blogok, oktatóanyagok és cikkek írására; és szerződést kötött az OutSystems-kel cikkek, mintakód stb. írására.

© Copyright 2020 | mobilegn.com