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 |
Súvisiace stránky: