SYNTAX:
xpxCopyAggrToNewAggr (options : INTEGER;
sourceAggrId : AGGREGATE OF GENERIC;
aggrOrInstanceId : GENERIC;attrIdOrAttrIntsance : GENERIC;aggrIndex : INTEGER;VAR newAggrId : AGGREGATE OF GENERIC) status : INTEGER;
The xpxCopyAggrToNewAggr function creates a new aggregate and copies the content of the source aggregate into the new created aggregate.
The options that can be used with this function are :
OPTION |
DESCRIPTION |
0 |
The new aggregate will be a volatile aggregate and the InstanceId of the new aggregate will be returned in the "newAggrId" argument. The arguments "aggrOrInstanceId", "attrIdOrAttrName" and "aggrIndex" are optional for this options value. |
xpxASSIGN_VOLATILE_AGGR_TO_GLOBAL_VARIABLE |
The new aggregate will be a volatile aggregate located in the "heap of the EDMexpressVM", i.e., will not be "out of scope" before the actual EDMexpressVM process is terminated. The InstanceId of the new created aggregate will be returned in the "newAggrId" argument. The arguments "aggrOrInstanceId", "attrIdOrAttrName" and "aggrIndex" are optional for this options value. |
xpxASSIGN_TO_ATTRIBUTE |
The new aggregate will be assigned to the attribute specified by the "attrIdOrAttrName" argument of the instance specified by the "aggrOrInstanceId" argument. The "attrIdOrAttrName" argument can be specified as an attribute name or as an attrId (InstanceId of the actual attribute). The arguments "aggrIndex" and "newAggrId" are optional for this options value. |
xpxASSIGN_TO_AGGREGATE_BY_INDEX |
The new created aggregate will be inserted in the (parent) aggregate specified in the "aggrOrInstanceId" argumen at the position (index) specified by the "aggrIndex" argument. This operation is legal for parent aggregates of type ARRAY and LIST. The arguments "attrIdOrAttrName", "aggrIndex" and "newAggrId" are optional for this options value. |
xpxINSERT_BEFORE_LIST_ELEMENT |
The new created aggregate will be inserted in the (parent) aggregate specified in the "aggrOrInstanceId" argument at the position before the element specified by the "aggrIndex" argument. This operation is legal only for parent aggregates of type LIST. The arguments "attrIdOrAttrName", and "newAggrId" are optional for this options value. |
xpxADD_TO_AGGREGATE |
The new created aggregate will be added to the (parent) aggregate specified in the "aggrOrInstanceId" argument. The parent aggregate must be SET, BAG or LIST. Hence, this option value is illegal when the "aggrOrInstanceId" aggregate is an ARRAY. When the parent aggregate is LIST, the actual operation will be APPEND. |
xpxNEW_SCRATCH_AGGREGATE |
The new aggregate will be a scratch aggregate (located in the scratch model). The InstanceId of the new created aggregate will be returned in the "newAggrId" argument. The arguments "aggrOrInstanceId", "attrIdOrAttrName" and "aggrIndex" are optional for this options value. |
See also xpxCopyAggrElement