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

VClipse has been released as an open-source project.

Architecture

VClipse is an external modeling environment for the SAP configurator

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.

VCML and dependency example code

General Benefits of Textual Editing

Query and replace with regular expressions to replace a term by another one

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

Tooltips to display information on objects while editing dependencies

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:

Please contact us to discuss what we can do for you or just for a demonstration of VClipse.