One truth, multiple views on it: The various BOPF modeling environments
One particular thing which always causes a headache for BOPF-newbies is the multitude of tools which can be used in order to model a business object.
Therefore, I would like to give a brief overview and explain their dedicated purpose and powers. But before we head there, let me explain one elementary thing:
One (Meta-) Model (instance)
No matter with which tool you change the configuration, it will the same model which is getting manipulated. Precisely, the model of your business object is an instance of a model of business objects, the so-called “meta-model” (model of models). What is funky about it: also the meta-model is built with BOPF as a business object. The technical name of the meta-model is /BOBF/CONF_MODEL. As such it features plenty of nodes capturing the model information (such as – well – your business object’s nodes or the configuration of your validations) as well as a lot of business logic which is getting executed as you interact with the meta-model through one of the modelling environments. One of the strengths of BOPF is that the business logic is independent of the UI, so no matter your weapon of choice, the business object will (technically) look the same afterwards. You could even use the test-UI (BOBT), load business object /BOBF/CONF_MODEL and model your monster business object. But I recommend you not to do that, there are more comfortable modeling UIs. Let’s look at them from oldest to latest.
The full-blown SAP-internal workbench (BOBF, /BOBF/CONF_UI)
The so-called “Conf-UI” is THE almighty tool for modifying every aspect which the BOPF BO model covers (whether you call this “modelling” or “configuration” (of a meta-model-instance) is a matter of personal liking). However, SAP is not too confident about the usability of the transaction and obviously scared of the potential need of support if customers use all the options. E. g. it has turned out that – although technically possible – the buffer-class for each node should not be changed: The buffer-classes provided by SAP do a decent job and, what’s more important, fulfill the quite complex contract. Options like these should be hidden from customer’s eyes (or fingers, to be precise).
Therefore, the complete transaction is an SAP-internal tool and editing Business Objects or creating new ones is not possible in the Conf-UI. Unless you set a Set-Get-Parameter (Paul has already disclosed this in “ABAP to the future”, but I won’t do this here as well): Whatever you do in this mode is not supported by SAP and I urge you not to do that!
The Conf-UI allows to model a lot of unsupported features (such as multiple node categories), especially some options on the menu. Don’t use it unless you want to do some research on the full power of BOPF (no productive use).
For the supported set of features, a limited version of the Conf-UI exists:
The Business object Builder, Expert version (BOBX)
BOBX essentially is a Conf-UI in which all the unsupported features are hidden while offering the option to create custom business objects from scratch. I highly recommend using the BOBX wherever possible.
Some supported features are hidden in the standard view. Switch to the extended view in order to be able to e. g. specify a custom database access class.
If your business object does not behave the way you expect it to, you can always create an OSS-ticket and benefit from the brilliant and very helpful (no irony here!) BOPF support. And do believe me: They immediately see if you tweaked your business object with the Conf-UI. However, if there is some model-feature you’re missing, you might check the full-fledged version and explain to the BOPF-team in a ticket why you think this should be available in the BOBX as well.
The BOBX limits the the features which can be modeled to the supported features
BOPF in Eclipse (BiE)
If you’re already using ABAP in eclipse, you also might want to model your business objects within the same workbench. And you can. The only thing you need to do is to remember to install the proper plugin in your eclipse installation. It’s available in the same repository as ABAP in eclipse. BiE has a different paradigm than the previous two: It offers not only less, but more powerful modeling options which are then translated to the basic model elements. Due to usability and the integration into the modelling environment, even the first version of BiE is worth a look.
BOPF in eclipse: Lots of navigation options (blue) and a usecase-driven detail screen (in red)
BiE detail: Powerful breadcrumbs-navigation
Sample of BiE: An action configuration including the trigger actions.
You can even switch between the BOBX and the BiE, but be careful not to edit with the Conf-UI: You will not be able to switch to the released tools once you saved your object in BOBF.
The BOBF enhancement workbench or the BO builder (/BOBF/CUST_UI, BOB)
BOPF configurations can be extended – with BOPF configurations. This basically means that the enhancement is some business object which relates to the extended BO. At runtime, BOPF will merge the BO with its extensions so that it behaves like a single one. However, only a limited set of features can actually be extended.
The BO builder has much limited features (those necessary for enhancement) and displays entities from all nodes. Recommendation: Use BOBX for custom objects instead.
The BO builder allows to navigate the host object in a similar way like the Conf-UI or the BOBX. Also in BOB it is possible to create custom business objects, but the features offered are much reduced compared to the BOBX. Recently, BOBX was also enabled to model extensions, so in my opinion, there’s no need to use BOB at all.
Use BOBX if your development environment is the SAPGui, if you have move to ABAP in Eclipse, use the Eclipse-based editor. Keep your hand off the Conf-UI though it might be tempting to use it.