Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The service configuration is in: C:\ProgramData\Signifikant\Assert\importer-service.config. Each configuration is defined in a CustomFolderSettings tag and, if it is to upload to a web server, refers an UploaderId depending on upload action.

UploaderId

Usage

PartPricePartsPrice

Import prices for parts per price list into Server database.

PartBalancePartsBalance

Import availability for parts per warehouse into Server database.

PartStatusParts

Import ReplacementCode and AvailabilityCode on parts.

OrganizationOrganizations

Import organizations and addresses for organizations into Server database.

Users

Import users into Server database.

AssetUpload

Import assets into Asset database.

...

Code Block
languagexml
<?xml version="1.0" encoding="utf-8"?>
<CustomFolderConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<Enabled>true</Enabled>
	<ServerConfigPath>C:\ProgramData\Signifikant\Assert\server.config</ServerConfigPath>
	<LogFolder>C:\Signifikant\Log\ImportLog</LogFolder>
	<Settings>
		<CustomFolderSettings ImporterId="PartPriceParts">
			<BackupFolder>C:\Signifikant\Backup</BackupFolder>
			<DumpUploadItems>true</DumpUploadItems>
			<FolderDescription>Part price<status</FolderDescription>
			<FolderEnabled>true</FolderEnabled>
			<FolderFilter>PRICE<FolderFilter>Parts*.xml</FolderFilter>
			<FolderIncludeSub>false</FolderIncludeSub><FolderPath>C:\Signifikant\Import_service</FolderPath>
			<FolderPath>C<BackupFolder>C:\Signifikant\Import_service</FolderPath>_service_backup</BackupFolder>
			<FolderIncludeSub>false</FolderIncludeSub>
			<MoveToBackup>true</MoveToBackup>
			<SaveItems>true</SaveItems>
			<SsxSheet<XlsSheet/>
			<UploadItems>true</UploadItems>
			<UploadLogin>true</UploadLogin><SsxSheet>signifikant_parts.xsl</SsxSheet>
			<UploadPassword>uploader<<UploadItems>true</UploadPassword>UploadItems>
			<UploadServer>http://localhost/AssertWeb/</UploadServer>
			<UploaderId>Parts</UploaderId>
			<UploadUsername>uploader</UploadUsername><UploadSiteId>Alo</UploadSiteId>
			<UploadLogin>false</UploadLogin>
			<UploaderId>PartsPrice<<UploadUsername>uploader</UploaderId>UploadUsername>
			<XlsSheet>part_price.xsl</XlsSheet><UploadPassword>uploader</UploadPassword>
			<Options>
				<Option key="PurgeAfter" value="true" />
			</Options>
		</CustomFolderSettings>
		<CustomFolderSettings ImporterId="PartsBalancePartsPrice">
			<FolderEnabled>true<<DumpUploadItems>true</FolderEnabled>DumpUploadItems>
			<FolderDescription>Part availability<price</FolderDescription>
			<FolderFilter>Item_Balance_All<FolderEnabled>true</FolderEnabled>
			<FolderFilter>PartsPrice*.xml</FolderFilter>
			<FolderPath>C:\Signifikant\Import_service</FolderPath>
			<FolderIncludeSub>false</FolderIncludeSub><BackupFolder>C:\Signifikant\Import_service_backup</BackupFolder>
			<MoveToBackup>true<<FolderIncludeSub>false</MoveToBackup>FolderIncludeSub>
			<BackupFolder>C:\Signifikant\Backup</BackupFolder><MoveToBackup>true</MoveToBackup>
			<SaveItems>true</SaveItems>
			<XlsSheet>PartBalance.xsl<<XlsSheet/XlsSheet>>
			<SsxSheet/><SsxSheet>signifikant_price.xsl</SsxSheet>
			<UploadItems>true</UploadItems>
			<UploadServer>http://localhost/AssertWeb/</UploadServer>
			<UploaderId>PartsBalance<<UploaderId>PartsPrice</UploaderId>
			<UploadSiteId>Alo</UploadSiteId>
			<UploadLogin>false</UploadLogin>
			<UploadUsername>uploader</UploadUsername>
			<UploadPassword>uploader</UploadPassword>
			<Options>
				<Option key="PurgeAfter" value="true" />
			</Options>
		</CustomFolderSettings>
		<CustomFolderSettings ImporterId="OrganizationPartsBalance">
			<FolderEnabled>true</FolderEnabled>
			<FolderDescription>Organization<<FolderDescription>Part availability</FolderDescription>
			<FolderFilter>Customer<FolderFilter>PartsBalance*.xml</FolderFilter>
			<FolderPath>C:\Signifikant\Import_service</FolderPath>
			<FolderIncludeSub>false</FolderIncludeSub><BackupFolder>C:\Signifikant\Import_service_backup</BackupFolder>
			<MoveToBackup>true<<FolderIncludeSub>false</MoveToBackup>FolderIncludeSub>
			<BackupFolder>C:\Signifikant\Backup</BackupFolder><MoveToBackup>true</MoveToBackup>
			<SaveItems>false<<SaveItems>true</SaveItems>
			<XlsSheet>organization.xsl</XlsSheet>
			<SsxSheet>signifikant_organizationavaibility.xsl</SsxSheet>
			<UploadItems>true</UploadItems>
			<UploadServer>http://localhost/AssertWeb/</UploadServer>
			<UploaderId>Organization<<UploaderId>PartsBalance</UploaderId>
			<<UploadSiteId>Alo</CustomFolderSettings>UploadSiteId>
		<!-- <CustomFolderSettings ImporterId="AssetImport"> -->			<UploadLogin>false</UploadLogin>
			<UploadUsername>uploader</UploadUsername>
			<UploadPassword>uploader</UploadPassword>
			<Options>
				<Option key="PurgeAfter" value="true"/>
			</Options>
		</CustomFolderSettings>
		<CustomFolderSettings ImporterId="AloAssetImportOrganizations">
			<FolderEnabled>true</FolderEnabled>
			<FolderDescription>Assets<<FolderDescription>Organization import</FolderDescription>
			<FolderFilter>Signifikant_Serial<FolderFilter>Organisations*.xml</FolderFilter>
			<FolderPath>C:\Signifikant\Import_service</FolderPath>
			<FolderIncludeSub>false</FolderIncludeSub>
			<MoveToBackup>true</MoveToBackup>
			<BackupFolder>C:\Signifikant\Backup<Import_service_backup</BackupFolder>
			<SaveItems>false<<FolderIncludeSub>false</SaveItems>FolderIncludeSub>
			<XlsSheet<MoveToBackup>true</>MoveToBackup>
			<SsxSheet<SaveItems>true</>SaveItems>
			<UploadItems>true</UploadItems><SsxSheet>signifikant_organization.xsl</SsxSheet>
			<UploadSiteId>Alo<<UploadItems>true</UploadSiteId>UploadItems>
			<UploadServer>http://localhost/AssertWeb/</UploadServer>
			<UploaderId>AssetUpload<<UploaderId>Organizations</UploaderId>
			<DumpUploadItems>true<<UploadSiteId>Alo</DumpUploadItems>UploadSiteId>
			<UploadLogin>true<<UploadLogin>false</UploadLogin>
			<UploadUsername>uploader</UploadUsername>
			<UploadPassword>uploader</UploadPassword>
			<Options>
				<Option key="ArtnoFilePurgeAfter" value="ARTNO*.xmltrue"/>
			</Options>
		<!-- <Option key="DefaultImageFile" value="LOADER_DEFAULT.png"/> --/CustomFolderSettings>
		<CustomFolderSettings ImporterId="Users">
			<<FolderEnabled>true</Options>FolderEnabled>
			</CustomFolderSettings>    </Settings>
</CustomFolderConfiguration>   

Desciption of tags

...

Tags

...

Description

...

Options

...

FolderEnabled

...

If configuration is active or not.

...

true/false

...

FolderDescription

...

Description.

...

text

...

FolderFilter

...

Regex used on the files that appear in the folder. Only files matching the regex will be handled, e.g. Part_price*.xml.

...

FolderPath

...

Folder path to monitor for new files.

...

FolderIncludeSub

...

If sub folders are to be scanned for imports.

...

true/false

...

MoveToBackup

...

If file is to be moved to backup folder.

...

true/false

...

BackupFolder

...

After an import or upload is completed, move file to this folder.

...

SaveItems

...

If file content is to be imported into Manager site.

...

true/false

...

SiteId

...

Site name when importing into Manager site.

...

Site name

...

UploadItem

...

If file content is to be uploaded to web server site.

...

true/false

...

UploadSiteId

...

Site name when uploading into web viewer site.

...

Site name

...

UploadServer

...

Url for the web server e.g https://www.domain.com/AssertWeb/

...

UploaderId

...

Type of upload, see table above.

...

Organization, AssetUpload, PartPrice, PartBalance

...

UploadLogin

...

If login required to upload items to webserver.

...

true/false

...

UploadUsername

...

User name and password for calling the upload API on the web server. Api permissions are setup in: C:\ProgramData\Signifikant\Assert\api-permission.config, see Technical documentation - Signifikant REST API authentication .

...

UploadPassword

...

DumpUploadItems

...

<FolderDescription>User Import</FolderDescription>
			<FolderFilter>Users*.xml</FolderFilter>
			<FolderPath>C:\Signifikant\Import_service</FolderPath>
			<BackupFolder>C:\Signifikant\Import_service_backup</BackupFolder>
			<FolderIncludeSub>false</FolderIncludeSub>
			<MoveToBackup>true</MoveToBackup>
			<SaveItems>true</SaveItems>
			<SsxSheet>signifikant_user.xsl</SsxSheet>
			<UploadItems>true</UploadItems>
			<UploadServer>http://localhost/AssertWeb/</UploadServer>
			<UploaderId>Users</UploaderId>
			<UploadSiteId>Alo</UploadSiteId>
			<UploadLogin>false</UploadLogin>
			<UploadUsername>uploader</UploadUsername>
			<UploadPassword>uploader</UploadPassword>
			<Options>
				<Option key="PurgeAfter" value="false"/>
			</Options>
		</CustomFolderSettings>
	</Settings>
</CustomFolderConfiguration>

Desciption of tags

Tags

Description

Options

FolderEnabled

If configuration is active or not.

true/false

FolderDescription

Description.

text

FolderFilter

Regex used on the files that appear in the folder. Only files matching the regex will be handled, e.g. Part_price*.xml.

FolderPath

Folder path to monitor for new files.

FolderIncludeSub

If sub folders are to be scanned for imports.

true/false

MoveToBackup

If file is to be moved to backup folder.

true/false

XlsSheet

Custom Xls for the importer. Custom Xls shall be placed in C:\ProgramData\Signifikant\Assert\Customize

SsxSheet

Signifikant predefined SSX format for the import type as signifikant_organization.xsl

Options

Used to define alternatives to control the import

See separate table below.

Options tag has a set of keys.

...

Key

...

Value

...

Description

...

Options

...

PurgeAfter

...

bool

...

After last call with all uploaded part numbers, a valid number list with all valid part numbers are uploaded. All parts in the price list or warehouse lists which not in the valid numbers list removed from that price list or warehouse list. That way removed prices/warehouse stock will get deleted.

Use this method if full price lists or warehouse lists are sent.

Customization

Handlers for import or upload to remote server may be added in a customize module. By referring the custom handler in service configuration, any customer use case regarding automated file import, can be implemented. Custom modules require programming.

Permissions

The remote server may require permissions to access the upload Api interface. In that case we use basic authentication with a username/password to secure the function.

In this case the service need to declare login parameters for an upload handler, in the service configuration.

Logging

Configuration declares folders for logging, where each handler appends text to one file per day. Example of a log file name: UploadService_20200528_PartsPrice.log, indicating price information was uploaded.

The service also logs to an application log file, normally found at: C:\ProgramData\Signifikant\Assert\ImportService.log

Custom Xsl for uploads

Overview

Xsl files transform customer exported files in one Xml format to a format that the import/upload engine handles. File names are entered in the configuration file and the file is located in common or custom program data folders.

Prices

Output format

The price conversion Xsl file generates output records, one for each parts price for a price list.

Code Block
<PartPrice number="12345" price="1.25" currency="SEK" pricelist="PRICELIST"/>

If a part has a price list which does not exist, that price list will be created and made available. It will not be a default price list.

SSX Format

Shafi to provide

Availability

The availability conversion Xsl file generates output records, one for each parts balance for a warehouse. The total of balance + supply-balance is loaded to the database - 137 in the example below.

Code Block
<PartBalance number="12345" balance="25" supply-balance="112" warehouse="STORE"/>

If a part has a warehouse which does not exist, that wharehouse will be created and made available. It will not be a default warehouse.

Part status

The part status import is used to set the AvailabilityCode and ReplacementCode on parts.

Organizations

For the file format, refer to definition of the Signifikant import format for organization. Here is an example of an organization/address.

Code Block
<Organization persistent-id="externalId">
	<name>Name</name>
	<number>Company</number>
	<customer-number>123456789</customer-number>
	<status>Status</status>
	<currency>SEK</currency>
	<email>info@organization.com</email>
	<phone-number>+0 000 00 00 00</phone-number>
	<fax-number/>
	<category>Company</category>
	<note/>
	<Address persistent-id="xyz">
		<name>Visitor</name>
		<street-address>Street 1</street-address>
		<street-address2>Box 12345</street-address2>
		<street-address3>Building 1</street-address3>
		<city>City</city>
		<zip-code>123 45</zip-code>
		<state>Florida</state>
		<country>Sweden</country>
		<default>true</default>
		<type>Shipping | Billing | BillingAndShipping | None</type>
	</Address>
</Organization>

Users

Here is an example of users xml.

...

languagexml

...

BackupFolder

After an import or upload is completed, move file to this folder.

SaveItems

If file content is to be imported into Manager site.

true/false

SiteId

Site name when importing into Manager site.

Site name

UploadItem

If file content is to be uploaded to web server site.

true/false

UploadSiteId

Site name when uploading into web viewer site.

Site name

UploadServer

Url for the web server e.g https://www.domain.com/AssertWeb/

UploaderId

Type of upload, see table above.

See table above

UploadLogin

If login required to upload items to webserver.

true/false

UploadUsername

User name and password for calling the upload API on the web server. Api permissions are setup in: C:\ProgramData\Signifikant\Assert\api-permission.config, see Technical documentation - Signifikant REST API authentication .

UploadPassword

DumpUploadItems

If upload dump is to be generated in log folder.

true/false

XlsSheet

Custom Xls for the importer. Custom Xls shall be placed in C:\ProgramData\Signifikant\Assert\Customize

SsxSheet

Signifikant predefined SSX format for the import type as signifikant_organization.xsl

Options

Used to define alternatives to control the import

See separate table below.

Options tag has a set of keys.

Key

Value

Description

Options

PurgeAfter

bool

After last call with all uploaded part numbers, a valid number list with all valid part numbers are uploaded. All parts in the price list or warehouse lists which not in the valid numbers list removed from that price list or warehouse list. That way removed prices/warehouse stock will get deleted.

Use this method if full price lists or warehouse lists are sent.

Customization

Handlers for import or upload to remote server may be added in a customize module. By referring the custom handler in service configuration, any customer use case regarding automated file import, can be implemented. Custom modules require programming.

Permissions

The remote server may require permissions to access the upload Api interface. In that case we use basic authentication with a username/password to secure the function.

In this case the service need to declare login parameters for an upload handler, in the service configuration.

Logging

Configuration declares folders for logging, where each handler appends text to one file per day. Example of a log file name: UploadService_20200528_PartsPrice.log, indicating price information was uploaded.

The service also logs to an application log file, normally found at: C:\ProgramData\Signifikant\Assert\ImportService.log

Custom Xsl for uploads

Overview

Xsl files transform customer exported files in one Xml format to a format that the import/upload engine handles. File names are entered in the configuration file and the file is located in common or custom program data folders.

Prices

Input format

Standard input format:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<Export>
	<Metadata>
		<export-type>SignifikantSimplifiedXml</export-type>
		<export-time>2018-02-09T13:54:43.074+01:00</export-time>
		<version>1.0</version>
	</Metadata>
	<PartsPrices>
		<PartPrice>
			<Price>125</Price>
			<PartPriceGroupName>MAGFR01</PartPriceGroupName>
			<CurrencyCode>SEK</CurrencyCode>
			<PartNumber>60045910</PartNumber>
		</PartPrice>
	</PartsPrices>
</Export>

Output format

The price conversion Xsl file generates output records, one for each parts price for a price list.

Code Block
<PartPrice number="12345" price="1.25" currency="SEK" pricelist="PRICELIST"/>

If a part has a price list which does not exist, that price list will be created and made available. It will not be a default price list.

Availability

Input format

Standard input format:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<Export>
	<Metadata>
		<export-type>SignifikantSimplifiedXml</export-type>
		<export-time>2018-02-09T13:54:43.074+01:00</export-time>
		<version>1.0</version>
	</Metadata>
	<PartsBalances>
		<PartBalance>
			<PartNumber>60045910</PartNumber>	
			<WarehouseName>MAGFR01</WarehouseName>
			<Balance>112</Balance>
		</PartBalance>
	</PartsBalances>
</Export>

Output format

The availability conversion Xsl file generates output records, one for each parts balance for a warehouse. The total of balance + supply-balance is loaded to the database - 137 in the example below.

Code Block
<PartBalance number="12345" balance="25" supply-balance="112" warehouse="STORE"/>

If a part has a warehouse which does not exist, that wharehouse will be created and made available. It will not be a default warehouse.

Part status

Input format

The part status import is used to set the AvailabilityCode and ReplacementCode on parts. Standard input format:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<Export>
	<Metadata>
		<export-type>SignifikantSimplifiedXml</export-type>
		<export-time>2018-02-09T13:54:43.074+01:00</export-time>
		<version>1.0</version>
	</Metadata>
	<Parts>
		<Part>
				<PartNumber>60045910</PartNumber>
				<ReplacementCode>ReplaceNever</ReplacementCode>
				<AvailabilityCode>Available</AvailabilityCode>
				<PersistentIdentity>60045910</PersistentIdentity>
				<Code></Code>
		</Part>
	</Parts>
</Export>

Organizations

Input format

For the file format, refer to definition of the Signifikant import format for organization. Standard input format.

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<Export>
	<Metadata>
		<export-type>SignifikantSimplifiedXml</export-type>
		<export-time>2018-02-09T13:54:43.074+01:00</export-time>
		<version>1.0</version>
	</Metadata>
	<Organizations>
		<Organization>
			<PersistentIdentity>22565437447</PersistentIdentity>
			<OrganizationName>1MAN SERVICES</OrganizationName>
			<OrganizationNumber>SM09049</OrganizationNumber>
			<CustomerNumber>000069</CustomerNumber>
			<Status>New</Status>	
			<Email/>
			<PhoneNumber/>
			<FaxNumber/>
			<Note/>
			<Category>Company 2</Category>
			<Addresses>
				<Address>
					<PersistentIdentity>22565423796_1</PersistentIdentity>
					<Name>Active Systems 1</Name>
					<StreetAddress>9995 West Central Entrance</StreetAddress>
					<StreetAddress2/>
					<StreetAddress3/>
					<City>Duluth</City>
					<ZipCode>55802</ZipCode>
					<State>MN</State>
					<Country>US</Country>
					<Type>
						<Primary>false</Primary>
						<Billing>true</Billing>
						<Shipping>false</Shipping>
					</Type>
				</Address>
				<Address>
					<PersistentIdentity>22565423796_2</PersistentIdentity>
					<Name>Active Systems 2</Name>
					<StreetAddress>9995 West Central Entrance</StreetAddress>
					<StreetAddress2/>
					<StreetAddress3/>
					<City>Duluth</City>
					<ZipCode>55802</ZipCode>
					<State>MN</State>
					<Country>US</Country>
					<Type>
						<Primary>false</Primary>
						<Billing>false</Billing>
						<Shipping>true</Shipping>
					</Type>
				</Address>
				<Address>
					<PersistentIdentity>22565423796_3</PersistentIdentity>
					<Name>Active Systems 3</Name>
					<StreetAddress>9995 West Central Entrance</StreetAddress>
					<StreetAddress2/>
					<StreetAddress3/>
					<City>Duluth</City>
					<ZipCode>55802</ZipCode>
					<State>MN</State>
					<Country>US</Country>
					<Type>
						<Primary>true</Primary>
						<Billing>true</Billing>
						<Shipping>true</Shipping>
					</Type>
				</Address>
			</Addresses>
		</Organization>
	</Organizations>
</Export>

Users

Input format

Here is an example of users xml.

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<Export>
	<Metadata>
		<export-type>SignifikantSimplifiedXml</export-type>
		<export-time>2018-02-09T13:54:43.074+01:00</export-time>
		<version>1.0</version>
	</Metadata>
	<Users>
		<User>
			<UserName>john@mycompan.com</UserName>
			<Title>Mr</Title>
			<FirstName>John</FirstName>
			<LastName>Doe</LastName>
			<Email>john@mycompany.com</Email>
			<!-- Note that this is matched to organisations so user will be connected to organisation with the customer number specified. 
			If no such organisation exist, user will not be connected to any organisation. Thus import organisations first. -->
			<CustomerNumber>000069</CustomerNumber>
			<PhoneNumber>18001234567</PhoneNumber>
			<OrganizationName>FOR SERVICE</OrganizationName>
			<PartPriceGroupName>US01</PartPriceGroupName>
			<WarehouseName>US01</WarehouseName>
			<MarketCode>US</MarketCode>
		</User>
	</Users>
</Export>

Assets

Currently there is no transformation for the asset data. To import assets it is likely that a customize module is required to maintain all business data in exports. One simple example of an asset looks like.

Code Block
languagexml
<Asset>
	<Serialnumber>1234567</Serialnumber>
	<ArticleNumber>PROD-123</ArticleNumber>
	<Image>efault<Image>Default.png</Image>
</Asset>

...