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ó

BusinessObject 6.2

Az üzleti objektumok a rendszerben egy adattáblát, vagy egy adatbázis nézet kezelését valósítják meg, részt vesznek a folyamatok definiálásban, illetve további adatbázis műveleteket írhatnak le. A fájlokat a BusinessObject könyvtárba kell menteni. A fájlnévnek tükröznie kell az objektum nevét, és altípusát. A tábláknak tartalmaznia kell Deleted TINYINT mezőt, ami a rendszer tranzakció-kezeléséhez kell. Ha BusinessObject-hez altípust is szeretnénk definiálni, akkor a táblába kell egy ObjectType VARCHAR(60) oszlop is.

/BusinessObject

Gyökérelem. Kötelező.

/BusinessObject/ParentBusinessObject (String)

Opcionális. Ha az üzleti objektum leszármaztatott, akkor az ős BusinesObject neve, például BusinessObjectProjectISO esetén BusinesObjectProject.

/BusinessObject/DataTable (String)

Az üzleti objektum adatbázisban lévő tábláját határozza meg. Ez a beállítás gyakran elmarad származtatott objektumok esetén (nincs kiegészítő adat).

/BusinessObject/UniqueIDColumn (String)

A DataTable beállításban jelzett tábla egyik oszlopa, amely a sor egyedi azonosításhoz kell. Származtatott üzleti objektumok esetén ez jellemzően U_ szokott lenni. A származtatott üzleti objektumnak a UniqueID oszlop neve nem lehet azonos a fő üzleti objektum UniqueIDColumn oszlop nevével. Ha a származtatott üzleti objektumnak nincs DataTable beállítása, akkor ez a beállítás is elhagyandó. A fő üzleti objektumok esetén ez a beállítás kötelező, és jellemzően autoincrementes int típusú a mező. Az egyedi azonosító nem lehet összetett kulcs.

/BusinessObject/SetDoneAutomatically (Boolean)

Technikai lépés, a feladat magától készre állítódik. Alapértelmezett értéke false.

/BusinessObject/ForeignFields

Lehetőség van egy a DataTable beállításban megadott 1:1 kapcsolattal biró külső (idegen) táblának mezőjére hivatkozni, abba adatot menteni. Ezt nevezzük idegen mezőnek. Ez a definiciókat összefogó node.

/BusinessObject/ForeignFields/ForeignField

Egy idegen mező definíció beállításait fogja össze ez a node. Egy definición belül több idegen mezőt lehet definiálni (ha mindegyik egy táblában van). A name attribútumban kell megadni a definíció nevét, erre lehet majd hivatkozni a Field beállításban.

/BusinessObject/ForeignFields/ForeignField/TableName (String)

Az eredeti táblával 1:1 -es kapcsolatban levő tábla neve.

/BusinessObject/ForeignFields/ForeignField/Mappings

Ez a node fogja össze a mezők összepontozásának beállításait.

/BusinessObject/ForeignFields/ForeignField/Mappings/Mapping

Egy összepontozás beállításait fogja össze a node.

Példa

<ForeignFields>
    <ForeignField name="EventPeople">
        <TableName>EventPeople</TableName>
        <Mappings>
            <Mapping> <!-- 1-es roleid a felelős -->
                <TableField>EventRoleID</TableField>
                <Value>1</Value>
            </Mapping>
            <Mapping> <!-- az EventPeople.EventID = Event.EventID -->
                <TableField>EventID</TableField>
                <BusinessObjectField>EventID</BusinessObjectField>
            </Mapping>
            <Mapping> <!-- az EventPeople.PeopleID mező értéke Felelos neven erhető el -->
                <TableField>PeopleID</TableField>
                <BusinessObjectField>Felelos</BusinessObjectField>
            </Mapping>
        </Mappings>
    </ForeignField>
</ForeignFields>

/BusinessObject/ForeignFields/ForeignField/Mappings/Mapping/TableField (String)

A TableName beállításban megadott táblában található mező neve.

Példa

<ForeignFields>
    <ForeignField name="EventPeople">
        <TableName>EventPeople</TableName>
        <Mappings>
            <Mapping> <!-- 1-es roleid a felelős -->
                <TableField>EventRoleID</TableField>
                <Value>1</Value>
            </Mapping>
            <Mapping> <!-- az EventPeople.EventID = Event.EventID -->
                <TableField>EventID</TableField>
                <BusinessObjectField>EventID</BusinessObjectField>
            </Mapping>
            <Mapping> <!-- az EventPeople.PeopleID mező értéke Felelos neven erhető el -->
                <TableField>PeopleID</TableField>
                <BusinessObjectField>Felelos</BusinessObjectField>
            </Mapping>
        </Mappings>
    </ForeignField>
</ForeignFields>

/BusinessObject/ForeignFields/ForeignField/Mappings/Mapping/BusinessObjectField (String)

A BusinessObject-ben a Fields szakaszban megadott oszlop neve. A Value és BusinessObjectField beállítások közül csak az egyiket kell megadni.

Példa

<ForeignFields>
    <ForeignField name="EventPeople">
        <TableName>EventPeople</TableName>
        <Mappings>
            <Mapping> <!-- 1-es roleid a felelős -->
                <TableField>EventRoleID</TableField>
                <Value>1</Value>
            </Mapping>
            <Mapping> <!-- az EventPeople.EventID = Event.EventID -->
                <TableField>EventID</TableField>
                <BusinessObjectField>EventID</BusinessObjectField>
            </Mapping>
            <Mapping> <!-- az EventPeople.PeopleID mező értéke Felelos neven erhető el -->
                <TableField>PeopleID</TableField>
                <BusinessObjectField>Felelos</BusinessObjectField>
            </Mapping>
        </Mappings>
    </ForeignField>
</ForeignFields>

/BusinessObject/ForeignFields/ForeignField/Mappings/Mapping/Value (String)

Abban az esteben, ha az 1:1 kapcsolat kialakításhoz fix érték beírására van szükség, akkor azt ebben a beállításban kell megadni A Value és BusinessObjectField beállítások közül csak az egyiket kell megadni. A példában az Event táblához felelős szerepben levő személy tárolására egy EventPeople nevű tábla van használva. Mivel ebben a táblában 1:n kapcsolattal lehet rögzíteni adatot, ezért az EventRoleID oszlop 1-es értékével különítjük el a felelős szerepben levő személy adatát. A kapcsolatot az EventID mező definiálja.

Példa

<ForeignFields>
    <ForeignField name="EventPeople">
        <TableName>EventPeople</TableName>
        <Mappings>
            <Mapping> <!-- 1-es roleid a felelős -->
                <TableField>EventRoleID</TableField>
                <Value>1</Value>
            </Mapping>
            <Mapping> <!-- az EventPeople.EventID = Event.EventID -->
                <TableField>EventID</TableField>
                <BusinessObjectField>EventID</BusinessObjectField>
            </Mapping>
            <Mapping> <!-- az EventPeople.PeopleID mező értéke Felelos neven erhető el -->
                <TableField>PeopleID</TableField>
                <BusinessObjectField>Felelos</BusinessObjectField>
            </Mapping>
        </Mappings>
    </ForeignField>
</ForeignFields>

/BusinessObject/FieldInheritances

Mező örökléshez tartozó gyűjtó node.

/BusinessObject/FieldInheritances/FieldInheritance

Mező öröklés egy korábbi objektumból.

Attribútum:

- `name`: ezen a néven tudunk hivatkozni rá annál a `Field`-nél, ahol örökölni szeretnénk

/BusinessObject/FieldInheritances/FieldInheritance/InheritanceType (Enum)

Öröklés típusok, lehetséges értékei:

- `NearestSameBusinessObject`: ugyanolyan, mint az aktuális abból is az utolsó
- `NearestSelectedBusinessObject`: kiválasztott (businessObject és objectType attribútomukkal megadott) lépés, abból is az utolsó
- `FurthestSameBusinessObject`: ugyanolyan, mint az aktuális abból is a legkorábbi
- `FurthestSelectedBusinessObject`: kiválasztott (businessObject és objectType attribútomukkal megadott) lépés, abból is a legkorábbi

/BusinessObject/FieldInheritances/FieldInheritance/BusinessObject (String)

NearestSelectedBusinessObject, FurthestSelectedBusinessObject esetén az üzleti objektum neve.

/BusinessObject/FieldInheritances/FieldInheritance/ObjectType (String)

NearestSelectedBusinessObject, FurthestSelectedBusinessObject esetén az üzleti objektum típusa

Példa:

<FieldInheritances>
    <FieldInheritance name="Alapadatok">
        <InheritanceType>NearestSameBusinessObject</InheritanceType>
    </FieldInheritance>
</FieldInheritances>

/BusinessObject/Fields

Az üzleti objektum oszlopainak gyűjtő tag-je. Az oszlopok a tag-ben vannak definiálva.

/BusinessObject/Fields/Field

A mező beállításait összefogó node.

Attribútumok:

  • name: Az oszlop adatbázisbeli neve a name attribútum tartalmazza, ugyanakkor a name attribútum olyan oszlop nevet is definiálhat, amely fizikailag nincs az üzleti objektum táblájában, hanem egy másik táblában szerepel, mint kapcsolt adat. Ilyenkor a két tábla között az 1:1 kapcsolat követelmény, és alkalmazni kell két másik attribútumot is foreignField. A foreignField annak a ForeignField neve, amely ezt a kapcsolatot leírja.
  • foreignField: Ezzel lehet hivatkozni az idegen mező beállításra (ForeignFields/ForeignField@name)
  • isDocument: Opcionális beállítás. Logikai érték, alapértelemezett értéke false. Ezzel a beállítással kell jelezni, hogy az adott mező dokumentum hivatkozást tartalmaz. A dokumentum típusát a Form vagy Fragment XML-ben lehet megadni.
  • withEncryption: Opcionális beállítás. A mező értékét az adatbázisban titkosított formában tárolja a rendszer vagy sem. Értéke lehet true \ false. Alapértelmezett érték false. Csak VARCHAR mezőkre működik.
  • isSensitive: Opcionális beállítás. Logikai érték, alapértelemezett értéke false. Ezzel a beállítással lehet jelezni az Effector-nak, hogy a mezőben tárolt érték érzékeny adat, amit nem szabad a kliensnek továbbítania. Az ilyen mező kliens oldalon szerkeszthető, a módosított értéket a rendszer elmenti.
  • encryptionType: mező titkosítás módja, lehetséges értékei: DES, TripleDES, AES, MD5, SHA1, SHA256, SHA384, SHA512
  • disableLogging: Opcionális beállítás. A mező értékének változását nem menti a rendszer az FSYS_Log táblába. Értéke lehet true \ false. Alapértelmezett érték false.
  • requestValidatorRegExp: Opcionális beállítás. Az Effector minden request tartalmát ellenőrzi, így megvizsgálja a mező tartalmát is. Alap esetben rengeteg karaktert nem fogad el az Effector. Ha olyan mezőt paraméterezünk, amely speciális karaktereket is tartalmaz, úgy meg kell mondanunk mit fogadjon el valid értékként a request ellenőrzése során. Értéke egy reguláris kifejezés.
  • requestValidatorCharacterGroup: Opcionális beállítás. A requestValidatorRegExp beállításhoz hasonlóan a request tartalmán ellenőrzése során van szerepe, csak itt előre definiált csoportokat lehet választani.

    • Anything: bármi
    • AlphaNumeric: szám, betű, szóköz
    • OnlyAlpha: csak betű
    • OnlyNumber: csak szám
    • OnlyWhiteSpace: szóköz
    • OnlySpecialCharacters1: speciális karakterek első csoportja +-/* stb.
    • AlphaNumericWithSpecialCharacters1: Alpha numeric + specialcharacters1 csoport, ez az alapértelmezett érték

/BusinessObject/Fields/Field/DefaultValue (RuleValueType)

Opcionális node, új létrehozáskor a mező alapértékét határozza meg. Ez egy RuleValueType szabály ( lsd. Szabályok )

/BusinessObject/Fields/Field/InheritedValues

Mező értékének öröklésére szolgáló gyűjtő node.

/BusinessObject/Fields/Field/InheritedValues/InheritedValue

Az itt megadott (opcionális feltétel teljesülése esetén) mező értékét örökli a mező.

Attribútumok:

-   `fieldInheritanceName`: a `FieldInheritance` node attrubútumában megadott érték, az ehhez tartozó objektumból örökli az értéket
-   `fieldName`: ennek a mezőnek az értékét örökli

/BusinessObject/Fields/Field/InheritedValues/InheritedValue/Condition (RuleValueType)

Ezen feltétel teljesülése esetén örökli a mező a megadott objektum megfelelő értékét.

Példa:

<Field name="IgenyAzonosito">
    <InheritedValue fieldInheritanceName="Alapadatok" fieldName="KorabbiMezoNeve"></InheritedValue>
    <Condition type="SQL" return="string" default="">...</Condition>
</Field>

/BusinessObject/Triggers

Opcionális node, a folyamat léptetéshez szükséges triggereket fogja össze. Fontos! Adhoc esemény esetén ezek nem futnak le. Adhoc eseménynek nevezünk minden olyan eseménytípust, amely nem vesz részt folyamatban.

/BusinessObject/Triggers/Trigger

A triggerek a folyamatlépéseket vezérlik, meghatározzák, hogy egy üzleti objektumban történt esemény hatására mi történjen, mi jöjjön létre. A triggerek meghatározhatják, hogy az adott üzleti objektum milyen más üzleti objektumokban történt változásokra készüljön el. Például, ha készre állítunk egy eseményt, az kiválthatja egy újabb folyamatlépés létrejöttét, vagy egy másik folyamatlépés állapotának beállítását, vagy egy tetszőleges SQL utasítás végrehajtását is.

Attribútumok:

  • sourceBusinessObject: Az az üzleti objektum, amely a triggert aktiválni fogja. (fő BusinessObject)
  • sourceObjectType: Az üzleti objektum altípusa. A BusinessObject és az objektum altípusa határozza meg pontosan a kiváltó objektumot. (Pl: sourceBusinessObject: Event, sourceObjectType: MegrendelesBekotes, akkor a kiváltó objektum a BusinessObjectEventMegrendelesBekotes, amely a BusinessObjectEventMegrendelesBekotes.xml állományban van leírva.)
  • workflowVersion: opcionális beállítás, ezzel lehet megdani, hogy a trigger melyik folyamatverzióhoz tartozik. Ritkán használt beállítás.
  • event: Az az esemény, amely kiváltja a trigger aktiválását. Értéke lehet Done, Created.
  • action: meghatározza a kiváltott esemény típusát, ezek a típusok a következő értékeket vehetik fel

    • Create: Létrejön az új üzleti objektum
    • None: semmi nem történik
    • Modify: Az objektum valamelyik mezőjét módosítani akarjuk. Ebben az esetben egy ForeignKey beállítás is kellhet.
    • RunSQL: Egy SQL utasítás lesz futtatva. Az SQL mondatot az SQL node-ban kell ilyenknor megadni. Ebben az esetben egy ForeignKey beállítás is kellhet.
  • group: Ha 0-tól eltérő az értéke, akkor a triggereket csoportba fogja ez az attribútum. Így egy esemény létrejöttét, több kiváltó eseményhez köthetjük. Az azonos group számmal rendelkező triggerek alkotnak egy csoportot. Ennek az értéke jelenleg mindig 0.
  • isAttachedWorkflow: Opcionális attribútum. Az Effector-ban olyan folyamatokat is lehet definiálni, amely egy másik párhuzamosan folyamatban folytatódik. Értéke true vagy false lehet, alapértelmezés szerint false.
  • attachedWFTemplate: Opcionális attribútum, ha az isAttachedWorkflow attribútum értéke true, ekkor ebben az attribútumban kell megadni a kapcsolt folyamat típusát (Workflow ObjectType).
  • attachedWFVersion: Opcionális attribútum, ha az isAttachedWorkflow attribútum értéke true, ekkor ebben az attribútumban lehet megadni a kapcsolt folyamat verzióját.

Példa 1

<Trigger group="0" action="Create" sourceBusinessObject="Project" sourceObjectType="Teszt" event="Created" />

Példa 2

<Trigger group="0" action="Create" sourceBusinessObject="Event" sourceObjectType="Teszt01Rogzites_Hianypotlas" event="Done" />

/BusinessObject/Triggers/Trigger/Condition (RuleValueType)

Opcionális node, akkor kell használni, ha valamilyen feltételhez szeretnénk kötni a folyamat lépés létrejöttét.

Példa

<Trigger group="0" action="Create" sourceBusinessObject="Event" sourceObjectType="Teszt01Rogzites" event="Done">
    <Condition type="SQL" return="boolean" default="false"><![CDATA[SELECT CASE WHEN '[##Field.Hianypotlas##]' = '31' THEN 'True' ELSE 'False' END]]></Condition>
</Trigger>

/BusinessObject/Triggers/Trigger/SQL (String)

Opcionális node, ha a /BusinessObject/Triggers/Trigger action attribútuma RunSQL, akkor ebből a node-ból szedi, hogy milyen SQL-t kell lefuttatni. A RuleValueType-hoz hasonlóan itt is használhatjuk a mezőkre vagy munkamenet változókra hivatkozásokat. A type attribútummal lehet jelezni, hogy tárolt eljárásról van-e szó, értéke lehet Select és StoredProcedure.

/BusinessObject/Triggers/Trigger/ForeignKey (String)

Opcionális node, ha a /BusinessObject/Triggers/Trigger action attribútuma RunSQL vagy Modify, akkor ezzel a beállítással kell megadni annak a mezőnek a nevét amely összeköti a másik objektummal.

Példa

<Trigger group="0" action="RunSQL" sourceBusinessObject="Event" sourceObjectType="Teszt01Rogzites" event="Done">
    <SQL type="StoredProcedure">osp_wrk_aggregate_order_value '[##Field.OrderID##]'</SQL>
    <ForeignKey>ProjectID</ForeignKey>
</Trigger>

/BusinessObject/Triggers/Trigger/SetValues

Opcionális node, ha a /BusinessObject/Triggers/Trigger action attribútuma Modify, akkor ez alatt a node alatt lehet felsorolni, hogy az üzleti objektum mely tulajdonságai, mire változzanak. Ez a tag, egy összetett elem.

/BusinessObject/Triggers/Trigger/SetValues/SetValue (String)

Ebben a node-ban kell megadni, hogy melyik mező értéke mire változik. A fieldName: A BusinessObject-ben definiált mező neve. A példa a BusinesObjectProjectTeszt üzleti objektumból van.

Példa:

<Trigger group="0" action="Modify" sourceBusinessObject="Event" sourceObjectType="Teszt01Rogzites" event="Done">
    <SetValues>
        <SetValue fieldName="PortfolioID">4</SetValue>
    </SetValues>
    <ForeignKey>ProjectID</ForeignKey>
</Trigger>

/BusinessObject/Triggers/Trigger/Multiplicator

Párhuzamos folyamatlépés létrehozáshoz használt node.

Attribútumok:

-   `type`: mely típusú felhasználóknak jöjjön létre a feladat (felelős vagy szerepkör), lehetséges értékei: `Responsible`, `ProjectRole`, `Custom`
-   `parameter`: a felhasználók azonosítóinak listája, vesszővel elválasztva

/BusinessObject/Triggers/Trigger/MultiplicatorEndOf

Ha a folyamatlépés párhuzamos lépések után kell létrejöjjön, akkor itt lehet megadni, hogy melyik az a lépés, amelynek minden ágát be kell várni.

Attribútumok:

-   `businessObject`: a triggerelő objektum fajtája
-   `objectType`: a triggerelő objektum típusa

/BusinessObject/Methods

A BusinessObject egyes műveleti lépéseihez további üzleti logikát lehet rendelni, ez a node fogja össze ezek definiálását. Minden al node opcionális, és csak egy szerepelhet belőle.

/BusinessObject/Methods/AfterCreate

Létrehozás után lefuttatandó üzleti logika definiálása.

/BusinessObject/Methods/AfterCreate/Module (String)

Ezzel lehet megadni a dll hívás paramétereit, amely a létrehozás után fog lefutni.

  • A node értéke maga a .dll fájl neve elérési úttal. Az elérési útban feltüntetett [##LocalProgramPath##] szöveget az Effector a mindenkori weboldal bin mappájára cseréli le, így a lefordított dll fájl bemásolható közvetlenül az Effector program fájlai közé.
  • A className attribútummal kell megadni annak az osztálynak a nevét, amely megvalósítja a kívánt egyedi funkciót
  • Az action attribútummal lehet kiválasztani a funkción belül, hogy mit szeretnénk végrehajtani (ez nem rendszer szintű és a fejlesztőnek kell ezeket kitalálni lehezelni).

Példa

<Methods>
    <AfterCreate>
        <Module className="orn_ReleaseTest.BOMethods" action="AfterCreateDLL">[##LocalProgramPath##]\orn_ReleaseTest.dll</Module>
    </AfterCreate>
</Methods>

/BusinessObject/Methods/AfterCreate/RunSQL (String)

Opcionális node, ha nincs Module, akkor értelmezi ezt a node-ot a rendszer. A node értéke a létrehozás után lefuttatni kívánt SQL kifejezés. A kifejezésben használni lehet a Field., Filter., Session. és Special. hivatkozásokat (ugyanabban a formában, mint a szabályokban lehet). Az SQL a BusinessObject létrehozás után fog futni.

Példa

<Methods>
    <AfterCreate>
        <RunSQL>
            <![CDATA[
                UPDATE orn_F07 SET AfterCreate = 1 WHERE id = '[##Field.id##]' AND AfterCreate = 0
            ]]>
        </RunSQL>
    </AfterCreate>
</Methods>

/BusinessObject/Methods/AfterDelete

Opcionális node, a törlés után lefuttatandó üzleti logika definiálása.

/BusinessObject/Methods/AfterDelete/Module (String)

Ezzel lehet megadni a dll hívás paramétereit, amely a törlés után fog lefutni.

  • A node értéke maga a .dll fájl neve elérési úttal. Az elérési útban feltüntetett [##LocalProgramPath##] szöveget az Effector a mindenkori weboldal bin mappájára cseréli le, így a lefordított dll fájl bemásolható közvetlenül az Effector program fájlai közé.
  • A className attribútummal kell megadni annak az osztálynak a nevét, amely megvalósítja a kívánt egyedi funkciót
  • Az action attribútummal lehet kiválasztani a funkción belül, hogy mit szeretnénk végrehajtani (ez nem rendszer szintű és a fejlesztőnek kell ezeket kitalálni, lekezelni).

Példa

<Methods>
    <AfterDelete>
        <Module className="orn_ReleaseTest.BOMethods" action="AfterDeleteDLL">[##LocalProgramPath##]\orn_ReleaseTest.dll</Module>
    </AfterDelete>
</Methods>

/BusinessObject/Methods/AfterDelete/RunSQL (String)

Opcionális node, ha nincs Module, akkor értelmezi ezt a node-ot a rendszer. A node értéke a törlés után lefuttatni kívánt SQL kifejezés. A kifejezésben használni lehet a Field., Filter., Session. és Special. hivatkozásokat (ugyanabban a formában, mint a szabályokban lehet). Az SQL a BusinessObject létrehozás után fog futni.

Példa

<Methods>
    <AfterDelete>
        <RunSQL>
            <![CDATA[
                UPDATE orn_F07 SET AfterDelete = 1 WHERE id = '[##Field.id##]' AND AfterDelete = 0
            ]]>
        </RunSQL>
    </AfterDelete>
</Methods>

/BusinessObject/Methods/AfterLoad

Opcionális node, a betöltés után lefuttatandó üzleti logika definiálása.

/BusinessObject/Methods/AfterLoad/Module (String)

Ezzel lehet megadni a dll hívás paramétereit, amely a betöltés után fog lefutni.

  • A node értéke maga a .dll fájl neve elérési úttal. Az elérési útban feltüntetett [##LocalProgramPath##] szöveget az Effector a mindenkori weboldal bin mappájára cseréli le, így a lefordított dll fájl bemásolható közvetlenül az Effector program fájlai közé.
  • A className attribútummal kell megadni annak az osztálynak a nevét, amely megvalósítja a kívánt egyedi funkciót
  • Az action attribútummal lehet kiválasztani a funkción belül, hogy mit szeretnénk végrehajtani (ez nem rendszer szintű és a fejlesztőnek kell ezeket kitalálni lehezelni).

Példa

<Methods>
    <AfterLoad>
        <Module className="orn_ReleaseTest.BOMethods" action="AfterLoadDLL">[##LocalProgramPath##]\orn_ReleaseTest.dll</Module>
    </AfterLoad>
</Methods>

/BusinessObject/Methods/AfterLoad/RunSQL (String)

Opcionális node, ha nincs Module, akkor értelmezi ezt a node-ot a rendszer. A node értéke a betöltés után lefuttatni kívánt SQL kifejezés. A kifejezésben használni lehet a Field., Filter., Session. és Special. hivatkozásokat (ugyanabban a formában, mint a szabályokban lehet). Az SQL a BusinessObject létrehozás után fog futni.

Példa

<Methods>
    <AfterLoad>
        <RunSQL>
            <![CDATA[
                UPDATE orn_F07 SET AfterLoad = 1 WHERE id = '[##Field.id##]' AND AfterLoad = 0
            ]]>
        </RunSQL>
    </AfterLoad>
</Methods>

/BusinessObject/Methods/AfterSave

Opcionális node, a mentés után lefuttatandó üzleti logika definiálása.

/BusinessObject/Methods/AfterSave/Module (String)

Ezzel lehet megadni a dll hívás paramétereit, amely a mentés után fog lefutni.

  • A node értéke maga a .dll fájl neve elérési úttal. Az elérési útban feltüntetett [##LocalProgramPath##] szöveget az Effector a mindenkori weboldal bin mappájára cseréli le, így a lefordított dll fájl bemásolható közvetlenül az Effector program fájlai közé.
  • A className attribútummal kell megadni annak az osztálynak a nevét, amely megvalósítja a kívánt egyedi funkciót
  • Az action attribútummal lehet kiválasztani a funkción belül, hogy mit szeretnénk végrehajtani (ez nem rendszer szintű és a fejlesztőnek kell ezeket kitalálni lehezelni).

Példa

<Methods>
    <AfterSave>
        <Module className="orn_ReleaseTest.BOMethods" action="AfterSaveDLL">[##LocalProgramPath##]\orn_ReleaseTest.dll</Module>
    </AfterSave>
</Methods>

/BusinessObject/Methods/AfterSave/RunSQL (String)

Opcionális node, ha nincs Module, akkor értelmezi ezt a node-ot a rendszer. A node értéke a mentés után lefuttatni kívánt SQL kifejezés. A kifejezésben használni lehet a Field., Filter., Session. és Special. hivatkozásokat (ugyanabban a formában, mint a szabályokban lehet). Az SQL a BusinessObject létrehozás után fog futni.

Példa

<Methods>
    <AfterSave>
        <RunSQL>
            <![CDATA[
                UPDATE orn_F07 SET AfterSave = 1 WHERE id = '[##Field.id##]' AND AfterSave = 0
            ]]>
        </RunSQL>
    </AfterSave>
</Methods>

/BusinessObject/Methods/BeforeSave

Opcionális node, a mentés előtt lefuttatandó üzleti logika definiálása.

/BusinessObject/Methods/BeforeSave/Module (String)

Ezzel lehet megadni a dll hívás paramétereit, amely a mentés elött fog lefutni.

  • A node értéke maga a .dll fájl neve elérési úttal. Az elérési útban feltüntetett [##LocalProgramPath##] szöveget az Effector a mindenkori weboldal bin mappájára cseréli le, így a lefordított dll fájl bemásolható közvetlenül az Effector program fájlai közé.
  • A className attribútummal kell megadni annak az osztálynak a nevét, amely megvalósítja a kívánt egyedi funkciót
  • Az action attribútummal lehet kiválasztani a funkción belül, hogy mit szeretnénk végrehajtani (ez nem rendszer szintű és a fejlesztőnek kell ezeket kitalálni lehezelni).

Példa

<Methods>
    <BeforeSave>
        <Module className="orn_ReleaseTest.BOMethods" action="BeforeSaveDLL">[##LocalProgramPath##]\orn_ReleaseTest.dll</Module>
    </BeforeSave>
</Methods>

/BusinessObject/Methods/BeforeSave/RunSQL (String)

Opcionális node, ha nincs Module, akkor értelmezi ezt a node-ot a rendszer. A node értéke a mentés elött lefuttatni kívánt SQL kifejezés. A kifejezésben használni lehet a Field., Filter., Session. és Special. hivatkozásokat (ugyanabban a formában, mint a szabályokban lehet). Az SQL a BusinessObject létrehozás után fog futni.

Példa

<Methods>
    <BeforeSave>
        <RunSQL>
            <![CDATA[
                UPDATE orn_F07 SET BeforeSave = 1 WHERE id = '[##Field.id##]' AND BeforeSave = 0
            ]]>
        </RunSQL>
    </BeforeSave>
</Methods>

/BusinessObject/Methods/OnValidate (RuleValueType)

Opcionális node. Mentés előtti ellenőrzést lehet végrehajtani vele. Ez egy RuleValueType, amelyről a Szabályok szakaszban olvashat. Ha a visszatérési érték boolean, akkor false esetén a rendszer nem engedi elmenti az BusinessObject-et és a message attribútumban megadott szöveget jeleníti meg a rendszer. Ha a visszatérési érték string, akkor, ha nem üres a szabály által visszaadott string, akkor a rendszer meggátolja a mentést, és a visszaadott szöveget megjeleníti a felületen.

Példa

<Methods>
    <OnValidate type="SQL" return="string" default="">
    <![CDATA[
        IF CAST('[##Field.Keszultseg##]' AS INT) < 1 OR CAST('[##Field.Keszultseg##]' AS INT) > 100 BEGIN
            SELECT '1 és 100 közötti értéket adjon meg!'
        END]]>
    </OnValidate>
</Methods>

/BusinessObject/Rights

Ez a node opcionális. A rendszerben négy alapvető jog definiálható a BusinessObject-hez, ezeket a definíciókat gyűjti egy node alá.

/BusinessObject/Rights/Create (RuleValueType)

A BusinessObject létrehozása előtt lefuttatott szabály. Ha a szabály kiértékelése után false eredményt kap a rendszer, akkor meggátolja az üzleti objektum létrehozását.

/BusinessObject/Rights/Delete (RuleValueType)

A BusinessObject törlése előtt lefuttatott szabály. Ha a szabály kiértékelése után false eredményt kap a rendszer, akkor meggátolja az üzleti objektum törlését.

/BusinessObject/Rights/Modify (RuleValueType)

A BusinessObject módosítása előtt lefuttatott szabály. Ha a szabály kiértékelése után false eredményt kap a rendszer, akkor meggátolja az üzleti objektum módosítását.

/BusinessObject/Rights/View (RuleValueType)

A BusinessObject betöltése előtt lefuttatott szabály. Ha a szabály kiértékelése után false eredményt kap a rendszer, akkor meggátolja az üzleti objektum betöltését.

Példa

<Rights>
    <Create type="SQL" return="boolean" default="false">
        SELECT CASE WHEN ([dbo].[ofn_GetVisibilityRights]([##Session.UserID##],0,'[##Field.JelentesID##]','JelenetesBo') = 1) THEN `true` ELSE `false` END
    </Create>
    <Delete type="SQL" return="boolean" default="false">
        SELECT CASE WHEN ([dbo].[ofn_GetVisibilityRights]([##Session.UserID##],0,'[##Field.JelentesID##]','JelenetesBo') = 1) THEN `true` ELSE `false` END
    </Delete>
    <Modify type="SQL" return="boolean" default="false">
        SELECT CASE WHEN ([dbo].[ofn_GetVisibilityRights]([##Session.UserID##],0,'[##Field.JelentesID##]','JelenetesBo') = 1) THEN `true` ELSE `false` END
    </Modify>
    <View type="SQL" return="boolean" default="false">
        SELECT CASE WHEN ([dbo].[ofn_GetVisibilityRights]([##Session.UserID##],0,'[##Field.JelentesID##]','JelenetesBo') IS NOT NULL) THEN `true` ELSE `false` END
    </View>
</Rights>

/BusinessObject/Guid

Ne módosítsd, ne töröld ki, az Effector Studio számára fontos beállítás!

/BusinessObject/Meta

Ez a beállítás fogja tartalmazni az üzleti objektumhoz tartozó meta informácókat.

/BusinessObject/Meta/Attribute

A meta információkat tartalmazza, a @name attribútumban kell megadni a meta információ nevét (kulcs).

Példa

<Meta>
    <Attribute name="Version">1</Attribute>
    <Attribute name="Description">rövíd leírás</Attribute>
</Meta>

Teljes xml beállítás példa

Példa

<?xml version="1.0" encoding="iso-8859-2"?> <BusinessObject xmlns="http://effector.hu/schema/ns/BusinessObject"> <Guid /> <Caption /> <ParentBusinessObject></ParentBusinessObject> <DataTable></DataTable> <UniqueIDColumn></UniqueIDColumn> <ForeignFields> <ForeignField name=""> <TableName></TableName> <Mappings> <Mapping> <TableField></TableField> <BusinessObjectField></BusinessObjectField> </Mapping> <Mapping> <TableField></TableField> <BusinessObjectField></BusinessObjectField> </Mapping> <Mapping> <TableField></TableField> <Value></Value> </Mapping> </Mappings> </ForeignField> </ForeignFields> <Fields> <Field name=""> <DefaultValue type="" return="" default=""> </Field> <Field name="" foreignField=""> <DefaultValue type="" return="" default=""> </Field> <Field name="" disableLogging=""> <DefaultValue type="" return="" default=""> </Field> <Field name="" isDocument=""> <DefaultValue type="" return="" default=""> </Field> <Field name="" requestValidatorRegExp=""> <DefaultValue type="" return="" default=""> </Field> <Field name="" requestValidatorCharacterGroup=""> <DefaultValue type="" return="" default=""> </Field> <Field name="" withEncryption="true"> <DefaultValue type="" return="" default=""> </Field> <Field name="" isSensitive="true"> <DefaultValue type="" return="" default=""> </Field> </Fields> <Triggers> <Trigger action="Create" event="" sourceBusinessObject="" sourceObjectType="" workflowVersion="" group=""> <Condition type="" return="" default=""></Condition> </Trigger> <Trigger action="Modify" event="" sourceBusinessObject="" workflowVersion=""> <ForeignKey></ForeignKey> <SetValues> <SetValue fieldName=""></SetValue> </SetValues> </Trigger> <Trigger action="RunSQL" event="" sourceBusinessObject="" sourceObjectType=""> <ForeignKey></ForeignKey> <SQL type=""></SQL> </Trigger> </Triggers> <Rights> <Modify type="" return="" default=""></Modify> <Create type="" return="" default=""></Create> <Delete type="" return="" default=""></Delete> <View type="" return="" default=""></View> </Rights> <Methods> <OnValidate type="" return="" default=""></OnValidate> <BeforeSave> <Module className="" action=""></Module> <RunSQL></RunSQL> </BeforeSave> <AfterSave> <Module className="" action=""></Module> <RunSQL></RunSQL> </AfterSave> <AfterDelete> <Module className="" action=""></Module> <RunSQL></RunSQL> </AfterDelete> <AfterCreate> <Module className="" action=""></Module> <RunSQL></RunSQL> </AfterCreate> <AfterLoad> <Module className="" action=""></Module> <RunSQL></RunSQL> </AfterLoad> </Methods> <Meta> <Attribute name=""></Attribute> </Meta> </BusinessObject>

  • Legutóbb frissítve: 15 hét 2 napja
  • Effector