Xceptor Developer Interview | Q & A | Part - 1

Xceptor Developer Interview | Q & A | Part - 1


What is a preprocessor?

A preprocessor is used by Xceptor to manipulate an incoming file or message before the enrichments/rules configured on an input format are applied.


How to add a new input channel in Xceptor?

File Watcher Input Channel

Before adding a new input channel, we've to make sure that the Xceptor server has access to that location.

If so, create 2 sub-folders named "Errors" and "Processed". Then we can register a new?Input?Channel?with Xceptor by adding the "new" channel's code?into?Xceptor.config?file.

Sample code for adding a new file watcher in Xceptor:

<channel type="file">

<name>File Watcher</name>

<description>File watcher for a new folder</description>

<checkInterval>10</checkInterval>

<inputPath>Xceptor</inputPath>

<processedPath>Xceptor\Processed</processedPath>

<errorsPath>Xceptor\Errors</errorsPath>

<writeDelay>10</writeDelay>

</channel>

Email Watcher Input Channel

Similar to as adding a new folder watcher, create 2 sub-folders named "Errors" and "Processed" in the inbox, if you expect the Xceptor to watch "Inbox".

For adding a new email watcher, the code goes like:

<channel type="email" active="true">

<name>Email Watcher</name>

<description>Monitors Inbox</description>

<emailProtocol>ABC</emailProtocol>

<checkInterval>5</checkInterval>

<host>outlook.com</host>

<port>430</port>

<userName>[email protected]</userName>

<password>12345</password>

<useSsl>true</useSsl>

<inboxFolder>Inbox</inboxFolder>

<errorsFolder>Inbox/Errors</errorsFolder>

<processedFolder>Inbox/Processed</processedFolder>

</channel>


How to extract table data from an email?

We've to set "Email (HTML Message Body)" in Match conditions of Processing rules for extracting table from an email body. The Message Processor generates whole message body as a html file which could be downloadable from input activity, and by using this as an input file you can choose either "Excel" or "Document" as the Input Format for reading the email contents.


Difference between data lookup and reference data lookup?

Data Value Lookup is used to assign/define static values to a nested if condition whereas reference data lookup is used to pull in specified column values from the translation table when there's a match between the reference field values.


Difference between Translation Tables & Data Sets and How to link a Data Set to a Translation Table?

The major difference is when you create a new Data Set, Xceptor creates a data base table on the backend, whereas it doesn’t for a Translation Table.

Translation Tables vs Data Sets

Use Translation Tables where data meets the following conditions:

  • Is static reference data (e.g., Country Currency Codes - USD).
  • Is completely based on an external reference source.
  • Does not require to be stored as part of the process.

Use a?Data Set?as the source for a Translation Table instead of using the?Managed by Xceptor?option:

  • If the number of records in the table exceeds 100,000.
  • If the number of configured data fields exceeds 100.
  • Custom indexes are required for Reference Data Lookup performance.
  • Data must be reviewed manually.
  • Data contains matching fields coming from two different sources.
  • Tasks need to be triggered (for example, sending an email from Xceptor).

We can create a link between Translation Tables and Data Sets by adding a specific line of code (i.e., <source name="DSTable" sql="select * from DSTable"/> ) in between the translation source tags in the Xceptor.config file which would enable the option of choosing defined Data Sets to be used as a "Data Source".


Difference between an Input Format and Internal Format?

Internal Formats are a type of Input Format wherein an input file is not specified and data is not captured. Instead, the Input Formats capture data from input files, which can then be sent to Internal Formats utilizing “Mappings”.


How to read PDFs and what are some of the challenges one might face?

A PDF can be read by choosing "Document" as format while creating an Input Format.

  1. If the data to be read is in tabular format (a whole page) you can create fields by dividing the page(s) with "column".
  2. If the data to be read is in specific region (tabular format) you can use "Grid" as capture region to create fields (by dividing the selected region with "column") and read data from a PDF.
  3. If the data to be read is not in a tabular format but a single row item (cell) then you can use "Single Field" or "Text".

Some of the challenges are:

  • As?PDF?files are less structured than Excel files, we have to manually define the fields.
  • If a data point overlaps over two lines, then the data will be captured in two separate rows.
  • Unnecessary elements gets captured, so additional enrichments are needed to delete such data.
  • Have to manually define the page width if the complete message is not read.
  • Must manually define the columns if you opt to read the "whole page".
  • If the new message comes up with altered column width then the data gets merged with another column's (adjacent) data.
  • Can't completely rely on OCR if the PDF is in lower resolution (PDF - Scanned copy or a zoomed out screenshot). It might misinterpret B -> 8, S -> 5 etc.

The lowest recommended resolution is 300 dpi, but for the consistent reading of 6-8 pt text it is recommended to have 600 dpi scanning resolution.


What does a Calculate Workbook preprocessor do?

Calculate Workbook is one of the Excel preprocessors, it allows Xceptor to read in the result of any calculations or macros on a given Excel rather than the user having to set up an Input Format which reads in all the original columns.

For example, when you have to read an Excel file with Excel formulas in it and you can use this pre-processor to ensure the Excel formulas are calculated before Xceptor reads the file.


What are the options available in Invalid Value Handling?

The options available in Invalid Value Handling are used to specify how Xceptor should treat invalid values.

  • Raise an exception: Selecting this option results in an exception being raised if an invalid value is encountered.
  • Treat as blank value: Selecting this option results in the invalid value being processed as a blank value.
  • Use default value: Selecting this option allows you to substitute the invalid value for the value specified in this field.
  • Mark as Action Required: Selecting this option results in the invalid value being marked as action required on the dashboard.


What are the different types of Input Formats and Output Formats?

Input Format -?Excel, Delimited (csv), Fixed width, Document, Swift and XML.

Output Format -?Delimited, Excel, PDF Form, XML, SWIFT and JSON


What is a processing rule and why is it required?

Processing?Rules are used to define the Data Format that processes each input message. A?Processing?Rule?is associated with an existing Message Processor, and multiple?Processing?Rules may be used for a single Message Processor.?Processing?Rules link the incoming files to the appropriate Input Format.


Can we directly link an Input Format to an Output Format without having to use an Internal Format?

Yes, we can absolutely link an Input Format to an Output Format having to use an Internal Format in between. Having an internal format is optional.


What are the different categories of field types available for the columns in Xceptor?

Change Field Type - It is available in the Data Capture section of Input Format. This dropdown allows us to choose the type of field that needs to be configured. The field types available are:

  • Column Cell Value -?This is the default field type, it would consider the available cells as Fields from the given row. If column sequence alters then Xceptor will throw an error.
  • Absolute Cell Value -?Use this section to specify the cell from which to extract the value. By specifying the value (such as A1) in "Cell Reference" Xceptor would take in particular cell value as a Field and fill it down till the end.
  • Group Header -?A?Group Header?is used to capture the value of a cell only when certain conditions are met such as when cell value from a specific column matches with the given "match value".
  • Dynamic Column -?It?capture data where the source location, or column, is not consistent. Instead of specifying the column sequence within the file, Xceptor can determine the column to read based on details within the input file. To enable this, check "Create with dynamic columns" before creating the Input Format.


How to handle big files(millions of records) in Xceptor?

It depends on the way Xceptor.config file has been configured in your organization. By default, <dataLoad> tag must be set to "auto", which means Xceptor switches between multiple options available to load data into it depending on the amount of data fed.

Also, <commandTimeout> tag (under <database>), Web application time out and Message Hub service time out should be at least 1000, 2000 and 3000 respectively if you were to load a million rows of data.

If the <dataLoad> tag is set to "insert" then we cannot handle big files with millions of records in Xceptor, the only way is to feed data into Xceptor is by dividing the input file into multiple files and feed it to Data Set and import data into Translation Table.


What does Text Replace preprocessor do?

Text Replace preprocessor applies text replacements to incoming text files (such as CSV and delimited). It supports both simple replacements as well as more advanced regular expression replacements.

For example, A=X;B=Y;C=Z will apply three text replacements. Parameters enclosed in {} are treated as regular expressions. For example {[0-9]}=X will replace all occurrences of the digits 0 to 9 with X.


What are the different data types available in Xceptor?

The following are the different data types available in Xceptor:

  • String
  • Boolean
  • Integer
  • Decimal
  • Date/Time


How to extract the File name or Sheet Name from Excel Input?

We can retrieve filename and sheet name from the input file by using macros $Filename and $Sheetname as a fixed value in the?Calculation?enrichment section.


What is a Validation enrichment and how to add validations?

Validation is a type of enrichments which is used to validate the data present in the file and if the data is invalid, a custom message can be triggered to notify the user of the same.

Three options appear :

?I. Valid if all items match

????II. Valid if no items match

????III. Valid if?at least?one item matches

Assign?a condition by clicking on selector.

Write an error message to notify?regarding the same for failed validations.?


What is the latest version of Xceptor and which version of it are you working on?

The latest version of Xceptor is x.x.xx and the version that I mostly worked on is x.x.xx.


What software distribution model does Xceptor use?

Xceptor provides 2 types of software distribution models to its customers.


1. On-Premise Web Application Deployment

The Xceptor application is deployed within IIS 7.5/8/8.5/10.0 as an ASP.NET 4.7.2 application


2. Cloud Deployment

Cloud deployment options are as follows:

Infrastructure as a Service (IaaS) is similar to an on-premise deployment. In this model, the Xceptor components are installed directly onto virtual machines that are hosted in the cloud.

Platform as a Service (PaaS) is a flexible deployment option that uses the cloud provider's infrastructure to provide web server and database services, without having to configure and maintain the underlying servers.

Xceptor as a Service (XaaS) is a Software as a Service (SaaS) based model. Software as a service (SaaS) is a software distribution model in which a cloud provider hosts applications and makes them available to end users over the internet.


How to configure a Processing Rule in Xceptor?

Steps to configure a processing rule:

  • Navigate to Processing rule tab from the navbar menu present on the message processor.
  • Click on the Add rule.
  • Define the Channel type, Filename pattern, and select the data format.
  • Click on Save.


What is a Split Repeating Groups enrichment?

Split Repeating Groups is an Enrichment Type that translates side-by-side columns into multiple rows.

Use Split Repeating Groups Enrichment when you have separate columns with the same type but different column names.


How to read an input email having multiple attachments in a single email message??

To read multiple attachments from a single email, Firstly we've to set "Channel type" to Email in processing rules, then add the filename pattern. So that, Xceptor would pick all the files with the matching expression.

If the filename is quite different from each other, then we just have to add multiple processing rules to a single message processor to read all the required attachments.


How to create an output with just one file but the data is split within the worksheets?

We've to use a template in the output format with the required sheets, and create multiple output tables to create an output file with a single file but the data has to be split within multiple sheets.


How to add password protection to the output files?

We've 2 ways to add password protection feature to the output files.

Add "Password" in the output setting section of "Output Format". With this, the output file can be opened only if the password entered matches with the password defined in the Output Format.


Add "Password" in the Generate Output action of message processor. With this, the output file would be sent to the users in a?zip?file with password protection.






??????????????????????????????

Hi friends, How to generate a dynamic number of excel sheets in the same excel workbook using Xceptor? Example: if 5 customers then 5 if 7 then 7,...

回复
Chinakasthuraiah Meraga

Associate consultant at Northern Trust

2 年

How to enter new line of text in dataset field while entering?

回复

要查看或添加评论,请登录

Shivaram Nomula的更多文章

社区洞察

其他会员也浏览了