Altium Designer Documentation

Component Synchronization with Enterprise Systems

Modified by Rob Evans on Sep 9, 2019

Parent page: Altium Concord Pro

Altium Concord Pro facilitates the uni- or bi-directional synchronization of component data (including part choices) with your enterprise systems. A configuration file allows you to specify the direction of synchronization and therefore which parameters are mastered in which system. Component data synchronization between Concord Pro and the target enterprise system uses a built-in synchronization process, which may be manually triggered or set as timed repeating event.

Altium Concord Pro does not offer full PLM integration - this level of integration is only available through Altium NEXUS.

An Altium Concord Pro installation includes a CSV Component database importer tool that can be used to bring component data into Concord Pro from a file exported from another system (PLM, ERP, or otherwise). In addition, direct support is provided for the following enterprise systems:

  • PTC Windchill® PLM (11.0 M030)
  • Arena® PLM
  • Oracle® Agile™ PLM

Interface configuration is performed through Concord Pro's browser interface, with the connection setup and parameter mapping defined within an XML-based configuration file (uploaded to the server).

When the synchronization process first adds a component's data in the target system, the generated item number is passed back to the component in Concord Pro as a PlmPartNumber parameter.  This acts as the key parameter when synchronizing data between Concord Pro and the enterprise system instance. In addition, the configuration can be arranged so that item parameters/attributes on the enterprise system side will update properties in the Concord Pro server (configurable per field), without having to formally release a new revision of that Component Item.

CSV Uploader

An Altium Concord Pro installation includes a CSV Component database importer tool that can be used to bring component data into Concord Pro from a file exported from an enterprise system. Implemented as a configurable batch (*.bat) file, the desktop tool imports component data from a target spreadsheet file (*.csv) into the server as determined by existing server templates or a dedicated configuration file.

The command line tool can be found in the \Program Files (x86)\Altium\Altium Concord Pro\Tools\CSVImport folder of the Concord Pro installation. See the csv-import.bat for information on the command line syntax used with the tool, or simply execute the batch file without attributes for more detailed information.

Notes:

  • The tool and its supporting Java runtime folder (JRE8) may be copied to and run in any location, including on a different networked machine to the one hosting Concord Pro.
  • The tool may need to be run with elevated (Administrator) privileges, depending on where it is located.
  • The tool syntax is case sensitive, as are references in Server Templates and any configuration files used.
  • The server folder that will be targeted by the import process must have an Item Naming Scheme defined.

Source file format:

The CSV data importer tool requires the source comma-delimited CSV file to use UTF-8 character encoding. If the file uses other encoding formats such as ANSI or UTF-8-BOM, the importer will not parse extended characters (such as µ) correctly, or may not accept the *.csv source file.

If creating a basic CSV file for testing purposes, note that some versions of Windows' Notepad do not save in a compatible UTF-8 format. If in doubt, an alternative text editor such as Notepad++ can be used to create and save UTF-8 encoded files, and is also useful for checking the encoding format of *.csv files exported from a source enterprise system.

Auto mode

When used without applying a configuration file (option –c) the CSV Uploader tool process will attempt to match the target CSV filename (say, Resistors.csv) with a server Component Template that supports that Component Type (Resistors). The found Template will determine the Revision, Lifecycle and Default Folder (server target) for the imported data. Note that the minimum data requirement for the source CSV file is the PART_NUMBER parameter column and its matching  Values.

The csv-import utility tool provides general progress information in the console window as it runs, and can also produce a log file as specified by the command syntax (-l). If component manufacturer part parameters are present in the CSV file (by default; MFR_PART_NUMBER and MFR_NAME), matching Part Choice entries are created in the server.

The optional log file provides details of a successful import process.

If the process fails a log file is not generated, however more information on the cause of a failed execution might be found in the Concord Pro log files, such as those in the C:\ProgramData\Altium\ConcordProData\logs\EIS\ops server folder – example.

Configured mode

The tool’s more advanced mode uses an XML configuration file to specify file-to-server parameter mapping for the import process. For the example shown here this might be say, mapping the source Value parameter to Resistance in the server, and the Format parameter to Package.

To obtain a base configuration file that can be modified to suit, run the tool with the generate configuration file setting (-g). This will create the specified XML file with parameter key/value pairs extracted from the source CSV file, and the Revision, Lifecycle and target folder setting from the matched Template. For example:
csv-import.bat -s http://TOP:9780 -u admin -p admin -g MyConfig.xml -i C:\Users\Public\Documents\CSV_Files\CSVImport\Resistors.csv.

Example of generated configuration file

Edit the Attribute Values in the ToAltium section of the MyConfig.xml configuration file (for the Resistors entity) to map as required.

For the example shown here, the related Attributes would be changed from:

<ns2:Attribute attributeType="revision">
  <ns2:Key>Format</ns2:Key>
  <ns2:Value>${attribute.Format}</ns2:Value>
</ns2:Attribute>
<ns2:Attribute attributeType="revision">
  <ns2:Key>Value</ns2:Key>
  <ns2:Value>${attribute.Value}</ns2:Value>
</ns2:Attribute>

...to:

<ns2:Attribute attributeType="revision">
  <ns2:Key>Package</ns2:Key>
  <ns2:Value>${attribute.Format}</ns2:Value>
</ns2:Attribute>
<ns2:Attribute attributeType="revision">
  <ns2:Key>Resistance</ns2:Key>
  <ns2:Value>${attribute.Value}</ns2:Value>
</ns2:Attribute>

The configuration file is then used with the tool (option –c) to perform the required mapping:
csv-import.bat -s http://TOP:9780 -u admin -p admin -c MyConfig.xml -i C:\Users\Public\Documents\CSV_Files\CSVImport\Resistors.csv

If the component entries already exist in the Server (as imported in the above Auto mode example process), new Revisions will be created and the remapped parameters added to the existing data – existing parameters are not removed.

Additional features:

  • An applied configuration file determines all settings for the import process, including parameter mappings, independently of related server Templates.
  • All parameters may be mapped to accommodate the input CSV file parameters, including what name is used in the file for PLM Number and the part manufacturer data.
  • Multiple Entity definitions, including their constituent parameter Attributes, can be included in a configuration file. Copy an existing Entity group entry, say for Resistors, and then paste/edit this to create another for Capacitors.
  • When a source path is specified without a CSV file, the tool will search the source folder for CSV filenames that match Entity definitions in the configuration file. So if configuration Entity references exist for Capacitors and Resistors and matching CSV files are found, the data for those components will be imported into the server. This is effectively the tool's batch operation mode.
  • If the source CSV file uses a particular filename structure that does not match the standard server Component Types (Resistors, Capacitors, etc), this can be allowed for by mapping the PLM class in the configuration file. For example if the source file is PLM-Export_Resistor.csv, the PLM class entry plmType=”Resistors” can be changed to plmType=”PLM-Export_Resistor”.

Direct System Support

Altium Concord Pro provides direct support for the following enterprise systems:

  • PTC Windchill® PLM (11.0 M030)
  • Arena® PLM
  • Oracle® Agile™ PLM
Due to API limitations, library synchronization with Manufacturer Part/Part Choices is not yet supported when working with an integrated Windchill instance.

Connecting to Your Enterprise System

Connection to your enterprise system is performed from the Admin - Component Sync page of Concord Pro's browser interface. This involves uploading the applicable XML-based configuration file and enabling/configuring synchronization of the components in your enterprise system, with those in the Concord Pro server.

Add and configure the interface to your company's enterprise system. With a valid connection, you can schedule synchronization of components between that system and your Concord Pro instance.

To create a new interface instance, click the  button. While it's most likley you will need to set up only one enterprise system instance, any number of instances may be added to the Concord Pro server as required, to interface your Concord Pro server to various different enterprise systems. For example, your components might reside in a particular instance and another division may be using a different instance (of the same or differing enterprise system). Each instance must be uniquely named and have a configuration file (see next section).

Configuration Files

Each added enterprise system instance must have an associated configuration file, defined and uploaded for it. It is the configuration file that provides the cornerstone for the synchronization of components between your Altium Concord Pro server and your enterprise system instance. The configuration file allows you to specify, for each component type, the direction of synchronization, which components are involved, where components are to be created, and parameter mapping.

Sample Configuration Files

For the Agile, Arena and Windchill systems, sample configuration files are provided. These can be obtained when adding a new instance by clicking the Download sample configuration link, below the Configuration file field. A Zip file - ConfigurationSamples.zip - will be downloaded to your browser's default download folder. This archive contains the following basic configuration files:

  • dm-Agile-config-basic.xml
  • dm-Arena-config-basic.xml
  • dm-Windchill-config-basic.xml

Sample configuration files are provided for use as part of the Concord Pro installation.

Modify these to suit your company's enterprise system instance and requirements.

The configuration files contain detailed comments to help guide you in what to configure, and how.

Uploading a Configuration

Upload a suitable configuration file for the enterprise system instance currently being defined by clicking the  button - a standard Windows Open dialog will appear with which to browse to, and open the required XML-format configuration file. Once uploaded, use the  button to check for warnings and errors that relate to the configuration. The test process will first request sign in credentials for the enterprise system instance if these have not been already established via the  button.

When the connection validation report is run, the server analyses the current configuration settings for compatibility with both Concord Pro data and the target enterprise system data. Configuration issues such as path errors, unmatched component type definitions and parameters, invalid Lifecycle or Revision settings are detected, and reported in the Configuration Validation Report window. Use the  button to quickly copy the content of the report to the Windows clipboard.

Add and configure the interface to your company's enterprise system then check and correct any errors in the uploaded Configuration file.

Be sure to click the  button once your instance is defined successfully as required. That instance will appear in the current listing of connected instances, back on the main Component Sync page of the interface.

When a configuration file has been edited and then re-uploaded to the enterprise system instance, make sure that you use the  button to detect any problems that may have been introduced.

Component Synchronization

Synchronization of components between Concord Pro and the connected enterprise system instance – or to be more specific, their parametric data – involves the following:

  1. Configuring the synchronization for each component type. This involves:
    1. Determining the direction of synchronization.
    2. Determining which components are involved, and where components are to be created.
    3. Configuring parameter mapping.
  2. Performing the synchronization.

The first of the above items is handled in the configuration file used for the connected enterprise system instance. The synchronization itself can be performed on-demand from the Component Sync page of the Concord Pro server's browser interface, and/or can be scheduled. The latter is automated synchronization at periodic intervals, which is defined when configuring or editing the connection to the enterprise system instance.

Configuring Synchronization

Within the configuration file, you define a section for synchronization mapping for each dedicated part type. On the Concord Pro side, this is the component of type altiumType (and is the name you see in Altium Designer's Component Type dialog). On the enterprise system side, a part is created of type plmType. This is declared as an Entity in the file, an example of which might be, for capacitors:

<Entity altiumType="Capacitors" plmType="Capacitor">
.

.
</Entity>

The plmType value may vary, depending on the particular enterprise system instance you are using.

Within the Entity tags, two sections are used to control and configure synchronization from the Concord Pro server to the enterprise system instance, and the enterprise system instance to the Concord Pro server – allowing for uni- or bi-directional synchronization. Use the following sections, in conjunction with the comments available in the sample configuration files, to learn more. Ultimately, what gets defined in the configuration file will vary  depending on your specific needs.

This section is used to control and configure synchronization from the Concord Pro server to the enterprise system instance in the form:

<ToPlm sync="true">
.
.
<\ToPlm>

To disable synchronization in this direction, set sync="false".

Within the ToPlm section, the following sections are defined:

  • How new components are created in the enterprise system instance – between the tagset <CreateInfo> and </CreateInfo>.
  • Filtering to limit which components in Concord Pro are synchronized with the enterprise system - between the tagset <SourceCriteria> and </SourceCriteria>.
This is essential if you have a 6000 capacitors for example in your Concord Pro server, but only want a folder of 85 ceramic capacitors to be synchronized! You could specify a particular folder be involved (e.g. with the entry: <Folder>Components/Capacitors/Ceramic</Folder>). You can optionally use other criteria to narrow the filter even more, based on parameter values – all such criteria filters should be joined by AND.
  • A listing of attributes (parameters) that should be passed for the components from Concord Pro to the enterprise system – between the tagset <Attributes> and </Attributes>. An example of this is:

<Attributes>
<ns2:Attribute>
    <ns2:Key>Name</ns2:Key>
    <ns2:Value>${parameter.name}</ns2:Value>
</ns2:Attribute>
                    
<ns2:Attribute attributeType="item" primaryKeyOrdinal="1">
    <ns2:Key>Number</ns2:Key>
    <ns2:Value>${parameter.PlmPartNumber}</ns2:Value>
</ns2:Attribute>
                    

<!-- Concord Pro component description will go to enterprise system field Description. Value will be prefixed with 'Extended' -->
<ns2:Attribute attributeType="revision">
    <ns2:Key>Description</ns2:Key>
    <ns2:Value>Extended ${parameter.Description}</ns2:Value>
</ns2:Attribute>

</Attributes>

Notice that the part number that gets created on the enterprise system side (PlmPartNumber) is the primary key for linking the components on either side, and will be propagated back to the component in Concord Pro. Notice also, that there is the notion of Item parameters (attributeType="item"). These parameters, such as the PlmPartNumber parameter above, are added to the parent Component Item in Concord Pro and available to its revisions. They do not cause a new revision of a Component Item to be created if their value is changed. This is in contrast with Revision parameters (attributeType="revision"). These parameters, such as the Description parameter above, cause a new revision of a Component Item to be created if their value is changed.
  • Component Part Choices can be propagated to the enterprise system from Concord Pro using the attribute Values ${parameter.MFR_NAME} and ${parameter.MFR_PART_NUMBER}. The (enterprise system) Key entry in the Attribute set will be as specified on the enterprise system side. An example entry in the configuration file's ToPlm section might be:

<ns2:Attribute attributeType="revision">
    <ns2:Key>ManufacturerName</ns2:Key>
    <ns2:Value>${parameter.MFR_NAME}</ns2:Value>
</ns2:Attribute>

Note that only the first entry in the Concord Pro component's Part Choice List will be sent to the enterprise system.

This section is used to control and configure synchronization from the enterprise system instance to the Concord Pro server in the form:

<ToAltium sync="true">
.

.
<\ToAltium>

To disable synchronization in this direction, set sync="false".

Within the ToAltium section, the following sections are defined:

  • How and where new components are created in Concord Pro - between the tagset <CreateInfo> and </CreateInfo>.
If a component already exists, it will be updated, and not moved. The component template and Item naming scheme are taken from the nominated Server folder. In the sample configurations, a default revision naming scheme (1-Level Revision Scheme) and lifecycle definition (Component Lifecycle) are defined to be used. If a component template is defined for the target folder, the schemes defined there will be used instead.
  • Filtering of data retrieved from the enterprise system instance – between the tagset <SourceCriteria> and </SourceCriteria>.
  • A listing of attributes (parameters) that should be passed for the components from the enterprise system to the Concord Pro server – between the tagset <Attributes> and </Attributes>. An example of this is:

<Attributes>
<!-- Name field from enterprise system will be passed to name/comment field in Concord Pro -->
<ns2:Attribute attributeType="revision">
    <ns2:Key>name</ns2:Key>
    <ns2:Value>${attribute.Name}</ns2:Value>
</ns2:Attribute>
                    
<!-- Description field from enterprise system will be passed to Description field in Concord Pro on revision level -->
<!-- Revision level attributes will cause new revision to be created in case parameter value is changed -->
<ns2:Attribute attributeType="revision">
    <ns2:Key>Description</ns2:Key>
    <ns2:Value>${attribute.Description}</ns2:Value>
</ns2:Attribute>
                    
<!-- Number field from enterprise system will be passed to PlmPartNumber field in Concord Pro on item level -->
<!-- Item level parameters will not cause revision update when changed -->
<ns2:Attribute attributeType="item" primaryKeyOrdinal="1">
    <ns2:Key>PlmPartNumber</ns2:Key>
    <ns2:Value>${attribute.Number}</ns2:Value>
</ns2:Attribute>
</Attributes>

Notice that the part number on the enterprise system side (PlmPartNumber) is the primary key for linking the components on either side, and is propagated back to the Concord Pro component. Notice also, that there is the notion of Item parameters (attributeType="item"). These parameters, such as the PlmPartNumber parameter above, are added to the parent Component Item in the Concord Pro server, and available to its revisions. They do not cause a new revision of a Component Item to be created if their value is changed. This is in contrast with Revision parameters (attributeType="revision"). These parameters, such as the Description parameter above, cause a new revision of a Component Item to be created if their value is changed.
  • Component Part Choices can be propagated from the enterprise system to Concord Pro using the Key entries MFR_NAME and MFR_PART_NUMBER. The (enterprise system) Value entry in the Attribute set will be as specified on the enterprise system side. An example entry in the configuration file's ToAltium section might be:

<ns2:Attribute attributeType="revision">
    <ns2:Key>MFR_NAME</ns2:Key>
    <ns2:Value>${attribute.ManufacturerName}</ns2:Value>
</ns2:Attribute>

Performing Component Synchronization

Synchronization itself is performed from the Component Sync page of Concord Pro's browser interface. Click the  control associated with the enterprise system instance that you wish to synchronize. The synchronization process will proceed in accordance with the settings defined in the associated configuration file.

Synchronization will involve only those components that have been modified since the last synchronization was run (i.e. their timestamp is later than the last synchronization date), and which pass the synchronization criteria in the configuration file. This is referred to as Incremental Synchronization.

Component synchronization in progress between Concord Pro and the indicated enterprise system instance.

The control changes to . If you want to stop the synchronization process, click this control. A confirmation window will appear, click  to stop the synchronization – all components already synchronized will remain so, but no further synchronization beyond that point will occur.

Refresh the browser (F5) to check when the synchronization process is complete. To see further details on the completed process, or to confirm its success or otherwise, select the Synchronisation status tab and choose the Closed listing option – if a process is still running it will show in the Active listing. Details of the selected synchronization event are shown in the lower pane, which also includes a link to a system-generated notification log file (PLM <Date Time>.log) for the event. Click this link to download the log file to the browser's default download folder.

Example result of a successful component synchronization.

You can also export synchronization status results to CSV file, by clicking the  button. The file will contasin only those results currently presented on the Synchronisation status tab, and will include the details from the lower pane as well.

Scheduled Component Synchronization

You also have the ability to schedule automated synchronization. To do so, edit the enterprise system instance (from the main Component Sync page, click on its name, or the associated  control), select the Component Synchronisation tab and enable the Synchronize PLM Components with server on schedule option. Use the Synchronize every controls to set up the automated sync schedule as required. The system is very flexible and allows you to:

  • Set up scheduled synchronization every 30/45/60/75/90 minutes.
  • Set up scheduled synchronization every x hours.
  • Set up scheduled daily synchronization, to be performed at a nominated time.

The schedule you define will be reflected back on the main Component Sync page, in the Sync scheduled column, after clicking .

Setting up a synchronization schedule.

To set up scheduled synchronization requires you to provide valid credentials (for your enterprise system). Click the  button and enter your User name and Password into the subsequent PLM Credentials window. Without valid credentials, scheduled synchronization will remain in the OFF state. On-demand synchronization will also not be possible.

You can also run the synchronization process on-demand, from the Edit instance page. Click the  button and choose which mode of sync you need:

  • Full – this mode forces a full synchronization. All components that pass the synchronization criteria in the configuration file will be be included in the sync, with changes propagated accordingly.
  • Incremental – in this mode, only those components that have been modified since the last synchronization was run (i.e. their timestamp is later than the last synchronization date), and that pass the synchronization criteria in the configuration file, will be included in the sync, with changes propagated accordingly. This is the default mode, and is the same mode that is run by clicking the  control for an enterprise system instance on the main Component Sync page.
Found an issue with this document? Highlight the area, then use Ctrl+Enter to report it.

Contact Us

Contact our corporate or local offices directly.

You are reporting an issue with the following selected text
and/or image within the active document:
ALTIUM DESIGNER FREE TRIAL
Altium Designer Free Trial
Let’s get started. First off, are you or your organization already using Altium Designer?

If would like to speak with a representative, please contact your local Altium office.
Copyright © 2019 Altium Limited

In that case, why do you need an evaluation license?

If would like to speak with a representative, please contact your local Altium office.
Copyright © 2019 Altium Limited

Got it. You actually don’t need an evaluation license for that.

Click the button below to download the latest Altium Designer installer.

Download Altium Designer Installer

If would like to speak with a representative, please contact your local Altium office.
Copyright © 2019 Altium Limited

Please fill out the form below to get a quote for a new seat of Altium Designer.

By clicking “Get Your Free Trial”, you are agreeing to our Privacy Policy.
You may receive communications from Altium and can change your notification preferences at any time.

If you are on Altium Subscription, you don’t need an evaluation license.

If you are not an active Altium Subscription member, please fill out the form below to get your free trial.

By clicking “Get Your Free Trial”, you are agreeing to our Privacy Policy.
You may receive communications from Altium and can change your notification preferences at any time.

Why are you looking to evaluate Altium Designer?

If would like to speak with a representative, please contact your local Altium office.
Copyright © 2019 Altium Limited

You came to the right place! Please fill out the form below to get your free trial started.

By clicking “Get Your Free Trial”, you are agreeing to our Privacy Policy.
You may receive communications from Altium and can change your notification preferences at any time.

Sounds exciting! Did you know we offer special discounted student licenses? For more information, click here.

In the meantime, feel free to request a free trial by filling out the form below.

By clicking “Get Your Free Trial”, you are agreeing to our Privacy Policy.
You may receive communications from Altium and can change your notification preferences at any time.

Got it. You can download a free Altium Designer Viewer license which is valid for a 6 months.

Please fill out the form below to request one.

By clicking “Get Your Free Trial”, you are agreeing to our Privacy Policy.
You may receive communications from Altium and can change your notification preferences at any time.

That’s great! Making things is awesome. We have the perfect program for you.

Upverter is a free community-driven platform designed specifically to meet the needs of makers like you.

Click here to give it a try!

If would like to speak with a representative, please contact your local Altium office.
Copyright © 2019 Altium Limited

Got it. You can download a free Altium Designer Viewer license which is valid for a 6 months.

Please fill out the form below to request one.

By clicking “Get Your Free Trial”, you are agreeing to our Privacy Policy.
You may receive communications from Altium and can change your notification preferences at any time.