Hirdetés
 

SAP Business One e-kurzus: Testreszabási lehetõségek 1.: Formattált keresés; Felhasználói mezõk, táblák, objektumok

PDF
Nyomtatás
Az elmúlt hetekben áttekintettük az SAP Business One rendszer szinte összes funkcióját, így elérkeztünk a testreszabási lehetőségekhez. Ezekre a funkciókra olyankor lehet szükség, amikor egy picit igazítani kéne a működésen, a megjelenésen. Nem lehet bármit és bármennyire átalakítani a segítségükkel, de az amit nyújtanak pont az a rugalmasság amire általában szükség van. Hát akkor lássuk, mire is megyünk ezekkel a funkciókkal!

Formattált keresés

Ezzel a - magyarul egy kicsit szerencsétlenül hangzó nevű - funkcióval arra van lehetőségünk, hogy bármely mezőhöz hozzárendeljünk egy "töltő" funkciót. A hozzárendeléshez bele kell lépnünk a mezőbe, majd a Shift+Alt+F2 billentyűkombinációt kell használnunk, melyre, ha még nem volt hozzárendelés az alábbi ablak jelenik meg:

Ebben az ablakban egyrészt, azt mondhatjuk, hogy ne tartozzon az adott mezőhöz formattált keresés (természetesen ez az alaphelyzet), vagy azt, hogy egy előre definiált elem listát szeretnénk hozzárendelni, vagy pedig, hogy szeretnénk egy felhasználói lekérdezést rendelni hozzá.
Ha a második lehetőséget választjuk egy újabb ablakban kell felsorolnunk a lehetséges értékeket.

Mielőtt ezt megmutatnám, tegyünk egy kis kitérőt!
Partnertörzsben szeretném letárolni, hogy egy adott partnerhez melyik napon szállítok árut. Ennek a megoldására nagyon sok lehetőség van, de én most szeretném úgy megoldani, hogy egy meglévő egyébként nem töltött mezőt fogok erre a célra használatba venni.
Legyen ez a mező a "Weboldal" nevű mező! Elős lépésként, a testreszabás egyik egyszerű eszközét hívom segítségül, amellyel bármely megnevezést módosíthatok az ablakokon. Ezt a funkciót a Ctrl gomb lenyomásával és a feliraton való kettős kattintással lehet aktiválni:

A fenti kis ablakban megadhatjuk, hogy mi legyen a mező új felirata, esetleg kiemeljük-e vastagítással vagy dőlt írásmóddal. Ha már nagyon elállítgattuk a mezőt, akkor az Állapot helyreállítással tudjuk visszahozni az alapbeállításokat.
Elvégezve a felirat átnevezést, már folytathajuk is ott ahol abbahagytuk, vagyis ott, hogy: Keresés meglévő felhasználódefiniált értékekben.
A megjelenő ablakban megadhatjuk, hogy mely értékek közül választhatunk az adott mező esetében. Beállítás után, a mező jobb szélénél megjelenik egy nagyító ikon, amely arra utal, hogy a mezőhöz formattált keresés van hozzárendelve. Erre az ikonra kattintva, vagy a Shift+F2 kombinációt lenyomva, az alábbi ablak jelenik meg:

A mező kitöltéséhez már csak választanunk kell a megjelenő értéklistából.
Már ez a funkció is nagyon sokat tud segíteni a megfelelő helyzetben, de ehhez képest az elmentett lekérdezés szinte csodákra képes!

A harmadik lehetőséget választva a Lekérdezéskezelő ablak jelenik meg, melyből kiválaszthatjuk, hogy melyik lekérdezést szeretnénk a mezőhöz rendelni.
A funkció segítségével oldjuk meg azt felhasználói kérést, hogy a partnerkód, ami az adott cégnél egy futó sorszám, automatikusan képződjön, olyan módon, hogy az utoljára elmentett kód +1 legyen a következő érték, persze az elején egy "C" betűvel.
Első lépésként írjuk meg a lekérdezést, ami előállítja a szükséges kódot. Anélkül, hogy túlmagyaráznám, valami ilyesmire van szükségünk: select 'C'+right(100000+max(right(cardcode,5))+1,5) from ocrd where cardcode like 'C0%'
Ez a lekérdezést elmenthetjük, mint felhasználói lekérdezés, majd a Shift+Alt+F2-vel hozzárendelhetjük a partnerkód mezőhöz, hogy ezentúl a Shift+F2-vel automatikusan a rendszer szolgáltassa a soronkövetkező kódot.

Formattált kereséssel ettől bonyolultabb dolgot is megoldhatunk! Egyrészt lehetőség van az ablakban szereplő bármely mező értékét kiolvasni és felhasználni a lekérdezésben, másrészt lehetőség van a lekérdezés futását valamely másik mező frissüléséhez kapcsolni.
Nézzük meg az első lehetőséget! Az előző lekérdezésünket, ha szeretnénk úgy módosítani, hogy a vevőknél "C" betűt, a szállítóknál pedig "S" betűt rendeljen a kódhoz, akkor szükségünk van arra, hogy a vevőkód melletti mezőben mi van kiválasztva (a fenti képen Vevő látszik benne).
Ennek a mezőnek az értéke vevők esetén "C", szállítók esetén pedig "S". Ezt az információt felhasználva az alábbi módon kell a lekérdezésünket módosítani: select $[OCRD.CardType]+right(100000+max(right(cardcode,5))+1,5) from ocrd where cardcode like $[OCRD.CardType]+'0%' . A lekérdezésben szereplő $[OCRD.CardType] szekvencia tudatja az SBO script értelelmezőjével, hogy a scriptet futtató ablakból vegye ki az OCRD tábla (partnertörzs) CardType (Partner típus) mező értékét és helyettesítse be a scriptbe és csak utána küldje el az sql szervernek a kérést.

Ha ezzel is megvagyunk, még van egy hiányossága a megoldásunknak! Mi van akkor, ha a felhasználó lekéri az új kódot, majd megváltoztatja a partner típust? Pech! Hiszen egy C betűvel kezdődő partnert fogunk létrehozni, pedig ezt szerettük volna elkerülni. Itt jön elő az automatikus frissítési lehetőség, ahol megmondhatjuk a rendszernek, hogy a kiválaszott mező formattált keresését egy másik mező változása esetén firssítse. Ennek a funkciónak a hadrendbe állításához az alábbi módon kell a beállításokat elvégeznünk:

A fenti kis példákkal nem értem még végére a felhasználási lehetőségeknek, de mint a legtöbb eszköz esetében az ügyességedre van bíza, hogy mit tudsz kihozni belőle. Én szeretem ezt a funkciót, mert sok lehetőséget biztosít arra, hogy kiterjesszük a rendszer képességeit.

Felhasználói mezők, táblák, objektumok

Tudjuk jól, hogy egy ügyviteli rendszernek kellően rugalmasnak kell lennie ahhoz, hogy hosszútávon nyújthasson megoldást a felhasználók számára. Amikor rendszert választ valaki, akkor nem csak azt kell, hogy eldöntse MOST alkalmas-e a rendszer az igényeinek kiszolgálására, hanem azt is, hogy 2-3, sőt akár 5 év múlva is alkalmas lesz-e! A fenti eszközök ehhez a hosszútávú partnerséghez nyújtanak segítséget, hiszen általuk jelentősen kibővíthető a rendszer adattárolási képessége.

Felhasználói mezők

Joggal kérdezheted, miért a mezőkkel kezdem és miért nem a táblákkal. A válasz egyszerű! Felhasználói mezőt nem csak felhasználói táblához lehet rendelni, hanem szinte bármely a programban használt táblához. Igen, a törzsekhez és a dokumentumok fej és sor adatait taralmazó tábláihoz is! Az alábbi ablak azt mutatja meg, hogy mely táblákhoz rendelhető felhasználói mező:


Felhasználói mező hozzáadására az alábbi ablak használatával van lehetőségünk:

Meghatározhatjuk az új mező nevét és típusát (Alfanumerikus, Numerikus, Dátum/Óra, Egységek és Összegek, Általános), hosszát és a típuson belüli struktúráját (pl: Alfanumerikus esetében: Általános, Cím, Telefon, Szöveg). Lehetőségünk van rögtön definiálni a mező érvényes értékeit (ahhoz hasonlóan ahogy a formattált keresésnél megadtuk), sőt akár indexet is rendelhetünk a mezőhöz.
Miután hozzárendeltünk egy felhasználói mezőt valamely beépített táblához a Ctrl+Shift+U kombinációval hívhatjuk elő azt a panelt, amely tartalmazza őket:



A továbbiakban a mező ugyan úgy viselkedik mintha az alap ablakban helyezkedne el.

Felhasználói táblák

Lehetőségünk van új táblákkal kiegészíteni a rendszert. Ezekhez a táblákhoz ugyanolyan módon adhatunk hozzá mezőket, ahogy az előbb mutattam. A táblák töltésére egy egyszerű felhasználó felületet biztosít a rendszer, így alapvetően nem kényelmes nagy tömegű adat rögzítésénél, de általában nem is erre használjuk (kisebb törzsek, addon-ok saját táblái).

A rendszer egyébként a felhasználói táblákat @-al kiegészítve hozza létre. Azért, hogy a sok addon és sbo forgalmazó által létrehozott felhasználói táblák és mezők ne ütközhessenek, regisztrálni kell egy namespace-t és a neveket előlről azzal kiegészíteni. Így az általam létrehozott Viszkozitás táblának az adatbázisban az lesz a neve, hogy @OLI_VISZKO. Mivel az SQL szerver nem szereti a kukac-jelet a nevekben az alábbi formában kell használni a lekérdezésekben: select * from [@OLI_VISZKO].
A felhasználói mezőket egy U_ prefix-szel egészíti ki, így a fenti lekérdezés mezőnevekkel az alábbi formában írandó: select Code, Name, U_VISZKOTOL, U_VISZKOIG from [@OLI_VISZKO]. A Code és Name mezőket automatikusan adja hozzá minden létrehozott felhasználói táblához az SBO és ráadásul UNIQUE definicióval ezzel nem kis bosszúságot okozva a fejlesztőknek.

Felhasználói objektumok

Ezt a funkciót csak értintőlegesen említem meg. Lényege az, hogy olyan speciális felhasználói táblákat is létrehozhatunk, melyekhez a rendszer biztosít bizonyos "extra" funkcionalitást (pl. bizonylatszám osztás, fej-tétel kapcsolat, szabályozható szűrő és szerkesztő ablakok).
A rendszerben az alábbi négy típus támogatott:
  • Törzsadatok, mint pl. Üzleti partner törzsadatai

  • Törzsadatsorok, mint pl. a Cím az Üzletipartner-törzsadatok között

  • Bizonylatok, mint pl. Kimeno számla

  • Bizonylatsorok, mint pl. a Tartalom lap a Kimeno számlában


A felhasználói objektumok elsősorban a külső addon fejlesztés során jutnak jelentőséghez, de aki megelégszik az egyszerű felhasználói interfésszel, az bátran használhatja őket, mint a felhasználói táblákat is!

Végszó

Mai alkalommal áttekintett testreszabási eszközök talán első látásra nem tünnek valami nagy számnak, de én saját tapasztalatra alapozva állíthatom, ha valaki ráérez az ízükre, sok olyan funkcióval egészítheti ki a bevezetett rendszert, amely jelentősen hozzájárul a felhasználói hatékonysághoz vagy kényelemhez.
Következő és egyben utolsó alkalommal átvesszük a fejlesztési lehetőségeket. Mivel ez egy óriási terület és gondolom a legtöbb olvasó nem is rendelkezik programozási ismeretekkel, így csak nagyvonalakban ismertetem az elérhető eszközöket, de remélem ez is elég lesz ahhoz, hogy mindenki szerezzen valami benyomást a lehetőségekről.

Nincs hozzászólása.
A téma megvitatása a fórumon. (0 hozzászólás)