{"id":13896,"date":"2023-02-08T16:41:35","date_gmt":"2023-02-08T21:41:35","guid":{"rendered":"https:\/\/blogs.sw.siemens.com\/teamcenter\/?p=13896"},"modified":"2026-03-26T08:57:46","modified_gmt":"2026-03-26T12:57:46","slug":"utilize-version-control-system","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/teamcenter\/utilize-version-control-system\/","title":{"rendered":"How version control system maintains your enterprise software"},"content":{"rendered":"\n<p style=\"font-size:21px\">Great news! You\u2019ve successfully implemented your enterprise product development solution Teamcenter. You\u2019re in production and everything is now running smoothly.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">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. <\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">How is it done?<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-vcs-server-1024x828.png\" alt=\"\" class=\"wp-image-14274\" width=\"663\" height=\"552\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">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. <\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">This enables various contributors to:<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pull the latest information from the central server<\/li>\n\n\n\n<li>Modify any work as neccessary<\/li>\n\n\n\n<li>Validate the changes are working and ensure you are not creating more issues<\/li>\n\n\n\n<li>Commit changes back into the central repository<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Before continuing, ensure you have a good foundation of VCS, fetching remote repository contents, committing and pushing changes.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Teamcenter configuration with Version control system<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Let\u2019s now focus on a Teamcenter configuration.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">It\u2019s made of preferences, workflows, queries and stylesheets affecting the user interface and configurations for the Active Workspace Client. It&#8217;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.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Let\u2019s take a break from the nuts and bolts and get an overall view of the process:<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-close-loop-1024x409.jpg\" alt=\"\" class=\"wp-image-14275\" width=\"1450\" height=\"579\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-close-loop-1024x409.jpg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-close-loop-600x240.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-close-loop-768x307.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-close-loop-900x359.jpg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-close-loop.jpg 1412w\" sizes=\"auto, (max-width: 1450px) 100vw, 1450px\" \/><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">The above process starts with an initiator, recognizing \u201csomething\u201d needs to be done. Instructions are shared to an assigned resource, who will:<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fetch the latest configuration definition from the central VCS repository<\/li>\n\n\n\n<li>Perform changes to configuration<\/li>\n\n\n\n<li>Test them locally on a test server away from production and once deemed satisfying requirements (this step often includes a group review)<\/li>\n\n\n\n<li>Commit to changes so the initiator can assess the changes have been made to standard<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Independently, users can rely on VCS features to report changes.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Teamcenter configuration artifacts:<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Rely on Teamcenter utilities to extract existing configuration information:<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Artifact<\/strong><\/td><td><strong>Utility<\/strong><\/td><td><strong>Outcome<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Tc Reports<\/strong><\/td><td>import_export_reports &#8211;<strong>export<\/strong><\/td><td>Generates a new folder named after the reportId parameter<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Preferences<\/strong><\/td><td>preferences_manager (\u2026) -mode=<strong>export<\/strong><\/td><td>Exports preferences<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Queries<\/strong><\/td><td>plmxml_export&nbsp; (\u2026) -query=<em>query_name<\/em><\/td><td>Exports a query named <em>query_name<\/em><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Workflow templates<\/strong><\/td><td>plmxml_export (\u2026) -template=<em>template_name<\/em><\/td><td>Exports a workflow template named <em>template_name<\/em><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>AWC UI Configurations<\/strong><\/td><td>export_uiconfig<\/td><td>Exports the AWC UI configuration file<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Express these artifacts on a local host and push them into a remote repository using VCS-specific instructions, such as &#8220;git commit.&#8221; 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).<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Establish a baseline configuration of Teamcenter on your VCS. Start planning configuration changes with confidence. Rely on any trick related to VCS \u2013 branching, checkout, tagging \u2013 to document changes and ensuring you have a safety net, limiting business interruption. Mark configuration changes such as \u201cInitial Configuration\u201d, then as business needs require it \u2013 \u201cAdd comments on Part Summary stylesheet\u201d, \u201cChange to workflow to add release review\u201d and \u201cFix to PDF generation.&#8221;<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Importing contents<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">When importing configuration changes in your test virtual machine or a Tc server, you\u2019ll use the corresponding set of utilities with arguments supporting an import.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">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. <\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Examine this snippet of a set of instructions:<\/p>\n\n\n\n<p>(\u2026)<\/p>\n\n\n\n<p style=\"font-size:21px\"><code>echo ########## Loading AWC Stylesheet Preferences&nbsp; #################<\/code><\/p>\n\n\n\n<p style=\"font-size:21px\"><code>preferences_manager -u=<em>adm_user<\/em> -p=<em>adm_passwd<\/em> -g=<em>adm_group<\/em> -mode=import -action=OVERRIDE -scope=site -file=Stylesheets\\import_prefs.xml<\/code><\/p>\n\n\n\n<p style=\"font-size:21px\"><code>echo #########&nbsp; Importing uiconfig file&nbsp; #########<\/code><\/p>\n\n\n\n<p style=\"font-size:21px\"><code>import_uiconfig -u=<em>adm_user<\/em> -p=<em>adm_passwd<\/em> -g=<em>adm_group<\/em> -file=AWC\/uiconfig.xml<\/code><\/p>\n\n\n\n<p style=\"font-size:21px\"><code>echo #########&nbsp; BOM Report &nbsp;#########<\/code><\/p>\n\n\n\n<p style=\"font-size:21px\"><code>import_export_reports.exe -import -u=<em>adm_user<\/em> -p=<em>adm_passwd<\/em> -g=<em>adm_group<\/em> -stageDir=\"Reports\" -reportId=\"PS-BOMStruct\" -overwrite<\/code><\/p>\n\n\n\n<p>(\u2026)<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Run that import script to populate your Teamcenter environment with the configuration.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Synchronizing contents across environments<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">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.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">Consider the following setup, where a developer receives a work order and pulls contents from the VCS server and updates it. Once done, it\u2019s 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.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-uml-sequence.jpg\" alt=\"\" class=\"wp-image-14294\" width=\"729\" height=\"777\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-uml-sequence.jpg 729w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/paul-eric-uml-sequence-563x600.jpg 563w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><figcaption class=\"wp-element-caption\">Figure 2 Propagation of changes across Teamcenter environments.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">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.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Tips:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use your favorite text editor to modify stylesheets, reports, AWC UI configuration files<ul><li>Stylesheets are best exported or downloaded through RAC or AWC<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>Stored as dataset: exporting out of Tc allows you to edit them in a rich text editor<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Avoid modifying a workflow through its file!\n<ul class=\"wp-block-list\">\n<li>Edit it exclusively through the Workflow Designer, as all tasks and their relationships are resolved dynamically<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Queries are best edited through the Query Editor: a counter ensures all properties are accounted accurately<\/li>\n<\/ul>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s next?<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">How about<strong> <\/strong>branching, merging, tags?<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">These are specifically VCS activities, that know-how is a pre-requisite to maintaining your configuration information.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">And what about Continuous Integration, Continuous Deployment?<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p style=\"font-size:21px\">This is a bit trickier; it involves stopping Teamcenter services and processes and is more involving. Siemens offers services engagement to support this activity.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">In summary<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>There are utilities that allow import and export of preferences, reports and other configuration artifacts<\/li>\n\n\n\n<li>Queries and workflows can only be edited within RAC or AWC<\/li>\n\n\n\n<li>Some artifacts can\u2019t be exported or don\u2019t have a command-line utility<\/li>\n<\/ul>\n\n\n\n<div style=\"height:26px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-25 has-custom-font-size is-style-secondary-button\" style=\"font-size:23px\"><a class=\"wp-block-button__link has-white-color has-orange-background-color has-text-color has-background wp-element-button\" href=\"https:\/\/trials.sw.siemens.com\/teamcenterx-cloud-plm\/\" style=\"border-radius:100px\" target=\"_blank\" rel=\"noreferrer noopener\">Free Trial Teamcenter X<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Great news! You\u2019ve successfully implemented your enterprise product development solution Teamcenter. You\u2019re in production and everything is now running smoothly&#8230;.<\/p>\n","protected":false},"author":87363,"featured_media":14300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1,51,54],"tags":[],"industry":[],"product":[],"coauthors":[31430],"class_list":["post-13896","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","category-featured","category-whats-new"],"featured_image_url":"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/14\/2023\/02\/featured-image.png","_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/posts\/13896","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/users\/87363"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/comments?post=13896"}],"version-history":[{"count":4,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/posts\/13896\/revisions"}],"predecessor-version":[{"id":14446,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/posts\/13896\/revisions\/14446"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/media\/14300"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/media?parent=13896"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/categories?post=13896"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/tags?post=13896"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/industry?post=13896"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/product?post=13896"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/teamcenter\/wp-json\/wp\/v2\/coauthors?post=13896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}