...
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 | ||
---|---|---|
| ||
<?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.
...
language | xml |
---|
...
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 | ||
---|---|---|
| ||
<?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 | ||
---|---|---|
| ||
<?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 | ||
---|---|---|
| ||
<?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 | ||
---|---|---|
| ||
<?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 | ||
---|---|---|
| ||
<?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 | ||
---|---|---|
| ||
<Asset> <Serialnumber>1234567</Serialnumber> <ArticleNumber>PROD-123</ArticleNumber> <Image>efault<Image>Default.png</Image> </Asset> |
Related articles
...