Products

How version control system maintains your enterprise software

Great news! You’ve successfully implemented your enterprise product development solution Teamcenter. You’re in production and everything is now running smoothly.

Enterprise software conjures up collaboration and that requires direct coordination. If you have ever worried about changing your Teamcenter system configuration, a Version Control System such as Git Hub is a great tool to alleviate your fear.

How is it done?

A proper setup of version control system or VCS, also known as source code management or SCM, maintains a master copy of data in a centralized database. Now you can update the configuration of applications in a controlled manner.

This enables various contributors to:

  • Pull the latest information from the central server
  • Modify any work as neccessary
  • Validate the changes are working and ensure you are not creating more issues
  • Commit changes back into the central repository

Before continuing, ensure you have a good foundation of VCS, fetching remote repository contents, committing and pushing changes.

Teamcenter configuration with Version control system

Let’s now focus on a Teamcenter configuration.

It’s made of preferences, workflows, queries and stylesheets affecting the user interface and configurations for the Active Workspace Client. It’s now possible to manage all of your information in files. Teamcenter utilities exist to export and import preferences, files or workflows. For example, relying on an import script to synchronize contents in a reproducible manner. That import script is up to you, it is your recipe! However, it should include instructions for each and every configuration item you plan to manage. Be aware many utilities require a 2-Tier RAC client to run, so make provisions to access a host when considering managing configurations.

Let’s take a break from the nuts and bolts and get an overall view of the process:

The above process starts with an initiator, recognizing “something” needs to be done. Instructions are shared to an assigned resource, who will:

  • Fetch the latest configuration definition from the central VCS repository
  • Perform changes to configuration
  • Test them locally on a test server away from production and once deemed satisfying requirements (this step often includes a group review)
  • Commit to changes so the initiator can assess the changes have been made to standard

Independently, users can rely on VCS features to report changes.

Teamcenter configuration artifacts:

Rely on Teamcenter utilities to extract existing configuration information:

ArtifactUtilityOutcome
Tc Reportsimport_export_reports –exportGenerates a new folder named after the reportId parameter
Preferencespreferences_manager (…) -mode=exportExports preferences
Queriesplmxml_export  (…) -query=query_nameExports a query named query_name
Workflow templatesplmxml_export (…) -template=template_nameExports a workflow template named template_name
AWC UI Configurationsexport_uiconfigExports the AWC UI configuration file

Express these artifacts on a local host and push them into a remote repository using VCS-specific instructions, such as “git commit.” Prioritize these rules to maintain a reliable set of configurations should an unfortunate event occur (i.e., a user changes a workflow template on your server, without proper backup in place).

Establish a baseline configuration of Teamcenter on your VCS. Start planning configuration changes with confidence. Rely on any trick related to VCS – branching, checkout, tagging – to document changes and ensuring you have a safety net, limiting business interruption. Mark configuration changes such as “Initial Configuration”, then as business needs require it – “Add comments on Part Summary stylesheet”, “Change to workflow to add release review” and “Fix to PDF generation.”

Importing contents

When importing configuration changes in your test virtual machine or a Tc server, you’ll use the corresponding set of utilities with arguments supporting an import.

Create a script listing all your instructions to organize your process. Include that script in your VCS repository, so you or a colleague can optimally replay the process with minimal supervision.

Examine this snippet of a set of instructions:

(…)

echo ########## Loading AWC Stylesheet Preferences  #################

preferences_manager -u=adm_user -p=adm_passwd -g=adm_group -mode=import -action=OVERRIDE -scope=site -file=Stylesheets\import_prefs.xml

echo #########  Importing uiconfig file  #########

import_uiconfig -u=adm_user -p=adm_passwd -g=adm_group -file=AWC/uiconfig.xml

echo #########  BOM Report  #########

import_export_reports.exe -import -u=adm_user -p=adm_passwd -g=adm_group -stageDir="Reports" -reportId="PS-BOMStruct" -overwrite

(…)

Run that import script to populate your Teamcenter environment with the configuration.

Synchronizing contents across environments

Create a process that takes configuration changes from a development environment onto a test environment. If needed, into a production environment passing through a staging setup.

Consider the following setup, where a developer receives a work order and pulls contents from the VCS server and updates it. Once done, it’s committed to the VCS server and changes are propagated to a Test machine. A validation could indicate further work is needed, so a request is sent to development, with changes. Work continues and code is pushed again so tests can proceed. Eventually, you go to deploying a configuration on a production server.

Figure 2 Propagation of changes across Teamcenter environments.

Many sites might not need a staging server setup, at which point your test resources would be the last stop before considering deploying the configuration in production.

Tips:

  • Use your favorite text editor to modify stylesheets, reports, AWC UI configuration files
    • Stylesheets are best exported or downloaded through RAC or AWC
    • Stored as dataset: exporting out of Tc allows you to edit them in a rich text editor
  • Avoid modifying a workflow through its file!
    • Edit it exclusively through the Workflow Designer, as all tasks and their relationships are resolved dynamically
  • Queries are best edited through the Query Editor: a counter ensures all properties are accounted accurately

What’s next?

How about branching, merging, tags?

These are specifically VCS activities, that know-how is a pre-requisite to maintaining your configuration information.

And what about Continuous Integration, Continuous Deployment?

This is a bit trickier; it involves stopping Teamcenter services and processes and is more involving. Siemens offers services engagement to support this activity.

In summary

  • There are utilities that allow import and export of preferences, reports and other configuration artifacts
  • Queries and workflows can only be edited within RAC or AWC
  • Some artifacts can’t be exported or don’t have a command-line utility
Michael Alexander

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at https://blogs.stage.sw.siemens.com/teamcenter/utilize-version-control-system/