Fejlesztői kézikönyv 6.3

XML Referencia 6.3

Effector Studio 6.3 összefoglaló

Effector Studio 6.3 kézikönyv

Fejlesztői kézikönyv 6.2

XML Referencia 6.2

Effector Studio 3.2 összefoglaló

Effector Studio 3.2 kézikönyv

Fejlesztői kézikönyv 5.5

XML referencia 5.5

Effector Studio 2.0 kézikönyv

Effector Studio 2.0 összefoglaló

Képernyő kiegészítés

Az öröklésről és annak előnyeiről már szó volt az üzleti objektumoknál. Használatának eredményeképp az ős osztály adatai mellett a származtatott objektumok adatai egy másik táblában kerülnek letárolásra az adatbázisban, így a származtatott objektumok adatai is rendben megtalálhatóak az adatbázis megfelelő tábláiban. Azonban ezeket az adatokat meg is kell jelenítenünk. Táblázatos megjelenítőt használva az adatok megjeleníthetők, de szerkesztésükhöz nem elegendő két különálló EditForm-ot létrehoznunk. Megtehetnénk, de nem lenne túl felhasználó barát. Valahogy meg kellene egy EditForm-on jelenítenünk a két tábla adatait. Ezt a feladatot tudjuk megoldani a FragmentType-ok segítségével. Egyszerűsítve a Fragment-ek ugyanazok az EditForm-nak, mint a származtatott osztályok az üzleti objektumoknak. Minden Fragment egy a származtatott objektumhoz kapcsolt EditForm kiegészítésként fogható fel.

Objektumok és Fragmentek

Elhelyezkedése a rendszerben

Fizikai helye a FragmentTypes mappában található. Önmagában nem használható fel, csak az EditForm-mal együtt jeleníthető meg, azt kiegészítve a hozzáadott beviteli mezőkkel.

Használat

Előfeltételek, konvenciók

A FragmentType-ok használatának előfeltétele, hogy a rendszer ismerje a rendelkezésre álló definíciókat. Ezért minden egyes származtatott objektumhoz definiálni kell a felhasználható FragmentType-ok listáját. A felhasználható Fragment-ek listáját egy speciális állományban tudjuk rögzíteni. Objektum típusonként a típusnak megfelelő állományba kell paramétereznünk a felhasználható Fragment-eket. A Fragment-ek listáját tartalmazó fájlok is a FragmentTypes mappában találhatóak, és szigorú név konvenciót követve elnevezésük a következő sémára épül: <BOtipus>Types.xml ahol a <BOtipus> tartalmazza az ős üzleti objektum típusát (pl.: Project, Event, Document, People, Company).

Például:

Ha a Project objektumból (BusinessObjectProject) származtatással létrehozunk egy ProjectPelda objektumot (BusinessObjectProjectPelda), akkor létre kell hoznunk a ProjectTypes.xml állományt mely tartalmazni fogja az összes felhasználható Fragment definíció referenciáját, valamint létre kell hoznunk egy TypeProjectPelda.xml nevű Fragment definíciós állományt is.

Elérhető funkciók

  • FragmentTypes Fragment lista definíció
  • FragmentType megjelenítő definiálása

FragmentTypes lista definíció

A fenti példát követve elkészítjük a ProjectTypes.xml állományt. Ezt kétféleképp tudjuk megtenni. Vagy felsoroljuk a fragmentek definícióit, vagy pedig egy tárolt eljárásra bízzuk az adatok szolgáltatását. Mindkét típus esetén következő lépésekre van szükségünk:

  • Létre kell hoznunk a megfelelő fájt, majd kitölteni a Name, BusinessObject és ListingType node-okat az alábbiak szerint:
    • Name: Tetszőleges szöveg, nem fog megjelenni a felületen
    • BusinessObject: A definícióhoz tartozó "ős" üzleti objektum azonosítója
    • ListingType: Lehetséges értékei XML és SQL. Értelemszerűen a korábban leírt két típusnak megfelelő értékek

Statikus XML-ben történő definíció:

A ListingType node értékének XML-re állításával tehetjük meg. Ekkor a Fragments kollekció Fragment node-jaiban kell felsorolnunk a lehetséges hivatkozásokat. Az id attribútumnak fájlon belül egyedinek kell lennie, egy egyszerű sorszámot tartalmaz. A type attribútum tartalmazza a származtatott objektum típusát. Végül a Fragment\FragmentCaption node beállításával megadható az adott Fragment típus leírása, ez a felületen az új objektum létrehozásánál jelenik meg egy legördülő listában.

Példa:

<FragmentTypes>
    <Name>Project típusok</Name>
    <BusinessObject>BusinessObjectProject</BusinessObject>
    <ListingType>XML</ListingType>
    <Fragments>
        <Fragment id="1" type="Pelda">
            <FragmentCaption>Példa fragment</FragmentCaption>
        </Fragment>
    </Fragments>
</FragmentTypes>

Dinamikus tárolt eljárásos definíció:

A ListingType node értékének SQL-re állításával tehetjük meg. Ekkor a Fragments node-ot üresen kell hagyni, és a StoredProcedure node-ban kell megadni a kiszolgáló eljárás nevét. A kiszolgáló eljárás előre definiált üzleti logika mentén szolgáltatja az előző példában is tárgyalt type attribútum és FragmentCaption node értékeinek megfelelő adatokat.

Példa:

<FragmentTypes>
    <Name>Project típusok</Name>
    <BusinessObject>BusinessObjectProject</BusinessObject>
    <ListingType>SQL</ListingType>
    <StoredProcedure>osp_getProjectTypes</StoredProcedure>
    <Fragments />
</FragmentTypes>

A tárolt eljárás bemenő paramétereit a rendszer tölti ki. Ezek felhasználhatók a dinamikus kiértékelés során:

  • @mmName VARCHAR(100): Munkamódszer neve.
  • @screenName VARCHAR(100): Képernyő neve.
  • @componentName VARCHAR(100): Komponens neve.
  • @buttonName VARCHAR(100): Gomb neve, ha van.
  • @userID INT: Felhasználó azonosítója.
  • @parentBoName VARCHAR(100): Ős üzleti objektum típusa.

Visszatérési értéke két oszlopot tartalmaz, amely megfelel a következőnek:

SELECT 'Egyeb' AS [type], 'Egyéb' AS FragmentCaption

FragmentType megjelenítő definiálása

Itt kell a származtatott BusinessObject kiegészítő mezőihez definiálni az EditForm-on megjelenő kontrolokat. Ha nincs kiegészítő mezője a származtatott BusinessObject-nek, akkor is szükség van a Fragment definícióra, ilyenkor csak a minimálisan szükséges beállításokat tartalmazza az állomány:

<FragmentType>
    <Name>TypeEventTelefon</Name>
    <Caption>Esemény</Caption>
    <DDO>DDEventEdit</DDO>
    <BusinessObject>BusinessObjectEvent.Telefon</BusinessObject>
</FragmentType>

Kiegészítő adatokkal rendelkező üzleti objektum esetén minden az EditForm-nak megfelelően történik, ahogyan azt a Karbantartó képernyő fejezetben tárgyaltuk. Felhasználhatóak az ott leírt ControlGroup-ok és mindegy egyéb beállítási lehetőség is.

Fontos! Ha a Fragment-ben létezik olyan ControlGroup definíció, amelynek az order attribútuma megegyezik az ős/szülő objektumhoz tartozó EditForm-ban használt valamely ControlGroup definíciójában lévővel, akkor az felülírja az EditForm-ban megadott beállításokat, így kihat az ős objektum megjelenésére is.

Most vegyük sorra, mik is a felhasználható node-ok:

  • Name: A fragment egyedi neve, mely a Type<ŐsBOtipus><LeszarmazottBOtipus> mintára illeszkedik.

    Például: <Name>TypeEventTelefon</Name>

  • Caption: Nincs jelenleg használva, de megadása kötelező.

    Például: <Caption>Telefon esemény</Caption>

  • DDO: Az ős/szülő objektumhoz tartozó DisplayDefinitionObject referenciája. A filterek kezeléséhez van rá szükség.

    Például: <DDO>DDPEventComplex</DDO>

  • BusinessObject: Fontos különbség az EditForm-hoz képest, hogy itt a BusinessObject megadása . formában történik, ahogyan az a példában is látszódik.

    Például: <BusinessObject>BusinessObjectEvent.Telefon</BusinessObject>

  • Legutóbb frissítve: 25 hét 5 napja
  • Effector