User guide - 4. The iXPath BPMN 

Page / - last modified by Outhman Moustaghfir on 2021/04/21 15:27 

4. The iXPath BPMN 
last modified by Outhman Moustaghfir
on 2021/04/21 15:27

Table of Contents
Introduction
Connectors
Listeners
Scenario
Routing
Exploitation
Timers
Gateways
Inclusive gateway
Exclusive gateway
parallel gateway
Variables
System variables
Local variables
Conditions

Contents
•	Introduction
•	Connectors
•	Listeners
•	Scenario
•	
Routing
•	Exploitation
•	Timers
•	Gateways
•	Inclusive gateway
•	Exclusive gateway
•	parallel gateway
•	Variables
•	System variables
•	Local variables
•	Conditions
Introduction
iXPath uses the BPMN (Business Process Model and Notation) standard for the translation part.
BPMN is a business process modeling method to describe the business activities of an organization in a graphical representation.
Below an example of a flow traced by the iXPath BPMN module:

As we can see, there are 2 main types: Connectors and Gateways
Connectors
A connector is an algorithm that is executed via a trigger. In iXPath, the trigger is always an input file.
In this part, we go through each of the connectors and their particularities:
Listeners
A listening connector (or listener) is the entry point for a scenario. It allows the created event to be routed through a communication channel (FTP, SFTP, AS2, MAIL, FILE, Webservice). Communication's config is required to handle those connectors.
Note: iXPath detects incoming events in real-time.
Listener Name	Icon	Description	
FTP Listener		Listen on an FTP/FTPS communication, on a specific user (created locally), and on a specific directory with a given file mask.	
SFTP Listener		Listen on an SFTP communication, on a specific user (created locally), and on specific directory with a given file mask.	
AS2 Listener		Listen on an AS2 communication, on specific AS2_ID (created locally), and on specific file mask.	
FILE Listener		Real-time listening on a specific directory with a given file mask.	
WebService Listener		Listen on a Rest communication (HTTP/HTTPS), on a specific endpoint URI (GET/POST/PUT/DELETE) (created locally)	
Mail Listener 		Listen on Mail communication (IMAP), on a specific mail, on a regex sender mask, on a regex mail subject, and on a given file mask.	
App Event		Listen on a Rest communication (HTTP/HTTPS), on a specific endpoint URI (GET/POST/PUT/DELETE) (created locally). App event is used locally between iXPath's app.	
Tracking Listener		Listen on a Tracking database event, on a specific tracking type (Order, OrderLine...), on the specific action (Create, Delete, Update), and on a specific tracking status.	
Time Listener		Listen on a time with cron expression. it allows triggering event at a specific time periodically.	
Scenario
A scenario connector deals directly with the input file, either translating it into some desired format or copying it, etc...
here's the list of all scenario connectors of iXPath :  
Scenario Connector	Icon	Description	
FileToXML		Transforms a certain file to XML format with a given output file name.	
XMLToFile	  	Converts an XML file to a file format.	
ExcelToXML	  	Takes an Excel (XSL, XSLX) file and converts it to XML format.	
XMLToExcel	 	converts an XML file to its convenient Excel format.	
XMLToPdf	 	Converts an XML file to PDF text format.	
PdfToXML	 	Transforms a PDF file input to XML format.	
XMLToXML	 	Transforms an XML File to another XML File.	
TrkToXML		retrieve a tracking from the database and translate it to an XML file.	
XMLToTrk		Stores tracking in the database from the XML input file.	
XMLToBDD		Translates data from an XML file and store it in the database.	
BDDToXML		Extracts data from the database and converts it into an XML file.	
JsonToXML		Takes a JSON file and translates it to XML format.	
XMLToJSON		Converts an XML file to JSON format.	
XMLToBin		Converts an XML file to its Binary format.	
CopyFile		Copy a group of files from some connectors to a certain directory. 	
SplitXML		splits an XML file in a certain node with a split number and output file name.	
MergeXML		merges XML files in a certain node with a given output file name.	
Pile		Put data in a linear stack that is used to store the collection of objects.	
GenerateFile		writes and generates a file with a given output file name.	
FiltreTracking		Retrieves Tracking data from the database using a filter, and puts it in a JSON file. 	
LoadFile		Loads a group of files from a directory path and chooses to move it or not from the original folder.	
ReturnWebService		returns a web service with an HTTP code response to a flow.	

Routing
Routing connectors help route received files to the appropriate destination, and launch a route inside each environment.
Routing connector	Icon	Description	
File Detection		Detects the input file type and makes a filter by pattern and type.	
File Fix		Fixes a file by giving: its identifier column, size, and value and sets the value needed to be fixed.   	
File Variable		Sets a bunch of variables in the input file.	
XML Detection		Detects XML file by a checked XPath expression.	
Call Scenario		Load a saved scenario and insert it in the current scenario.	
Exploitation
Exploitation Connectors are often available only for root users in iXPath, their main mission is to fix and prevent all database and memory problems.
here's an updated list of exploitation connectors : 
Exploitation connectors	Icon	Description 	
PurgeJob		Deletes jobs older than a given date.	
BackupBDD		Dumps database for a backup.	
PurgeTrackings		Deletes trackings older than a certain date.	
PurgeFiles		Deletes files or directories older than a certain date.	
Zip	 	Create a zip format for input files.	
UnZip	  	Unzip the input zip file in a directory. 	
Timers
As its name says, Timers connectors set a timer to execute the next connector or launch a scenario ...
Timers connectors are listed as below : 
Timers connectors	Icon	Description	
Wait		Waits for a given time.	
Wait Until		Waits Until a certain date. 	
Gateways
Gateways is a BPMN notation used to control how a process flows. Connected by sequence flows, a gateway acts as a decision point that decides which (outgoing) sequence flow to take based on the result of the evaluation of condition(s) specified.
Inclusive gateway

The inclusive gateway (or "OR gateway")is used to create alternatives routes, but also parallel ones inside a process flow. Contrary to the exclusive gateway, all condition expressions are evaluated. Whilst the Inclusive Gateway can be used to show that all paths must be taken, it should be used in such a way that at least one of the paths is taken.
Exclusive gateway

The exclusive gateway accepts multiple inputs and outputs. We abbreviate “exclusive gateway” as XOR. It also evaluates the process state and divides the flow into multiple paths mutually exclusive. The flow takes the first input that satisfies all calculated conditions.
parallel gateway

The parallel gateway (or the "AND gateway" ) is mainly used to synchronize parallel flows and create other parallel ones. These gateways create parallel paths without verifying conditions. each output sequential flow is passed through this gateway. About input flows, the parallel gateway waits for all other input flows before triggering the sequence of output flows.  
Variables
It means the variables that are used to describe some system or local values in iXPath App. 
There are 2 types of variables:
•	System Variables.
•	Local Variables.
To call a certain variable named "var", we use ${} as ${var}.
System variables
System variables define some default values in the system, and they can be often called by users.
Here is the list of all known system variables:
 1.	At the declaration of the scenario:
•	iXSession: it returns the ID of the current session.
•	iXSessionPath : gets the Path of the session folder. 
•	env : name of the environment.
•	inputFile : this variable collect all input files in one list.
•	iXEnvPath : Env's path. 
 2.	For a mail listener : 
•	iXFrom : refers to the sender of the mail.
•	iXSubject : refers to the mail subject.
 3.	For an AS2 listener : 
•	iXFrom : return the value of the AS2 sender.
 4.	All connectors declare a system variable of type BpmnFile, it will be explained by details in the "variables" rubric.
Local variables
For a need to make the concept of variables more extensible, local variables come to offer the possibility of creating and calling new variables.
In order to set a new variable, the user may go through this line of code : 
<xsl:value-of select=" ixf:SetVar('Var', 'var Number 1')"></xsl:value-of>
 here, we created a local variable named 'Var' with value of "var number 1".
To get this variable 'Var' from XSL file :
<xsl:value-of select="ixf:getVar('Var')"></xsl:value-of>
Conditions
iXPath supports the usual logical conditions from mathematics like : a<b , a = b ...
Conditions hold the decision to execute a connector or not.
Eg of condition : 
Var == "My real variable" 
In the "Conditions" rubric, we will give you the entire details about conditions and how to use them perfectly.