Version Control System Integration

To support Version Control System Integration (VCSI), a set of outbound integration endpoint options allow STEP to publish system configurations to a branch in Git, an external Version Control System (VCS) (refer to: https://git-scm.com). Using an inbound integration endpoint (IIEP), files from a Git branch can be combined, enriched with processing instructions, and imported on a target system as a joined STEPXML file using the STEPXML Joiner to directly update objects in the system. Alternately, the STEPXML Joiner for Change Packages can be combined with an IIEP to import the change package .ZIP imported on a target system as a joined STEPXML file so changes can be analyzed and scheduled for an appropriate installation window. VCS systems support automation capabilities to generate a .ZIP of a change package and send it to an SFTP to the IIEP of a target system.

This functionality allows for easy comparison of configurations over time and across systems in a Development, Test, Acceptance, and Production (DTAP) environment and is meant to aid customers who need to transfer configuration changes between different systems and/or ensure systems are in sync configuration-wise. Users can choose to configure a collection to group changes for scheduled or on-demand delivery or automated delivery when a change package is sealed using the two ‘Git’ options for delivery and the two ‘STEPXML Joiner' pre-processors.

Note: For on-premises systems, the 'configuration-management' add-on component must be activated to enable VCSI.

Configuration / Data

In STEP, the distinction between configuration and data is not always clear. While most of the objects and settings that can be found in the workbench System Setup tab are clearly configuration, the Tree tab holds both data and configuration. For example, objects like import, export, and bulk update configurations are configuration, but in addition, classification hierarchies, upper levels in the product and entity hierarchies, and entity structures used for modeling reference data, are widely regarded as configuration.

For the functionality presented in the related topics and in the topics of the VCSI documentation, there is no distinction between 'configuration' and 'data.' Instead, as described in the outbound integration endpoint (OIEP) topics (Configure an OIEP for VCSI with Change Packages or the Configure an OIEP for VCSI with Git Delivery ), this can be configured. However, the functionality is not designed to handle vast amounts of data objects (e.g., SKUs or wide and deep hierarchies).

Grouping Changes

Options available for grouping configuration objects include event-driven with change packages upon sealing, or select objects, typically using a collection. Initial setup requirements, usage patterns, and organizational capabilities are different for each option.

Change packages are recommended when working on projects in an iterative development process, where smaller changes are grouped separately for the complete configuration. However, a change package can also be used to group a more complete configuration definition.

VCSI Configuration Options

The VCSI suite includes the options defined in the following topics:

OIEP

IIEP

Additional Information

The following information may be required depending on your own environment:

  • VCSI: Editable Business Rules Format - govern the lifecycle of JavaScript business rules in a standard source code control system such as Git, and from there, deploy appropriate versions of the business rules to the various STEP systems that are part of a DTAP environment.

  • VCSI: Example Setups - use OIEP options to publish the configuration from each system in a DTAP environment to different branches in a remote Git repository, which allows for easy manual comparison of configurations using the 'diff' tools Git offers.

  • VCSI: Considerations and Limitations - not all configurations can be exported / expressed in STEPXML or can be added to change packages, and not all changes can be applied via the STEP Importer processing engine. The functionality works for settings stored in the STEP database rather than files in the application server file system.