VClipse Xtext-based IDE for the SAP Variant Configurator Tim Geisler webxcerpt Software GmbH tg@webxcerpt.com Eclipse DemoCamp Juno 2012, Walldorf 2012-06-20
Configurable Products
SAP Variant Configurator (LO-VC) Configuration engine in SAP ERP (ABAP) Used by several thousand companies Input: value assignments to characteristics Output: bill of materials, routings, pricing, characteristics Product configuration can drive sales, manufacturing, Configuration engine also in CRM: IPC (Java) Uses same data model and modeling environment as VC
Product Modeling for the VC / IPC Model: Objects and Dependencies Classification system (classes, characteristics) Materials, bill of materials, routings Dependencies: Constraints (declarative), preconditions, selection conditions, procedures Can be attached to a variety of objects ABAP / Java calls and access to tabular data inside dependencies from LO-VC documentation
Product Modeling for the VC in ERP Tools: Single Transactions, PMEVC For each object type one set of dialogs Different modes for create, read, update, delete All-in-one (almost) transaction PMEVC
Problems Model is not a document, but slice of database content Lack of overview 3 screens for editing a constraint (header, source, explanation) Lack of teamwork support Jointly modify database contents, locking for synchronization Complete history of product model? Engineering Change Management in SAP shows only history of single objects Comparing models? Comparing versions of models? Mass changes? No offline modeling Product modeling is like software development, but with inadequate tools.
VClipse Eclipse-based textual product modeling environment For VC and IPC Based on Xtext / EMF Open source (EPL) www.vclipse.org Hosted on EclipseLabs Available since 2 years
VClipse - VCML Textual language for SAP objects Own invention Embedded languages for dependencies (procedures, conditions, and constraints) Same languages as in SAP system
IDE for VCML Validation Cross References Quickfixes Content Assist
IDE for VCML Rename refactoring Outline Folding Templates Where used?
Interface to SAP ECC (ALE, RFC) RFC interface Create, Read, Update, Delete on single objects Extract recursively: complete model extraction ALE interface Sending complete models via IDocs (Product Data Replication, PDR) Delta calculation Compute and send only changed objects One-click delta deployment Send delta via PDR, automatic processing in SAP
Use Case Textual Modeling Environment Product modeling using Xtext-based editor features Mass maintenance Validating product models Checking certain restrictions Compatibility with LO-VC and / or IPC Storing product models in version control Comparing product models From different versions From different SAP systems
Use Case Customer-Specific Modeling Environment Specific validation rules (naming and modeling conventions) Specific templates (modeling patterns) Target language for product-model migration from legacy configurators
Use Case Base for Integrating Tools Integration of ConfigScan test suite from Fysbee SAS Integrated language for specifying test cases JUnit-like view for test execution Enables test-driven product modeling
Use Case Implementing own Modeling Language Create own domainspecific language for product modeling Use model-to-model transformations to map to VCML Use VClipse as backend to SAP ECC Own Modeling Environment Editor/IDE VClipse Editor/IDE VCML Own DSL Code Generation RFC
Example: Nokia Siemens Networks Use of IPC in SAP CRM for sales configuration Hundreds of complex products and services (telecommunication equipment for network operators) NSN-specific modeling environment ConfigModeler Different integrated NSN-specific languages for product model, UI, test cases, and help system 2/3 of all products on productive CRM system modeled with ConfigModeler
Discussion Doing open source is difficult in SAP ERP area: Very slow adoption by SAP configuration community Technological and legal issues: no downloadble distribution due to SAP JCo licensing SAP Code Exchange: incompatible licensing with EPL SAP adopts Xtext-based product modeling: The new Solution Modeling Environment is also implemented using Xtext. Special non-overlapping use case (solution configuration using advanced mode of the IPC) Eclipse update site for SAP JCo would be nice Textual DSLs for other areas in SAP landscape?
Further Information www.vclipse.org Project homepage Links to further presentations www.configuration-workgroup.com User community for product configuration in SAP Discussion forum Bi-annual conferences Document share for all conference talks Variant Configuration with SAP. Uwe Blumöhr, Manfred Münch und Marin Ukalovic. SAP PRESS, 2011 Contact me for a live demo of VClipse or the solution build for Nokia Siemens Networks on top of VClipse