To be completed.
Related functions: edmiRemoteCreateTypedAggr
Header:
#include "sdai.h"
Prototype:
EdmiError edmiRemoteCreateTypedAggrBN(SdaiServerContext serverContextId,
SdaiAppInstance currInst,
SdaiString attributeName,
SdaiSelect pSel,
SdaiAggr *aggrId,
SdaiInvocationId *edmiInvocationId);
Arguments:
serverContextId |
Context identification, from edmiDefineServerContext |
currInst |
A numeric instanceID that uniquely identifies an instance in the remote _EDMdatabase_ that owns the attribute on which to create the typed aggregate. |
attributeName |
The name of the attribute on which to create a typed aggregate. Attribute names are case insensitive. When the attribute name is not unique within the instance <currInst>, it must be qualified with the name of the entity from which it was originally inherited. |
pSel |
Pointer to a locally allocated tSdaiSelect data structure that contains the type specification of the typed aggregate elements. |
aggrId |
Variable that will receive the aggregateId that uniquely identifies the typed aggregate in the remote EDMdatabase. |
edmiInvocationId |
Currently not used. |
Returns:
A completion code of datatype EdmiError is the returned function value. The completion code has the following values:
Completion code = 0 : Operation successfully performed.
Completion code != 0: Error in operation. Completion code is an _EDMinterface_ error code. Use edmiGetErrorText to get the error text corresponding to the error code.
Example:
/*
SCHEMA Accounts
TYPE tUSD = REAL; END_TYPE;
TYPE tEUR = REAL; END_TYPE;
TYPE tNOK = REAL; END_TYPE;
TYPE tAmount = SELECT (tUSD, tEUR, tNOK); END_TYPE;
ENTITY Turnover;
Year
Sales : ARRAY [1:12] OF tAmount;
END_ENTITY;
END_SCHEMA;
*/
EdmiError rstat;
SdaiServerContext myContext;
SdaiAggr aggrId;
SdaiType tAmountId;
SdaiInstance instId;
tSdaiSelect sel;
SdaiSelect salesAmount = &sel;
/* Create Server Context */
rstat = edmiDefineServerContext("MyContext",
"Johnny", "Supervisor", "cf37ftr",
"TCP", "9090", "MyServerHost",
NULL, NULL, NULL, NULL, NULL, &myContext);
/* Create instance of sales */
rstat = edmiRemoteCreateInstanceAndPutAttrsBN(myContext,
"AdminRepository", "Economy",
"Turnover", 0, &instId, NULL);
/* Get the type Id of tAmount */
rstat = edmiRemoteGetDefinedTypeBN(myContext, "Accounts",
"tAmount", &tAmountId, NULL);
/* Create typed aggregate */
salesAmount->nTypes = 1;
salesAmount->type = sdaiREAL;
salesAmount->typeList = &tAmountId;
salesAmount->value.realVal = 0;
rstat = edmiRemoteCreateTypedAggrBN(myContext,
instId, "Sales", salesAmount,
&aggrId, NULL);
. . .