Integrating PDXpert PLM and Altium Designer EDA software

Last update 2011-10-18

PDXpert provides a centralized repository of your part and document data, including management of approved supplier sources, bills of materials, revisions, and engineering changes. A "live view" of your part and supplier data is available from the PDXpert database via an ODBC connection. This note outlines the method for using PDXpert PLM software's public views to support Altium Designer's component libraries.

Topic contents

Applies to PDXpert PLM server software release 7.0 and later.

PDXpert PLM software support for printed circuit board (PCB) design

PDXpert PLM software is built on the Microsoft SQL Server database engine, which provides powerful, scalable data management capabilities. Data records within the PDXpert database can be accessed using a stable database view using an ODBC connection. In addition to basic part and document attributes, PDXpert offers published read-only views that include custom attributes, qualified component sources and even bill of materials parent/child lists.

By assigning appropriate custom attributes to PDXpert part type templates, components managed within PDXpert can support external computer systems. In particular, attributes required by Altium Designer - such as component values, schematic symbols, layout footprints and source part numbers - can be created and managed within the PLM system.

For more information about PDXpert's ODBC views, refer to Contents > How to report, import & export > Using ODBC for export in the PDXpert help guide.

Deciding how to connect Altium Designer to the PDXpert database

PDXpert PLM software view within Access

There are several alternatives for attaching Altium Designer electronic CAD application to the PDXpert database:

  • The simplest, although more limited, method is to connect Altium Designer directly to the PDXpert public views. All data would be selected using the Field Settings to define the matching criteria.
  • From within Microsoft Access (or similar tool), link the PDXpert public view(s) as an ODBC external data source. Create the queries required by Altium Designer and then attach Altium to these derived library views.
  • Create user-defined views in Microsoft SQL Server, which overlay the PDXpert public views, using SQL Server Management Studio (SSMS). This tool is included with higher-end versions of SQL Server, and a free Express version can be downloaded from the Microsoft website. If you're comfortable using SSMS to access a SQL Server database, and to create and save views, this approach is flexible and simple to maintain. For details, see basic SQL Server queries.

PDXpert PLM software view within SQL Management Studio

Creating custom attributes for Altium Designer

Before connecting Altium Designer to the PDXpert database, you'll first need to define custom attributes to support Altium Designer's libraries.

Ensuring useful and valid custom attributes

Parts in the PDXpert database have many standard attributes like part owner, type, number, description, unit of measure, and cost; these should not be duplicated in the custom attributes.

Each PDXpert part can include an approved set of supplier parts on the Sources tab. These sources are brought into the SourceItemMasterView that you'll be using, so you should not create custom attributes that duplicate the part's source data.

Where different part types have identically-named custom attributes, these will be merged into a single column. For example, if your Resistor and Capacitor part types both have a custom attribute named Value, the resistor value (say, 22K) and capacitor value (say, 10nF) are merged into the public view's single Value column.

Read the PDXpert help topic Contents > Collections reference > Custom attributes to learn about naming and managing custom attributes.

Defining your set of part types & their custom attributes

You have some choices in how you define new part types:

  • If you want a small set of attributes that are shared across all items (e.g., Subtype, Value, Tolerance, Package, Library, Footprint), then these can be created within a single PDXpert Part Type collection member, say Component. The Subtype would be the selector for your Altium libraries.
  • More typically, you'll create a series of part types, each of which can have both common attribute names (like Value, Library, Footprint) as well as unique attributes (WVDC, Tolerance, Tempco, Gate Count, Forward Drop, etc.).
  • Your supplier part types can be matched exactly to your own parts' types (supplier resistors use the same Resistor part type as your own resistors). However, the source's custom attributes would have limited value, since they'd mirror your own part's custom attributes. On the other hand, your supplier parts could be created from a common Purchased part type with its own set of custom attributes (like a link to the supplier's website or datasheet).

This example uses distinct part types for resistors and capacitors, and all supplier parts share a common Purchased part type. Obviously, you can add more attributes, and the names, data types and default values may differ from this example.

Custom attribute name Type:Resistor Type:Capacitor Type:Purchased
Value Yes (resistance) Yes (capacitance) No
Tolerance Yes (%) No No
MaxVoltage No Yes (volts) No
FootprintRef Yes; default value
Resistor-Std
Yes; default value
Capacitor-NonPolarized
No
FootprintPath Yes; default value
./Discretes.PcbLib
Yes; default value
./Discretes.PcbLib
No
LibraryRef Yes; default value
Resistor-Std
Yes; default value
Capacitor-NonPolarized
No
LibraryPath Yes; default value
./Discretes.SchLib
Yes; default value
./Discretes.SchLib
No
DatasheetRef No No Yes
DatasheetPath No No Yes

After these custom attributes are added to the part type template, you can create a few components for testing.

Resistor custom attributes with purchased source for Altium Designer

Exploring PDXpert software's public database views

The PDXpert database contains many objects, but only public views (with a View suffix) and user-defined views  (with a My prefix) remain stable from one release to the next. Queries cannot use any database tables or private views (which have a _View suffix).

Custom attributes appear as dynamic columns within the public PDXpert views, alongside the standard columns like Owner, Number, Type and Description.

Use SQL Server Management Studio, Microsoft Access, or any ODBC client to browse the public views. In particular, examine the public SourceItemMasterView, which is derived from the more basic public ItemMasterView part & document list. The SourceItemMasterView is a side-by-side grouping of your company-defined parts (and documents), along with up to 3 qualified sources. All items include columns for the custom attributes.

Public views in the PDXpert database have a comprehensive set of columns. For CAD applications, you'll only need to include columns that are related to part identification, CAD application support, and possibly supplier data. The test parts can be viewed using this query:

SELECT *

FROM [PDXpertDB].[viewer].[SourceItemMasterView]

WHERE ([Type]='Resistor' OR [Type]='Capacitor')

Resistor & capacitor SELECT statement for testing PDXpert ODBC view

Creating user-defined views using the public views

Never attempt to create new records, or update or delete existing data, using SQL statements. Use only SQL SELECT statements to read data.

You can build your user-defined views based on the test SQL SELECT query (above).

Depending upon your choice of access methods, these statements will be saved in Access as queries or in SQL Server as user-defined views. If you're saving SQL Server views within the PDXpert database, you'll create a new member of the Views collection within the PDXpert Collection Explorer, and name your view beginning with the characters My....

For example, here's a Views member MyResistors that references the PDXpert public view SourceItemMasterView. It selects a subset of standard and custom attribute columns of parts ([Class]=1) with Type='Resistor' from the default company ([OwnerShort]='Home').  It also selects up to two sources using display name ([OwnerShort_n]) and part number ([Number_n]). Results are sorted by part number: ORDER BY [Number]

SELECT [Number]

,[TypeShort]

,'Current' = CASE WHEN [Revision] IS NULL THEN '(none)' ELSE [Revision] END

,CAST(Description AS nvarchar(255)) AS PartName

,'Qualified' = CASE [Lifecycle] WHEN 'Production' THEN 'Yes' ELSE 'No' END

,[CostCurrencyShort] AS CostUnit

,[CostPerUnit] As CostAmt

,[value]

,[tolerance]

,[libraryref]

,[librarypath]

,[footprintref]

,[footprintpath]

,[OwnerShort_1]

,[Number_1]

,[datasheetref_1]

,[datasheetpath_1]

,[OwnerShort_2]

,[Number_2]

,[datasheetref_2]

,[datasheetpath_2]

FROM [SourceItemMasterView]

WHERE [Class]=1 AND [IsHomeItem]<>0 AND [Type]='Resistor'

ORDER BY [Number]

If the part type Resistor is always a home part, then simplify the filter to WHERE [Type]='Resistor'.

Calculated values distinguish parts with released revisions from those that haven't yet been released, rename the cost columns, and truncate any excessively-long description to 255 Unicode characters. (You may need to make other calculations or data type conversions.)

Your user-defined view MyCapacitors is similar, although you'll use [maxvoltage] instead of [tolerance], and the WHERE clause will substitute [Type]='Capacitor'.

Connecting Altium Designer to the PDXpert database

You've created your part types and defined their custom attributes, and designed the queries to extract your component data.

You'll now connect Altium Designer to the selected ODBC data source using a Database Library (*.DBLib) file. For details, refer to the Altium Designer user topic Using Components Directly from Your Company Database.

After the connection has been established, specify the appropriate matching criteria as described in the Altium Designer help topic.

Final comments

Your queries will need to be reviewed, and possibly repaired, if you make changes within the PDXpert collections. For instance, the example SQL statement will fail if you change the company Display name, remove a custom attribute, or rename the Resistor part type. Make changes to your PDXpert collections cautiously to minimize reworking your user-defined views.

Finally, it bears repeating that your SQL queries must only extract data using SELECT statements. Do not attempt to update or delete data within the PDXpert database.

Access, Excel and Microsoft are trademarks or registered trademarks of Microsoft Corp. Altium and Altium Designer are trademarks or registered trademarks of Altium Limited or its subsidiaries.

This application note was relevant to the PDXpert software release that was current at time of publication. Product changes since that time may affect its utility. We'd be happy to assist you in assessing the applicability of this note to your situation.

Application Notes

PDXpert & other software