Annotations

@Abstract

Defines a base layer definition that needs further implementation.

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

@DynamicComponentDependency

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.

@Override
@DynamicComponentDependency PURCH
entity PurchaseReqLine {
    use attributes = Objstate;
}

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

@Override

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

@Override
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)

@Override
PROCEDURE CRUD_Create (
   etag IN OUT VARCHAR2,
   key_  IN OUT Project_Cost_Element_Key,
   attr_ IN OUT VARCHAR2,
   info_ OUT VARCHAR2,
   action_ IN VARCHAR2 )
IS
BEGIN
   super(etag_, key_, attr_, info_, action_);
   Project_Cost_Element_API.Check_Default_Element(key_.company);
END CRUD_Create___;

@Overtake

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