原文来自:https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-de/abencds_annotations_frmwrk_ddla.htm
Die folgenden DDLA-Quelltexte zeigen die CDS-Annotationsdefinitionen aller Framework-spezifischen Annotationen der CDS DDL und CDS DCL der ABAP CDS.
- Zur Bedeutung der hier gezeigten DDLA-Quelltexte siehe die Dokumentation zu DEFINE ANNOTATION.
- Zur semantischen Bedeutung der Annotationen siehe die Verweise in den DDLA-Quelltexten.
Die Dokumentation CDS-Annotationen fasst die Beschreibungen der Framework-spezifischen Annotationen zusammen.
Hinweis
Siehe auch Framework-spezifische Annotationssyntax.
AccessControl-Annotationen
- @Scope:[#VIEW, #TABLE_FUNCTION]
annotation AccessControl
{
authorizationCheck : String(20) enum { NOT_REQUIRED; NOT_ALLOWED; CHECK; PRIVILEGED_ONLY; } default #CHECK;
privilegedAssociations: array of AssociationRef;
personalData
{
blocking : String(30) enum { NOT_REQUIRED; REQUIRED; BLOCKED_DATA_EXCLUDED; };
};
};
Aggregation-Annotationen
- @Scope:[#ELEMENT]
annotation Aggregation
{
default: String(30) enum
{
NONE;
SUM;
MIN;
MAX;
AVG;
COUNT_DISTINCT;
NOP;
FORMULA;
};
referenceElement : array of ElementRef;
};
Analytics-Annotationen
- @Scope:[#VIEW, #TABLE_FUNCTION]
annotation Analytics
{
dataCategory : String(20) enum { DIMENSION; FACT; CUBE; AGGREGATIONLEVEL; };
query : Boolean default true;
hidden : Boolean default true;
planning
{
enabled : Boolean default true;
};
dataExtraction
{
enabled : Boolean default true;
delta
{
byElement
{
name : ElementRef;
@MetadataExtension.usageAllowed : true
maxDelayInSeconds : Integer default 1800;
detectDeletedRecords : Boolean default true;
@MetadataExtension.usageAllowed : true
ignoreDeletionAfterDays : Integer;
};
};
};
hints : String(1298);
writeBack
{
className : String(30);
};
settings
{
maxProcessingEffort : String(20) enum { LOW; MEDIUM; HIGH; UNLIMITED; } default #HIGH;
zeroValues: {
handling: String(20) enum { SHOW; HIDE; HIDE_IF_ALL; } default #SHOW;
hideOnAxis: String(20) enum { ROWS; COLUMNS; ROWS_COLUMNS; } default #ROWS_COLUMNS;
};
};
};
AnalyticsDetails-Annotationen
- @Scope:[#ELEMENT]
annotation AnalyticsDetails
{
query
{
formula : String(1298);
axis : String(20) enum { FREE; ROWS; COLUMNS; };
totals: String(20) enum { HIDE; SHOW; };
scaling : Integer;
decimals : Integer;
display : String(20) enum { KEY; TEXT; TEXT_KEY; KEY_TEXT; };
sortDirection : String(20) enum { ASC; DESC; };
hidden : Boolean default true;
displayHierarchy : String(20) enum { OFF; ON; FILTER; };
hierarchyInitialLevel : Integer;
hierarchyBinding : array of
{
type : String(12) enum { ELEMENT; PARAMETER; CONSTANT; USER_INPUT; SYSTEM_FIELD; };
value : String(512);
variableSequence : Integer;
};
hierarchySettings
{
hidePostedNodesValues : Boolean default true;
};
elementHierarchy
{
parent : ElementRef;
initiallyCollapsed : Boolean default true;
};
@Scope:[#ELEMENT, #PARAMETER]
variableSequence : Integer;
resultValuesSource : String(10) enum { CUBE; DIMENSION; };
};
exceptionAggregationSteps : array of
{
exceptionAggregationBehavior : String(14) enum
{
SUM;
MIN;
MAX;
COUNT;
COUNT_DISTINCT;
AVG;
STD;
FIRST;
LAST;
NHA;
};
exceptionAggregationElements : array of ElementRef;
};
planning
{
enabled : Boolean default true;
disaggregation : String(20) enum { NONE; TOTAL; DIFFERENCE; };
distribution : String(20) enum { EQUAL; PROPORTIONAL; PROPORTIONAL_REF; };
distributionReference : ElementRef;
};
};
Consumption-Annotationen
- @Scope:[#VIEW, #EXTEND_VIEW]
define annotation Consumption
{
@Scope:[#VIEW, #TABLE_FUNCTION, #PARAMETER, #ELEMENT]
@MetadataExtension.usageAllowed : true
semanticObject : String(120);
@MetadataExtension.usageAllowed : true
@Scope:[#ELEMENT, #PARAMETER]
labelElement : ElementRef;
@Scope:[#ELEMENT, #PARAMETER]
quickInfoElement : ElementRef;
@Scope:[#ELEMENT, #PARAMETER]
hidden : Boolean default true;
@MetadataExtension.usageAllowed : true
@Scope:[#ELEMENT, #PARAMETER]
derivation
{
lookupEntity : EntityRef;
resultElement : ElementRef;
resultElementHigh : ElementRef;
resultHierarchyNode
{
nodeTypeElement : ElementRef;
mapping : array of
{
hierarchyElement : ElementRef;
lookupElement : ElementRef;
};
};
binding : array of
{
targetParameter : ParameterRef;
targetElement : ElementRef;
type : String(12) enum
{
ELEMENT;
PARAMETER;
CONSTANT;
SYSTEM_FIELD;
};
value : String(512);
};
};
@Scope:[#ELEMENT]
@MetadataExtension.usageAllowed : true
filter
{
mandatory : Boolean default true;
defaultValue : String(1024);
defaultValueHigh : String(1024);
defaultHierarchyNode
{
nodeType : ElementRef;
node : array of
{
element : ElementRef;
value : String(512);
};
};
hidden : Boolean default true;
selectionType : String(20) enum
{
SINGLE;
INTERVAL;
RANGE;
HIERARCHY_NODE;
};
multipleSelections : Boolean default true;
hierarchyBinding : array of
{
type : String(12) enum
{
ELEMENT;
PARAMETER;
CONSTANT;
USER_INPUT;
SYSTEM_FIELD;
};
value : String(512);
variableSequence : Integer;
};
};
@Scope:[#ELEMENT]
@MetadataExtension.usageAllowed : true
groupWithElement: ElementRef;
ranking
{
@Scope:[#ELEMENT]
@MetadataExtension.usageAllowed : true
functionParameterBinding : array of
{
functionId : String(120);
parameterId : String(120);
};
@Scope:[#VIEW]
@MetadataExtension.usageAllowed : true
activeFunctions : array of
{
id : String(120);
weight : Decimal(3,2) default 1;
};
};
@Scope:[#PARAMETER]
@MetadataExtension.usageAllowed : true
defaultValue : String(1024);
@Scope:[#ELEMENT, #PARAMETER]
valueHelp : ElementRef;
@Scope:[#ELEMENT, #PARAMETER]
@MetadataExtension.usageAllowed : true
valueHelpDefinition: array of
{
qualifier: String(120);
entity
{
name : EntityRef;
element : ElementRef;
};
association : AssociationRef;
additionalBinding : array of
{
localElement : ElementRef;
element : ElementRef;
};
@LanguageDependency.maxLength : 40
label : String(60);
};
};
DefaultAggregation-Annotationen
- @Scope:[#ELEMENT]
annotation DefaultAggregation : String(30) enum { NONE; SUM; MIN; MAX; AVG; COUNT; COUNT_DISTINCT; FORMULA; };
EnterpriseSearch-Annotationen
- @Scope:[#ELEMENT]
@MetadataExtension.usageAllowed : true
annotation EnterpriseSearch
{
@Scope:[#VIEW, #TABLE_FUNCTION]
enabled : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
fieldGroupForSearchQuery : array of
{
name : String(128);
elements : array of ElementRef;
};
@Scope:[#ELEMENT]
expand : Boolean default true;
defaultValueSuggestElement : Boolean default true;
searchOptions : String(500);
filteringFacet
{
default : Boolean default true;
displayPosition : Integer;
collapse : Boolean default true;
complexFilter : Boolean default true;
numberOfValues : Integer;
order
{
by : String(20) enum
{
NUMBER_OF_HITS;
FILTER_ELEMENT_VALUE;
FILTER_ELEMENT_LABEL;
} default #NUMBER_OF_HITS;
byReference : ElementRef;
direction : String(4) enum
{
ASC;
DESC;
};
};
caseInsensitiveAggregation : Boolean default true;
countNullValues : Boolean default true;
};
filteringAttribute
{
default : Boolean default true;
displayPosition : Integer;
caseInsensitiveAggregation : Boolean default true;
countNullValues : Boolean default true;
};
commonAttributes : array of String(100);
technicalDescription : Boolean default true;
snippets
{
enabled : Boolean default true;
beginTag : String(128);
endTag : String(128);
};
highlighted
{
enabled : Boolean default true;
beginTag : String(128);
endTag : String(128);
};
maximumLength : Integer;
};
Hierarchy-Annotationen
- @Scope:[#VIEW]
annotation Hierarchy
{
parentChild : array of
{
name : String(127);
label : String(1298);
multipleParents : Boolean default true;
recurseBy : ElementRef;
recurse
{
parent : array of ElementRef;
child : array of ElementRef;
};
siblingsOrder : array of
{
by : ElementRef;
direction : String(4) enum { ASC; DESC; } default #ASC;
};
rootNode
{
visibility : String(25) enum { ADD_ROOT_NODE_IF_DEFINED; ADD_ROOT_NODE; DO_NOT_ADD_ROOT_NODE; } default #ADD_ROOT_NODE_IF_DEFINED;
};
orphanedNode
{
handling : String(20) enum { ROOT_NODES; ERROR; IGNORE; STEPPARENT_NODE; } default #ROOT_NODES;
stepParentNodeId : array of String(1298);
};
directory : AssociationRef;
};
};
OData-Annotationen
- @Scope:[#VIEW, #TABLE_FUNCTION]
define annotation OData
{
publish : Boolean default true;
};
ObjectModel-Annotationen
- annotation ObjectModel
{
@Scope:[#VIEW, #TABLE_FUNCTION, #ELEMENT]
createEnabled : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
draftEnabled : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
lifecycle
{
enqueue
{
expiryBehavior : String(30) enum { RELATIVE_TO_ENQUEUE_START; RELATIVE_TO_LAST_CHANGE; } default #RELATIVE_TO_LAST_CHANGE;
expiryInterval : String(20);
notificationBeforeExpiryInterval : String(20);
};
processing
{
expiryBehavior : String(30) enum { RELATIVE_TO_PROCESSING_START; RELATIVE_TO_LAST_CHANGE; } default #RELATIVE_TO_LAST_CHANGE;
expiryInterval : String(20);
notificationBeforeExpiryInterval : String(20);
};
};
@Scope:[#VIEW, #TABLE_FUNCTION]
modelCategory : String(30) enum { BUSINESS_OBJECT; };
@Scope:[#VIEW, #TABLE_FUNCTION]
dataCategory : String(30) enum { TEXT; HIERARCHY; };
@Scope:[#VIEW, #TABLE_FUNCTION]
representativeKey : KeyElementRef;
@Scope:[#VIEW, #TABLE_FUNCTION]
semanticKey : array of ElementRef;
@Scope:[#VIEW, #TABLE_FUNCTION]
alternativeKey : array of
{
id : String(30);
uniqueness : String(30) enum { UNIQUE; UNIQUE_IF_NOT_INITIAL; };
element : array of ElementRef;
};
@Scope:[#VIEW, #TABLE_FUNCTION]
compositionRoot : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
transactionalProcessingEnabled : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
transactionalProcessingUnitRoot : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
transactionalProcessingDelegated : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
updateEnabled : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
deleteEnabled : Boolean default true;
@Scope:[#VIEW, #TABLE_FUNCTION]
writeDraftPersistence : String(16);
@Scope:[#VIEW, #TABLE_FUNCTION]
writeActivePersistence : String(16);
@Scope:[#VIEW, #TABLE_FUNCTION]
entityChangeStateId : ElementRef;
@Scope:[#VIEW]
resultSet
{
sizeCategory : String(3) enum { XS; };
};
@Scope:[#VIEW, #TABLE_FUNCTION]
usageType
{
serviceQuality : String(30) enum { A; B; C; D; X; P; } default #X;
sizeCategory : String(3) enum { S; M; L; XL; XXL; } default #S;
dataClass : String(30) enum
{
TRANSACTIONAL;
MASTER;
ORGANIZATIONAL;
CUSTOMIZING;
META;
MIXED;
} default #MIXED;
};
@Scope:[#ELEMENT]
association
{
type : array of String(30) enum { TO_COMPOSITION_CHILD; TO_COMPOSITION_PARENT; TO_COMPOSITION_ROOT; };
draft : { enabled : Boolean default true;
fieldNamePrefix : String(16); };
};
@Scope:[#ELEMENT]
text
{
element : array of ElementRef;
association : AssociationRef;
};
@Scope:[#ELEMENT]
hierarchy
{
association : AssociationRef;
};
@Scope:[#ELEMENT]
foreignKey
{
association : AssociationRef;
};
@Scope:[#ELEMENT]
readOnly : Boolean default true;
@Scope:[#ELEMENT]
mandatory : Boolean default true;
@Scope:[#ELEMENT]
filter
{
transformedBy : String(255);
};
@Scope:[#ELEMENT]
sort
{
transformedBy : String(255);
};
@Scope:[#ELEMENT]
virtualElement : Boolean default true;
@Scope:[#ELEMENT]
virtualElementCalculatedBy : String(255);
@Scope:[#ELEMENT]
enabled : Boolean default true;
};
Search-Annotationen
- @Scope:[#ELEMENT]
@MetadataExtension.usageAllowed : true
annotation Search
{
@Scope:[#VIEW, #TABLE_FUNCTION]
searchable : Boolean default true;
@Scope:[#ELEMENT]
defaultSearchElement : Boolean default true;
ranking : String(6) enum { HIGH; MEDIUM; LOW; } default #MEDIUM;
fuzzinessThreshold : Decimal(3,2);
termMappingDictionary : String(128);
termMappingListId : array of String(32);
};
Semantics-Annotationen
- @Scope: [#ELEMENT, #PARAMETER]
define annotation Semantics
{
telephone
{
type : array of String(10) enum
{
HOME;
CELL;
WORK;
FAX;
PREF;
TEXT;
VOICE;
VIDEO;
PAGER;
TEXT_PHONE;
};
};
eMail
{
type : array of String(10) enum
{
HOME;
WORK;
PREF;
OTHER;
};
address : Boolean default true;
from : Boolean default true;
sender : Boolean default true;
to : Boolean default true;
cc : Boolean default true;
bcc : Boolean default true;
subject : Boolean default true;
body : Boolean default true;
keywords : Boolean default true;
received : Boolean default true;
};
name
{
fullName : Boolean default true;
givenName : Boolean default true;
additionalName : Boolean default true;
familyName : Boolean default true;
nickName : Boolean default true;
suffix : Boolean default true;
prefix : Boolean default true;
jobTitle : Boolean default true;
};
address
{
type : array of String(10) enum
{
HOME;
WORK;
PREF;
OTHER;
};
city : Boolean default true;
street : Boolean default true;
streetNoNumber : Boolean default true;
number : Boolean default true;
country : Boolean default true;
region : Boolean default true;
subRegion : Boolean default true;
zipCode : Boolean default true;
postBox : Boolean default true;
label : Boolean default true;
};
organization
{
name : Boolean default true;
unit : Boolean default true;
role : Boolean default true;
};
calendarItem
{
summary : Boolean default true;
description : Boolean default true;
categories : Boolean default true;
dtStart : Boolean default true;
dtEnd : Boolean default true;
duration : Boolean default true;
due : Boolean default true;
completed : Boolean default true;
priority : Boolean default true;
class : Boolean default true;
status : Boolean default true;
percentComplete : Boolean default true;
contact : Boolean default true;
location : Boolean default true;
transparent : Boolean default true;
fbType : Boolean default true;
wholeDay : Boolean default true;
};
businessDate
{
at : Boolean default true;
from : Boolean default true;
to : Boolean default true;
};
systemDateTime
{
createdAt : Boolean default true;
lastChangedAt : Boolean default true;
};
systemDate
{
createdAt : Boolean default true;
lastChangedAt : Boolean default true;
};
systemTime
{
createdAt : Boolean default true;
lastChangedAt : Boolean default true;
};
time : Boolean default true;
durationInSeconds : Boolean default true;
calendar
{
dayOfMonth : Boolean default true;
dayOfYear : Boolean default true;
week : Boolean default true;
month : Boolean default true;
quarter : Boolean default true;
halfyear : Boolean default true;
year : Boolean default true;
yearWeek : Boolean default true;
yearMonth : Boolean default true;
yearQuarter : Boolean default true;
yearHalfyear : Boolean default true;
};
fiscal
{
yearVariant : Boolean default true;
period : Boolean default true;
year : Boolean default true;
yearPeriod : Boolean default true;
};
geoLocation
{
longitude : Boolean default true;
latitude : Boolean default true;
cartoId : Boolean default true;
normalizedName : Boolean default true;
};
url
{
mimeType : String(1024);
};
imageUrl : Boolean default true;
contact
{
type : String(12) enum
{
PERSON;
ORGANIZATION;
};
note : Boolean default true;
photo : Boolean default true;
birthDate : Boolean default true;
};
user
{
id : Boolean default true;
createdBy : Boolean default true;
lastChangedBy : Boolean default true;
responsible : Boolean default true;
};
mimeType : Boolean default true;
text : Boolean default true;
language : Boolean default true;
languageReference : ElementRef;
@Scope:[#ELEMENT]
amount
{
currencyCode : ElementRef;
};
@Scope:[#ELEMENT]
quantity
{
unitOfMeasure : ElementRef;
};
@Scope:[#ELEMENT]
currencyCode : Boolean default true;
@Scope:[#ELEMENT]
unitOfMeasure : Boolean default true;
@Scope:[#ELEMENT]
booleanIndicator : Boolean default true;
@Scope:[#ELEMENT]
largeObject
{
mimeType : String(1024);
};
};
UI-Annotationen
- @MetadataExtension.usageAllowed : true
define annotation UI
{
@Scope:[#VIEW, #TABLE_FUNCTION]
headerInfo
{
@LanguageDependency.maxLength : 40
typeName : String(60);
@LanguageDependency.maxLength : 40
typeNamePlural : String(60);
typeImageUrl : String(1024);
imageUrl : ElementRef;
title
{
type : String(40) enum
{
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
value : ElementRef;
targetElement : ElementRef;
url : ElementRef;
};
description
{
type : String(40) enum
{
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
value : ElementRef;
targetElement : ElementRef;
url : ElementRef;
};
};
@Scope:[#VIEW, #TABLE_FUNCTION]
badge
{
headLine
{
type : String(40) enum
{
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
value : ElementRef;
targetElement : ElementRef;
url : ElementRef;
};
title
{
type : String(40) enum
{
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
value : ElementRef;
targetElement : ElementRef;
url : ElementRef;
};
typeImageUrl : String(1024);
imageUrl : ElementRef;
mainInfo
{
type : String(40) enum
{
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
value : ElementRef;
targetElement : ElementRef;
url : ElementRef;
};
secondaryInfo
{
type : String(40) enum
{
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
value : ElementRef;
targetElement : ElementRef;
url : ElementRef;
};
};
@Scope:[#VIEW, #TABLE_FUNCTION]
chart : array of
{
qualifier : String(120);
@LanguageDependency.maxLength : 40
title : String(60);
@LanguageDependency.maxLength : 80
description : String(120);
chartType : String(40) enum
{
COLUMN;
COLUMN_STACKED;
COLUMN_STACKED_100;
COLUMN_DUAL;
COLUMN_STACKED_DUAL;
COLUMN_STACKED_DUAL_100;
BAR;
BAR_STACKED;
BAR_STACKED_100;
BAR_DUAL;
BAR_STACKED_DUAL;
BAR_STACKED_DUAL_100;
AREA;
AREA_STACKED;
AREA_STACKED_100;
HORIZONTAL_AREA;
HORIZONTAL_AREA_STACKED;
HORIZONTAL_AREA_STACKED_100;
LINE;
LINE_DUAL;
COMBINATION;
COMBINATION_STACKED;
COMBINATION_STACKED_DUAL;
HORIZONTAL_COMBINATION_STACKED;
HORIZONTAL_COMBINATION_STACKED_DUAL;
PIE;
DONUT;
SCATTER;
BUBBLE;
RADAR;
HEAT_MAP;
TREE_MAP;
WATERFALL;
BULLET;
VERTICAL_BULLET;
};
dimensions : array of ElementRef;
measures : array of ElementRef;
dimensionAttributes : array of
{
dimension : ElementRef;
role : String(10) enum
{
CATEGORY;
SERIES;
};
};
measureAttributes : array of
{
measure : ElementRef;
role : String(10) enum
{
AXIS_1;
AXIS_2;
AXIS_3;
};
asDataPoint : Boolean default true;
};
actions : array of
{
type : String(40) enum
{
FOR_ACTION;
FOR_INTENT_BASED_NAVIGATION;
};
@LanguageDependency.maxLength : 40
label : String(60);
dataAction : String(120);
invocationGrouping : String(12) enum
{
ISOLATED;
CHANGE_SET;
} default #ISOLATED;
semanticObjectAction : String(120);
};
};
@Scope:[#VIEW, #TABLE_FUNCTION]
selectionPresentationVariant : array of
{
qualifier : String(120);
id : String(120);
@LanguageDependency.maxLength : 40
text : String(60);
selectionVariantQualifier : String(120);
presentationVariantQualifier : String(120);
};
@Scope:[#VIEW, #TABLE_FUNCTION]
selectionVariant : array of
{
qualifier : String(120);
id : String(120);
@LanguageDependency.maxLength : 40
text : String(60);
parameters : array of
{
name : ParameterRef;
value : String(1024);
};
filter : String(1024);
};
@Scope:[#VIEW, #TABLE_FUNCTION]
presentationVariant : array of
{
qualifier : String(120);
id : String(120);
@LanguageDependency.maxLength : 40
text : String(60);
maxItems : Integer;
sortOrder : array of
{
by : ElementRef;
direction : String(4) enum
{
ASC;
DESC;
};
};
groupBy : array of ElementRef;
totalBy : array of ElementRef;
total : array of ElementRef;
includeGrandTotal : Boolean default true;
initialExpansionLevel : Integer;
requestAtLeast : array of ElementRef;
visualizations : array of
{
type : String(40) enum
{
AS_LINEITEM;
AS_CHART;
AS_DATAPOINT;
};
qualifier : String(120);
element : ElementRef;
};
selectionFieldsQualifier : String(120);
};
@Scope:[#ELEMENT]
hidden : Boolean default true;
@Scope:[#ELEMENT]
masked : Boolean default true;
@Scope:[#ELEMENT]
multiLineText : Boolean default true;
@Scope:[#ELEMENT]
lineItem : array of
{
qualifier : String(120);
position : DecimalFloat;
exclude : Boolean default true;
importance : String(6) enum { HIGH; MEDIUM; LOW; };
type : String(40) enum
{
FOR_ACTION;
AS_ADDRESS;
AS_DATAPOINT;
AS_CONTACT;
AS_CHART;
FOR_INTENT_BASED_NAVIGATION;
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
dataAction : String(120);
invocationGrouping : String(12) enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
semanticObjectAction : String(120);
value : ElementRef;
valueQualifier : String(120);
targetElement : ElementRef;
url : ElementRef;
};
@Scope:[#ELEMENT]
identification : array of
{
position : DecimalFloat;
exclude : Boolean default true;
importance : String(6) enum { HIGH; MEDIUM; LOW; };
type : String(40) enum
{
FOR_ACTION;
AS_ADDRESS;
AS_DATAPOINT;
AS_CONTACT;
AS_CHART;
FOR_INTENT_BASED_NAVIGATION;
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
dataAction : String(120);
invocationGrouping : String(12) enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
semanticObjectAction : String(120);
value : ElementRef;
valueQualifier : String(120);
targetElement : ElementRef;
url : ElementRef;
};
@Scope:[#ELEMENT]
statusInfo : array of
{
position : DecimalFloat;
exclude : Boolean default true;
importance : String(6) enum { HIGH; MEDIUM; LOW; };
type : String(40) enum
{
FOR_ACTION;
AS_ADDRESS;
AS_DATAPOINT;
AS_CONTACT;
AS_CHART;
FOR_INTENT_BASED_NAVIGATION;
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
dataAction : String(120);
invocationGrouping : String(12) enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
semanticObjectAction : String(120);
value : ElementRef;
valueQualifier : String(120);
targetElement : ElementRef;
url : ElementRef;
};
@Scope:[#ELEMENT]
fieldGroup : array of
{
qualifier : String(120);
@LanguageDependency.maxLength : 40
groupLabel : String(60);
position : DecimalFloat;
exclude : Boolean default true;
importance : String(6) enum { HIGH; MEDIUM; LOW; };
type : String(40) enum
{
FOR_ACTION;
AS_ADDRESS;
AS_DATAPOINT;
AS_CONTACT;
AS_CHART;
FOR_INTENT_BASED_NAVIGATION;
STANDARD;
WITH_INTENT_BASED_NAVIGATION;
WITH_NAVIGATION_PATH;
WITH_URL;
} default #STANDARD;
@LanguageDependency.maxLength : 40
label : String(60);
iconUrl : String(1024);
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
dataAction : String(120);
invocationGrouping : String(12) enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
semanticObjectAction : String(120);
value : ElementRef;
valueQualifier : String(120);
targetElement : ElementRef;
url : ElementRef;
};
@Scope:[#ELEMENT]
dataPoint
{
@LanguageDependency.maxLength : 40
title : String(60);
@LanguageDependency.maxLength : 80
description : String(120);
@LanguageDependency.maxLength : 193
longDescription : String(250);
targetValue : DecimalFloat;
targetValueElement : ElementRef;
forecastValue : ElementRef;
minimumValue : DecimalFloat;
maximumValue : DecimalFloat;
visualization : String(12) enum
{
NUMBER;
BULLET_CHART;
DONUT;
PROGRESS;
RATING;
};
valueFormat
{
scaleFactor : DecimalFloat;
numberOfFractionalDigits : Integer;
};
referencePeriod
{
@LanguageDependency.maxLength : 80
description : String(120);
start : ElementRef;
end : ElementRef;
};
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
criticalityCalculation
{
improvementDirection : String(8) enum { MINIMIZE; TARGET; MAXIMIZE; };
acceptanceRangeLowValue : DecimalFloat;
acceptanceRangeHighValue : DecimalFloat;
toleranceRangeLowValue : DecimalFloat;
toleranceRangeLowValueElement : ElementRef;
toleranceRangeHighValue : DecimalFloat;
toleranceRangeHighValueElement : ElementRef;
deviationRangeLowValue : DecimalFloat;
deviationRangeLowValueElement : ElementRef;
deviationRangeHighValue : DecimalFloat;
deviationRangeHighValueElement : ElementRef;
};
trend : ElementRef;
trendCalculation
{
referenceValue : ElementRef;
isRelativeDifference : Boolean default true;
upDifference : DecimalFloat;
upDifferenceElement : ElementRef;
strongUpDifference : DecimalFloat;
strongUpDifferenceElement : ElementRef;
downDifference : DecimalFloat;
downDifferenceElement : ElementRef;
strongDownDifference : DecimalFloat;
strongDownDifferenceElement : ElementRef;
};
responsible : ElementRef;
responsibleName : String(120);
};
@Scope:[#ELEMENT]
selectionField : array of
{
qualifier : String(120);
position : DecimalFloat;
exclude : Boolean default true;
element : ElementRef;
};
@Scope:[#ELEMENT]
facet : array of
{
qualifier : String(120);
id : String(120);
purpose : String(40) enum
{
STANDARD;
HEADER;
QUICK_VIEW;
QUICK_CREATE;
FILTER;
} default #STANDARD;
parentId : String(120);
position : DecimalFloat;
exclude : Boolean default true;
isPartOfPreview : Boolean default true;
isSummary : Boolean default true;
isMap : Boolean default true;
importance : String(6) enum
{
HIGH;
MEDIUM;
LOW;
};
@LanguageDependency.maxLength : 40
label : String(60);
type : String(40) enum
{
COLLECTION;
ADDRESS_REFERENCE;
BADGE_REFERENCE;
CHART_REFERENCE;
CONTACT_REFERENCE;
DATAPOINT_REFERENCE;
FIELDGROUP_REFERENCE;
HEADERINFO_REFERENCE;
IDENTIFICATION_REFERENCE;
LINEITEM_REFERENCE;
STATUSINFO_REFERENCE;
URL_REFERENCE;
};
targetElement : ElementRef;
targetQualifier : String(120);
url : ElementRef;
};
@Scope:[#VIEW, #ELEMENT]
textArrangement : String(13) enum
{
TEXT_FIRST;
TEXT_LAST;
TEXT_ONLY;
TEXT_SEPARATE;
};
@Scope: [#ELEMENT]
kpi : array of
{
qualifier : String(120);
id : String(120);
selectionVariantQualifier : String(120);
detail
{
defaultPresentationVariantQualifier : String(120);
alternativePresentationVariantQualifiers : array of String(120);
};
dataPoint
{
@LanguageDependency.maxLength : 40
title : String(60);
@LanguageDependency.maxLength : 80
description : String(120);
@LanguageDependency.maxLength : 193
longDescription : String(250);
targetValue : DecimalFloat;
forecastValue : DecimalFloat;
minimumValue : DecimalFloat;
maximumValue : DecimalFloat;
valueFormat
{
scaleFactor : DecimalFloat;
numberOfFractionalDigits : Integer;
};
visualization : String(12) enum
{
NUMBER;
BULLET_CHART;
DONUT;
PROGRESS;
RATING;
};
referencePeriod {
@LanguageDependency.maxLength: 80
description : String(120);
start : ElementRef;
end : ElementRef;
};
criticality : ElementRef;
criticalityRepresentation : String(12) enum
{
WITHOUT_ICON;
WITH_ICON;
} default #WITHOUT_ICON;
criticalityCalculation
{
improvementDirection : String(8) enum
{
MINIMIZE;
TARGET;
MAXIMIZE;
};
acceptanceRangeLowValue : DecimalFloat;
acceptanceRangeHighValue : DecimalFloat;
toleranceRangeLowValue : DecimalFloat;
toleranceRangeHighValue : DecimalFloat;
deviationRangeLowValue : DecimalFloat;
deviationRangeHighValue : DecimalFloat;
constantThresholds : array of
{
aggregationLevel : array of ElementRef;
acceptanceRangeLowValue : DecimalFloat;
acceptanceRangeHighValue : DecimalFloat;
toleranceRangeLowValue : DecimalFloat;
toleranceRangeHighValue : DecimalFloat;
deviationRangeLowValue : DecimalFloat;
deviationRangeHighValue : DecimalFloat;
};
};
trend : ElementRef;
trendCalculation
{
referenceValue : ElementRef;
isRelativeDifference : Boolean ;
upDifference : DecimalFloat;
strongUpDifference : DecimalFloat;
downDifference : DecimalFloat;
strongDownDifference : DecimalFloat;
};
responsible : ElementRef;
responsibleName: String(120);
};
};
};