Input/Output Interface - IOI - Documentation

Introduction

This documentation aims to provide a clear understanding of the functionalities and components of the IOI (Input Output Interface). It is designed for administrators responsible for using and managing the application. The goal is to make working with the application easier and improve its comprehension. The document covers basic administrative procedures, configuration, and data processing procedure creation.

If you have any questions that are beyond the scope of this help file, Please feel free to email via treeinfo@aricoma.com.

Join TreeINFO community at Stack Overflow TreeINFO Team. If you need access, contact treeinfo@aricoma.com.


Release

Build (18.04.2024)
  • Added SetCache Getcache processors - Added SetCache and GetCache processors leading to enhanced data processing
  • Updated OAuth2.0 AuthenticationManager - Updated the OAuth2.0 AuthenticationManager to support the processing of double BASE64 encoding.
  • Updated UserMulti field support - Updated IOI processes to support the UserMulti field
  • Updated Foreach Json support - Introduced Foreach JSON support to streamline processing tasks, reducing the need for multiple conversions when handling Foreach JSON files.
  • Updated VODZ support - Updated IOI to be able to handle VODZ file types.
  • Fixed IndexOutOfRangeException error due to version conflict fix - Resolved a version conflict issue that resulted in an IndexOutOfRangeException error. The RunningTasks library has been substituted with ConcurrenceDictionary.

Build 2.2.2310.09001 (08.11.2023)
  • Added BaseWaitProcessor Added BaseWaitProcessor that is inherited by WaitRecordProcessor and WaitBarchProcessor so that 'Wait' can be used for example in PostProcess

Note See all the latest features, enhancements, updates and more in Changelog here.


About Input/Output Interface (IOI)

IOI Application is a universal data integration interface. Its purpose is to act as middleware between different systems and provide data connection in synchronous and asynchronous manner. Originally, it was designed as an interface between SharePoint and other systems. But its architecture allows IOI users to create data integrations of any software systems using different data transfer channels and formats. An example of typical use case is an import of an invoice into SharePoint library when a pdf file appears in shared disk folder, or an export of an order in XML format into web service interface, when a new order record appears in database.

Application itself is designed to be hosted in different application contexts. There are three types of installation currently available:

  • Windows service - IOI can be installed on windows operating system as windows background service. This is most commonly used option.
  • Standalone application - IOI can process data as a command line utility (exe). This option is useful for ad-hoc tasks, one time imports etc.
  • Web server - IOI processing can be triggered from IIS (Microsoft Internet Information Services) web server and thus act as a web service(s)

The IOI interface is configurable (the configuration is stored in XML format). IOI is designed to be modular - it contains input and output modules for different formats and these modules can be combined with each other. The input/output configuration is bundled into a single definition. These defined actions can be triggered depending on external events. Detailed listing of all available modules with description of all configuration options is part of this documentation.

The process and the entities are described in more detail in section basics.

The complete transfer history is logged to a configurable storage (file, database).


Basics

IOI configuration relies on a couple of basic entities. The principle is, that Triggers acts like "events". They specify conditions or external events that cause the "triggering" of some activity. An example of activity is adding of a new file into a folder, new email received in mailbox or timer that repeatedly calls an action, e.g. every 5 minutes.

Task is another important entity. Task defines action that happens when a trigger is triggered. Task consists of input, output and actions. Each trigger can have zero, one or multiple tasks assigned to it.

Basic data flow for each data integration is shown on following diagram:

IOI configuration is stored in form of XML data. Currently, all the configurations are stored in disk files, but can potentially be stored somewhere else in future IOI releases (e.g. in database)

Triggers

Triggers acts like "events" in IOI configuration. Detailed list of all triggers can be found in section Triggers. An example trigger configuration is listed below:

Trigger configuration template

                  <!-- Type attribute specifies the trigger type (without the "Trigger" suffix, e.g. FileAdded) -->
<IOInterfaceTrigger Type="">

    <!-- trigger specific properties should be here, if needed -->

    <!--If only one task is to be executed, Its name comes here-->
    <Task>NameOfTask</Task>

    <!-- For multiple tasks -->
    <Tasks>
        <Task Name="NameOfTask1">
            <!--there can also be some variables specified for task-->
            <Variables>
                <Variable Name="Variable1" Value="lorem ipsum" />
            </Variables>
        </Task>

        <!--second task without parameters-->
        <Task Name="NameOfTask2"></Task>
    </Tasks>
</IOInterfaceTrigger>
                

Example 1: Timer

Each 5 minutes run one task

                  <IOInterfaceTrigger Type="Timer">
  <Interval>300</Interval>
  <RunOnStart>true</RunOnStart>
  <Tasks>
    <Task Name="Invoice_SP2SAPTask" />
  </Tasks>
</IOInterfaceTrigger>
                

Example 2: FileAdded

Triggers two tasks with different variable value, when an file is added to specified folder

                  <IOInterfaceTrigger Type="FileAdded" MaxDop="1">
  <!-- folder where trigger watches for new files -->
  <Folder>D:\IOI_PROD\data\InvoicesInput</Folder>
  <Filter>*.xml</Filter>
  <Tasks>
    <Task Name="Invoice_Task">
      <Variables>
        <Variable Name="SpListName" Value="InboundInvoicesArchive" />
      </Variables>
    </Task>
    <Task Name="Invoice_Task">
      <Variables>
        <Variable Name="SpListName" Value="InboundInvoices" />
      </Variables>
    </Task>
  </Tasks>
</IOInterfaceTrigger>
                

Tasks

Tasks are defining the workload IOI is doing. It is composed by the three main elements:

  • Input
  • Processor(s)
  • Output
The logic of the processing of a task is as follows:
  1. Input retrieves data from a source (file/database/SharePoint/...)
  2. Input data are broken down into rows and columns. Breakdown mechanism is either using a parser or comes out of input data logic (e.g. for SQL query it is query result set)
  3. IOI engine processes each row and applies record processor(s).
  4. Each row is passed into output which is then processing data depending on output type (writes data to file, sends data to SharePoint, executes SQL command etc.)
  5. After processing of data, batch processors are applied (either success or error ones)

There are two types of processors used in task composition. Row processors are applied as described in point 2 on each data row. Batch processors are the other type, which might be applied before (or/and) after whole task processing. Depending on result of the task run, error or success processors are applied.

Following code snippet shows a template of IOI task with explaining comments. It contains all phases/elements for processors for different phases. The only ones required are Input and Output as they are the bare minimum for a runnable task.

                  <!-- Empty IOI task template (Full) -->
<IOInterfaceTask>
  <PreProcess>
    <!-- Optional. Before start of processing, batch processors to be fined here -->
  </PreProcess>
  
  <!-- Input for the task, required element, type of input specified in Type attribute -->
  <Input Type="">
  </Input>

  <Process>
    <!-- Optional. Record (row) processors to be defined here -->
  </Process>
  
  <Error>
    <!-- Optional. In case of failure, record processors to be fined here -->
  </Error>

  <Success>
    <!-- Optional. After record (row) was successfully processed, record processors to be fined here -->
  </Success>

  <!-- Output of the task, required element, type of input specified in Type attribute -->
  <Output Type="">
  </Output>
  
  <PostProcess>
    <!-- Optional. After successful processing of all records (rows), batch processors to be fined here -->
  </PostProcess>
  
  <TaskError>
    <!-- Optional. in case of failure, batch processors to be fined here -->
  </TaskError>  
</IOInterfaceTask>

                

Batches

There are two important terms used in IOI which needs to be explained:

  • Batch - Batch is the overall name for data that is processed by a task. It is an entity that is determined by the execution of a trigger. E.g. for the FileAdded trigger, there will be one batch per file.
  • Record - Record equals to set of data that represents one row of virtual table which comes out of Input. For example for CSV file, there will be literally one record per CSV file row (excluding header, if present.). For creating records out of an input stream (like a disk file is), Parsers (which are described later in detail) might be used. To merge records back to output stream, Formatters might be used, if appropriate.

Processors

There are two types of processors in IOI. Task processors which are executed for Batches and Record processors which are executed for each record. Some processors are available in both categories. For example, if a file should be moved after it has been processed, MoveFile task processor could be used. On the other hand, if it is required to send email per each row in input, the SendMail record processor could be used.

All processors are listed in this documentation with all its properties.

Replace tokens

There is a concept widely used in IOI which is called replace tokens. It is a specific string syntax that gets "replaced" during IOI processing. This means, it is possible to use specific syntax in IOI configuration files (and even in data) that is in runtime replaced by actual value. For example, there might be a variable that stores the file name of the file, which is the source of the data that is being processed (for a task that was triggered by the FileAdded trigger). This file name can be used in Task processing by using a replace token.

Replace tokens are wrapped into curly brakets and consists of two parts: prefix and the actual replace token. Syntactic template:

{(PREFIX):(REPLACE_TOKEN)}
An example of replace token, that represents a value of variable that is named "TriggerFileName":
{var:TriggerFileName}

Following table contains all available prefixes that might be used in replace tokens:

Prefix Meaning
rec Retrieve a field (column) from record (data row). Second part of replace token contains name of field (column).
var Retrieve value of variable. Name of variable needs to be specified in second part of replace token.
func Execute a replace function. Function specification (name and optionally parameters) needs to be specified in second part of replace token.
Example:
{func:Replace({rec:FieldA},'X','Y')}

Using comma in the name of the file right after rec: part will be understood as an attempt to divide arguments resulting in unwanted behaviour. We recommend avoiding the use of commas in the name of target files or using the following syntax

{func:expr(rec_FieldA.replace(/X/g,'Y'))}

Replace functions

Functions provide specific functionality described for each function in the table below. Function can be without parameters, or could expect one or more parameters. Number of parameters is defined for each function separately depending on its purpose. Parameters are expected to be in parenthesis, each separated by colon. String parameters are not wrapped in quotation marks. An example of function is GetFileName function, which expects one parameter containing physical file path. Returns name of file (without path information). Example of usage of GetFileName function:

                  {func:GetFileName(C:\data\input\invoice010.pdf)}
                

Output of the replace token would be: invoice010.pdf

Replace tokens could be called recursively (means they can be nested one into another). An example of using replace function with parameter stored in variable:

                  {func:GetFileName({var:FileName})}
                
Function Parameter(s) Description
GetFileName Physical file path Get file name part of file path
GetFileNameWithoutExtension File name Get file name without extension and dot before extension. Example input: Invoice123.pdf, output: Invoice123
GetExtension File name Retrieve only extension including dot. Example input: file.pdf, output: .pdf)
GetParentDirectory Physical file or folder path Parent directory path - Example input: C:\Data\Invoices\invoice.pdf, output: C:\Data\Invoices
GetParentDirectoryName Physical file or folder path Parent directory name - Example input: C:\Data\Invoices\invoice.pdf, output: Invoices
FileExists Physical file path True, if file exists
DirectoryExists Physical folder path True, if folder exists
GetTimeStamp none Returns current server date and time formatted by format string: yyMMdd_HHmmss. Example output: 221025_154403
FormatCurrentDate Datetime format string Format string is in form of .NET datetime format string. For more info, please refrer documentation online: https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
FormatDate Input datetime, format string Input datetime value must be in parseable format described in Microsoft documentation: https://learn.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-7.0#StringToParse
Format string is in form of .NET datetime format string. For more info, please refrer documentation online: https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
GetDateAddWorkdays Number of days (int), format string Retrieve current date + workdays specified in first parameter. Second optional parameter is datetime format.
Format string is in form of .NET datetime format string. For more info, please refrer documentation online: https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
GetValidName FileName Remove invalid characters from file name/ physical file path
MimeTypeFromFileName FileName Retrieve mime type configured in system by file name (extension)
expr Expression An expression to be evaluated by JavaScript internal evaluation engine. Script should return single value.
JsEscape String to be escaped Escape string to be valid for javascript.
SqlEscape String to be escaped Escape string to be valid for SQL
XmlEscape String to be escaped Escape string to be valid for XML
HTMLEscape String to be escaped Escape string to be valid for HTML
HtmlDecode String to be decoded Decode HTML encoded string
UrlEncode String to be encoded Encode URL parameters
UrlDecode String to be decoded Decode URL parameters
Replace string to search in, what to search for, replacement Replace all occurrences of second parameter string by replacement string in first parameter string.
guid None Returns new GUID

Variables

Variable is a key-value pair used widely in IOI. Variables can be defined at different levels:

  • Global IOI variables defined in app config
  • Variables defined in Triggers as Task arguments
  • Predefined variables in Task / variables set in runtime in Task
Global variables are passed to triggers. In triggers they can be used, passed to task, or modified before passing to task. In task, processors can set variable values (and also read them). Variables can be used in replace tokens or in processors.

Expressions

There is a number of entities, which are using expressions (e.g. If processor, expression replace token etc.). These expressions are based on JavaScript syntax (IOI evaluates expressions using a JavaScript interpret). So most of common JavaScript capabilities is available. Values can be passed to expressions in following ways:

  • Replace Tokens - All replace tokens are processed before expression is passed to JavaScript evaluation engine. This means, that any variable can be used as string constant in expression, for example:
    '{var:MyVariable}'.length > 20
    Please note that string constants must be enveloped in quotes and that this is a potential vulnerable place for script injection.
  • Variables - All variables present in current context are passed to JavaScript evaluation as JavaScript variables. They are named using var_ prefix to IOI variable lowercase name. For example, IOI variable named MyVariable will be available in javascript as var_myvariable. Example of usage in expression:
    var_myvariable.length > 20
  • Record values - for record processor, record values are passed to expression evaluator as JavaScript variables with rec_ prefix, name of column lowercased. So for record column FileName, the JavaScript variable will be named rec_filename. Example of use:
    rec_filename == 'MyFile.xlsx'


Installation

IOI can be installed in multiple ways. IOI installation package is a ZIP archive, which contains all required files for installation. The easiest and most straightforward installation is installing IOI as standalone application. In this case, installation process consists of these steps:
  1. Unzip files from a zip archive to a local disk folder. For instance, as per the standard practice, it could be located at D:\Your_Folder\Your_Application\bin (e.g. D:\TreeINFO\IOI_PROD\bin).
  2. Rename IOInterface.Console.exe.config.sample to IOInterface.Console.exe.config
  3. Configure application configuration file options, as described in section App configuration.
  4. Configure logging in nlog.config (if specific logging is required. Default config is supplied in package. Logging is described in more detail in this section. Logging uses NLOG library.)
  5. IOI can be executed using command line (IOInterface.Console.exe)

Windows service

Installation as windows service is most common for production use. Windows service can be started on window startup and, in the event of failure, restarted. On windows service shutdown, process is not terminated immediately, but it waits until all the already running tasks are finished. In this stage, service shows "stopping" state in service manager and is not throwing any new task instances by triggers. Service manager might say that service is unavailable, but it might be waiting for batch to be finished. Information about running Batches can be found in log.

  1. Unzip files from a zip archive to a local disk folder. For instance, as per the standard practice, it could be located at D:\Your_Folder\Your_Application\bin (e.g. D:\TreeINFO\IOI_PROD\bin).
  2. Rename IOInterface.WinService.exe.config.sample to IOInterface.WinService.exe.config
  3. Configure application configuration file options, as described in section App configuration.
  4. Start powershell console as administrator
  5. Register windows service using following command: New-Service -Name "IOInterface_PROD" -BinaryPathName "D:\TreeINFO\IOI_PROD\bin\IOInterface.WinService.exe" (change the binary path and service name according to your needs/physical binary location)
  6. Set windows service executing account using windows service manager (can be started by pressing windows key and R, then typing "services.msc"). It is recommended the IOI service account to be local administrator and to create separated user only for IOI. Could also be an ActiveDirectory user.
  7. Configure logging in nlog.config (if specific logging is required. Default config is supplied in package. Logging uses NLOG library.)
  8. Start the service and check log content if there is not any error message

IIS web server

  1. Unzip files from a zip archive to a local disk folder. For instance, as per the standard practice, it could be located at D:\Your_Folder\Your_Application\web (e.g. D:\TreeINFO\IOI_PROD\web).
  2. Rename Web.config.sample to Web.config
  3. Configure application configuration file options, as described in section App configuration.
  4. Register IOI http handler in section system.webServer/handlers. Example (Change path attribute according to your needs):
  5. Install IIS windows feature, if not already installed
  6. Create IIS website in IIS management console. Set working directory to IOI binary path, create app pool with user with sufficient permissions to execute IOI operations (it can be local admin if security standards allows it)
  7. Configure logging in nlog.config (if specific logging is required. Default config is supplied in package. Logging uses NLOG library.)

Note For each http handler, there must also be a trigger of type "WebService" referenced in Triggers config section with the same name in the attribute Name.

App configuration file

App configuration file is main configuration file for IOI. It is a XML file, standard .NET application config with a custom section for IOI configuration. For standard .NET configuration capabilities, please reffer MS documentation. An example of IOI Application configuration file:

<configuration>
  <configSections>
    <section name="IOInterface" type="IOInterface.Data.AppConfiguration.IOInterface,IOInterface.Data" />
  </configSections>
  <connectionStrings>
    <!-- Configurations database (optional)-->
    <add name="ConfigDB" connectionString="Data Source=(local);Initial Catalog=IOI_Config;Integrated Security=True" />
    <!-- Default data database (when not specified in task, this is used - optional) -->
    <add name="ConfigDefaultDataDB" connectionString="Data Source=(local);Initial Catalog=IOI_Data;Integrated Security=True" />
  </connectionStrings>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
  </startup>

  <IOInterface>
    <Management ConnectionType="Disabled" EnableRemoteManagement="False" Customer="Sabris Consulting" DisplayName="Production IOI instance" />
    <!--Paths for configuration file lookup-->
    <ConfigPaths>
      <ConfigPath Path="D:\Sabris\IOI_PROD\config" />
    </ConfigPaths>

    <!-- triggers to be enabled at service start-->
    <Triggers>
      <Trigger Name="FileToSP_Invoice"/>
      <Trigger Name="SPToXML_ExportSuppliers"/>
    </Triggers>

    <!-- Variables to be passed to IOI on start -->
    <Variables>
      <Variable Name="SPUrl" Value="http://devsp" />
      <Variable Name="TempFolder" Value="g:\Temp\ioi" />
    </Variables>

  </IOInterface>
</configuration>

IOInterface element sections

ElementDescriptionDetails
ConfigPathsFolders, where IOI expects to find IOI Task and Trigger configuration files.
TriggersList of triggers to be used (for console or service on service start, for web service installation it should be WebService triggers.
VariablesPredefined global variables. Will be available in all Tasks and Triggers.
ManagementManagement and monitoring options.

Log configuration

In order to enable logging features, it is required to create an nlog.config file in IOI bin directory.

An example of nlog.config for IOI which configures two logging targets: daily rolling file (new file for each day) and database table loggging.

                <?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="false">

  <targets>

    <!-- optional target used by console application. Not required for use as an windows service -->
    <target xsi:type="ColoredConsole" name="coloredConsole"
        layout="${longdate} ${logger} ${uppercase:${level}} ${mdc:item=ThreadId} ${message} ${exception:format=tostring}" />

    <!-- Target for storare of log in rolling file. fileName attribute specifies path where file will be created (executing process needs sufficient permissons.-->
    <!-- layout attribute configures template for each log record -->
    <target xsi:type="File" name="file.ioi" fileName="E:\Sabris\IOI_PROD\log\${shortdate}.log" encoding="utf-8"
        layout="${longdate}█${logger}█${uppercase:${level}}█${mdc:item=CorrelationId}█${mdc:item=ThreadId}█${message}█${replace-newlines:replacement=|:${exception:format=tostring}}" />
    
    <!-- Target for insering log records into database table. Table needs to be already created in SQL server before use. Target is siply configured by definig inser statemen of a log record. -->
    <target name="database" xsi:type="Database" dbProvider="System.Data.SqlClient" connectionString="data source=SPSQL;initial catalog=IOI_PROD;User ID=nlog;Password=****;MultipleActiveResultSets=True;App=SPEntityFramework" dbDatabase="IOI_PROD">
      <commandText>
        insert into dbo.Log (
        Date,
        Logger,
        Level,
        Message,
        Exception,
        CorrelationId,
        ThreadId
        ) values (
        GETDATE(),
        @Logger,
        @Level,
        @Message,
        NULLIF(@Exception, ''),
        @CorrelationId,
        @ThreadId
        );
      </commandText>
      <parameter name="@Logger" layout="${logger}" />
      <parameter name="@Level" layout="${uppercase:${level}}" />
      <parameter name="@Message" layout="${message}" />
      <parameter name="@Exception" layout="${exception:format=toString}" />
      <parameter name="@CorrelationId" layout="${mdc:item=CorrelationId}" />
      <parameter name="@ThreadId" layout="${mdc:item=ThreadId}" />
    </target>
  </targets>

  <rules>
    <!--  Rules specifies which targets will be used and also specifies logging level. Only records with value of minLevel attribute or higher will be stored. Be carrefull In production, Trace logs might be extensive!-->
    <logger name="*" minlevel="Trace" writeTo="coloredConsole" />
    <logger name="*" minlevel="Trace" writeTo="file.ioi" />
    <logger name="*" minlevel="Trace" writeTo="database" />
  </rules>
</nlog>
              

Configuration

This section describes all configuration entities in detail with properties available for configuration.

Triggers

FileAdded

Watches file system folder. When a new file appears in folder, task is triggered.

Properties Description Value / Comment
Filter File watcher filter
Folder Physical path to the folder, which should be observed by trigger. It could be a local path (e.g. C:\my\folde, or network location, e.g. \\shared\folder)
ProcessFilesOnStart If true, trigger processes all files in folder on start. True by default.
AllowRetry If true, trigger reattempts to run failed file added events. True by default. Also in retry interval, folder scans are executed so if fileadded event fails, files are still being queued.
RetryInterval Retry interval in seconds. Default value is 60sec
IncludeSubdirectories If true, subdirectories are watched. Default is false.
SequentialProcessing Deprecated: If true, files are processed sequentially. Can be replaced with MaxDop property equal to 1
MaxDop Maximum number of parallel processes to process files
DisableFolderCreate If folder does not exist and this is not true, folder will be created automatically. Default false.
Delay Delay between process tasks
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

MailPull

Email client trigger, which is periodically asking mail server for unprocessed messages. Is based on timer trigger and adds the mailbox functionality.
Transfer of data to task could be done via batch data or via disk files.
Could be used without any task by using file transfer method and files could be processed by any other way later.

Properties Description Value / Comment
Mailbox Mailbox configuration Mailbox configuration. Example configuration - connection via IMAP protocol, filtering of messages using regular expressions:
<IOInterfaceTrigger Type="MailPull">
  <Mailbox>
   <Server>srv</Server>
   <User>usr1</User>
   <Password>pwd</Password>
   <Filter Type="Or" >
       <Terms>
        <Regex Expr="^.+@stepka.eu$" Prop="From" />
        <Regex Expr="^.+@seznam.cz$" Prop="From" />
        <Filter Type="And" >
            <Terms>
                <Regex Expr="invoice .*" Prop="Subject" />
                <Regex Expr="^.+@gmail.com$" Prop="From" />
            </Terms>
        </Filter>
       </Terms>      
   </Filter>
   <MailboxClientType>IMAP</MailboxClientType>
 </Mailbox>  
</IOInterfaceTrigger>
PropertiesDescriptionValue / Comment
ServerImap only, server host name or IP
PortIMAP only, server IMAP port (default value is 993)
UserFor IMAP it is user name for authentication For MSGraph it is name of mailbox (email address)
PasswordIMAP only, user's password for authentication
CertificatePathMS Graph only - path to app certificate file (.pfx)
CertificatePasswordMS Graph only - certificate password
TenantIdMS Graph only - ID (GUID) of tenant - can be found in app registration
ClientIdMS Graph only - ID (GUID) of client - can be found in app registration
AllowTLS10IMAP Only, If set to true, TSL 1.0 will be allowed (for legacy servers)
SslOptionsIMAP only. For compatibility reasons. By default empty, empty means auto. other allowed values are: None Auto SslOnConnect StartTls StartTlsWhenAvailable
ProtocolLoggingIMAP only. If true, protocol logger is enabled (if supported)
ProtocolLoggingPathIMAP only. Extended IMAP protocol log path (if supported)
DisableCertificateValidationThis property is made for compatibility reasons, should be false or empty (false by default) Only if there is no other way...
ProcessMailActionWhen an email is processed by IOI, which action should be taken. Default value is SetSeenType of action to be executed on mail message
ValueDescription
SetSeenSet seen flag to message
MoveMove message to specified folder
DeleteDelete message (move to recycle bin)
NothingDo nothing, keep message untouched
FilterMailActionIf message is filtered out, which action should be taken. Default value is SetSeenType of action to be executed on mail message
ValueDescription
SetSeenSet seen flag to message
MoveMove message to specified folder
DeleteDelete message (move to recycle bin)
NothingDo nothing, keep message untouched
ErrorMailActionWhen an error happens in IOI processing, which action should be taken. Default value is NothingType of action to be executed on mail message
ValueDescription
SetSeenSet seen flag to message
MoveMove message to specified folder
DeleteDelete message (move to recycle bin)
NothingDo nothing, keep message untouched
InputMailFolderMailbox folder with input mails. If empty, default value is "Inbox"
ErrorMailFolderMailbox folder with for moving error in processing items. If there is an error in processing of email, item is moved into this folder (if "Move" is value of "ErrorMailAction" property)
ProcessedMailFolderMailbox folder for moving processed mail messages. If "ProcessMailAction" is "Move", successfully processed emails are moved into this folder.
FilterMailFolderMailbox folder for moving filtered mail messages. If "ProcessMailAction" is "Move", emails excluded from processing by filter are moved here.
ProcessModeProcessing mode of mailbox items (if an output entity - record - should be generated per message or per attachment). In case of message, one item will be emitted not caring about attachment count In case of attachment, if an email contains two attached files, two items will be emittedMode of operation for message processor
ValueDescription
Messageone output row will be emitted per email message.
Attachmentone output row will be emitted per attachment
SearchQueryImap mailbox search query for new messages. Default is NotSeen.Query to be used when searching in mailbox (e.g. retrieving messages)
ValueDescription
AllRetrieve all messages from mailbox (folder)
NotSeenRetrieve only messages not marked as seen
FilterMail message filtering (evaluated and if condition is not satisfied, message/attachment is not sent to processing)Different elements could be used to create filter query. There are logical operators and conditions (filters) elements available. Available Operators are: - And - Or Available filters are: - Regex - evaluate regular expression against a property - Code - evaluate message using C# code Example 1 (filter emails from *@seznam.cz):
<Filter>
     <Regex Expr="^.+@seznam.cz$" Prop="From" />
 </Filter>
Example 2 (filter emails from *@seznam.cz and where subject contains substring "invoices")
<Filter Type="And" >
<Terms>
 <Regex Expr=".*invoice.*" Prop="Subject" />
     <Regex Expr="^.+@seznam.cz$" Prop="From" />
 </Terms>
</Filter>
TempFolderTemporary folder used as storage for attachments/exported messages. If empty, system temporary folder will be used.
ExportEmlIf true, eml file will be exported for message into temp folder
TaskTransferTypeHow to transfer mail message data from trigger to Task - File (Default) = XML file containing all data will be created - Variables = XML File creation is skipped, all data are transferred via parametersWay of transferring data from trigger to task (or anywhere else)
ValueDescription
FileMessage data are stored in XML format on disk in physical files
VariablesMessage data are transferred as trigger variables for future use in task
MailboxClientTypeConnection mail box connection typeMailbox client type to be used for connection
ValueDescription
IMAPUse IMAP protocol
MSGraphApiUse MS graph api
Interval Interval of repeated execution (in seconds)
RunOnStart If true, timer tick is executed once on trigger start before the timer is started.
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

IsdsDownload

ISDS client trigger. Connects to ISDS ("Informační systém datových schránek") and checks for new unprocessed messages. Check is executed
regularly in specified intervals.
Note Please be aware that IOI ISDS implementation is not functional without SQL database!!!

Properties Description Value / Comment
IsdsBox ISDS box configuration ISDS box connection configuration. An example configuration (in real config, only one Login element will be present.)
<IsdsDownloadTrigger>
  <IsdsBox>
   <!-- Login using username/password -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="UserPassword" UserName="usr" Password="pwd" />
   <!-- Login using certificate in file -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="Host" CertificatePath="c:\temp\cert.pfx" />
   <!-- Login using a certificate from certificate store -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="Certificate" FindValue="a1b08795" StoreLocation="CurrentUser" StoreName="My" X509FindType="FindBySerialNumber" />    
   <Database Key="adsf" ConnectionString="Data Source=(local);Initial Catalog=IOInterface.Database;Integrated Security=True;" />
   <ReceivedOutputFolder>d:\temp\Isds\Received</ReceivedOutputFolder>
   <SentOutputFolder>d:\temp\Isds\Sent</SentOutputFolder>
   <ReceivedDeliveryInfoOutputFolder>d:\temp\Isds\ReceivedDeliveryInfo</ReceivedDeliveryInfoOutputFolder>
   <SentDeliveryInfoOutputFolder>d:\temp\Isds\SentDeliveryInfo</SentDeliveryInfoOutputFolder>
   <OutgoingInputFolder>d:\temp\Isds\Outgoing</OutgoingInputFolder>
   <DeliveryInfoDownload>
     <FinalMessageStates>DeliveredAfterLogin,Infected,Read,Undeliverable,Deleted</FinalMessageStates>
     <MaxAgeDays>365</MaxAgeDays>
   </DeliveryInfoDownload>
 </IsdsBox>
</IsdsDownloadTrigger>
PropertiesDescriptionValue / Comment
LoginAuthentication for ISDS box In type attribute, one of the values needs to be specified: UserPassword/Host/CertificateISDS authentication using a certificate
PropertiesDescriptionValue / Comment
CertificatePathPhysical path to certificate file this option takes precedence over the search in store.
FindValueFind-by value in certificate store (e.g. certificate thumbprint)
StoreLocationLocation of certificate store. Default is CurrentUser Available values: CurrentUser, LocalMachine
StoreNameCertificate store name. Default value is My Allowed values: AddressBook,AuthRoot,CertificateAuthority,Disallowed,My,Root,TrustedPeople,TrustedPublisher
X509FindTypeFind-by value type (type of value to search for). Default is FindByThumbprint
ISDS service authentication using basic auth (UserName and Password)
PropertiesDescriptionValue / Comment
UserNameLogin name
PasswordPassword
PortalUrlBase URL of ISDS web services. Can be set to production or testing ISDS environment ().
BoxIDISDS box ID
DatabaseState database configuration. Could be empty. If no connection string is specified, default IOI configuration connection string will be used If no key is specified, boxID is used as key for databaseISDS box database configuration
PropertiesDescriptionValue / Comment
KeyID of ISDS box which should be stored in that database. Empty if database should be default for all unspecified boxes.
ConnectionStringSQL connection string
MessageStateDownloadConfiguration of delivery information states and max message age. Could be empty, default values are: FinalMessageStates = DeliveredAfterLogin,Infected,Read,Undeliverable,Deleted MaxAgeDays = 365Delivery info download configuration
PropertiesDescriptionValue / Comment
FinalMessageStatesFilter for final state of messages. Multiple statuses could be specified. Default value is: DeliveredAfterLogin,Infected,Read,Undeliverable,DeletedMessage status in ISDS
ValueDescription
SentMessage was sent
TimeStampedMessage received a timestamp
InfectedMessage did not passed the antivirus scan
ReceivedByIsdsMessage was delivered to ISDS
DeliveredAfterTimeoutMessage was delivered due to delivery time limit
DeliveredAfterLoginMessage was delivered after recipients login
ReadMessage was read in portal or via API
UndeliverableIt is not possible to deliver the message
DeletedMessage was deleted
MaxAgeDaysIf a message exceeds the specified number of days, it is considered as delivered. Default value is 365.
TempPathFolder for temp files storage (attachments, ZFO, xml data etc) If empty, no files will be stored on disk and data will be transferred via record data If data is stored in temp folder, it is still present in record.
Interval Interval of repeated execution (in seconds)
RunOnStart If true, timer tick is executed once on trigger start before the timer is started.
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

MailPush

EMail client trigger, uses push notifications from mail server (aka IMAP Idle client). Can only be currently used with IMAP protocol.
Transfer of data to task could be done via batch data or via disk files.
Could be used without any task by using file transfer method and files could be processed by any other way later.

Properties Description Value / Comment
Mailbox Mailbox configuration Mailbox configuration. Example configuration - connection via IMAP protocol, filtering of messages using regular expressions:
<IOInterfaceTrigger Type="MailPull">
  <Mailbox>
   <Server>srv</Server>
   <User>usr1</User>
   <Password>pwd</Password>
   <Filter Type="Or" >
       <Terms>
        <Regex Expr="^.+@stepka.eu$" Prop="From" />
        <Regex Expr="^.+@seznam.cz$" Prop="From" />
        <Filter Type="And" >
            <Terms>
                <Regex Expr="invoice .*" Prop="Subject" />
                <Regex Expr="^.+@gmail.com$" Prop="From" />
            </Terms>
        </Filter>
       </Terms>      
   </Filter>
   <MailboxClientType>IMAP</MailboxClientType>
 </Mailbox>  
</IOInterfaceTrigger>
PropertiesDescriptionValue / Comment
ServerImap only, server host name or IP
PortIMAP only, server IMAP port (default value is 993)
UserFor IMAP it is user name for authentication For MSGraph it is name of mailbox (email address)
PasswordIMAP only, user's password for authentication
CertificatePathMS Graph only - path to app certificate file (.pfx)
CertificatePasswordMS Graph only - certificate password
TenantIdMS Graph only - ID (GUID) of tenant - can be found in app registration
ClientIdMS Graph only - ID (GUID) of client - can be found in app registration
AllowTLS10IMAP Only, If set to true, TSL 1.0 will be allowed (for legacy servers)
SslOptionsIMAP only. For compatibility reasons. By default empty, empty means auto. other allowed values are: None Auto SslOnConnect StartTls StartTlsWhenAvailable
ProtocolLoggingIMAP only. If true, protocol logger is enabled (if supported)
ProtocolLoggingPathIMAP only. Extended IMAP protocol log path (if supported)
DisableCertificateValidationThis property is made for compatibility reasons, should be false or empty (false by default) Only if there is no other way...
ProcessMailActionWhen an email is processed by IOI, which action should be taken. Default value is SetSeenType of action to be executed on mail message
ValueDescription
SetSeenSet seen flag to message
MoveMove message to specified folder
DeleteDelete message (move to recycle bin)
NothingDo nothing, keep message untouched
FilterMailActionIf message is filtered out, which action should be taken. Default value is SetSeenType of action to be executed on mail message
ValueDescription
SetSeenSet seen flag to message
MoveMove message to specified folder
DeleteDelete message (move to recycle bin)
NothingDo nothing, keep message untouched
ErrorMailActionWhen an error happens in IOI processing, which action should be taken. Default value is NothingType of action to be executed on mail message
ValueDescription
SetSeenSet seen flag to message
MoveMove message to specified folder
DeleteDelete message (move to recycle bin)
NothingDo nothing, keep message untouched
InputMailFolderMailbox folder with input mails. If empty, default value is "Inbox"
ErrorMailFolderMailbox folder with for moving error in processing items. If there is an error in processing of email, item is moved into this folder (if "Move" is value of "ErrorMailAction" property)
ProcessedMailFolderMailbox folder for moving processed mail messages. If "ProcessMailAction" is "Move", successfully processed emails are moved into this folder.
FilterMailFolderMailbox folder for moving filtered mail messages. If "ProcessMailAction" is "Move", emails excluded from processing by filter are moved here.
ProcessModeProcessing mode of mailbox items (if an output entity - record - should be generated per message or per attachment). In case of message, one item will be emitted not caring about attachment count In case of attachment, if an email contains two attached files, two items will be emittedMode of operation for message processor
ValueDescription
Messageone output row will be emitted per email message.
Attachmentone output row will be emitted per attachment
SearchQueryImap mailbox search query for new messages. Default is NotSeen.Query to be used when searching in mailbox (e.g. retrieving messages)
ValueDescription
AllRetrieve all messages from mailbox (folder)
NotSeenRetrieve only messages not marked as seen
FilterMail message filtering (evaluated and if condition is not satisfied, message/attachment is not sent to processing)Different elements could be used to create filter query. There are logical operators and conditions (filters) elements available. Available Operators are: - And - Or Available filters are: - Regex - evaluate regular expression against a property - Code - evaluate message using C# code Example 1 (filter emails from *@seznam.cz):
<Filter>
     <Regex Expr="^.+@seznam.cz$" Prop="From" />
 </Filter>
Example 2 (filter emails from *@seznam.cz and where subject contains substring "invoices")
<Filter Type="And" >
<Terms>
 <Regex Expr=".*invoice.*" Prop="Subject" />
     <Regex Expr="^.+@seznam.cz$" Prop="From" />
 </Terms>
</Filter>
TempFolderTemporary folder used as storage for attachments/exported messages. If empty, system temporary folder will be used.
ExportEmlIf true, eml file will be exported for message into temp folder
TaskTransferTypeHow to transfer mail message data from trigger to Task - File (Default) = XML file containing all data will be created - Variables = XML File creation is skipped, all data are transferred via parametersWay of transferring data from trigger to task (or anywhere else)
ValueDescription
FileMessage data are stored in XML format on disk in physical files
VariablesMessage data are transferred as trigger variables for future use in task
MailboxClientTypeConnection mail box connection typeMailbox client type to be used for connection
ValueDescription
IMAPUse IMAP protocol
MSGraphApiUse MS graph api
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

Scheduler

Task scheduling mechanism. Tasks are configured using UNIX "cron expressions"
For scheduling syntax reference: https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/crontrigger.html#introduction
To get cron expression, use a GUI Tool like: https://www.freeformatter.com/cron-expression-generator-quartz.html
Uses Quartz.NET scheduling library

Properties Description Value / Comment
Cron Cron schedule expression. To get cron expression, use a GUI Tool like: https://www.freeformatter.com/cron-expression-generator-quartz.html
Name Scheduler name. If is empty, will be filled automatically on start (=is not required, used as reference in scheduler engine).
Missfire If scheduled event is not executed (e.g. IOI was not running), what to do (Run now or skip). Default is run now.
RunOnStart If true, timer tick is executed once on trigger start before the timer is started.
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

SqlCommand

Basic SQL command trigger
Periodically queries SQL server and executes tasks if a row is retrieved by SQL query
One task is executed per result row. Data from row are passed to engine as variables

Properties Description Value / Comment
CommandText SQL command to be periodically executed. If a result is found, task is triggered. All data of the received row are forwarded ad IOI engine variables
ConnectionString Optional connection string. If empty, default application connection string is used.
Interval Interval of repeated execution (in seconds)
RunOnStart If true, timer tick is executed once on trigger start before the timer is started.
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

Timer

Run task repeatedly

Properties Description Value / Comment
Interval Interval of repeated execution (in seconds)
RunOnStart If true, timer tick is executed once on trigger start before the timer is started.
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

WebService

Web service trigger. Requires hosting a web request handling engine.
Currently needs to be triggered from IIS process, triggering of webservice from windows service or exe process is not implemented.

Properties Description Value / Comment
Listeners Listeners configured for triggering
Task Single task to be started on trigger fire. Should contain task name.
Variables Additional task trigger variables. Variable is defined by name and value. Other variables also might come from app config. In such case, variables are merged and forwarded to task. An example value:
<Variables>
 <Variable Name="ListName" Value="InboundInvoices" />
</Variables>
Tasks Task(s) to be started on trigger fire. Multiple tasks could be specified. For each task specific variable values could be specified. An example configuration. Variable configuration is optional, as well as output variables configuration. Variables are passed to task, OutputVariables are retrieved after execution of task back to trigger context.
<Tasks>
  <Task Name="SimpleTaskNoParameters" />
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="aaa.xml" />
    </Variables>
  </Task>
  <Task Name="SimpleTask">
    <Variables>
      <Variable Name="InFile" Value="bbb.xml" />
    </Variables>
     <OutputVariables>
      <Variable Name="ProcessStatus" />
    </OutputVariables>
  </Task>
</Tasks>
Watchdog Watchdog configuration. Watchdog is IOI functionality for limiting the number of reprocessings of a task. Configuration for Watchdog
PropertiesDescriptionValue / Comment
DisabledDisable Watchdog. Enabled in FileAddedTrigger by default, in other triggers disabled by default. Wathdogkey is equal to TriggerFile variable
TaskTask to be executed on watchdog activation.
WatchdogKeyExpression which is evaluated by replace evaluator. Should uniquely identify the batch.Some example values:
{var:TriggerFile}
{var:ItemId}
RetryLimitMaximal number of retry attempts. Default value is 10.

Inputs

Null

No input. This input is a dummy to explicitly state that there is no input expected.

Properties Description Value / Comment

HttpContextFile

File HTTP content. This input is specifically used in combination with web service trigger.
Provides transfer of HTTP files into tasks from HTTP request trigger.
Record columns:
- "FileData" = content of file
- "FileName" = Name of file retrieved in HTTP header
Produces one record per file, if content is sent as POST multipart/form-data. For multipart files, headers are also appended.

Properties Description Value / Comment
Mode Input mode Byte - file will be added as byte array into record (default mode) Stream - an opened read stream will be added to record HTTP Context file transfer method
ValueDescription
ByteContent transfer as byte array
StreamContent transfer as stream
IncludeHeaders If true, each HTTP header will be added as record column.
IncludeQuery If true, each query string parameter will be added as record column.
IncludePost If true, each post parameter will be added as record column.
IncludeServer If true, server variables will be added as record columns.

File

File stream input. This input opens a file from local file system or a shared network path. Uses parser configured in Parser property to
convert file content into records.

Properties Description Value / Comment
FileName Input file name physical path. Example: C:\temp\input_file.xml
Parser Parser to be used to convert input stream into records.

HttpContextParameters

Transfer Http request parameters into record. This input is specifically used in combination with web service trigger.
Produces one record, which contains request's data.

Properties Description Value / Comment
IncludeHeaders If true, each HTTP header will be added as record column.
IncludeQuery If true, each query string parameter will be added as record column.
IncludePost If true, each post parameter will be added as record column.
IncludeServer If true, server variables will be added as record columns.

ISDS

Retrieve data from ISDS ("Informační systém datových schránek") interface.
Can download messages / delivery information, and pass data to IOI processing.
Data can be downloaded and stored in temporary files, or can be processed directly.
Note Please be aware that ISDS input is not functional without SQL database!!!

Properties Description Value / Comment
Action Action to be executed in ISDS Action to be executed in ISDS
ValueDescription
DownloadMessagesDownload unprocessed messages
GetDeliveryInfoAllDownload delivery info for received and sent messages
GetDeliveryInfoSentDownload delivery info for sent messages
GetDeliveryInfoReceivedDownload delivery info for received messages
IsdsBox ISDS box connection configuration ISDS box connection configuration. An example configuration (in real config, only one Login element will be present.)
<IsdsDownloadTrigger>
  <IsdsBox>
   <!-- Login using username/password -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="UserPassword" UserName="usr" Password="pwd" />
   <!-- Login using certificate in file -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="Host" CertificatePath="c:\temp\cert.pfx" />
   <!-- Login using a certificate from certificate store -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="Certificate" FindValue="a1b08795" StoreLocation="CurrentUser" StoreName="My" X509FindType="FindBySerialNumber" />    
   <Database Key="adsf" ConnectionString="Data Source=(local);Initial Catalog=IOInterface.Database;Integrated Security=True;" />
   <ReceivedOutputFolder>d:\temp\Isds\Received</ReceivedOutputFolder>
   <SentOutputFolder>d:\temp\Isds\Sent</SentOutputFolder>
   <ReceivedDeliveryInfoOutputFolder>d:\temp\Isds\ReceivedDeliveryInfo</ReceivedDeliveryInfoOutputFolder>
   <SentDeliveryInfoOutputFolder>d:\temp\Isds\SentDeliveryInfo</SentDeliveryInfoOutputFolder>
   <OutgoingInputFolder>d:\temp\Isds\Outgoing</OutgoingInputFolder>
   <DeliveryInfoDownload>
     <FinalMessageStates>DeliveredAfterLogin,Infected,Read,Undeliverable,Deleted</FinalMessageStates>
     <MaxAgeDays>365</MaxAgeDays>
   </DeliveryInfoDownload>
 </IsdsBox>
</IsdsDownloadTrigger>
PropertiesDescriptionValue / Comment
LoginAuthentication for ISDS box In type attribute, one of the values needs to be specified: UserPassword/Host/CertificateISDS authentication using a certificate
PropertiesDescriptionValue / Comment
CertificatePathPhysical path to certificate file this option takes precedence over the search in store.
FindValueFind-by value in certificate store (e.g. certificate thumbprint)
StoreLocationLocation of certificate store. Default is CurrentUser Available values: CurrentUser, LocalMachine
StoreNameCertificate store name. Default value is My Allowed values: AddressBook,AuthRoot,CertificateAuthority,Disallowed,My,Root,TrustedPeople,TrustedPublisher
X509FindTypeFind-by value type (type of value to search for). Default is FindByThumbprint
ISDS service authentication using basic auth (UserName and Password)
PropertiesDescriptionValue / Comment
UserNameLogin name
PasswordPassword
PortalUrlBase URL of ISDS web services. Can be set to production or testing ISDS environment ().
BoxIDISDS box ID
DatabaseState database configuration. Could be empty. If no connection string is specified, default IOI configuration connection string will be used If no key is specified, boxID is used as key for databaseISDS box database configuration
PropertiesDescriptionValue / Comment
KeyID of ISDS box which should be stored in that database. Empty if database should be default for all unspecified boxes.
ConnectionStringSQL connection string
MessageStateDownloadConfiguration of delivery information states and max message age. Could be empty, default values are: FinalMessageStates = DeliveredAfterLogin,Infected,Read,Undeliverable,Deleted MaxAgeDays = 365Delivery info download configuration
PropertiesDescriptionValue / Comment
FinalMessageStatesFilter for final state of messages. Multiple statuses could be specified. Default value is: DeliveredAfterLogin,Infected,Read,Undeliverable,DeletedMessage status in ISDS
ValueDescription
SentMessage was sent
TimeStampedMessage received a timestamp
InfectedMessage did not passed the antivirus scan
ReceivedByIsdsMessage was delivered to ISDS
DeliveredAfterTimeoutMessage was delivered due to delivery time limit
DeliveredAfterLoginMessage was delivered after recipients login
ReadMessage was read in portal or via API
UndeliverableIt is not possible to deliver the message
DeletedMessage was deleted
MaxAgeDaysIf a message exceeds the specified number of days, it is considered as delivered. Default value is 365.
TempPathFolder for temp files storage (attachments, ZFO, xml data etc) If empty, no files will be stored on disk and data will be transferred via record data If data is stored in temp folder, it is still present in record.

MemoryStream

MemoryStream input is used by WebService trigger to pass content retrieved from web request into task.

Properties Description Value / Comment
Parser Parser to be used to convert input stream into records.

SharePointCsom

Retrieve SharePoint items via CSOM interface. Each item will yield a record. SharePoint fields will form record columns. CAML query can be specified.

Properties Description Value / Comment
Query Query used to get item(s). Sharepoint CAML query will be used here. For CAML queries, refer to MS documentation: https://learn.microsoft.com/en-us/SharePoint/dev/schema/query-schema
Scope Sharepoint query scope CAML query scope
ValueDescription
DefaultValueEnumeration whose values specify that all list items and all list folders in the current list folder are returned in the list view.
RecursiveEnumeration whose values specify that all list items in the list are returned in the list view.
RecursiveAllEnumeration whose values specify that all list items and all list folders in the list are returned in the list view.
FilesOnlyEnumeration whose values specify that all list items in the current list folder are returned in the list view.
OutputFields List of columns to be retrieved. If none specified, all availbale field values will be retrieved. An example configuration. OutputName attrribute is optional.
<OutputFields>
  <Field InternalName="ID" />
  <Field InternalName="s_synchronizationStatus" OutputName="Status" />
</OutputFields>
FileContentColumn If not empty, file content will be loaded into record. Needs SharePoint item retrieved to be a document. String value of this property will be used for record column name.
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

SqlCommand

SQL Command input element. Executes SQL command and resulting table is transferred into processing. Each result set row will yield an IOI record.

Properties Description Value / Comment
CommandText SQL command text. Should result into one result set.
CommandParameters SQL command parameters to be transferred to execution as SQL variable. Name of SQL variable will be equal to parameter name as specified in configuration. Input is protected against SQL injection. An example configuration (Simple SQL select with one parameter. Parameters are optional):
<Input Type="SqlCommand">
  <CommandText>select* from Items where CategoryID=@catId</CommandText>
  <CommandParameters>
    <SqlCommandParameter Name = "catId" Value="{var:Category}" />
  </CommandParameters>
</Input>
ConnectionString Connection string for SQL server database

WebRequest

Simple REST web request input

Properties Description Value / Comment
Url Web request URL
Method Request method - if empty default is GET
Params Web request parameters
BodyType Request body type
Boundary Multipart request boundary
TimeoutSeconds Optional timeout in seconds
Parser Parser to be used to convert input stream into records.

Parsers

PlainText

Takes input stream and reads it as string.
Outputs one record instance containing whole stream content as text in first column.

Properties Description Value / Comment
ColumnName Output column name. Text content of stream will appear in this column.
Encoding Encoding to be used by text parser. If empty, UTF8 is used by default.

Json

Parser for json inputs.
Output record is produced using jsonpath expression. Each node mathed by jsonpath will produce one record. Columns are also specified by jsonpath expressions, relatively for record node.
For JsonPath reference please visit https://www.newtonsoft.com/json/help/html/QueryJsonSelectToken.htm

Properties Description Value / Comment
RecordJsonPath JsonPath expression for record(s)
Columns Xml columns list. Configuration example:
<Columns>
  <Column Name="ID" Type="Int32" JsonPath="Id" />
  <Column Name="Title" JsonPath="Subject" />
  <Column Name="Body" JsonPath="Content.Body" ValueType="OuterXML" />
  <Column Name="To" ValueType="Static">petr.stepka@sabris.com</Column>
</Columns>
JSON column configuration options
PropertiesDescriptionValue / Comment
JsonPathXPath to column value relative from record root
ValueTypeValue transformation functionJson node to column value processing type
ValueDescription
DefaultDefault value, node value is retrieved (inner text for elements, value for attribute)
AdvancedTableCreate Advanced Table (json) value using subcolumn configuration
SQLExecute SQL command, single scalar result will be used as output. Variable @value can be used in SQL command, will contain value of JSON node.
StaticStatic content. No XPath is executed and static content specified in config is used as result.
ContentConfig element content
ColumnsSubcolumns list. Used by TreeINFO advanced table functionality. Allows user to build json structure within column to be used as TreeINFO AdvancedTable value.
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name
Encoding Encoding to be used by text parser. If empty, UTF8 is used by default.

Csv

CSV file parser
A comma-separated values (CSV) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. First line may be a header row (column names). It is not required, it is optional.

Properties Description Value / Comment
Columns Specify columns in input data. Available options are listed in comment. If input data contains header row, this list can be empty. Example:
<Columns>
  <Column Name="ID" Type="Int32" />
  <Column Name="Title" />
</Columns>
Column configuration options
PropertiesDescriptionValue / Comment
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name
FirstRowIsHeader If true, first row is used as columns header and not considered as data. Values are taken to be column names.
Separator Separator character for input data columns. Default value is semicolon (;)
LineEnd Separator character of records. Default value is end of line character.
SkipEmpty if true, empty columns are skipped. Default false. ;
Encoding Encoding to be used by text parser. If empty, UTF8 is used by default.

FileInfo

Read information about file, do not process its content. Works only if input provides file stream. Content might be provided to record, id specified in Mode property. Columns added by parser:
- FileName
- FileSize
- FileCreatedDate
- FileModifiedDate
- FileData (depending on Mode property, if NoContent or empty, this column is not added)

Properties Description Value / Comment
Mode File content mode File info parser modes
ValueDescription
NoContentNo content is read
StreamContent is retrieved as stream instance
BytesContent is retrieved as byte array

Xml

Parser for xml inputs.
Output record is produced using xpath expression. Each node mathed by xpath will produce one record. Columns are also specified by xpath expressions, relatively for record node.
For XPath reference please visit https://www.w3schools.com/xml/xpath_intro.asp

Properties Description Value / Comment
RecordXPath XPath expression for record(s)
Columns Xml columns list. Configuration example:
<Columns>
  <Column Name="ID" Type="Int32" XPath="@id" />
  <Column Name="Title" XPath="Subject" />
  <Column Name="Body" XPath="Content/Body" ValueType="OuterXML" />
  <Column Name="To" ValueType="Static">petr.stepka@sabris.com</Column>
</Columns>
XML column configuration options
PropertiesDescriptionValue / Comment
XPathXPath to column value relative from record root
ValueTypeValue transformation functionXml node to column value processing type
ValueDescription
DefaultDefault value, node value is retrieved (inner text for elements, value for attribute)
AdvancedTableCreate Advanced Table (json) value using subcolumn configuration
SQLExecute SQL command, single scalar result will be used as output. Variable @value can be used in SQL command, will contain value of XML node.
XMLEvalEvaluate an XPath function
OuterXMLReturn outer XML (value including element and subelements)
InnerXMLIf content is XML, inner xml structure is retrieved as column value. Otherwise default value is retrieved.
StaticStatic content. No XPath is executed and static content specified in config is used as result.
ContentConfig element content
ColumnsSubcolumns list. Used by TreeINFO advanced table functionality. Allows user to build json structure within column to be used as TreeINFO AdvancedTable value.
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name
Namespaces Namespace list with prefixes used in XPATH query Namespace information for XPATH queries
PropertiesDescriptionValue / Comment
PrefixPrefix value
UriNamespace URI
RemoveNamespace Set this to true, if namespace information should be stripped of before processing.
Encoding Encoding to be used by text parser. If empty, UTF8 is used by default.

Outputs

Email

Sends one email for each record in batch.
Requires an SMTP server connection.

Properties Description Value / Comment
Server SMTP server IP address or hostname
Port SMTP server port. Optional. If empty default port is used.
UseSSL Use SSL encryption for connection to mail server. Default is false!
UseDefaultCredentials If true, IOI application account is used for authentication to the SMTP server. Default is false
User User for SMTP authentication (BASIC)
Password Password for SMTP authentication (BASIC) If user name is empty, password is ignored and no credentials are passed to the SMTP client.
Body Email body. Can contain HTML, if enabled in IsBodyHtml
IsBodyHtml Body can contain HTML, if true. Default is false.
Subject Email subject
To Recipient email address. If multiple, use semicolon as separator.
From Email from address
Cc Email copy recipient.
Bcc Email hidden copy. If multiple, use semicolon as separator.
ReplyTo Mail reply address. If multiple, use semicolon as separator.
Attachments Email attachments could be sent via this property. An XML data containing references to attachment files needs to be passed into this property. Attachment XML item properties are listed in table in value column. An example configuration:
<Attachments>
  <Attachment>
    <FileName>Invoice.pdf</FileName>
    <MimeType>application/pdf</MimeType>
    <!--Read file path from record-->
    <ContentPath>{rec:FilePath}</ContentPath>
  </Attachment>
</Attachments>
Email attachment item
PropertiesDescriptionValue / Comment
FileNameFilename to be used for email attachment (this is how the file name will look like for the recipient.)
MimeTypeFile mime type. Determines the type for recipient.
ContentPathPhysical file path or HTTP(s) URL where the file content will be read
ContentColumnRecord column name where the file content will be read

ISDS

Sends one ISDS message per record. Message data can be transferred to output in XML format in single field. Alternatively ISDS outgoing message data can be read from record column. In both cases, ISDS message fields are named according to ISDS API documentation and are either XML columns in record data, or record columns directly.
Note Please be aware that ISDS output is not fully functional without SQL database!!!

Properties Description Value / Comment
IsdsBox ISDS connection configuration ISDS box connection configuration. An example configuration (in real config, only one Login element will be present.)
<IsdsDownloadTrigger>
  <IsdsBox>
   <!-- Login using username/password -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="UserPassword" UserName="usr" Password="pwd" />
   <!-- Login using certificate in file -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="Host" CertificatePath="c:\temp\cert.pfx" />
   <!-- Login using a certificate from certificate store -->
   <Login PortalUrl="https://ws1.mojedatovaschranka.cz" BoxId="a7b8ca" Type="Certificate" FindValue="a1b08795" StoreLocation="CurrentUser" StoreName="My" X509FindType="FindBySerialNumber" />    
   <Database Key="adsf" ConnectionString="Data Source=(local);Initial Catalog=IOInterface.Database;Integrated Security=True;" />
   <ReceivedOutputFolder>d:\temp\Isds\Received</ReceivedOutputFolder>
   <SentOutputFolder>d:\temp\Isds\Sent</SentOutputFolder>
   <ReceivedDeliveryInfoOutputFolder>d:\temp\Isds\ReceivedDeliveryInfo</ReceivedDeliveryInfoOutputFolder>
   <SentDeliveryInfoOutputFolder>d:\temp\Isds\SentDeliveryInfo</SentDeliveryInfoOutputFolder>
   <OutgoingInputFolder>d:\temp\Isds\Outgoing</OutgoingInputFolder>
   <DeliveryInfoDownload>
     <FinalMessageStates>DeliveredAfterLogin,Infected,Read,Undeliverable,Deleted</FinalMessageStates>
     <MaxAgeDays>365</MaxAgeDays>
   </DeliveryInfoDownload>
 </IsdsBox>
</IsdsDownloadTrigger>
PropertiesDescriptionValue / Comment
LoginAuthentication for ISDS box In type attribute, one of the values needs to be specified: UserPassword/Host/CertificateISDS authentication using a certificate
PropertiesDescriptionValue / Comment
CertificatePathPhysical path to certificate file this option takes precedence over the search in store.
FindValueFind-by value in certificate store (e.g. certificate thumbprint)
StoreLocationLocation of certificate store. Default is CurrentUser Available values: CurrentUser, LocalMachine
StoreNameCertificate store name. Default value is My Allowed values: AddressBook,AuthRoot,CertificateAuthority,Disallowed,My,Root,TrustedPeople,TrustedPublisher
X509FindTypeFind-by value type (type of value to search for). Default is FindByThumbprint
ISDS service authentication using basic auth (UserName and Password)
PropertiesDescriptionValue / Comment
UserNameLogin name
PasswordPassword
PortalUrlBase URL of ISDS web services. Can be set to production or testing ISDS environment ().
BoxIDISDS box ID
DatabaseState database configuration. Could be empty. If no connection string is specified, default IOI configuration connection string will be used If no key is specified, boxID is used as key for databaseISDS box database configuration
PropertiesDescriptionValue / Comment
KeyID of ISDS box which should be stored in that database. Empty if database should be default for all unspecified boxes.
ConnectionStringSQL connection string
MessageStateDownloadConfiguration of delivery information states and max message age. Could be empty, default values are: FinalMessageStates = DeliveredAfterLogin,Infected,Read,Undeliverable,Deleted MaxAgeDays = 365Delivery info download configuration
PropertiesDescriptionValue / Comment
FinalMessageStatesFilter for final state of messages. Multiple statuses could be specified. Default value is: DeliveredAfterLogin,Infected,Read,Undeliverable,DeletedMessage status in ISDS
ValueDescription
SentMessage was sent
TimeStampedMessage received a timestamp
InfectedMessage did not passed the antivirus scan
ReceivedByIsdsMessage was delivered to ISDS
DeliveredAfterTimeoutMessage was delivered due to delivery time limit
DeliveredAfterLoginMessage was delivered after recipients login
ReadMessage was read in portal or via API
UndeliverableIt is not possible to deliver the message
DeletedMessage was deleted
MaxAgeDaysIf a message exceeds the specified number of days, it is considered as delivered. Default value is 365.
TempPathFolder for temp files storage (attachments, ZFO, xml data etc) If empty, no files will be stored on disk and data will be transferred via record data If data is stored in temp folder, it is still present in record.
MessageColumnName Column with outgoing message XML data ISDS message data (to be sent)
PropertiesDescriptionValue / Comment
dbIDRecipientRecipient's BOX ID
dmRecipientRefNumberOptional. Recipient's reference number
dmSenderRefNumberOptional. Sender's reference number
dmRecipientIdentOptional. Recipient's identification
dmSenderIdentOptional. Sender's identification
dmToHandsOptional, text description of recipient
dmAnnotationMessage description
dmPersonalDeliveryBoolean, if true message is delivered as "zpráva do vlastních rukou"
dmAllowSubstDeliveryIf true, message has fiction delivery enabled (=delivered after 10 days)
MessageAttachmentsColumnName Column with outgoing message attachments XML data. If full message xml data is available in record (column selected via MessageColumnName property), this will be ignored. ISDS Message file attachment
PropertiesDescriptionValue / Comment
OrdinalIndexSort order of attachment
dmMimeTypeContent mime type
dmFileMetaTypeType of attachment
dmFileGuidNot required
dmUpFileGuidNot required
dmFileDescrAttachment file name
dmFormatNot required
ContentPathURL or physical path of message attachment content
ContentBase64Message attachment content encoded as base64 string
MarkAsDownloaded Optionally mark the message in the IOI database as downloaded/not downloaded. If marked as not downloaded the message will be downloaded and synced again.

Null

Output which does nothing. There is required to be defined some output in each task. If no output is needed by the process, this null output can be used.

Properties Description Value / Comment

File

Stream file output (Single file will be created for all records).

Properties Description Value / Comment
Formatter Formatter to be used for transforming IRecord instance into stream compatible record format.
FileName Output file name
Overwrite True, if file already there, then overwrite it
Append True, if formatter should append to existing file. If file does not exist, then a new one is created

Folder

Stream file output (one file per each record)

Properties Description Value / Comment
Path Folder path. If folder does not exist, an attempt to create it is done within initialization. Output files are named using FileName property and placed relative folder path specified here. To distinguish file names, record replace tokens can be used in FileName or Path properties.
Formatter Formatter to be used for transforming IRecord instance into stream compatible record format.
FileName Output file name
Overwrite True, if file already there, then overwrite it
Append True, if formatter should append to existing file. If file does not exist, then a new one is created

HttpContextFile

Multipart enabled file response. Can return content of single file or multipart response.
Used in combination with HTTP server installed instance. Typical usage is in web service scenario, to return server response from IOI to client.

Properties Description Value / Comment
FileHeaders for each record specific headers might be set. Meant to be used mainly with multipart mode
FileName Output filename (for multipart evaluated for each file)
ContentType Output content type (for multipart will be evaluated per file, overall header will be set to multipart/form-data)
Multipart If true and only one file is specified, response will still be in multipart mode
FileData File content record column name

Memory

Memory output (stores all processed records in memory collection). To be used programmatically by external code.

Properties Description Value / Comment

SBOBusinessObject

This output provides integration to SAP Business one third party software. Uses API integration and allows users to create or update business objects in SBO.

Properties Description Value / Comment
ObjectType DBO business object type name (SAPbobsCOM.BoObjectTypes enum). Eg.: oPurchaseInvoices, oOrders, oDrafts etc
AddAsDraft If true, object is added as draft
AllowUpdate By default true, enables update.
AllowAdd By default true, enables insert.
KeyName Key column name
Properties Object properties configuration. List all SBO properties and specify their values here. SAP Business One business object property configuration
PropertiesDescriptionValue / Comment
SBONameProperty name in SBO (mandatory)
RecNameRecord column name (nonmandatory, if empty it is equal to SBOName)
TypeSBO property typeSBO Property types
ValueDescription
DefaultDefault (single value)
CollectionCollection of items
AttachmentFile attachment
UserFieldLink to a user
CurrentDateCurrent DateTime value
SkipSkip this property
PropertiesChild property configuration. If property consists of multiple sub properties, specify them here.

SharePointCsom

This output creates/updates items in SharePoint. Each record is mapped to one SharePoint item. Uses CSOM api to connect to SharePoint (can be used for OnPrem and also Online)

Properties Description Value / Comment
FileDataColumn For document libraries, column containing file binary data / or readable stream instance. If specified, takes precedence before filenames.
FileNameColumn For document libraries, column containing file path to upload / or file name for Stream/Binary data input.
FilePath For document libraries, path to file to be uploaded.
AllowUpdate By default true, enables update.
AllowOverwriteFile By default false, enables file to be overwritten.
AllowAdd By default true, enables insert.
AllowAddMultiple If true, checks filename collision and if file name collides, is handled by adding number
Query Query used to get item to be updated
ItemId Item Id to be updated
OutputFields After processing field, set specified column values to record data Sharepoint column
PropertiesDescriptionValue / Comment
InternalNameField internal name
OutputNameField internal name
UpdateFields Specify fields to be updated. If empty, all fields found in record will be updated. Sharepoint column
PropertiesDescriptionValue / Comment
InternalNameField internal name
OutputNameField internal name
RunWorkflow Start WFE workflow after successfull action
RemoveInvalidValues If true, validation is executed on records, and if value is invalid, value is removed from record. Disabled by default.
NotFoundIsError If set to true, for not found update item an error is thrown.
SkipInvalidRecord If true, validation is executed on records and if record is not valid, it is not imported at all. Disabled by default.
EnsureList Structure generator XML In case the list cannot be found, structure generator XML from this property is executed.
ContentType Specify content type (optional) Can be specified using content type id or name
EnsureListResultVariable If ensure list is executed, URL of list will be stored in variable named by value of this property
EnsureListIdResultVariable If ensure list is executed, URL of list will be stored in variable named by value of this property
PostEnsureList Processors to be executed after Structure Generator completed
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

SharePointSsom

This output creates/updates items in SharePoint. Each record is mapped to one SharePoint item. Uses SSOM (Server Object Model) api to connect to SharePoint (can be used only for OnPrem and if SharePoint is on the same server as IOI)
The CSOM variant of SharePoint output is preferred way of using SharePoint outputs.

Properties Description Value / Comment
WebUrl Web URL to connect to and where the list is located.
List Name of destination SharePoint list

SqlCommand

Execute SQL query per each record in batch

Properties Description Value / Comment
CommandText SQL command to be executed. Each column value will be available as parameter (an SQL variable with name equal to column name)
ConnectionString Connection string for SQL server database

SqlProcedure

Execute SQL server stored procedure for each record in batch. Record columns will be mapped by matching name to procedure parameters

Properties Description Value / Comment
Name SQL server procedure name
Timeout Execution timeout in seconds. Default value is 30
ConnectionString Connection string for SQL server database

Formatters

Xml

Simple XML output formatter. Will emit one XML element per record. If columns are not configured in formatter, all record data will be in output.

Properties Description Value / Comment
Columns columns configuration (if configured, only columns specified will be in output) Column configuration options
PropertiesDescriptionValue / Comment
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name

Binary

Outputs data as binary content
If column content is byte array, it is written directly to output stream
If column content is stream, it is copied to output stream

Properties Description Value / Comment
ColumnName Data column

Csv

Format data into text delimited format (CSV).

Properties Description Value / Comment
Columns CSV columns list Column configuration options
PropertiesDescriptionValue / Comment
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name
FirstRowIsHeader If true, first row is used as columns header and not considered as data Values are taken to be column names
Separator Separator for CSV columns
LineEnd Line end character(s), used as record separator. Default values is default OS environment's newline constant.

PlainText

Write one column's content into output stream as string content

Properties Description Value / Comment
ColumnName Source data colum, data in this column will be written into output stream. Default value is "Data".

Xslt

Generate output using XSLT transformation. It can either be the case, that data in first column is XML, then this content is used as source data for transformation.
Otherwise, XML document is generated using all data in record and then XSLT transformation is applied.

Properties Description Value / Comment
Columns columns list (if configured, only columns specified will be in output) Column configuration options
PropertiesDescriptionValue / Comment
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name
Xslt XSLT used for output formatting
XsltFile XSLT file path (if external sheet is to be loaded)

Task Processors

CodeProcessor

Custom C# code to be executed. Code is compiled and executed per each record. There are these methods available:
- GetVariable(string) - get variable value
- SetVariable(string, string) - set variable value
- WriteLog(string) - write log entry
- NewRecord() - create new output item
- SetValue(string,object) - set record value
- GetValue(string) - get record value

Properties Description Value / Comment
Code C# code to be executed
Data Input data for evaluate code
Output Output variable name.

CsomCodeProcessor

Custom C# code to be executed. Code is compiled and executed per each record. SharePoint CSOM context is available in "ctx" variable. There are these methods available:
- GetVariable(string) - get variable value
- SetVariable(string, string) - set variable value
- WriteLog(string) - write log entry
- NewRecord() - create new output item
- SetValue(string,object) - set record value
- GetValue(string) - get record value

Properties Description Value / Comment
Code C# code to be executed
Data Input data for evaluate code Column configuration model class
PropertiesDescriptionValue / Comment
KeyKey
ValueValue
Output Output variable name.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

DeleteFolderProcessor

Delete folder and its content from disk

Properties Description Value / Comment
SkipIfNotExists If folder does not exist, skip processing and do not throw error. Default is true.
Recursive If directory is not empty, delete its content. Default true.
Path Path to be deleted

ExtractZipProcessor

Extract ZIP archive into a folder

Properties Description Value / Comment
Path Path to ZIP file
Target Folder where the ZIP should be extracted.

IfProcessor

Conditional processor. Expression is evaluated (expression uses JavaScript syntax) and if true is result of expression evaluation, processors in Success list are executed. Otherwise Else list processors are executed.

Properties Description Value / Comment
Success Processors to be executed, if "if" condition is equal to true
Else Processors to be executed, if "if" condition is equal to false

MoveDirectoryProcessor

Move directory to different location

Properties Description Value / Comment
MergeContents If true, content of moved directory and destination directory (if exists) are merged. Default is false.
OverwriteContents If merge is enabled and a file exists in both directories, overwrite destination with source? Default is true.
SkipIfNotExists If true, no error is thrown id From does not exist. Default value is false.
From Path to processed directory
To Path target directory

CopyFileProcessor

Copy file to another location

Properties Description Value / Comment
SkipIfNotExists If file does not exist, do not throw error. Default is false.
From Path to move/copy file from (source path)
To Path to move/copy file to (destination path)

GetCacheProcessor

Get cache value processor

Properties Description Value / Comment
Key Key of the cached value.
OutputVariable Output variable name, where the result is stored.

SetCacheProcessor

Set cache value processor

Properties Description Value / Comment
Key Key of the cache value.
Expiration Expiration of the cached value.
Value The value to be set.

OAuth2TokenProcessor

OAuth2 token processor

Properties Description Value / Comment
TokenName Key of the token for cache purposes.
AccessTokenUrl The endpoint for authentication server.
ClientID The client identifier issued to the client during Application registration process.
ClientSecret The client secret issued to the client during Application registration process.
Scope The scope of the access request. It may have multiple space-delimited values.
OutputVariable Variable name to store authorization token.

ReadFileProcessor

Read file content

Properties Description Value / Comment
VariableName Content of file
SkipIfNotExists If file does not exist, skip processing and do not throw error
Path Input file path
VariableName Target variable to store contents of the file
Mode File content mode
Encoding Encoding for text file File value type
ValueDescription
Base64Content encoded to Base64 string
TextPlain text

SendEmailProcessor

Send email task processor

Properties Description Value / Comment
Server SMTP server IP address or hostname
Port SMTP server port. Optional. If empty default port is used.
UseSSL Use SSL encryption for connection to mail server. Default is false!
UseDefaultCredentials If true, IOI application account is used for authentication to the SMTP server. Default is false
User User for SMTP authentication (BASIC)
Password Password for SMTP authentication (BASIC) If user name is empty, password is ignored and no credentials are passed to the SMTP client.
Body Email body. Can contain HTML, if enabled in IsBodyHtml
IsBodyHtml Body can contain HTML, if true. Default is false.
Subject Email subject
To Recipient email address. If multiple, use semicolon as separator.
From Email from address
Cc Email copy recipient.
Bcc Email hidden copy. If multiple, use semicolon as separator.
ReplyTo Mail reply address. If multiple, use semicolon as separator.
Attachments Email attachments could be sent via this property. An XML data containing references to attachment files needs to be passed into this property. Attachment XML item properties are listed in table in value column. An example configuration:
<Attachments>
  <Attachment>
    <FileName>Invoice.pdf</FileName>
    <MimeType>application/pdf</MimeType>
    <!--Read file path from record-->
    <ContentPath>{rec:FilePath}</ContentPath>
  </Attachment>
</Attachments>
Email attachment item
PropertiesDescriptionValue / Comment
FileNameFilename to be used for email attachment (this is how the file name will look like for the recipient.)
MimeTypeFile mime type. Determines the type for recipient.
ContentPathPhysical file path or HTTP(s) URL where the file content will be read
ContentColumnRecord column name where the file content will be read

SwitchProcessor

Conditional processor, evaluates expression and processors in corresponding case are executed

Properties Description Value / Comment
Cases List of case statements Conditional command case
PropertiesDescriptionValue / Comment
ActionsList of processors to be executed when the case condition is evaluated to true
Default Processors to be executed, when all "case" statements evaluate to false

WaitProcessor

Pause processing for specified timespan

Properties Description Value / Comment
Milliseconds Wait interval in milliseconds

WebRequestProcessor

Http(s) web request processor. Execute http request and store result in variable

Properties Description Value / Comment
Url Web request URL
Method Request method - if empty default is GET
UseDefaultCredentials For digest authentization, set true
Body Request body
BodyType Request body type. Default is String. Web request body part types
ValueDescription
Stringpart data is string content
Urlpart data is content accessible via web request
StreamStream instance will be part of record
Params List of web request parameters Web request parameter value
PropertiesDescriptionValue / Comment
NameName of parameter (header)
ValueContent
Headers List of web request headers Web request parameter value
PropertiesDescriptionValue / Comment
NameName of parameter (header)
ValueContent
AllowedResponseCodes List of web request allowed response codes HTTP Response code
PropertiesDescriptionValue / Comment
CodeHTTP status Code
AnyResponseCodeAllowed True if no response code should throw processing exception
Output Output variable name.
Outputs List of output variables.
BodyParts List of body parts Multipart body part
PropertiesDescriptionValue / Comment
TypeBody part type
ContentBody part content (if type is url, then content is URL etc)
HeadersPart headers
Boundary Multipart request boundary
ResponseEncoding Response mode
TimeoutSeconds Optional timeout in seconds

WriteFileProcessor

Write content into a file

Properties Description Value / Comment
Contents
Content String content to be written
Path Output file name
Overwrite True, if file already then overwrite it
Append True, if formatter appends to existing file. If file does not exist, then it is created
Encoding File content encoding

SetVariableProcessor

Set variable value

Properties Description Value / Comment
Value Variable value
Variable Engine variable name
Name Engine variable name (can be specified in Name or Variable property - they are equal)

SharePointCsomDeleteProcessor

Delete item/document in SharePoint using CSOM

Properties Description Value / Comment
Data List of items to be deleted
DataIdField Data field (or index) with itemid to be deleted
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

ExecuteSqlProcessor

Execute SQL command in batch pre/post processing

Properties Description Value / Comment
Mode Command result processing mode SQL command execution types
ValueDescription
NonQueryno output is collected, command is executed without readings
Scalarread single value and store it in variable
TableOpen row set and retrieve it as table
Output Output variable name. In case of using Scalar / Table mode, result is stored in this variable.
Outputs Output variables. In case of using Scalar / Table mode, result is stored in these variables. Output SQL data to variable (<Output Type="Variable" />)
PropertiesDescriptionValue / Comment
VariableVariable name
AsArrayTrue if variable is array
ArrayResultModeIf variable is array, specify the variable modeSQL variable result output
ValueDescription
CONCATConcat values (without any delimiter)
JSONBuild json object
SEPARATED_COMMAConcat values using coma as separator
NameItem name
IndexSort order (index)
InitialValueDefault value
Output SQL result into record (<Output Type="Record" />)
PropertiesDescriptionValue / Comment
ColumnOptionally, column can be specified with full column config. Overrides ColumnName property
ColumnNameColumn name reference
NameItem name
IndexSort order (index)
InitialValueDefault value
CommandText Executed query SQL command. For passing values to SQL commands, preffered way is SQL parameters. Parameter as variable can be passed to command using CommandParameters configuration property. This way of parameter passing handles correctly encoding of strings and also incorporates .NET built in SQL injection protection.
If for some reason variable parameters are not used and string parameters are passed as replace token in SQL string constant, it is recomended to use N prefix in SQL string constant to use nvarchar type to avoid character encoding issues.
An example configuration for constant string parameters:
<ExecuteSql> 
    <CommandText>update [SomeTable] set [StringColumn] = N'{var:MY_STRING_VARIABLE}' where [Id] = {var:Id} </CommandText>
</ExecuteSql> 
CommandTimeout Default 30 seconds
MaxRetryAttempts Default 5 retries
CommandParameters List of SQL command parameters SQL command parameter
PropertiesDescriptionValue / Comment
NameSQL command parameter name
ValueSQL command parameter value
ConnectionString Optional connection string. If empty, default application connection string is used.

MoveFileProcessor

Move file to another location

Properties Description Value / Comment
SkipIfNotExists If file does not exist, do not throw error. Default is false.
From Path to move/copy file from (source path)
To Path to move/copy file to (destination path)

WriteLogProcessor

Write message to system log

Properties Description Value / Comment
Value Message to be written to log
Message Alternative to Value property
LogLevel Log message level ("Info" by default) Log levels
ValueDescription
TraceTrace
DebugDebug
InfoInfo
WarnWarn
ErrorError
FatalFatal

Record Processors

CodeProcessor

Custom C# code to be executed. Code is compiled and executed. There are these methods available:
- GetVariable(string) - get variable value
- SetVariable(string, string) - set variable value
- WriteLog(string) - write log entry
- NewRecord() - create new output item
- SetValue(string,object) - set record value
- GetValue(string) - get record value

Properties Description Value / Comment
Code C# code to be executed
Data Input data for evaluate code
Output Output variable name.

ConvertBase64ToBytesProcessor

Converts Base64 string into byte array

Properties Description Value / Comment
ColumnName Column where data to be converted are stored. It is also destination.
OutputColumnName Variable where data to be converted are stored. It is also destination.
VariableName Variable where data to be converted are stored. It is also destination.
OutputVariableName If empty, output is written to source variable

ConvertIsdocToPdfProcessor

Create PDF from ISDOC invoice data

Properties Description Value / Comment
ColumnName ISDOC data
OutputPath Output PDF file path
WatermarkFilePath If watermark is required to be added, path to file with wattermark
Lang PDF Langugage

ConvertStringToBase64Processor

Get bytes from string using UTF8 encoding and convert it to Base64 string

Properties Description Value / Comment
ColumnName Column where data to be converted are stored. It is also destination.
OutputColumnName Variable where data to be converted are stored. It is also destination.
VariableName Variable where data to be converted are stored. It is also destination.
OutputVariableName If empty, output is written to source variable

CsomUploadFileProcessor

Downloads a file from SharePoint.

Properties Description Value / Comment
ServerRelativeUrl Server relative URL of a file which is to be uploaded.
FileContentColumn File content will be uploaded from record. String value of this property will be used for record column name.
FilePath File content will be uploaded from a file. String value of this property will be used as file path from which to get the data.
AllowOverwriteFile By default false, enables file to be overwritten.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

CsomDownloadFileProcessor

Downloads a file from SharePoint.

Properties Description Value / Comment
ServerRelativeUrl Server relative URL to a file which is to be downloaded.
FileContentColumn File content will be loaded into record. Needs SharePoint item retrieved to be a document. String value of this property will be used for record column name.
FilePath File content will be loaded and saved as file. Needs SharePoint item retrieved to be a document. String value of this property will be used as file path to store the data.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

CsomCodeProcessor

Custom C# code to be executed. Code is compiled and executed per each record. SharePoint CSOM context is available in "ctx" variable. There are these methods available:
- GetVariable(string) - get variable value
- SetVariable(string, string) - set variable value
- WriteLog(string) - write log entry
- NewRecord() - create new output item
- SetValue(string,object) - set record value
- GetValue(string) - get record value

Properties Description Value / Comment
Code C# code to be executed
Data Input data for evaluate code Column configuration model class
PropertiesDescriptionValue / Comment
KeyKey
ValueValue
Output Output variable name.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

CsomCopyItemProcessor

Copy SharePoint item using CSOM

Properties Description Value / Comment
ItemId Updated item id
Fields List of fields to be updated
ExcludeFields Fields to be excluded Sharepoint column
PropertiesDescriptionValue / Comment
InternalNameField internal name
OutputNameField internal name
NewTitle New item title
OutputFields After processing field, set specified column values to record data
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

DeleteFileProcessor

Delete file on disk

Properties Description Value / Comment
SkipIfNotExists If file does not exist, skip processing and do not throw error
Path Path to be deleted

DeleteFolderProcessor

Delete folder from disk

Properties Description Value / Comment
SkipIfNotExists If folder does not exist, skip processing and do not throw error. Default is true.
Recursive If directory is not empty, delete its content. Default true.
Path Path to be deleted

ExecuteWorkflowActionsProcessor

Connect to a WFE workflow instance and execute actions

Properties Description Value / Comment
WfInstanceId GUID, workflow instance where actions will be executed
ActionData Data of workflow actions. If multiple, element needs to be in root
IsOnline True if site and workflow are online
Password for OnPrem, if different then current identity should be used
UserName for OnPrem, if different then current identity should be used
WebUrl SharePoint web URL

GetCacheProcessor

Get cache processor

Properties Description Value / Comment
Key Key of the cached value.
OutputVariable Output variable name, where the result is stored.

SetCacheProcessor

Set cache processor

Properties Description Value / Comment
Key Key of the cache value.
Expiration Expiration of the cached value.
Value The value to be set.

OAuth2TokenProcessor

OAuth2 token processor

Properties Description Value / Comment
TokenName Key of the token for cache purposes.
AccessTokenUrl The endpoint for authentication server.
ClientID The client identifier issued to the client during Application registration process.
ClientSecret The client secret issued to the client during Application registration process.
Scope The scope of the access request. It may have multiple space-delimited values.
OutputVariable Variable name to store authorization token.

XmlValidateProcessor

Regular expression validator. If condition is not satisfied, record exception is thrown.

Properties Description Value / Comment
Xsd XSD used for XML validation
XsdFile XSD file path (if external file is to be loaded)
ColumnName Name of record column to be validated
Value Directly specified value to be validated. This overrides ColumnName attribute, if both are specified.

SwitchProcessor

Conditional processor, evaluates expression and processors in corresponding case are executed

Properties Description Value / Comment
Cases List of case statements
Default Processors to be executed, when all "case" statements evaluate to false

IsdsExtractZfoProcessor

Extract message data from ZFO file

Properties Description Value / Comment
IsSent true if message is sent message. Default false.
ZfoFileName FileName of ZFO file
Path Path where ZFO file is located and message will be extracted.

ExtractZipProcessor

Extract ZIP file to a folder

Properties Description Value / Comment
Path Path to ZIP file
Target Folder where the ZIP should be extracted.

ForeachProcessor

Iterate thru items and execute tasks per each item.
Input can be XML, JSON o delimited data. Query is specific by input
- For XML, query is in XPATH
- For JSON, query is in JSONPath
- For delimited data it is delimiter

Properties Description Value / Comment
Data Input data
DataColumn Record column containing data
DataType Type of data to be expected as input
Query Query specific by content - For XML, query is in XPATH - For JSON, query is in JSONPath - For delimited data it is delimiter
OrderBy Order By query specific by content - For XML, query is in XPATH - For JSON, query is JSONPath - For delimited data it not applied - non empty string means ordering by value
OrderDataType Order by data type
ItemVariable Name of variable in which item is stored
IndexVariable Name of variable for index storing
IndexBeforeOrderVariable Name of variable for index before sorting storing
Reverse Flag indicating reverse loop processing
Actions Actions to be executed for each item

IfProcessor

Conditional code processor. Expression is evaluated and for true result, Success processors are executed. Otherwise, Else processors are executed.

Properties Description Value / Comment
Success Processors to be executed, if "if" condition is equal to true
Else Processors to be executed, if "if" condition is equal to false

ErrorProcessor

Skip the current record processing (throws an error)

Properties Description Value / Comment
Message Error message

IsdsSendMessageProcessor

Send new ISDS message

Properties Description Value / Comment
Login Authentication for ISDS box In type attribute, one of the values needs to be specified: UserPassword/Host/Certificate
MessageEnvelope Message envelope data
Attachments List of attachment files

CopyDirectoryProcessor

Copy directory to another location

Properties Description Value / Comment
Overwrite Overwrite existing files

MoveDirectoryProcessor

Move directory to another location

Properties Description Value / Comment
MergeContents If true, content of moved directory and destination directory (if exists) are merged. Default is false.
OverwriteContents If merge is enabled and a file exists in both directories, overwrite destination with source? Default is true.
SkipIfNotExists If true, no error is thrown id From does not exist. Default value is false.
From Path to processed directory
To Path target directory

QueryXMLProcessor

Execute XPath query and set value to variable

Properties Description Value / Comment
Data Input data
DataColumn Record column containing data
XPath XPath query
Output Variable name to store query output
OutputColumnName If to be outputted to record, the column name

RunWorkflowProcessor

Start Workflow Engine (WFE) workflow for SharePoint item

Properties Description Value / Comment
ItemId Item ID of item to start workflow on
Workflow Start WFE workflow internal name
Async If true, processor will not wait for web service response.
Timeout Timeout in seconds for web service call
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

SendEmailProcessor

Send email using SMTP client

Properties Description Value / Comment
Server SMTP server IP address or hostname
Port SMTP server port. Optional. If empty default port is used.
UseSSL Use SSL encryption for connection to mail server. Default is false!
UseDefaultCredentials If true, IOI application account is used for authentication to the SMTP server. Default is false
User User for SMTP authentication (BASIC)
Password Password for SMTP authentication (BASIC) If user name is empty, password is ignored and no credentials are passed to the SMTP client.
Body Email body. Can contain HTML, if enabled in IsBodyHtml
IsBodyHtml Body can contain HTML, if true. Default is false.
Subject Email subject
To Recipient email address. If multiple, use semicolon as separator.
From Email from address
Cc Email copy recipient.
Bcc Email hidden copy. If multiple, use semicolon as separator.
ReplyTo Mail reply address. If multiple, use semicolon as separator.
Attachments Email attachments could be sent via this property. An XML data containing references to attachment files needs to be passed into this property. Attachment XML item properties are listed in table in value column. An example configuration:
<Attachments>
  <Attachment>
    <FileName>Invoice.pdf</FileName>
    <MimeType>application/pdf</MimeType>
    <!--Read file path from record-->
    <ContentPath>{rec:FilePath}</ContentPath>
  </Attachment>
</Attachments>
Email attachment item
PropertiesDescriptionValue / Comment
FileNameFilename to be used for email attachment (this is how the file name will look like for the recipient.)
MimeTypeFile mime type. Determines the type for recipient.
ContentPathPhysical file path or HTTP(s) URL where the file content will be read
ContentColumnRecord column name where the file content will be read

SetFormatProcessor

Set record column format. If column not found, nothing happens.

Properties Description Value / Comment
ColumnName Column name
Format Format to be set.

TiSaTableProcessor

TreeINFO advanced table value processor (can add rows, delete rows or update cell values)

Properties Description Value / Comment
Variable Variable name
ColumnName Column name
OutputVariable Variable name
OutputColumnName Column name
AddRows List of cell values (rows) to be added TreeINFO Table row
PropertiesDescriptionValue / Comment
RowRow dataTreeINFO table cell value
PropertiesDescriptionValue / Comment
ValueCell value
DeleteRowIndexes Row indexes to delete
EditCells List of cells to edit TreeINFO table cell with value
PropertiesDescriptionValue / Comment
ValueCell value
RowIndexRow index
ColumnIndexColumn index
GetCellValue Cell value to return

StopWorkflowProcessor

Stop Sabris Workflow Engine (WFE) workflow

Properties Description Value / Comment
ItemId Item ID of item to start workflow on
Workflow Start WFE workflow internal name
Async If true, processor will not wait for web service response.
Timeout Timeout in seconds for web service call
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

TiSaReferenceProcessor

Handle TiSa reference field value

Properties Description Value / Comment
ColumnName Column name for storage of ref AT data
Query CAML query
Scope Sharepoint query scope
Fields Reference table additional fields
TitleField If not empty, title reference table title field
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

WaitProcessor

Pause processing for specified timespan

Properties Description Value / Comment
Milliseconds Wait interval in milliseconds

WriteLogProcessor

Write message to log

Properties Description Value / Comment
Value Message to be written to log
Message Alternative to Value property
LogLevel Log message level ("Info" by default)

PdfSignatureInfoProcessor

Read electronic signature information from a PDF file

Properties Description Value / Comment
FilePath PDF File path
SignatureCountVariable Set count of electronic signatures in pdf file to a variable

Serialize

Serialize record into one column value.

Properties Description Value / Comment
ColumnName Output column
Columns Columns to be included in output. If empty, all columns will be used
SerializeType Type of serialization. XML is default Record serialization modes
ValueDescription
XMLConvert all record data to xml

SkipProcessor

Skip the current record processing

Properties Description Value / Comment

ConvertJsonToXmlProcessor

Convert JSON data to XML

Properties Description Value / Comment
ColumnName Column where data to be converted are stored. It is also destination.
OutputColumnName Variable where data to be converted are stored. It is also destination.
VariableName Variable where data to be converted are stored. It is also destination.
OutputVariableName If empty, output is written to source variable

ConvertXmlToJsonProcessor

Convert XML data into JSON object value

Properties Description Value / Comment
FormatAsTreeInfoAT If true, json data is formatted as TreeINFO advanced table. Default false
ColumnName Column where data to be converted are stored. It is also destination.
OutputColumnName Variable where data to be converted are stored. It is also destination.
VariableName Variable where data to be converted are stored. It is also destination.
OutputVariableName If empty, output is written to source variable

CsomUpdateItemProcessor

Update SharePoint item using CSOM

Properties Description Value / Comment
ItemId Updated item id
Fields Fields to be updated
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

ExecuteSqlProcessor

Execute SQL command

Properties Description Value / Comment
Mode Command result processing mode SQL command execution types
ValueDescription
NonQueryno output is collected, command is executed without readings
Scalarread single value and store it in variable
TableOpen row set and retrieve it as table
Output Output variable name. In case of using Scalar / Table mode, result is stored in this variable.
Outputs Output variables. In case of using Scalar / Table mode, result is stored in these variables. Output SQL data to variable (<Output Type="Variable" />)
PropertiesDescriptionValue / Comment
VariableVariable name
AsArrayTrue if variable is array
ArrayResultModeIf variable is array, specify the variable modeSQL variable result output
ValueDescription
CONCATConcat values (without any delimiter)
JSONBuild json object
SEPARATED_COMMAConcat values using coma as separator
NameItem name
IndexSort order (index)
InitialValueDefault value
Output SQL result into record (<Output Type="Record" />)
PropertiesDescriptionValue / Comment
ColumnOptionally, column can be specified with full column config. Overrides ColumnName property
ColumnNameColumn name reference
NameItem name
IndexSort order (index)
InitialValueDefault value
CommandText Executed query SQL command. For passing values to SQL commands, preffered way is SQL parameters. Parameter as variable can be passed to command using CommandParameters configuration property. This way of parameter passing handles correctly encoding of strings and also incorporates .NET built in SQL injection protection.
If for some reason variable parameters are not used and string parameters are passed as replace token in SQL string constant, it is recomended to use N prefix in SQL string constant to use nvarchar type to avoid character encoding issues.
An example configuration for constant string parameters:
<ExecuteSql> 
    <CommandText>update [SomeTable] set [StringColumn] = N'{var:MY_STRING_VARIABLE}' where [Id] = {var:Id} </CommandText>
</ExecuteSql> 
CommandTimeout Default 30 seconds
MaxRetryAttempts Default 5 retries
CommandParameters List of SQL command parameters SQL command parameter
PropertiesDescriptionValue / Comment
NameSQL command parameter name
ValueSQL command parameter value
ConnectionString Optional connection string. If empty, default application connection string is used.

ExecuteXsltProcessor

Execute XSLT Transformation
For extension functions, add attribute xmlns:ioi="urn:ioi" to root tag

Properties Description Value / Comment
ColumnName Input XML data column for transformation
VariableName Input XML data variable for transformation
Xslt XSLT used for output formatting
XsltFile XSLT file path (if external sheet is to be loaded)
OmitXmlDeclaration Default false, XSLT transformation outputs XML declaration. If set to true, no declaration is written.
Indent Default true, output XML is indented
LogContent Extended content logging
ConformanceLevel Conformance level - document of fragment

CopyFileProcessor

Copy file to another location

Properties Description Value / Comment
SkipIfNotExists If file does not exist, do not throw error. Default is false.
From Path to move/copy file from (source path)
To Path to move/copy file to (destination path)

MoveFileProcessor

Move file to another location

Properties Description Value / Comment
SkipIfNotExists If file does not exist, do not throw error. Default is false.
From Path to move/copy file from (source path)
To Path to move/copy file to (destination path)

QueryADProcessor

Execute query in AD and set results to record

Properties Description Value / Comment
Query LDAP query Example to find user by login name: (&(objectCategory=person)(objectClass=user)(sAMAccountName=**login**))
SearchRoot An optional value indicating the node in the Active Directory Domain Services hierarchy where the search starts. Example: LDAP://DC=int,DC=example
Properties Properties to load from AD. Each retrieved property value will be set to record column. Column configuration options
PropertiesDescriptionValue / Comment
NameColumn name
TypeColumn data type. Default is string.
FormatInput/output format of value.For date type values, it is datetime format string: yyyyMMddTHHmmss
OutputFormatReplace Format property for Output if Output and Input should be different
SkipIfEmptyInRecordSkip if source value is empty
SkipIfEmptyInItemDo not write value if destination is empty (update only)
SkipIfNotEmptyInItemDo not write value if there is already some value in target (fills in just once)
InternalNameWhen reading from input, internal name can be different from column name. Also in output, name could differ from internal name

QuerySPProcessor

Execute CAML query in SharePoint using CSOM service.
CAML queries documentation: https://learn.microsoft.com/en-us/sharepoint/dev/schema/query-schema

Properties Description Value / Comment
Query SharePoint CAML query
Scope Sharepoint query scope
OutputFields After processing field, set specified column values to record data
FileContentColumn If not empty, file content will be loaded into record. Needs SharePoint item retrieved to be a document. String value of this property will be used for record column name.
List List url or name. This is primary identification of list which should be used by activity.
ListTitle List title. If list is not found by value of List property, lookup by list title using value in this property is used. If this property has empty value, lookup by title is executed using List property value. Note: This property is kept for backward compatibility reasons and will be deprecated in future.
WebUrl SharePoint Web url. Activity connects to SharePoint web which is specified by this property.
IsOnline Set this to true, if web is online Sharepoint (O365)
User Login user name (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
Password Login password (if using basic authentication). Otherwise empty. NOTE: For security reasons, basic authentication should be avoided where possible.
ClientId Application client ID NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
ClientSecret Application authentication client secret NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint
UseAppCred Should be set to true, if application authentication is used NOTE: Application authentication or integrated authentication is preferred way of authenticating to SharePoint

ReadFileProcessor

Read file content

Properties Description Value / Comment
ColumnName Content of file
SkipIfNotExists If file does not exist, skip processing and do not throw error
Path Input file path
VariableName Target variable to store contents of the file
Mode File content mode
Encoding Encoding for text file File value type
ValueDescription
Base64Content encoded to Base64 string
TextPlain text

RegexValidateProcessor

Regular expression validator. If condition is not satisfied, record exception is thrown.

Properties Description Value / Comment
Regex Validation regular expression
ColumnName Name of record column to be validated
Value Directly specified value to be validated. This overrides ColumnName attribute, if both are specified.

SetValueProcessor

Set record column value. If column not found, it is added.

Properties Description Value / Comment
ColumnName Column name
Value New column value

SetVariableProcessor

Ser IOI engine runtime variable value

Properties Description Value / Comment
Value Variable value
Variable Engine variable name
Name Engine variable name (alternative property mapped to "Variable")

PdfSignProcessor

Add electronic signature to a PDF file

Properties Description Value / Comment
FilePath PDF File path
CertThumbprint Certificate thumbprint
SignPosition Signature position Signature position
ValueDescription
AutoAutomatic position
Manualmanual relative to bottom left corner
ManualTopmanual offset relative to top left corner
ManualRightmanual relative to bottom right corner
ManualTopRightmanual offset relative to top right corner
OffsetX Signature X Offset
OffsetY Signature Y Offset
PreventDoubleSign If true, processor checks if file was already signed. If yes, signing is skipped.
Visibility Visibility of signature Visibility of signature
ValueDescription
Hiddensignature not visible
FirstPageShow signature on first page
AllPagesShow signature on all pages
Background Signature background
Width Signature width
Height Signature height
CustomBackgroundFilePath Signature custom background file path
CustomText Signature custom text
ReadOnly Signature ReadOnly flag. Default is false.
HideDefaultText Hide default text. Default is false.
HideCustomText Hide custom text. Default is false.
AllowPrint Allow printing of signature. Default is false.
FontSizeScale Text font size scale. Default is 1

WebRequestProcessor

Http(s) web request processor. Execute http request and store result in variable or record

Properties Description Value / Comment
Url Web request URL
Method Request method - if empty default is GET
UseDefaultCredentials For digest authentization, set true
Body Request body
BodyType Request body type. Default is String. Web request body part types
ValueDescription
Stringpart data is string content
Urlpart data is content accessible via web request
StreamStream instance will be part of record
Params List of web request parameters Web request parameter value
PropertiesDescriptionValue / Comment
NameName of parameter (header)
ValueContent
Headers List of web request headers Web request parameter value
PropertiesDescriptionValue / Comment
NameName of parameter (header)
ValueContent
AllowedResponseCodes List of web request allowed response codes HTTP Response code
PropertiesDescriptionValue / Comment
CodeHTTP status Code
AnyResponseCodeAllowed True if no response code should throw processing exception
Output Output variable name.
Outputs List of output variables.
BodyParts List of body parts Multipart body part
PropertiesDescriptionValue / Comment
TypeBody part type
ContentBody part content (if type is url, then content is URL etc)
HeadersPart headers
Boundary Multipart request boundary
ResponseEncoding Response mode
TimeoutSeconds Optional timeout in seconds

WriteFileProcessor

Write to file

Properties Description Value / Comment
ColumnName Content to be written to file
Path Output file path
FileName Alias to Path property
Contents Alias to Content property
Content Content to be written to file (if column name is empty)
Encoding Content to be written to file

Support

If this documentation doesn't answer your questions, please send us an email at treeinfo@aricoma.com.


Changelog

See the changes, fixes, improvements and updates released in the latest versions.

Build (18.04.2024)
  • Added SetCache Getcache processors - Added SetCache and GetCache processors leading to enhanced data processing
  • Updated OAuth2.0 AuthenticationManager - Updated the OAuth2.0 AuthenticationManager to support the processing of double BASE64 encoding.
  • Updated UserMulti field support - Updated IOI processes to support the UserMulti field
  • Updated Foreach Json support - Introduced Foreach JSON support to streamline processing tasks, reducing the need for multiple conversions when handling Foreach JSON files.
  • Updated VODZ support - Updated IOI to be able to handle VODZ file types.
  • Fixed IndexOutOfRangeException error due to version conflict fix - Resolved a version conflict issue that resulted in an IndexOutOfRangeException error. The RunningTasks library has been substituted with ConcurrenceDictionary.
Build 2.2.2310.09001 (08.11.2023)
  • Added BaseWaitProcessor Added BaseWaitProcessor that is inherited by WaitRecordProcessor and WaitBarchProcessor so that 'Wait' can be used for example in PostProcess

Build 2.2.2305.30001 (30.5.2023)
  • Added PDF generation in german language Added the option to generate pdf files in german language

Build 2.2.2305.19001 (19.5.2023)
  • Fixed Automerge bugfix - Fixed an issue that caused conflicts to be solved incorrectly.

Build 2.2.2305.18001 (18.5.2023)
  • Fixed Refresh bug - Fixed an issue that caused list refresh to work incorrectly

Build 2.2.2305.12001 (12.5.2023)
  • Updated Obelisk integration update - Updated integration to Obelisk archivation service

Build 2.2.2304.18001 (18.4.2023)
  • Fixed CsomUpdateItem conflict bug - Fixed an issue that caused version conflict

Build 2.2.2301.11001 (11.1.2023)
  • Fixed CsomSharePointOutput add and update bug - Fixed an issue related to CsomSharePointOutput, if add and update function were both enabled, file creation was not working.
  • Fixed Logs - Added logging of HTTP output code for clearer issue indication.
  • Fixed ISDS 1233 error - Fixed error message to ISDS error 1233 (inappropriate dmType value).
  • Fixed Logs - Added logging of HTTP output code for clearer issue indication.
Build 2.2.2212.16001 (16.12.2022)
  • Updated Timer trigger - Timer trigger failled to continue operating after an SQL server was down for a certain amount of time. Timer trigger now keeps working when SQL server is available again after outage without the need to restart IOI service.

Build 2.2.2212.01001 (1.12.2022)
  • Added Logs - Added logging to SharePointCsomOutput for simpler issue solving.

Build 2.2.2211.24001 (24.11.2022)
  • Updated WebRequest processor - WebRequest processor was not clearing the output variables before execution. This caused a problem if request failed, values from previous execution were kept in variables. This behavior has been fixed by seting output variables to empty values before web request execution.

Build 2.2.2211.10001 (10.11.2022)
  • Fixed Serialization - Fixed an issue that caused an error if AddRows in TiSaTableProceessor was serialized.

Build 2.2.2209.23001 (23.9.2022)
  • Added MS Graph api - Added MS Graph api. Can be used in MailPull trigger.
  • Added WinService restart - Fixed an issue that caused running tasks not to be completed if the win service was restarted. Win service now shutsdown after all the tasks are completed.

Build 2.2.2208.29001 (29.8.2022)
  • Fixed WebRequest executor - Fixed an issue that made it impossible to send PUT request.

Build 2.2.2207.25001 (25.7.2022)
  • Added ConvertStringToBase64, ConvertJsonToXml, ConvertBase64ToBytes processors - Added VariableName and OutputVariableName parameters that allow input and output from and to variables.
  • Updated WebRequest processor - WebRequest now analyzes body during all response codes.

Build 2.2.2207.25001 (25.7.2022)
  • Added GUID generator - Added GUID generation and parent directory name functions.
  • Updated WebRequest processor - WebRequest was enhanced in the way that it can accept any HTTP response code (not only 200)

Build 2.2.2205.24001 (24.5.2022)
  • Updated Metadata - Added file length into sharepoint input.

Build 2.2.2203.22001 (22.3.2022)
  • Fixed Load Trigger - Fixed an issue that caused a replacement of incorrect dynamic tokens during load trigger.

Build 2.2.2202.21001 (21.2.2022)
  • Added Switch processor - Added Switch processor for enhanced flow control.
  • Added RunWorkflow processor - Added Timeout (causes Timeout event after set number of seconds passes) and Async(if true, processor will not wait for web service response) functions to RunWorkflowProcessor.
  • Updated WDKEY - Added time stamp to wdkey for repeated usage of the same file.
  • Updated CsomUpdateItem processor - Fixed CsomUpdateItem processor in case of DateTime field source is empty string.
  • Fixed Load Trigger - Fixed an issue that related to incorrect replacement of dynamic tokens during initialization. For example, datetime replace tokens were replaced at startup and not at runtime due this issue.

Build 2.2.2201.17001 (17.1.2022)
  • Added DeleteFile processor, PdfSign processor - Added parameters Visibility, Background, Width, Height, CustomBackgroundFilePath, CustomText, ReadOnly, HideDefaultText, AllowPrint, and FontScaleSize.
  • Added Replace Functions - Added UrlDecode and UrlEncode. Can be used to Decode or Encode URL parameters respectively.
  • Added PdfSign processor - Added parameter HideCustomText.
  • Fixed Load Trigger - Fixed an issue related to CsomSharePointOutput, if add and update function were both enabled, file creation was not working.