Restrict LAA/Extend on the inside (Restrict Customization)¶
Restricting Layered Application Architecture is now possible from entity level, projection level or even from component level. If a component is final, it does not allow customization of any models inside that component or to add any new customization models to the component. Further, code generation is restricted if any of the models are customized within a final component.
Main objective of this initiative is to avoid unnecessary customizations on Platform/Framework components for 22R1 and onwards.
For 22R1 and onwards following set of framework components are marked as final. With that, customers are not allowed to have any customizations for below components in customer code base. If customer code base has any customizations done on any of the below components, that would lead to a code generation error at build time due to LAA restriction with @final on components. Hence, unexpected customizations need to be removed before getting the release update of 22R1 or later.
Click on the component to get more specific information
|Development and Extensibility||FNDCOB, FNDDEV|
|Infrastructure and Framework||FNDADM, FNDBAS, FNDDSS, FNDREM, FNDSCM|
|.IoT Workflow Data||FNDCAT, FNDMIG, FNDRPL, FNDWF|
|Business Modeling Reporting and Analytics||FNDRRE, BISERV, BRBASE, ISTOOL, BIAXSV, TABMFW, UCFONT, BUSMOD, CRYSTL, TMCRM, TMEAM, TMEMPA, TMGC, TMGL, TMINMA, TMPROC, TMPROJ, TMPRPE, TMSALE, TABMDL, PBIES|
Mark a Component Final¶
Add the following code snippet to deploy.ini file of the component to make it final.
Mark an Entity/Projection Final¶
If a projection/entity is marked as final, then it restricts the customization capability of that particular projection/entity (This restriction is also imposed in code generation level).
Use @Final annotation at the beginning of the .entity/.projection file.