Skip to content



Defines a base layer definition that needs further implementation.

Note! An abstract definition requires that an implementation is added at an upper layer.


If an entity is referenced from a dynamic component, then it is required to override the entity and specify an @DynamicComponentDependency annotation. This is in addition to the annotation provided above the reference.

@DynamicComponentDependency PURCH  
entity PurchaseReqLine {  
    use attributes = Objstate;  

The annotated object is only included if the component is part of the installation.


Run additional code before and/or after the lower layer of code is executed.

entity TaxSeries {  
   attribute TaxSeriesId Text {  
      label = "Tax Series ID";  

Note! An override requires that a call is made to 'super' - thus executing the code is a lower layer.

Example (Using @Override in the plsvc file to do some action after creating a new record)

   etag IN OUT VARCHAR2,  
   key_  IN OUT Project_Cost_Element_Key,  
   attr_ IN OUT VARCHAR2,  
   info_ OUT VARCHAR2,  
   action_ IN VARCHAR2 )  
   super(etag_, key_, attr_, info_, action_);  
END CRUD_Create___;  


This code is run instead of the code in lower layer(s). Note! An overtake should not make any call to 'super'.