- Design / Prototype
- Create Dictionary Objects
- Create Interface View (CDS)
- Business Object Generation (CDS – Object Model Annotations )
- Generated Business Object
- BOPF – Development
- Test BOPF Object using BOBT
- Access Control (CDS)
- Consumption View (CDS)
- OData Service Generation and Registration
- Test OData Service using SAP Gateway Client
- UI development
BOPF?
The Business Object Processing Framework is an ABAP OO-based framework that provides a set of generic services and functionalities to speed up, standardize, and modularize your development. BOPF manages the entire life cycle of your business objects and covers all aspects of your business application development. Instead of expending effort for developing an application infrastructure, the developer can focus on the individual business logic. Using BOPF, you get the whole application infrastructure and integration of various components for free. This allows you to rapidly build applications on a stable and customer-proven infrastructure.
SOURCE: Introduction to Business Object Processing Framework (BOPF)
Refer Source for detailed information on BOPF, it will help you to get an overview of BOPF.
Note: Transactions to work with BOPF objects in SAPGUI are BOB, BOBF, BOBX. However, Business Object generated using Object Model Annotations in CDS, can only be edited using ADT (ABAP Development Tools) in Eclipse.
Business Object Initial View
- Name of the generated Business Object is the same as the CDS View.
- Constant Interface is automatically generated
- Go To nodes of this BO => Display Nodes in Hierarchy
- Go to the Root Node => Display Node and it Elements
- Display Generated Business Object using BOBF
Constant Interface
Constant Interface ‘ZIF_2812_I_PB_HEAD_ND_C‘ is auto-generated. BOPF generates business logic and lots of dependent objects. All of these objects are always referred to using GUID. In SAP GUID is 16 character hexadecimal value, and that is hard to remember to refer objects related to BO. Therefore, the constant interface is generated with proper human readable and understandable name for such objects. To see the values switch to source code based display.
Root Node Overview
Persistent Structure, Combined Structure ( Persistent + Transient Structure ) & Combined Table Type are auto-generated. Standard Draft Library Class is assigned for the handling of Drafts.
Alternative Keys
As the name implies, they are an alternate way of finding the instance of the node. It is more meaningful and related to business data, for example in this scenario Phone Book ID can be created and used as Alternate Key.
Properties
Initially, the properties of fields are set as instructed by annotations. properties can be set for Node, Node Attributes, Associations, Actions etc. Example of properties that can be set are Enabled, Read Only, Mandatory, Create Enabled, Update Enabled, Delete Enabled.
Associations
Association to Item Data is generated as per CDS annotation.
Actions
Action carries out the application of business logic. There are many standard actions generated for CRUD and Draft handling. Action has to be triggered explicitly.
Determinations
Determinations are tied to the event and are triggered implicitly. You cant call a determination directly. Many standard determinations are auto-generated for Drafts, Locks, Field Control etc. Example, in case, if Transient Structure is used then determinations can be used to update transient data. However, it can also be used to update persistent data as a result of the change of values of other attributes.
Validations
Validation is checks triggered to validate the Node.
Action validations are pre-checks to continue with the triggered action.
Consistency validations do node consistency checks and can stop CRUD operations based on configuration or logic.
Authorizations
For handling authorization framework generates Authorization element and assign Authorization Class to it.
Based on the requirement you can use method ‘CHECK_STATIC_AUTHORITY’ or ‘CHECK_INSTANCE_AUTHORITY’
Display Generated Business Object using BOBF
Many associations to other pre-existing BO’s such as Lock, Message and Property are created. They are not displayed by default. We need to change the User Settings in BOBF transaction for Business Object, in order to display all.