EDA_SetFunctionRec

EDA_SetFunctionRec

Uloží predpis pre vypočítaný vektor.

V prípade zápisu do verziovaných vektorov sú zmeneným dátam automaticky pridelené časové značky s aktuálnym časom. V prípade potreby je možné časovú značku zadať explicitne - nastavením parametra forceVersionTime na @TRUE a nastavením atribútu parametra version (version\TIM) na požadovaný čas. Existujúce dáta s rovnakou časovou značkou ako nové dáta budú prepísané.

Funkciou je možné vynútiť predpočítanie vektora parametrom precalcRq. Potom, v prípade, že pri čítaní vektora je potrebné načítať aj nepredpočítaný interval, je do logu generované upozornenie. Aplikačne je možné zobraziť upozornenie užívateľovi (akcia ON "EDA_WARNING").

Deklarácia

%EDA_SetFunctionRec( INT/TEXT in _vector, INT in _funcType, TEXT in _funcBody, REC in _params, INT out _errorCode );

Parametre

 

Parameter

Dátový typ

Typ

Popis

1

vector

INT/TEXT

IN

ID / kód vektora.

2

funcType

INT

IN

Typ výpočtu (podporený len 1 - na požiadanie).

3

funcBody

TEXT

IN

Predpis funkcie v EDA-L.

4

params

REC

IN

Štruktúra voliteľných parametrov.

5

errorCode

INT

OUT

Návratová hodnota.

Obsah štruktúry voliteľných parametrov verzie 1:

 

Parameter

Dátový typ

Default

Popis

1

structVersion

INT

 

Verzia štruktúry - 1.

2

period

INT

 

Nepodporené

3

offset

INT

 

Nepodporené

4

desc

TEXT

bez popisu

Popis k funkcii.

5

pod

TIME

 

Nepodporené

6

pdo

TIME

 

Nepodporené

7

userName

TEXT

"" (nezapisuje logovaciu informáciu)

Login užívateľa, ktorý vykonal zmenu (voliteľný).

8

deletePrecalculated

BOOL

TRUE

Príznak, či sa majú predpočítané dáta zmazať alebo ponechať.

9

version

INT/TEXT

"" (nenastavené)

Identifikátor (id/kód) verzie, do ktorej sa má vykonať zápis.

10

forceVersionTime

BOOL

@FALSE (časová pečiatka sa generuje - aktuálny čas)

Pre zapisované dáta vynúti použitie časovej pečiatky z parametra version.

11

precalcRq

BOOL

@FALSE

Príznak vynucujúci predpočítanosť vektora pri jeho načítaní.

12

cacheId

INT

0 (default read cache)

Identifikátor cache.

13

checkFunction

BOOL

@FALSE

Príznak, či sa pred uložením funkcie, má vykonať aj jej syntaktická kontrola. Systém v tomto prípade neumožní uložiť predpis s chybami.

14

batchId

INT

 

Identifikátor dávky, do ktorej sa má príkaz vložiť.

15

userLog

TEXT

 

Užívateľský popis akcie.

Príklad použitia

BEGIN INT _vectorId = 1000000 TEXT _vectorName = "vector.test" INT _errorCode TEXT _funcBody TEXT _CRLF = %Chr(13) + %Chr(10) RECORD NOALIAS (SD.EDA_CreateVector_Params_V1) _createParams RECORD NOALIAS (SD.EDA_SetFunction_Params_V1) _funcParams ; vytvori vypocitany vektor _createParams[1]^structVersion := 1 _createParams[1]^periodBeginTime := %TimeFromItems(2015, 1, 1, 0, 0, 0, 0) _createParams[1]^periodStepBase := 1 _createParams[1]^periodStepCount := 3600 CALL %EDA_CreateVectorRec(_vectorName, _vectorId, _vectorName, 13, _createParams, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF ; nastavi vektoru predpis _funcBody := "VEKTOR _v;" + _CRLF _funcBody := _funcBody + "INT _i;" + _CRLF _funcBody := _funcBody + "%CreateVektor(_v, _BT, _ET, _STEP);" + _CRLF _funcBody := _funcBody + "FOR _i = 1 TO %ValuesNr(_v) LOOP" + _CRLF _funcBody := _funcBody + " _v[_i] := _i;" + _CRLF _funcBody := _funcBody + "END LOOP;" + _CRLF _funcBody := _funcBody + "RETURN _v;" _funcParams[1]^structVersion := 1 CALL %EDA_SetFunctionRec(_vectorId, 1, _funcBody, _funcParams, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF END