Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
When importing data into X Dispatch, it is important to know the structure of an X Import configuration file. There are two types of files, which can be distinguished by their file extension.
- XINI files are on demand configurations.
- XASN files are routed configurations.
The following is for both XINI and XASN file types unless otherwise noted.
Excerpt | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CommentsComments are indicated by the '#' character and continue to the end of the line and can be at the beginning of a line, or at the end.
General Configuration Items
Configuration items are set using a Key=Value format, where key must be one of: ConcurrentDataFiles: Optional (starting in version 1.2.0) Expand | This value is set to the number of concurrent data files to be processed and will tell the system how many parallel processes to attempt to create. If this value is set to -1 it will tell the system to create as many as it can. Can be used in both the XINI and XASN file types.
ConcurrentProcesses: Expand | Configuration items are set using a Key=Value format.
Expand |
Expand |
Expand |
This functionality will require the installation of the 32 bit Microsoft Access Database Engine 2010 Redistributable.
ErrPath: Required Expand | The directory in which to store any error log files for the import.
NumLinesSkipped: Optional Expand | Indicates how many lines to skip from the top on an imported flat file. This allows you to bypass header rows in data files.
PreProcessor: Optional Expand | Full path to the preprocessor executable. Paste code macro | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||
ErrPath | Required The directory in which to store any error log files for the import.
| |||||||
NumLinesSkipped | Optional Indicates how many lines to skip from the top on an imported flat file. This allows you to bypass header rows in data files.
| |||||||
PreProcessor | Optional Full path to the preprocessor executable.
|
|
Example:
c:\ximport\plugins\
|
| |
PreprocessorPassInstance |
Optional in X Dispatch 19.2 or newer |
0/1 to enable/disable passing of the database instance to the pre-processor. |
Defaults to 0 to not pass the parameter so that it will not cause a regression for any existing preprocessors. |
ProcPath |
Required |
The directory in which to store copies of original import file and the log of XML requests used to place an order. |
|
| |||||
Qualifier |
Optional |
Qualifier defaults to the double-quote character and should almost never be modified. The corner case where Qualifier may need to be specified is if the import file format is a hybrid CSV file where escaped data is surrounded with a character other than the double-quote. This case is exceedingly rare. |
|
| |||||
URL |
Required |
Full URL to the XMLListener.asp file. |
|
| |||||
BaseNode |
Required only if using XML |
for Routed The XML node used to indicate the base node. |
|
| |||||
OrderNode |
Required only if using |
XML The XML node used to indicate orders. |
If listed, relative to BaseNode. Otherwise, it is an absolute path from the root of the document. See DATA ITEMS (XML) below. |
|
| |||||
ParcelNode |
Required only if using |
XML The XML node used to indicate parcels. See |
Data Item Types (XML) below. ParcelNode is relative to OrderNode if used in XINI or if BaseNode is specified in routed. Otherwise, it is an absolute path from the root of the document.
| ||
StripBeginningQualifier |
Optional
|
If the XML file submitted is wrapped in leading characters, this will prevent X Import from processing the document. This is because having leading characters is not valid |
XMDelimiterL. In order to modify the file into becoming valid XML, you can specify a mask of characters to strip out from the very beginning of the file if they are found. |
This could be more than one character |
and is not a dynamic field, so do not wrap the value in quotes or begin it with 0,. |
|
|
| |||||
StripEndingQualifier |
Required only if using |
XML |
If the XML file submitted is wrapped in trailing characters, this will prevent X Import from processing the document. This is because having trailing characters is not valid XML. In order to modify the file into becoming valid XML, you can specify a mask of characters to strip out from the very end of the file if they are found. |
This could be more than one character |
and is not a dynamic field, so do not wrap the value in quotes or begin it with 0,. |
| |||||
SkipLinesIfBeginsWith |
Optional
A regular expression is used to test each line to see if it should be processed. If the regular expression matches the current line, it will be skipped and not be processed. |
Here is a good reference for regular expressions: http://www.regular-expressions.info/reference.html |
|
That regular expression matches any line that does not begin with a double quote ("). Therefore, any line beginning with something other than a double quote would not be processed by X Import. | |||||
LogRetentionDays |
Required
|
|
The number of days to keep files that are in the ProcPath (.proc, .original) and ErrPath (.err) directories (EdiProcessedPath (.proc, .original) and EdiErrorsPath (.bad) for EDI). |
If this setting is omitted from the configuration file the number of days to keep the files defaults to 90. If the value in the configuration file cannot be parsed as an Integer the number of days to keep the files defaults to 90. |
|
|
MaxReimport: Required with X Dispatch 14.2.4 or newer
The number of times to attempt to re-import orders that failed the attempt. Omitting this item or setting it to 0 will have no change on import functionality. Any numeric value higher than 0 will tell XImport to try X number of times to re-import the failed data before giving up.
This feature will only re-import failed orders/stops. Any successfully imported orders/stops will not be re-imported.
Paste code macro | ||
---|---|---|
| ||
MaxReimport=3 |
LocalizedDateTimes: Optional in X Dispatch 18.1 or newer
0/1 (disable/enable) this tells the Import process that the date/times are already localized to the stop location in the ASN file, and not to localize them against the server date/time. This value defaults to 0 (disabled) so that it works as it always has.
Info |
---|
This allows the user to let the import plugin know that the date/time stamp they are passing in (e.g. "07/27/2018 00:00:00") has already been localized. |
If the user specifies a date/time with a timezone offset, the system will make use of that offset for the timezone (e.g. "07/27/2018T00:00:00-04:00").
Paste code macro | ||
---|---|---|
| ||
LocalizedDateTimes=1 |
Attempts: Optional in X Dispatch 19.2 or newer
Specifies how many times each line is attempted on an import before moving on and throwing an error.
Defaults to 1 if not set.
Note |
---|
If not managed correctly, it could potentially cause substantial processing delays. Before implementing ensure that you fully understand how the element works with the MaxFailed and RetryDelay(ms) to prevent issues with integration processing times. |
MaxFailed: Optional in X Dispatch 19.2 or newer
Specifies how many lines in an import can fail to import before the remainder of the file is failed and set for reimport later.
If not set, the import process will continue and all of the failed entries will be put into a new file for reimport.
For example, if a CSV file has 100 rows, it processes the first 25 successfully, the MaxFailed is set to 15, and the next 15 lines fail, the remaining 60 lines are failed as well. The new file for reimport attempt will have the remaining 75, including the 15 failed entries, and it will be attempted again based on the MaxReimportReImport | Optional Used to reimport the processing of a file in the processed directory that does not have a .proc file.
| |||||||
ReportEmail | Optional The e-mail address to which X Import will send a report about the import process for the current input file. Multiple email addresses should be comma separated. This works for both On Demand and Routed.
ReportEmail is not stored with the Order, but is used to create an email to be sent. It could be found tblMailLog, tblMailOutbox, or tblMailOutboxHistoric, depending on the time that has passed since the import and the status of email. | |||||||
MaxReimport | Required The number of times to attempt to re-import failed imports. Omitting this item or setting it to 0 will have no change on import functionality. Any numeric value higher than 0 will tell X Import to try the configured number of times to re-import the failed data. This feature will only re-import failed orders/stops. Any successfully imported orders/stops will not be re-imported.
| |||||||
LocalizedDateTimes | Optional 0/1 (disable/enable) this tells the Import process that the date/times are already localized to the stop location in the ASN file, and not to localize them against the server date/time. Defaults to 0 (disabled) so that it works as it always has.
If the user specifies a date/time with a timezone offset, the system will make use of that offset for the timezone (e.g. "07/27/2018T00:00:00-04:00").
Possible version compatibility issue. See Changelog below. | |||||||
Attempts | Optional Specifies how many times each line is attempted on an import before moving on and throwing an error. Defaults to 1 if not set.
|
|
RetryDelay(ms): Optional in X Dispatch 19.2 or newer
Specifies an amount of time in milliseconds to wait in between failed attempts at importing a line from a file. This is the delay for attempting to process each data set. Delimited files would be the delay for processing each row, XML would be a delay for processing each node based on the Attempts value.
Defaults to 0 if not set.
Possible version compatibility issue. See Changelog below. | |||
MaxFailed | Optional Specifies how many lines in an import can fail to import before the remainder of the file is failed and set for reimport later. If not set, the import process will continue and all of the failed entries will be put into a new file for reimport.
|
|
XSLTTranslator: Optional
Expand |
---|
Contains the file name of the XSLT file to use for translation (e.g. C:\IMPORT\TEST.XSLT). The XSLT file can be used to modify the incoming data before it is processed by the Import plugin. |
XSLTDataPath: Optional
Expand |
---|
Contains the directory location where to write the XSLT translation output data. This is primarily used for debugging purposes. It allows the user to see the data that was created by the XSLT transformation. |
XmlDataPath: Optional
Expand |
---|
Contains the directory location where to write the output that the Import plugin sent to the back end. This is primarily used for debugging purposes. It allows the user to see what data is being sent to the back end server. |
XmlPostAlso: Optional
Contains a 1 or 0 to enable or disable sending requests to the back end. This value is used in conjunction with XmlDataPath.
Note |
---|
This must be set to 1 for the Import plugin to properly process requests and send them to the back end. It is set to 0 only for debugging the Import process without sending the request to the back end server. |
QueueBatchConfigType: Optional in X Dispatch 21.0 or newer
Set to the config type from tblQueue_Batch that will denote import data to processes.
How it is configured:
- CXT Software deploys the CXT: Save Web Service String Data plugin. This plugin creates a web based endpoint that writes whatever is sent to it to the tblQueue_Batch table. This plugin is configured to specify the config type, which will be used in the XASN file.
- In the XINI/XASN, set the QueueBatchConfigType key to the same config type as configured in the previous step.
How it works:
A web service calls the endpoint set up aboveExample If a CSV file has 100 rows, it processes the first 25 successfully, the MaxFailed is set to 15, and the next 15 lines fail, the remaining 60 lines are failed as well. The new file for reimport attempt will have the remaining 75, including the 15 failed entries, and it will be attempted again based on the MaxReimport. Possible version compatibility issue. See Changelog below. | |||
RetryDelay(ms) | Optional Specifies an amount of time in milliseconds to wait in between failed attempts at importing a line from a file. This is the delay for attempting to process each data set. Delimited files would be the delay for processing each row, XML would be a delay for processing each node based on the Attempts value. Defaults to 0 if not set.
Possible version compatibility issue. See Changelog below. | ||
XSLTTranslator | Optional Contains the file name of the XSLT file to use for translation (e.g. C:\IMPORT\TEST.XSLT). The XSLT file can be used to modify the incoming data before it is processed by the Import plugin. | ||
XSLTDataPath | Optional Contains the directory location where to write the XSLT translation output data. This is primarily used for debugging purposes. It allows the user to see the data that was created by the XSLT transformation. | ||
XmlDataPath | Optional Contains the directory location where to write the output that the Import plugin sent to the back end. This is primarily used for debugging purposes. It allows the user to see what data is being sent to the back end server. | ||
XmlPostAlso | Optional Contains a 1 or 0 to enable or disable sending requests to the back end. This value is used in conjunction with XmlDataPath.
| ||
QueueBatchConfigType | Optional Set to the config type from tblQueue_Batch that will denote import data to processes. How it is configured:
How it works:
|
Data Items
There are three types of Data Items
Possible version compatibility issue. See Changelog below. | ||||||
DelayImport | Optional Used to delay the processing of a file by a set number of seconds.
| |||||
NameSpacePrefix | Optional Required in some XML inbound documents or if NameSpaceUri is used.
| |||||
NameSpaceUri | Optional Required in some XML inbound documents or if NameSpacePrefix is used.
| |||||
ReplaceContent | Optional Used to replace content in the document with the matching value with an empty string.
| |||||
ReportEmail | Optional The e-mail address to which X Import will send a report about the import process for the current input file. Multiple email addresses should be comma separated. This works for both On Demand and Routed.
Data: ReportEmail is not stored with the Order, but is used to create an email to be sent. It could be found tblMailLog, tblMailOutbox, or tblMailOutboxHistoric, depending on the time that has passed since the import and the status of email. |
File Failures
The import plugin will move any failing data files to the ERRORS folder.
Possible version compatibility issue. See Changelog below.
Configuration Item | Description | ||
---|---|---|---|
FailureEmailFromAddress | Optional FailureEmailFromAddress is a parameter for a return email address for failure emails. This parameter and FailureEmailFromName must be set the same as the setting in the email account. For example, if the email account has the email as email@cxtsoftware.com and the name as John Doe, the FailureEmailFromAddress must be "email@cxtsoftware.com" and the FailureEmailFrom Name must be "John Doe". The best practice is to use the same email address as the one set in the active Mail Manager profile.
| ||
FailureEmailFromName | Optional FailureEmailFromName is a parameter for a return email name for the failure emails. This parameter and FailureEmailFromAddress must be set the same as the setting in the email account. For example, if the email account has the email as email@cxtsoftware.com and the name as John Doe, the FailureEmailFromAddress must be "email@cxtsoftware.com" and the FailureEmailFrom Name must be "John Doe". The best practice is to use the same email address as the one set in the active Mail Manager profile.
| ||
FailureEmailToAddress | Optional FailureEmailToAddress is a parameter for a valid email address where the failure email should be sent.
|
Example
Code Block | ||||
---|---|---|---|---|
| ||||
DataPath=C:\ximport\inbox # example comment
DataMask=XML
Inherit=0
ProcPath=C:\ximport\Processed
ErrPath=C:\ximport\Errors
# another comment
URL=http://127.0.0.1/SampleWeb/XMLListener.asp
Delimiter=XML |
Data Item Types
There are three types of data items: static, dynamic, and macro.
Static Data Items
Static data items allow you to populate fields with known values. For example, if all of the deliveries sent in on an ASN will be assigned the same order type, origin address, etc. Static data items can be set by prepending the argument with “0,” followed by the static value.
EX: UserID=0,ximport-mckesson
Dynamic Data Items
Dynamic data items allow you to set an item’s value based upon the type of input file.
Macro Data Items
Macro data items allow you to populate fields with certain pre-defined macros. Currently, the only supported macros are the following:
NOW will return the current timestamp at the time of processing
Code Block | ||
---|---|---|
| ||
UserID=0,ximport-mckesson |
Dynamic Data Items
Dynamic data items allow you to set an item’s value based upon the type of input file.
Macro Data Items
Macro data items allow you to populate fields with certain pre-defined macros. Currently, the only supported macros are the following:
NOW | Returns the current timestamp at the time of processing, e.g. “04/20/2008 11:11” AKA "Server Time" This would be the time of the server on which X Import is running. Time may be added and subtracted in minute increments by appending the appropriate math after the “NOW” route keyword.
|
TODAY | Returns the current date at the time of processing with the time set to 12:00 AM, e.g. “04/20/2008 |
00: |
00” AKA " |
X Dispatch Time" |
This is the time |
in X Dispatch via dbo.GETCXTDate(). Time may be added and subtracted in |
day (whole or fractional) increments by appending the appropriate math after the |
“TODAY” keyword |
|
TODAY will return the current date at the time of processing with the time set to 12:00 AM, e.g. “04/20/2008 00:00” AKA "X Dispatch Time" This is the time in X Dispatch via dbo.GETCXTDate().
Expand |
---|
Time may be added and subtracted in day (whole or fractional) increments by appending the appropriate math after the “TODAY” keyword
|
CXTNOW will return the current date at the time of processing within cxtAsp.
This would be useful if the time zone of the system running X Import does not line up with the time zone of X Dispatch. For example, if a customer on Cloud is set for Eastern time but the server running their instance is set to Pacific or Central time.
Info |
---|
Use of modifiers for this function like with NOW added in X Dispatch 11.2.6. |
Applies to the following XINI fields:
- ReadyTimeFrom
- ReadyTimeTo
- PickupTime
- RequestDeliverTime
Applies to the Following XASN Fields:
- PostDate
- StopTime
- StopTimeMin
- StopTimeMax
If CXTNOW is used in a field outside of what is outlined above, the field will contain the results of NOW instead.
Info |
---|
There was an issue discovered that prevented CXTNOW from being passed to the system for these fields. This issue was resolved in the import plugin version 1.4.5. |
Example
Paste code macro |
---|
PickupDate= NOW+360
DeliverDate=TODAY+2 |
Macro data items can also be manipulated to add time offsets. For example, if you receive an ASN for same day delivery and the file comes in at inconsistent times (11 PM one day and 1 AM the next), using the above macros may not be sufficient. For these cases, it is possible to add a time offset and then apply a date transformation.
If you want to accept a same day ASN before 3 PM, but roll everything after 3 PM to the next day, you could do the following:
Paste code macro |
---|
PickupDate=NOW&09:01|DAYFLOOR |
The syntax for this type of macro manipulation is in the following form: Item=Macro&[OffsetHours:]OffsetMinutes|Transformation
Where:
- Item is a valid Data Item for the configuration file.
- Macro must be one of: NOW (see NOTE below) or TODAY.
- OffsetHours specifies the number of hours to add to the evaluated macro (required)
- OffsetMinutes specifies the number of minutes to add to the evaluated macro (required)
- Transformation is one of:
- DAYFLOOR: Set the resulting time to 00:00
- DAYUPPER: Set the resulting time to 00:00 and adds one day
WEEKDAYFLOOR: Behaves similarly to DAYFLOOR. If the time, after adding the OffsetHours and OffsetMinutes, is on a Saturday or Sunday, it will be pushed to the following Monday and then set the resulting time to 00:00
NOW is a macro that pulls the SERVER time, not the time local to the customer. The server time for Cloud customers is always UTC and the imported files will show the time local to the customer. In the example above, if the customer’s local time is EST you would need to add 4 hours to the syntax example:
title | Example |
---|
| |
CXTNOW | Returns the current date at the time of processing within cxtAsp. This would be useful if the time zone of the system running X Import does not line up with the time zone of X Dispatch. For example, if a customer on Cloud is set for Eastern time but the server running their instance is set to Pacific or Central time. ReadyTimeFromApplies to the following XINI fields:
Applies to the Following XASN Fields:
If CXTNOW is used in a field outside of what is outlined above, the field will contain the results of NOW instead. |
Example
Code Block |
---|
PickupDate= NOW+360
DeliverDate=TODAY+2 |
Macro data items can also be manipulated to add time offsets. For example, if you receive an ASN for same day delivery and the file comes in at inconsistent times (11 PM one day and 1 AM the next), using the above macros may not be sufficient. For these cases, it is possible to add a time offset and then apply a date transformation.
If you want to accept a same day ASN before 3 PM, but roll everything after 3 PM to the next day, you could do the following:
Code Block |
---|
PickupDate=NOW&09:01|DAYFLOOR |
The syntax for this type of macro manipulation is in the following form: Item=Macro&[OffsetHours:]OffsetMinutes|Transformation
Where:
- Item is a valid Data Item for the configuration file.
- Macro must be one of: NOW (see NOTE below) or TODAY.
- OffsetHours specifies the number of hours to add to the evaluated macro (required)
- OffsetMinutes specifies the number of minutes to add to the evaluated macro (required)
- Transformation is one of:
- DAYFLOOR: Set the resulting time to 00:00
- DAYUPPER: Set the resulting time to 00:00 and adds one day
WEEKDAYFLOOR: Behaves similarly to DAYFLOOR. If the time, after adding the OffsetHours and OffsetMinutes, is on a Saturday or Sunday, it will be pushed to the following Monday and then set the resulting time to 00:00
Note | |||||
---|---|---|---|---|---|
NOW is a macro that pulls the SERVER time, not the time local to the customer. The server time for Cloud customers is always UTC and the imported files will show the time local to the customer. In the example above, if the customer’s local time is EST you would need to add 4 hours to the syntax example:
|
Anchor | ||||
---|---|---|---|---|
|
Expand |
---|
X Dispatch 21.0
X Dispatch 19.2
X Dispatch 18.1
X Dispatch 14.2.4
X Dispatch 12.1.4
X Dispatch 12.1.3
X Dispatch 12.0.0
X Dispatch 11.2.6
Version 1.4.5
Version 1.4.3
Version 1.3.0
Version 1.2.0
|
On This Page:
Table of Contents | ||
---|---|---|
|
Related Articles:
Child pages (Children Display) | ||
---|---|---|
|
Search related import documentation
Live Search | ||||
---|---|---|---|---|
|