Data Sources
Data Source
is exactly that - a source of data you configure to read/write data from, or a source of data with an add-in to push data to SharpSync.
A primary source will be a Bill of Materials (BOM) structure and metadata (e.g., part number, description, revision). A secondary source will be Inventory records and BOM data.
Each source may be registered as either a Primary or a Secondary Data Source.
It works as follows:
Primary Data Source ↔️ SharpSync ↔️ Secondary Data Source
Core concept: Sources
A Primary Data Source is typically a CAD / PDM / PLM source. It is the origin of your CAD data.
A Secondary Data Source is typically an ERP / MRP source.
SharpSync uses both sources to do bi-directional synchronization, meaning it pulls information from the Primary and writes to the Secondary. It can also pull information from the Secondary and write to the Primary.
Currently the application is limited to a single Primary source and a single Secondary source
Core concept: Primary and Alternative Component Identifiers
SharpSync is a synchronization tool. It synchronizes data between two Data Sources. To do this, it uses the following two settings:
Primary Component Identifier: The preferred property or meta data name to search
Alternative Component Identifier: The alternative property or meta data name to search if the primary returns an empty result.
A Primary (or alternative) component identifier is the meta data, part number or custom property that uniquely identifies the component item (part, assembly, item or drawing) in a Data Source.
Typically this property (in a CAD environment) would be something like Number
, PartNumber
, No
, PartNo.
or similar.
Typically in an ERP system, this would be something like Number
, PartNo
, ItemId
, Id
or similar.
Example
Let's say we're working with a part called '123'. Our primary identifier is 'PartNumber'
and our alternative identifier is 'name'.
The way SharpSync works is that it searches the source for the Primary identifier (in this case the primary identifier is PartNumber
). So it searches the source for a component identifier PartNumber
with a value of 123.
If nothing is found using an exact match (i.e. no component identifier PartNumber
with a value of 123
), it will search the source using the Alternative Component Identifier. In this case, the alternative identifier isname
, so the source is searched for a component identifier name
with a value of 123
.
As an example of a Primary Identifier, we have included a screenshot from OnShape. This will of course vary from other platforms:

Core concept: Bom Revision Names
In the Configuration section of a Secondary Source (Typically an ERP), you will find a BOM Revision Scheme field where a naming convention must be specified for BOM revisions.
Some examples may be:
{rowData.componentName}
A1
{rowData.componentName}_BOM
A1_BOM
{rowData.componentName}_{rowData.cells.revision}
A1_A or A1_B

Some ERPs allows the management of different Bills of Materials for the same assembly at different stages of the design process, typically when a new revision occurs. To facilitate this, a scheme name has to be specified.
In the example above, the name of the component may be used. In addition to this, you can use any Accessor Name from a Property Mapping to get dynamic values.
What's important here is that, when specifying this Schema name, you should not map the value in a property mapping. In other words, do not map the BOM Name or Code in a Property Mapping (you can, but you shouldn't). This is because, when not finding a BOM with a matching name, a new BOM will be created, which is not what you'd want.
Core concepts: Setup
To complete a Data Source's setup, you have to complete at least the following two items:
Setup authentication
Setup BOM configuration
Resource links
Select an individual Data Source to view the configuration setup for that source.
See also Troubleshooting
Last updated