Component Synchronization with Enterprise Systems

Now reading version 2.0. For the latest, read: Component Synchronization with Enterprise Systems for version 5.0

This documentation page references Altium Concord Pro, which has been discontinued. All your PCB design, data management and collaboration needs can now be delivered by Altium Designer and a connected Altium 365 Workspace. Check out the FAQs page for more information.

 

Parent page: Altium Concord Pro

Altium Concord Pro facilitates the uni- or bi-directional synchronization of component data 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 a timed repeating event.

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

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

  • PTC Windchill® PLM (11.0 M030)
  • Arena® PLM
  • Oracle® Agile™ PLM
  • For other unsupported systems (PLM, PDM, ERP, or otherwise), the Altium Concord Pro installation includes a CSV Component database importer tool (see CSV Uploader below) that can be used with CSV files generated by an enterprise system.

For supported systems, the 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

In situations where an enterprise system is not supported by Altium Concord Pro, a CSV file exported or generated by that system can be used as an intermediate component data source for Concord Pro's CSV Component database importer tool, included as part of the Concord Pro installation. 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 component data transfer provided by the CSV Import tool is uni-directional only – from a CSV file to the target Concord Pro server.

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 required 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.

Multiple Manufacturer Part Choices

The manufacturer part data for CSV component entries are sourced from their MFR_NAME and MFR_PART_NUMBER column values, which are ultimately processed as Part Choices for the imported server components.

The CSV Importer also accommodates multiple sets of manufacture part data for a given component through a repeated structure in the source CSV file, where additional component entries are included for each manufacturer part data variation. For example, if a source component CSV-RES-1001 has three related part numbers, then three CSV entries for that component are included where each specifies different MFR_NAME and MFR_PART_NUMBER column data (one from Vishay Dale and two from Yageo).

When this component data is imported to the server, a single component item is created for part CSV-RES-1001, but with multiple Part Choices entries derived from the additional CSV data references.

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 Naming , Lifecycle and target folder settings 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.

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), the remapped parameters are added to the existing data – existing parameters are not removed.
  • Any change in parameter value will cause a new revision to be created if the parameter has its attributeType set to revision in the configuration file.
  • The synchronization process adds a Note to the entry indicating that it has either created or modified the component component data.

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
  • Concord Pro also offers a Configuration Generator that creates a PLM parameter mapping configuration by analyzing the data model of the current server installation. This may be set for any of the above PLM systems, or for a proprietary Custom PLM interface.

Note that synchronization of Part Choice data is unidirectional – from the enterprise system to Altium Concord Pro only.

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.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 likely 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.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.

Generate a Configuration

Rather than using the supplied configuration files to create a new enterprise system instance, Concord Pro's internal configuration generator may be used to create a configuration file that derives its structure from the server's data model. The generator requests connection information (PLM type and URL) and then interrogates Concord Pro's data for registered component types (Capacitors, Diodes, etc) and their matching Component Templates to construct a base configuration file.

The derived configuration feature is available from the Generate configuration link on the Add new instance page, opened from the  button. In the following Generate Configuration dialog select the type of enterprise system that will be connected to – either one of the available PLM types (Windchill etc) or a Custom type – then its remote URL. Select the  button to create and download a new dm-configuration.xml file, which may then added to the new PLM instance from the  button.

The Custom option in the PLM Type drop-down menu is intended for situations where a proprietary API/interface is available for your company's enterprise system, rather than those inherently supported by Concord Pro. This is reflected in the <Driver> entry in the generated dm-configuration.xml file, which can appear as Windchill, Arena, Agile or Custom, or for a configuration generated by the CSV Uploader, as csv.

The generator creates the configuration to match the data model of the current Altium Concord Pro installation, so for example, Component Types that are registered in the server are added as entity types in the configuration file (dm-configuration.xml). Each entity section has matching ToPlm and ToAltium sections, and mapped parameters sourced from the matching component template (if available).

All sections in the generated configuration include TODO comments that highlight areas to add or change for compatibility with your server/PLM configuration. For more information on editing the configuration file to work with your server/PLM setup, see the explanatory comments included in the supplied sample configuration files.

A method of testing or confirming how PLM component data will be imported into Concord Pro is to use the CSV Import tool, which transfers component data from a comma-delimited CSV file to the server under the control of its XML configuration file. Both the configuration file and source CSV file can be edited as needed for testing purposes.

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 then reported in the Configuration Validation Report window.

Add and configure the interface to your company's enterprise system then check and correct any errors in the uploaded Configuration file.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 Altium 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 (to Concord Pro, or to the PLM).
    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, the connectivity with the enterprise system instance is defined between the Instance tags as a specified Driver type and a target URL. When the Configuration Generator has been used to create the configuration file, the included Driver and URL references are those entered in the Generate Configuration dialog during the generation process.

<Instance>
    <Driver>[Driver Type]</Driver>
    <Url>[PLM API URL]</Url>
</Instance>

When the Arena® PLM driver is specified in the configuration file, an additional entry is available to accommodate the Arena workspaces that are available for an Arena user account. The optional multi-digit ID reference attribute is added to the Instance section between Context tags, as shown in the below example.

<Instance>
    <Driver>Arena</Driver>
    <Url>https://api.arenasolutions.com/v1/</Url>
    <Context>12345678</Context>
</Instance>

In the following Schema section of 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 – its value is one of the type parameters options that can be seen in Altium Designer's Component Type dialog. On the enterprise system side, a part is created of type plmType, as determined by its value in that space.

The section 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.

  • Other than the common inclusion of a primary sync key (such as PlmPartNumber), it is not recommended to include the same component attribute/parameters in both the ToAltium and ToPlm sections of a configuration file. Bi-directional synchronization occurs in that order (from PLM to Altium first), so the PLM data will always dominate in this situation.
  • Note that the Parameters, Attributes and Values included in a configuration file are case-sensitive.

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.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.Example result of a successful component synchronization.

You can also export synchronization status results to a CSV file by clicking the button. The file will contain 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.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 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.
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Content