This document is intended for technical staff creating imports to Signifikant Platform and describes the Signifikant Simplified XML import format.
Data imports into Manager database
Overview
Signifikant Platform import process is a two-step process where Signifikant Simplified XML or any custom file formats are transformed into Signifikant XML import format and then imported. Signifikant Platform import function operates on Signifikant XML format (described separately), and has configuration functionality for applying a transformation from any custom xml format. This guide describes the Signifikant Simplified XML format.
Signifikant Platform import function has the following built in transformations:
Signifikant Simplified XML to Signifikant XML
Windchill xml (requires configuration of Windchill) to Signifikant XML - in this case Signifikant Simplified XML is used as well
Creo Illustrate xml to Signifikant XML
IsoDraw xml (companion files) to Signifikant XML
Arbortext and Simonsoft CMS to Signifikant XML
Configuration
Signifikant Platform’s standard function is controlled by import.config, which lists the directories to use and the transforms to apply. Each information type will need to reside in their own directory. E.g. an external application exports parts and pdf-documents. The config file will specify where these exports shall be placed and how Signifikant Platform should recognize these exports. The config file will also specify where the Signifikant XML files shall be placed and where transforms are to be found. E.g.
D:/Export/Illustrations D:/Export/Parts D:/Export/Assemblies D:/Export/Catalogues D:/Import/Illustrations D:/Import/Parts D:/Import/Assemblies D:/Import/Catalogues D:/Import/Hotspot
When the first step of the import is started, Signifikant Platform will look in the export directory specified in the config file and match the folders found according to the regex in the config file. The information found will be transformed and placed in the import directory along with a .lis file specifying the content.
Naming convension for folders
A good practice is to use a naming convention for import folders based on <source>_<year>-<month>-<day>_<time>.
E.g. “ERP_2020-02-01_103121”.
Note the date format with year-month-day. This helps sorting the folders in windows explorer making it easy to find the latest export.
Task scheduler will import folders in one task based on alphabetical sorting, so ensure to use a convesion that works with this sorting
The second step, the actual import, will look in the import directory and match he folders with the regex in the config file and the actual files listed in the .lis file to determine what to import. When the second step of the import is completed, Signifikant Platform will place a status.xml file in the import directory.
Batch size will split import file in parts to ensure no xml file gets too big. A reasonable size is to set BatchSizeMB to 20.
The import.config is automatically generated when Manager is started the first time. The location is C:\ProgramData\Signifikant\Assert\
Transformation
Transformation configuration is holding list of transformation styles which may transform files from one format to an other format.
Transformation configurations
<TransformationConfigs> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\htmlDocumentStyle.xsl" name="htmlDocumentStyle" transformTo=".html" /> </TransformationConfigs>
In TransformationConfigs section we can specify multiple transformation styles sheets which may transform document from one type to an other. For example, from xml format to html format.
The src attribute represents the path where the transformation style sheet is located. We can assign identification name to style sheet by giving a name in name attribute. The transformTo attribute represents to which format this transformation will transform.
Sample import.config
<Configurations> <TransformationConfigs> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\WindchillXml.xsl" name="WindchillXml" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\signifikant_signifikantToXliff.xsl" name="SignifikantToXliff" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\signifikant_signifikant_to_signifikantSimplified.xsl" name="SignifikantToSignifikantSimplified" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\signifikant_xliffToSignifikant.xsl" name="XliffToSignifikant" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\signifikant_signifikantsimplifiedToSignifikant.xsl" name="SignifikantSimplifiedToSignifikant" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\SSXExport_parts.xsl" name="SSXExport_parts" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\SSXExport_assemblies.xsl" name="SSXExport_assemblies" transformTo=".xml" /> <TransformationConfig src="C:\ProgramData\Signifikant\Assert\SSXExport_hotspots.xsl" name="SSXExport_hotspots" transformTo=".xml" /> </TransformationConfigs> <XmlConfig> <ExportBasePath>D:\Assert\Export</ExportBasePath> <ImportBasePath>D:\Assert\Import</ImportBasePath> <StyleSheetsBasePath>C:\ProgramData\Signifikant\Assert</StyleSheetsBasePath> <!-- When new presentations are imported they will get this item status. The item status has to be defined in itemstatus.config. --> <InitialItemStatusList> <InitialItemStatus base-type="Part" initial-value="NEW" /> <InitialItemStatus base-type="Catalogue" initial-value="NEW" /> <InitialItemStatus type-code="Kit" initial-value="NEW" /> </InitialItemStatusList> <ImportSetting> <UseCache>false</UseCache> <LoadCache>false</LoadCache> <StopOnError>false</StopOnError> <MailEnabled>true</MailEnabled> <MailFromManager>true</MailFromManager> <MailFromAPI>true</MailFromAPI> <MailAtSuccess>true</MailAtSuccess> <MailAtFailure>true</MailAtFailure> <MailSender>noreply@domain.com</MailSender> <MailRecipient>admin@domain.com</MailRecipient> <!-- If no language specified, use this --> <DefaultTextLanguage>en-US</DefaultTextLanguage> <!-- Do not allow to create new languages at import --> <AutoAddNewLanguage>false</AutoAddNewLanguage> <!-- New specification types cannot be created at import --> <AllowNewSpecificationTypes>false</AllowNewSpecificationTypes> <!-- Only this list of languages will be allowed at import --> <AllowOnlyValidLanguages>true</AllowOnlyValidLanguages> <ValidLanguages> <Language>en-US</Language> <Language>da-DK</Language> </ValidLanguages> </ImportSetting> <TransformerSettingList> <TransformerSetting Name="Illustrations" TransformType="SignifikantSimplifiedXml"> <StylesheetPath>C:\ProgramData\Signifikant\Assert</StylesheetPath> <FolderRegex>Illustrations</FolderRegex> <!-- Alternative path for this type of information --> <ExportBasePath>C:\Export</ExportBasePath> <SequenceNumber>1</SequenceNumber> <BatchSizeMB>20</BatchSizeMB> <BatchCounter>0</BatchCounter> <!-- By default specification types that come in XML cannot change the type already in the database. By setting this tag to true specification types in import will update the type in the database. This setting is available from version 4.5.3 and later. --> <EnableEditExistingSpecificationTypes>false</EnableEditExistingSpecificationTypes> </TransformerSetting> <TransformerSetting Name="Parts" TransformType="SignifikantSimplifiedXml"> <StylesheetPath>C:\ProgramData\Signifikant\Assert</StylesheetPath> <FolderRegex>Parts</FolderRegex> <SequenceNumber>3</SequenceNumber> <BatchSizeMB>20</BatchSizeMB> <BatchCounter>0</BatchCounter> </TransformerSetting> <TransformerSetting Name="Assemblies" TransformType="SignifikantSimplifiedXml"> <StylesheetPath>C:\ProgramData\Signifikant\Assert</StylesheetPath> <FolderRegex>Assemblies</FolderRegex> <SequenceNumber>4</SequenceNumber> <BatchSizeMB>20</BatchSizeMB> <BatchCounter>0</BatchCounter> </TransformerSetting> <TransformerSetting Name="Catalogues" TransformType="SignifikantSimplifiedXml"> <StylesheetPath>C:\ProgramData\Signifikant\Assert</StylesheetPath> <FolderRegex>Catalogues</FolderRegex> <SequenceNumber>5</SequenceNumber> <BatchSizeMB>20</BatchSizeMB> <BatchCounter>0</BatchCounter> </TransformerSetting> </TransformerSettingList> </XmlConfig> </Configurations>
APIs
See Technical documentation - XML import format for APIs to initiate import.
XML files
The following information may be imported into Signifikant Platform:
Texts and translations
Images and illustrations using illustrations.xml format and possibly also hotspots.xml.
Parts using part.xml format.
Assemblies using assemblies.xml format
Documents using documents.xml format
Catalogues using catalogue.xml format
Serial numbers using serialnumber.xml format
Hotspots using hotspot.xml format
There are dependencies between the different information types and information will have to be imported based on these dependencies.
Parts may refer to images if parts have images.
Assemblies refer to illustrations (images with hotspots) and parts
Catalogues refer to the contents of the catalogues, which may be parts, assemblies, documents or other catalogues.
Preferred import order is
Texts and translations
Images and illustrations
Parts
Assemblies
Catalogues
Serial numbers
Import strategy
Import of a presentation type will overwrite any previous imports of the same presentation type. Presentation types are considered being the same if they have the same persistent id.
If a presentation type is referred to using <Links> and that presentation type does not exist, it will be created automatically. The created presentation type will be empty except for the persistent id. The reason is that this will make a bit of independence of import order, e.g. documents typically comes from a system separate from catalogues.
If a text is referred using persistent id and the text does not exist, the text will be created. The text will then be empty.
XML file limitations
If an export file is very large, memory consumption will increase during transformation. If files are of 500000 lines, it is a risk of getting memory problems during transformation stage. It is advisable to make export files a bit smaller both due to this risk and due to ease of finding errors in the xml files. A possible strategy is to place one object in each file for part assemlies, catalogues, and content sets. Parts, illustrations and texts can be divided in sets of some 100 or 1000 items per file.
It is recommended to keep export files below 5 MB.
Xml transformation does not allow '{' or '}', so these characters may not be used in any place in the xml. This also applies to texts within the xml.
Sample xml for texts (signifikant and xliff format)
Sample xml for content
General components of most xml import files
Metadata
The Metadata element includes information from the export process. At the moment, it includes export-type and export-time, but this information can easily be extended if the need exists.
Common element attributes
Most data types (parts, assemblies, catalogues, etc.) in the Signifikant information model share a number of common attributes:
identity An identifier for the element
persistent-identity* An identity that is reused over recurring imports
number A number for the element, e.g. part number
name A name for the element, e.g. part description
* The persistent-identity is the only attribute that is required in the import file. Often the identity, persistent-identity and number are the same, but there are use cases where these have different values.
PersistentID
The persistentID has to be unique per type of information and no duplicates may exist. E.g. there may only be one part with the same persistentID.
If persistentID is not unique the import engine will get confused and unexpected results may occur.
Specifications
You can add an arbitrary number of additional attributes to most data types in the Signifikant information model. During import, you provide their values by using the Specifications tag which takes key/value pairs (called type and value).
Permissions
On most data types in the Signifikant information model you can set permissions which determine who has access to the information. During import, you provide the permissions by using the Permissions tag, which takes one or multiple permission levels.
CataloguesUsing
For each data type element in the import file, you can specify in which place and in which catalogue(s) the element is used. This way of linking data type elements to catalogue nodes makes the import and synchronization process very efficient.
Images
Most data types in the Signifikant information model can be linked to an image. The image is identified by its file name in the image directory. Images are imported into the Signifikant Manager from a directory or zip-file.
Removing presentations
All presentations can be removed at import by usign a remove command in the xml.
Remove command
<!-- Sample ContentSet removal --> <ContentSets> <ContentSet remove="true"> <persistent-identity>12345</persistent-identity> </ContentSet> <ContentSets> <!-- Sample Document removal --> <Documents> <Document remove="true"> <persistent-identity>12345</persistent-identity> </Document> </Documents>
Updating or overwriting presentations
Basic function in import is that import will overwrite only the values in the xml file. That is if name, identity and persistent identity exist on a presentation and xml only contains persistent identity and description, the presentation will have a name, identity, description and persistent identity afther the import. Fields may, though, contain empty string. In this case the value of that field will be replaced by an empty string.
But presentations may also be overwritten. In this case the presentation is removed and then reimported according to the xml. This is achieved by an overwrite command according to below.
Overwrite command
<!-- Sample Catalogue overwrite --> <Catalogues> <Catalogue overwrite="true"> <persistent-identity>12345</persistent-identity> </Catalogue> <Catalogues> <!-- Sample Part overwrite --> <Parts> <Part overwrite="true"> <persistent-identity>12345</persistent-identity> </Part> </Parts>
Specific components per data type of the xml import files
Texts
Each text may be defined by a persistent id which can be referred from all other exports. Each text contains all translations for that text with language defined using ISO 639-1 alternatively ISO 639-1 and ISO 3166.
A text with language "" is considered being invariant, the same for all languages.
Parts
On top of the common information, the parts file allows you to add a supplier-part-number and a classification for the part. Classification is one way to distinguish various types of parts; another way is to use one or more custom specifications.
Illustrations
An illustration consists of one or more images and one or more hotspots. The image is defined by its filename. For each hotspot, the location and identity is provided. The identity can later be used to link a hotspot to a part-row in an assembly.
This is one way of importing hotspots to the Signifikant Manager. Alternative ways are
Embedding the hotspots in the image files
Using Optical Character Recognition (OCR)
Illustrations may contain hotspots as xml. This xml may be embedded into the illustration.xml file or imported as a separate file referred from the illustrations.xml file. The hotspots are defined by position (x,y) and size (with, height). Both position and size are normalized values (0-1) and origo is top left corner of the illustration.
SVG files may also have hotspots built into them. If both hotspots as xml and hotspots in SVG are provided, the hotspot information in the xml will be discarded.
Assemblies
An assembly consists of one or more illustrations and one or more part-rows. Illustrations are identified by their persistent-identity. Assemblies can be kits, which is marked in the import file with the kit tag. For each part-row the following information can be provided:
Position (is matched with the hotspots)
Quantity
Sellable item
Hidden part number
Remark
Included-in-kits
Type
Automatic backing part
When assemblies are imported, the import will check if any parts with the same identity as the part assembly. If such part exist, that part will be made backing part for the part assembly.
Documents
For each document you can provide a title. If you work in a multilingual environment, you can provide a title for each language. You can also provide a list of languages for which the document is valid.
Catalogues
The catalogue import file describes the structure for each catalogue (nodes with images) and it also describes how each node is linked to other data type elements in the Signifikant information model. A node can be linked to:
Parts
Images
Illustrations
Assemblies
Documents
Other catalogues
Web Viewer imports
Overview
It is possible to make imports into the WebViewer. Currently imports of the below information is possible:
organisations
Imports can be started manually by uploading files in the web viewer or by a service monitoring a hot folder.