The Altium NEXUS Server can be hooked up to one or more PLM instances, with direct support for Windchill PLM and Arena PLM. Interface configuration is performed through the NEXUS Server's browser interface, with most configuration defined within an XML-based configuration file (uploaded to the Server). With the interface set up and working, features and functionality are provided when working in the following distinct areas:
- Library (components) - catering for the uni- or bi-directional synchronization of your components, component parameters, and part choices, between your NEXUS Server and your PLM instance. Configuration allows you to specify which parameters are mastered in which system. In addition, Item parameters enable you to update properties in the NEXUS Server (configurable per field), without having to formally release a new revision of that Component Item. A dedicated Part Request workflow is also available that supports the automatic creation of a Component in your PLM instance, and then propagation of the generated part number back to the component in NEXUS.
- Design (projects) - a dedicated Project Creations workflow is available that supports the automatic creation of part numbers in your PLM instance, and then propagation of these as Server Parameters of the NEXUS Managed Project. Such parameters can be used in special strings (e.g. for sheet border annotations). You have the ability to publish your design to your PLM instance, as part of running the Project Releaser in Altium NEXUS. The publishing operation uses a publishing template - defined as part of the PLM instance integration configuration - to control how data should be propagated to the PLM. And if you're publishing for the first time and part numbers (on the PLM side) are not yet associated with the managed project, those part numbers will be created in the PLM and associated to the project as part of that initial publication. You also have the ability to define component entries for NEXUS managed components in the PLM instance, as part of the publishing operation (optional, based on configuration). And you'll always be able to see exactly what has been created, such as part numbers in the PLM instance, as part of the process workflow's history (History tab).
PLM Support
The Altium NEXUS Server provides direct support for the following PLM systems:
- Windchill PLM (11.0 M030)
- Arena PLM
There is also a Filesystem driver that allows you to perform integration testing without a PLM instance available.
Due to API limitations, library synchronization with Manufacturer Part/Part Choices is not yet supported when working with an integrated Windchill PLM instance.
Connecting to Your PLM Instance
Connection to your PLM instance is performed from the Admin - PLM Integration page of the NEXUS Server's browser interface. This involves uploading the applicable XML-based configuration file and publishing template, and enabling/configuring synchronization of your PLM components with those in the NEXUS Server.
To create a new PLM interface instance, click the
button. As many instances can be defined as required, to interface your Altium NEXUS Server to various different PLM instances. For example, your components might reside in one PLM instance, with the generated output from released design projects in another, or perhaps different divisions are using different instances (of the same or differing PLM system). Each instance must be uniquely named, have a configuration file and one or more defined publishing templates. To test the connection for a defined instance, click the
button.
Sample configuration files and publishing templates are provided as part of the installation - click on the sections below for more information:
Sample Configuration Files
Sample configuration files are provided - click the Download sample configuration link to obtain the zip file ConfigurationSamples.zip. This zip contains basic configuration files for Windchill and Arena PLM systems, as well as a file-based system (used more for local test purposes, where no PLM instance is available):
- dm-Windchill-config-basic.xml
- dm-Arena-config-basic.xml
- dm-filesystem-config-basic.xml
Sample configuration files are provided for use as part of the server installation.
Modify these to suit your company's PLM instance and requirements, or create your own.
The configuration files contain detailed comments to help guide you in what to configure, and how.
Sample Publishing Templates
Sample publishing templates are provided - click the Download sample configuration link from the Publish Template window (when adding a template) to obtain the zip file PublishTemplateSamples.zip. This zip contains the following files:
- dm-Windchill-publish-template-basic.xml
- dm-publish-template-arena-filesystem-basic.xml
Sample publishing templates are provided for use as part of the server installation.
Modify these to suit your company's PLM instance and requirements, or create your own.
In the sample files, the following areas are configured:
- How to handle component creation and linkage on the PLM side during a publishing process. The following options are available:
- LinkExistingOnly - link components that already exist in the PLM, but do not create components that do not.
- CreateNewAndLink - link components that already exist in the PLM, and create and link those that do not.
- LinkIfAllExists - do not create components that do not exist on the PLM side, link only if all components exist in the PLM.
By default, the sample files specify the option LinkExistingOnly. If nothing is specified, then CreatNewAndLink will be used.
- Set of rules to process (parent) project data.
- Set of rules to process source data.
- Set of rules to process assembly data.
- Set of rules to process fabrication data.
Multiple publishing templates can be defined for each PLM instance. When a template is selected as part of a publishing process, it will be stored (linked) with the project for further use.
Add and configure the interface to your company's PLM system. With a valid connection, you can then publish project release data to the PLM system (using defined process definitions)
in accordance with an active publishing template for the instance, and also schedule synchronization of components between that PLM and your NEXUS Server.
Component Synchronization
Synchronization of components between the NEXUS Server and the connected PLM instance - or to be more specific, their parametric data - involves the following:
- Configuring the synchronization for each component type. This involves:
- Determining the direction of synchronization.
- Determining which components are involved, and where new components are to be created.
- Configuring parameter mapping.
- Performing the synchronization.
The first item is handled in the configuration file used for the connected PLM instance. The synchronization itself can be performed on-demand, from the PLM Integration page of the NEXUS Server's browser interface, and/or can be scheduled - automated synchronization at periodic intervals, defined when configuring the connection to the PLM instance.
Configuring Synchronization
Within the configuration file, you define a section for synchronization mapping for each dedicated part type. On the NEXUS Server side, this is the component of type altiumType (and is the name you see through the Explorer panel when creating an Item of that particular type). On the PLM 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="Capacitor" plmType="Capacitor">
.
.
</Entity>
The plmType value may vary, depending on the particular PLM instance you are using.
Within the Entity, two sections are used to control and configure synchronization from the NEXUS Server to the PLM instance, and the PLM instance to the NEXUS 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.
ToPlm
This section is used to control and configure synchronization from the NEXUS Server to the PLM 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 PLM instance - between the tagset <CreateInfo> and </CreateInfo>.
- Filtering to limit which components in the NEXUS Server are synchronized with the PLM - between the tagset <SourceCriteria> and </SourceCriteria>.
This is essential if you have a 6000 capacitors for example in your NEXUS Server, but only want a folder of 85 ceramic capacitors to be synchronized! You could specify a specific 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 NEXUS Server to PLM - between the tagset <Attributes> and </Attributes>. An example of this is:
<Attributes>
<!-- Name/Comment from NEXUS will be passed to PLM field Name 'as is' -->
<ns2:Attribute required="true">
<ns2:Key>Name</ns2:Key>
<ns2:Value>${parameter.Name}</ns2:Value>
</ns2:Attribute>
<!-- Number generated on PLM side will be propagated to NEXUS -->
<!-- as item level (dynamic) PlmPartNumber parameter -->
<ns2:Attribute attributeType="dynamic" primaryKeyOrdinal="1" required="true">
<ns2:Key>Number</ns2:Key>
<ns2:Value>${parameter.PlmPartNumber}</ns2:Value>
</ns2:Attribute>
<!-- NEXUS component description will go to PLM field Description. Value will be prefixed with 'Extended' -->
<!-- Description on NEXUS side is a revision level parameter (strong) -->
<ns2:Attribute attributeType="strong" dataType="string" required="true">
<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 PLM side (PlmPartNumber) is the primary key for linking the components on either side, and will be propagated back to the NEXUS Server component. Notice also, that there is the notion of Dynamic parameters (attributeType="dynamic"). These parameters, such as the PlmPartNumber parameter above, are Item-level parameters. They are added to the parent Component Item in the NEXUS 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 Strong parameters (attributeType="strong"). These parameters, such as the Description parameter above, are revision-level parameters. They cause a new revision of a Component Item to be created, if their value is changed.
ToAltium
This section is used to control and configure synchronization from the PLM instance to the NEXUS 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 the NEXUS Server - 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 PLM instance - between the tagset <SourceCriteria> and </SourceCriteria>.
- A listing of attributes (parameters) that should be passed for the components from the PLM to the NEXUS Server - between the tagset <Attributes> and </Attributes>. An example of this is:
<Attributes>
<!-- Name field from PLM will be passed to name/comment field in NEXUS -->
<ns2:Attribute attributeType="strong">
<ns2:Key>name</ns2:Key>
<ns2:Value>${attribute.Name}</ns2:Value>
</ns2:Attribute>
<!-- Description field from PLM will be passed to Description field in NEXUS on revision level (strong) -->
<!-- Revision level attributes will cause new revision to be created in case parameter value is changed -->
<ns2:Attribute attributeType="strong" required="true">
<ns2:Key>Description</ns2:Key>
<ns2:Value>${attribute.Description}</ns2:Value>
</ns2:Attribute>
<!-- Number field from PLM will be passed to PlmPartNumber field in NEXUS on item level (dynamic) -->
<!-- Item level parameters will not cause revision update when changed -->
<ns2:Attribute attributeType="dynamic" primaryKeyOrdinal="1" required="true">
<ns2:Key>PlmPartNumber</ns2:Key>
<ns2:Value>${attribute.Number}</ns2:Value>
</ns2:Attribute>
</Attributes>
Notice that the part number on the PLM side (PlmPartNumber) is the primary key for linking the components on either side, and is propagated back to the NEXUS Server component. Notice also, that there is the notion of Dynamic parameters (attributeType="dynamic"). These parameters, such as the PlmPartNumber parameter above, are Item-level parameters. They are added to the parent Component Item in the NEXUS 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 Strong parameters (attributeType="strong"). These parameters, such as the Description parameter above, are revision-level parameters. They cause a new revision of a Component Item to be created, if their value is changed.
Performing Component Synchronization
Synchronization itself is performed from the PLM Integration page of the NEXUS Server's browser interface. Click the control, associated with the PLM 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 the NEXUS Server and the indicated PLM 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.
You also have the ability to schedule automated synchronization. To do so, edit the PLM instance (from the main PLM Integration page, click on its name, or the associated control) and enable the Synchronize PLM Components with NEXUS 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 15/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 PLM Integration page, in the Sync scheduled column.
Setting up a synchronization schedule.
To set up scheduled synchronization requires you to provide valid credentials (for your PLM 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. Click the button and choose which mode of sync you need:
- 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 a PLM instance, on the main PLM Integration page.
- 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.
Process Workflows
The following process definitions (and underlying workflows) are available, in support of PLM integration:
These process definitions cannot be activated and used as is. Each of these is therefore more like a 'template' - edit to suit your company's requirements, name, and save as a new process definition, which you can then activate and use, along with all other definitions in the respective process theme.
- Part Requests process theme:
- Part Request with PLM Part Create - supporting the automatic creation of a Component in your PLM instance, and then propagation of the generated part number back to the component in NEXUS. The workflow diagram is shown below.
One important thing to note is that when you modify this sample definition to create your own, you must specify the PLM instance into which parts are to be created. Select the Create Part in PLM entity in the workflow diagram and choose the PLM instance from the drop-down menu associated with the PLM Instance field. This menu lists all currently defined PLM instances (as defined on the PLM Integration page of the interface).
- Project Activities process theme:
- Publish to PLM (latest) - standard publish of released managed project outputs to the integrated PLM instance. The workflow diagram is shown below.
- Publish to PLM (User selects) - publish of released managed project outputs to the integrated PLM instance, but with the user able to select exactly which outputs get published. The workflow diagram is shown below.
- Project Releaser with Publish - publish to the integrated PLM instance as an additional stage of the Project Releaser. The workflow diagram is shown below.
- Project Creations process theme:
- Project with initialise in PLM - supporting the automatic creation of part numbers in your PLM instance, and then propagation of these as Server Parameters of the NEXUS Managed Project. The workflow diagram is shown below.
Accessing PLM-related Processes
The following sections highlight where to access activated PLM-related processes. And since the samples cannot be used out-of-the-box, the following were created from them, for the purpose of illustration:
- PR with PLM Part Create - created from the sample process definition: Part Request with PLM Part Create.
- Publish to Company PLM - created from the sample process definition: Publish to PLM.
- Publish to Company PLM - Choose Data - created from the sample process definition: Publish to PLM (User selects).
- Project Releaser with Publish to Company PLM - created from the sample process definition: Project Releaser with Publish.
- Create Project with PLM Initialise - created from the sample process definition: Project with Initialise in PLM.
Remember that Administrators for the Altium NEXUS Server can start a new instance of any activated process definition - directly from the corresponding process theme tab within the
Processes area of the NEXUS Server's browser interface - by clicking the
control.
Part Requests
Access from within Altium NEXUS from the Explorer panel, after having conducted a search, or from within the Part Search panel, with a search item selected.
From the Altium NEXUS Server's browser interface, the activated process definition can be accessed from the Part Requests page, by clicking the button at the top-right of the page.
Part Request Example
The following example shows briefly the creation of a new part in the Altium NEXUS Server, followed by automatic creation of a corresponding part in your PLM instance. The generated part number is then propagated from the PLM instance back to the component in the NEXUS Server, as an Item parameter - meaning that a new revision of the NEXUS component is not needed to be released. For this example, the Filesystem driver is used (i.e. as a testing vehicle without access to a real PLM instance). The process definition being used is PR with PLM Part Create - derived from the sample definition Part Request with PLM Part Create.
The information provided here will be similar for the different supported PLM systems. What will vary will be the configuration file that you may change to suit your company needs, and also if you have modified the workflow for the process definition used to create the part.
- Start the Part Request process, and fill out the subsequent form - detailing the initial request - as required. In the image below, the request is being submitted through the Part Requests page of the NEXUS Server's browser interface, and a single part is being requested.
- The new part request will be shown as an active process on the Part Requests page, with its current state reflected in the main entry, and also in the diagram for its underlying workflow.
- Once the required user has taken (or has been assigned) the task to work on the request, they ultimately create the requested part(s). Each created component is added to the Components field of the task. Each component added will automatically be created in the PLM. In the image below, a single component - CMP-001-0000 - has been created. Ensure that the Next step field is set to Completed and click the button.
- The process workflow will continue, with the specified component create in the PLM instance. Once the process has run to completion, you can see the generated PLM part number on the processes' Data tab (be sure to switch the filter to viewing Closed processes).
- Back in Altium NEXUS, browse to the created component in the Explorer panel, and switch to its Preview aspect view. In the parameters region, notice that an additional parameter has been added - PlmPartNumber - whose value is the number for the corresponding created part in the PLM.
Notice that the parameter has been added to the component, but its revision remains the same - there was no re-releasing of the component. This is because the parameter is an Item-level parameter - added to the Component Item itself, and available in all of its revisions.
Project Activities
Standard Publishing Processes
Standard publish to PLM processes (with or without user selection) can be accessed from within Altium NEXUS from the Project » Project Activities sub-menu for the active project.
Also accessible from the
Project Activities context sub-menu, accessed by right-clicking on the entry for the design project in the
Projects panel.
From the Altium NEXUS Server's browser interface, the activated process definition can be accessed from the detailed view for a managed project, by clicking the button.
Publishing with the Project Releaser
The process for publishing to a PLM instance as part of the Project Releaser can be accessed from within Altium NEXUS from the Project » Project Releaser sub-menu for the active project.
Also accessible from the
Project Releaser context sub-menu, accessed by right-clicking on the entry for the design project in the
Projects panel.
The Project Releaser will appear, with an additional stage - Stage 7 Publish to PLM. In addition, a command is available from the menu associated to the button - Prepare & Release & Publish to PLM - should you wish to run the Project Releaser without stopping to review the generated data, and execution report.
Defining the Stage Name
If you are using the sample process definition - Project Releaser with Publish - to create your own definition, the stage name is Publish to PLM by default. The command on the menu associated to the button also takes this name, giving Prepare & Release & Publish to PLM. However you have the ability to change this as required. The fields to do this are presented in the underlying workflow for the process, when the Start element (of type Start Release) is selected. These fields are:
- Action name - the name of the post project release action, which is the name of the stage presented as stage 7 in the Project Releaser. An entry for this field is mandatory if there are tasks defined in the process workflow. This name will also be used for the menu command, in the format Prepare & Release & <Action name>.
- Action description - description of the post project release action, which is presented to the user in the Project Releaser as the tool tip for the stage 7 entry.
Default settings for the Start element in a workflow based on the sample process definition Project Releaser with Publish, and the presentation in the Project Releaser.
The following image shows these fields changed in the underlying workflow, and the resulting impact on the entries in the Project Releaser.
Changed settings for the Start element when used in a workflow to publish to PLM through the Project Releaser.
If you run the Project Releaser with the standard Prepare command, after reviewing and releasing the data, the button will be presented at the Execution Report stage. Click this to continue the underlying workflow for the process, to publish to the PLM. The Login Credentials dialog will appear. Enter the Username and Password for your PLM instance, and select the PLM Template you want to use (which appears in the form <PLMInstance>:<PublishingTemplate>).
If you chose to use the
Prepare & Release & Publish to PLM command, you will ultimately be presented with the
Login Credentials dialog directly. The
Project Releaser will not pause at the
Execution Report stage, and no
button will be presented.
Note that your PLM instance login credentials are only required for the first time you publish to that instance. These will then be stored with the NEXUS Server. After that, any publishing of that project to that same PLM instance will proceed directly, in accordance with the defined workflow and chosen publishing template.
Click on the Diagram tab to see the underlying workflow for the process.
Click the button to proceed with the publishing process, in accordance with that workflow.
If you're publishing for the first time and part numbers (on the PLM side) are not yet associated with the managed project, those part numbers will be created in the PLM and associated to the project as part of that initial publication. You also have the ability to define component entries for NEXUS managed components in the PLM instance, as part of the publishing operation - to get a BOM of components within the PLM (optional, based on the publishing template defined and used when publishing the project to the PLM instance).
Check the status of the publish to PLM process through the NEXUS Server's browser interface, from the Activities tab within that project's detailed view.
You will always be able to see exactly what has been created, such as part numbers in the PLM instance, as part of the process workflow's history (History tab).
Project Creations
Access from within Altium NEXUS from the main File » New » Managed Project sub-menu.
Also accessible from the
Add New Project » Managed Project context sub-menu, accessed by right-clicking on the entry for the design workspace (
*.DsnWrk) in the
Projects panel. And from the
Convert to Managed Project context sub-menu, accessed by right-clicking on the entry for the unmanaged project in the
Projects panel.
From the Altium NEXUS Server's browser interface, the activated process definition can be accessed from the main Projects page of the interface, by clicking the button.
And also from the detailed view for a managed project, by clicking the button.
The process workflow will proceed, with a dialog to enable you to define the project, in terms of its name, description, type, and any Project Template Item that should be used in its creation. After clicking Start, the Login Credentials dialog will appear. Enter the Username and Password for your PLM instance, and select the PLM Template you want to use (which appears in the form <PLMInstance>:<PublishingTemplate>). Then click Submit to proceed with the workflow.
The relevant part numbers will be automatically created for the project in your PLM instance, and then propagated back to the NEXUS Server as Server-level parameters of the NEXUS Managed Project. These parameters will be available to use as special strings - access from the Properties panel with a placed text string selected in the design workspace. Server parameters defined for the project can also be viewed on the Server Parameters tab of the Project Options dialog (Project » Project Options).
Project Creation Example
The following example shows briefly the creation of a new managed project, with initialization in the PLM. For this example, the Filesystem driver is used (i.e. as a testing vehicle without access to a real PLM instance). The process definition being used is Create Project with PLM Initialise - derived from the sample definition Project with Initialise in PLM.
The information provided here will be similar for the different supported PLM systems. What will vary will be the configuration file and publishing templates that you may change to suit your company needs, and also if you have modified the workflow for the process definition used to create the project.
- After launching the process (File » New » Managed Project » Create Project with PLM Initialise) a dialog appears (named after the process definition) with which to define the project. For this example, we'll just call the project Example_Project_with_PLM_Init, give it a description, and leave all other fields - including those on the Advanced tab - unchanged.
- With the project defined, click the Start button. The Login Credentials dialog appears. Since this is a new project, you need to supply your PLM login credentials, and nominate the PLM instance and associated publishing template to be used. Credentials for the Filesystem driver are Username: user, Password: pwd. For this example, we have a PLM instance created - File_NoPLM - that uses the sample configuration dm-filesystem-config-basic.xml. and also a publishing template associated to that instance - File_PUB - that uses the sample publishing template dm-publish-template-arena-filesystem-basic.xml.
When using the default sample configuration for the Filesystem driver as is, ensure that the folder structure C:\filesystem\outputs is defined on the PC hosting your NEXUS Server. You can have whatever folder path you like, but you must then change it in the configuration file.
With the credentials supplied and PLM instance and publishing template chosen, click the Submit button.
- The new project will be created, as evidenced through the Projects area of the NEXUS Server's browser interface. Switch to the detailed view for the project, and click on its Activities tab. Switch the filter to show closed processes - you'll see the process that was just run in order to create the project.
The Data tab provides relevant data including the part numbers created for the various project entities, while the History tab provides an historical report of the processes' execution.
And if you switch to the Parameters tab, you'll see the Server parameters that have been created, to take those part numbers, as per the PLM instances' configuration file.
These parameters relate to NEXUS Server Item types as follows:
Printed Circuit Board Assembly (PLM) -------> Project (NEXUS Server)
Schematic (PLM) ---------> PCB Project Design (NEXUS Server)
Drawing (PLM) -------> PCB Assembly Data (NEXUS Server)
Printed Circuit Board (PLM) ---------> PCB Fabrication Data (NEXUS Server)
- Within Altium NEXUS, the new project is apparent in the Projects panel, scheduled for commit to the Git-based Versioned Storage design repository in the NEXUS Server - right-click on its entry and use the Save Managed Project command to do so. You can then add source documents and design away. When you come to publish, the project is already linked to the relevant parts in the PLM instance.
From the Server Parameters tab of the Project Options dialog, you can see the part numbers assigned in the PLM instance, to the relevant project entities that can be released/published.
And if you place a text string, those parameters will be available as special strings: