VClipse – An Eclipse-based IDE for SAP Variant Configuration
Models for the SAP Variant Configurator (LO-VC, IPC) are traditionally
manipulated with graphical user interfaces, either using single transactions for each object type or using PMEVC. Even the editors for
textual parts of the model (dependencies like conditions, procedures, and constraints) are embedded in
the GUI. While this GUI allows to manipulate the components of a
product model directly, it is often more efficient to work with complete
product models in textual form. Textual modeling is particularly
helpful for complex products or for modeling a range of similar
products.
To support overall text-based modeling for users of the SAP Variant
Configurator we have developed
- the language VCML (short for "Variant-Configurator Modeling
Language") for representing VC objects,
- parsers for VC's dependency languages,
- the Eclipse-based IDE VClipse for editing models represented in
these languages
- and of course interfaces to the SAP system (based on RFC or
IDoc/PDR) to exchange models.
VClipse has been released as an open-source project.
Architecture
For a modeler, the IDE complements VC's standard modeling utilities
(PMEVC and low-level SAP transactions). The fully textual
representation and the IDE are useful in situations where a graphical
user interface becomes laborious to use.
In addition to the benefits of textual modeling described below,
VClipse works in local memory and on local files rather than on a
server-side model repository. This way the IDE avoids delays for
client-server round trips and can even be used in offline mode.
Furthermore VCML allows to organize a model according to its logical
structure. That is, closely related objects can be declared nearby
each other, independently of their (technical) object types. When used
thoroughly, this feature also makes models easier to understand and to
manipulate.
General Benefits of Textual Editing
Certain operations on text files are provided by Eclipse and other IDEs
off-the-shelf and do not even require the IDE to have any understanding
of the used language:
- The IDE supports full-text search over the entire set of product
models or over specific parts of it. The search is not restricted to
a particular object type (such as characteristics, characteristic
values, constraints, procedures, etc.). Regular expressions can be used for
powerful matching.
- Many changes across multiple model objects can easily be executed as
search-and-replace operations. For example, you might want to
replace a technical term by a more appropriate one in all your
products.
- To understand the difference between the models of two similar
products or between two versions of the model for one product, textual
comparison of models is supported. When models have diverged, the
comparison tool also helps to merge them back into a unified
representation.
- This also allows to use mainstream version-control systems like Git or Subversion for
managing model versions. Different modelers can even perform their
own local changes on the model and let the version control-system
merge these changes later.
- Inconsistent models can be represented easily. This is
particularly helpful for representing intermediate states during
larger changes to the model.
- Comments can be added to each aspect of a model. Parts of a model
can even be deactivated easily by marking them as comments.
- Task tags such as "TODO" or "FIXME" can be used to mark and list
places in the code where more work is required.
Finally, and perhaps most importantly, a textual representation makes it
much easier to communicate about models. You can easily add (parts
of) a model to an e-mail, discussion forum, or a presentation slide. And if you wish, you
can even print it out.
VClipse-specific Features
Based on its understanding of VCML and the languages for dependencies,
VClipse provides additional utilities for modelers:
- Syntax highlighting makes models easier to read.
- Navigation from places referencing an object to the object's
definition, or in the opposite direction.
- Renaming objects simultaneously in the object definition and in
all the places where the object is referenced.
- Model validations such as checking for length and size restrictions.
- Suggestions for completing partial input ("content assist")
- Suggestions for "quick fixes" to correct typical simple mistakes.
There are also quick fixes creating objects that are referenced but do
not yet exist. This feature makes modeling in a top-down direction
very convenient.
- Tooltips displaying information about a referenced object
conveniently without the need to navigate to it.
- Templates for quickly setting up frequently used patterns.
- Outline views to provide an overview of the model in document order or PMEVC-like order.
- Folding of text blocks allows to temporarily hide details that are
currently not relevant.
- Integration of the automated model testing engine ConfigScan from Fysbee
and an integrated language for describing test cases.
VClipse as a Building Block
Textual model representations are not only useful for manual editing,
but they can also be the result of the compilation from a
customer-specific high-level modeling language.
Furthermore a textual model representation is very helpful for
migrating models from some other configuration engine to SAP VC or
from SAP VC to another engine. A translator can use textual models as
its input and output. Typically large parts of a model can easily be
translated automatically from one engine to another but for certain
details an automatic translation is impossible or simply not worth the
effort. In these cases the translator can emit comments with
untranslated parts of the input model, providing a convenient starting
point for a manual completion of the translation.
Finally notice that we are also providing tools similar to VClipse and
VCML for the configuration tool
PROS Cameleon CPQ.
Presentations
We have given presentations on VClipse at conferences of the SAP
Configuration Workgroup (CWG) and at Eclipse Demo Camps. Please note
that these presentations are some years old and do not describe the
present state of the tools in all details. However, the basic ideas
remain the same.
VClipse Overview
Eclipse DemoCamp Juno 2012, Walldorf, June 2012
This presentation has been given in the Eclipse DemoCamp at SAP's headquarters
to an audience with a background on Eclipse technology.
Use Cases for VClipse
Configuration Workgroup (CWG)European Conference, Vienna, May 2013
This presentation discusses several use cases of VClipse:
- Extracting, comparing, and merging models
- Support for complex model-maintenance tasks
- Model validation
- Model migration
- High-level product modeling
- Integration of modern software development tools
- Automatic model testing
Our Offer
webXcerpt provides professional services related to VClipse. Here are
some examples of what we can do for you:
- We provide training and support on VClipse usage and for
VClipse-related development (e.g., integration of VClipse with your
other systems).
- We implement VClipse extensions adding features such as
validation rules for your use cases, import and export formats, or
model visualization.
- If you provide a complementary tool, we can help you to integrate
it with VClipse or parts of it, such as the SAP ECC interface.
- We help you to migrate models to or from SAP VC
semi-automatically.
- We implement languages and IDEs for high-level modeling, allowing
you to describe your products in a language close to your business and
not cluttered with technical details.
Please contact us to discuss what we can do for
you or just for a demonstration of VClipse.