Operation - servisná metóda

Ak je DataSource na servri typu služba - má zavolateľné metódy (RPC). "Operácia" má argumenty a návratovú hodnotu. Tie sú nejakého typu SimpleType, môžu byť nepovinné alebo typu array (multiple hodnoty).

Operácie sú mapa v operations v DataSource.

Operácia može mať podobu tlačítka na súvisiacom widgete, preto obsahuje kompletnú funkcionalitu pre Widget.Actions. Ďaľšia podoba je formulár na zadanie argumentov (a samotné zavolanie), ktorý môže použiť všetky možnosti Widget.WRecord.

Pre zjednodušenie práce sú Operácie aj použité Typy inštancie tried.

Meta-model

namenázov metódy (derivovaný)
titlenadpis
argsmapa argumentov, taktiež .getArgs()
getArgNames()názvy argumentov
getArgList()argumenty ako array
getArgCount()počet
getIdArgument(DS)nájsť hlavný identifikačný argument (prípadne hľadať aj zhodý DS)
getDSArgument(DS)nájsť hlavný objektový argument
getCriteriaArgument(DS)hľadať argument na zadávanie filtra
resulttyp návratovej hodnoty, resp. .getResultType()
dataSourcespetná väzba na DS, ktorému patrí
crudOperationi like it
{ ID: 'serverDataSource', operations: { findById: { title: 'Otvoriť detail', args: { id: { type:'id|long', dataSource: 'serverDataSource'} }, result: { type: 'serverDataSource' } }, findAll: { result: { type: 'serverDataSource', array: true } } } }

Základné GUI chovanie

Tlačítka operácií sa automaticky zobrazúju/skrývajú/disablujú na zozname záznamov alebo na detaile, na oboch alebo explicitne.

Tlačítka operácií sa zobrazúju na zozname záznamov alebo na detaile.

foreignOperationsyntetická operácia voľajúca inú, v inom DS, má podobu 'DS.op'
needsConfirmtrue vynúti popup okno s potvrdením spustenia operácie, ak tá nepotrebuje formulár
ifStatuskontrola spustiteľnosti pre aktuálny záznam (pole status v DS)
clientOnlysyntetická operácia, nevolá server a teda intenzívne využíva callbacky Widget.Actions a Events
autoFetchData
winProps
fields
listTreeFiltertrue zapne pre stromové DS vedľajší výber "adresára" ako hlavnú filtrovaciu položku
listClass
winSize
fullScreen
downloadResult
visibleOn
showAssoc
{ ... delete: { title: 'Zmazať', args>: { // rovnaký argument ako findById vyššie id: { type:'id|long', dataSource: 'serverDataSource'} }, needsConfirm: true, // nemá GUI, treba potvrdiť result: { type: 'boolean' } }, validate: { args: { id: { type:'id|long', dataSource: 'serverDataSource'} }, result: { type: 'boolean' }, ifStatus: 'invalid,valid' }, // syntetická operácia createKuku: { foreignOperation: 'otherDataSource.create' } }

Životný cyklus

onWidgetasd
onValuesasd
onRunasd

Query operácie

Operácie získavajúce dáta majú návratový typ objekt (alebo ich zoznam). Medzi argumentami sú filtrovacie kritériá alebo identifikátor (či ich zoznam). Dáta z nich sa zobrazujú na detailoch a zoznamoch (WRecord, WList)

Operácia na získanie 1 záznamu (detailu) sa líši od Commandov (tiež s jediným id argumentom) tým, že nemá needsConfirm.

Tieto operácie sa používajú v sekundárnych GUI situáciách (automatika, context-menu). V prípade, že je list operácií viacej, môže GUI ponúknuť voľbu.

DS.getListOperations()ako argument má najčastejšie filter podmienky. Sem môže spadať aj hľadanie podľa zoznamu identifikátov id: [1, 7, 32]
.getDetailOperations()získať kompletný záznam podľa id

Command operácie

Príkazy majú nejakú návratovú hodnotu alebo správu pre použivateľa. Ak je návratom záznam DS, použije sa na okamžitý refresh hodnôt zobrazených v GUI.

DS.getVisibleOps()operácie
.getCreateOperations()operácie, ktoré zakladajú nové záznamy
.getDetailActions()
.getOtherActions()
.getListMassOperations()

Vlastnosti argumentov

Pre Commandy ktoré požadujú od používateľa vstupné hodnoty sa použije Formulár alebo Wizard (WRecord).

Automatické chovanie zobrazí dodatočné argumenty vo formulári, pričom názov argumentu sa pohľadá ako pole v DS na predkonfiguráciu.

forceShowtrue vynúti zobrazenie predvyplneného
itemPropertiesvlastnosti pre FormItem, aplikované na záver