ABAP CDS Frameworkspezifische Annotationsdefinitionen

原文来自: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 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);  
       }; 
   }; 
};
原文地址:https://www.cnblogs.com/yjyongil/p/10481512.html