Wiki source code of 4. The iXPath BPMN

Version 100.2 by Outhman Moustaghfir on 2021/04/23 17:35

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = Introduction =
6
7 **iXPath** uses the BPMN (Business Process Model and Notation) standard for the translation part.
8 BPMN is a business process modeling method to describe the business activities of an organization in a graphical representation.
9
10 Below an example of a flow traced by the iXPath BPMN module:
11
12 [[image:1615831422135-492.png||height="378" width="996"]]
13
14 As we can see, there are 2 main types: Connectors and Gateways
15
16 = Connectors =
17
18 A connector is an algorithm that is executed via a trigger. In iXPath, the trigger is always an input file.
19
20 In this part, we go through each of the connectors and their particularities:
21
22 == Listeners ==
23
24 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.
25
26 **//Note~://** iXPath detects incoming events in real-time.
27
28 (% style="margin-left:auto; margin-right:auto" %)
29 |=(% style="width: 138px;" %)Listener Name|=(% style="width: 103px;" %)Icon|=(% style="width: 974px;" %)Description
30 |(% style="width:138px" %)[[FTP Listener>>Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.FTP Listener.WebHome]]|(% style="width:103px" %)[[image:1615902036864-240.png||height="66" width="69"]]|(% style="width:974px" %)Listen on an **FTP/FTPS** communication, on a specific user (created locally), and on a specific directory with a given file mask.
31 |(% style="width:138px" %)[[SFTP Listener>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.SFTP Listener.WebHome]]|(% style="width:103px" %)[[image:1615903474893-102.png||height="59" width="63"]]|(% style="width:974px" %)Listen on an **SFTP** communication, on a specific user (created locally), and on specific directory with a given file mask.
32 |(% style="width:138px" %)[[AS2 Listener>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.AS2 Listener.WebHome]]|(% style="width:103px" %)[[image:1615903500591-246.png||height="66" width="61"]]|(% style="width:974px" %)Listen on an **AS2 **communication, on specific AS2_ID (created locally), and on specific file mask.
33 |(% style="width:138px" %)[[FILE Listener>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.FILE Listener.WebHome]]|(% style="width:103px" %)[[image:1615903536880-750.png||height="60" width="60"]]|(% style="width:974px" %)Real-time listening on a specific directory with a given file mask.
34 |(% style="width:138px" %)[[WebService Listener>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.WebService Listener.WebHome]]|(% style="width:103px" %)[[image:1615903600906-895.png||height="53" width="81"]]|(% style="width:974px" %)Listen on a **Rest** communication (HTTP/HTTPS), on a specific endpoint URI (GET/POST/PUT/DELETE) (created locally)
35 |(% style="width:138px" %)[[Mail Listener >>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.Mail Listener.WebHome]]|(% style="width:103px" %)[[image:1615903620708-998.png||height="67" width="67"]]|(% style="width:974px" %)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.
36 |(% style="width:138px" %)[[App Event>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.App Event.WebHome]]|(% style="width:103px" %)[[image:1615903682090-260.png||height="55" width="72"]]|(% style="width:974px" %)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.
37 |(% style="width:138px" %)[[Tracking Listener>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.Tracking Listener.WebHome]]|(% style="width:103px" %)[[image:1615903640796-201.png||height="65" width="59"]]|(% style="width:974px" %)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.
38 |(% style="width:138px" %)[[Time Listener>>doc:Documentation.iXPath.User Guide.The iXPath BPMN.Connectors.Listeners.Time Listener.WebHome]]|(% style="width:103px" %)[[image:1615903655709-270.png||height="67" width="69"]]|(% style="width:974px" %)Listen on a **time **with cron expression. it allows triggering event at a specific time periodically.
39
40 == Scenario ==
41
42 A scenario connector deals directly with the input file, either translating it into some desired format or copying it, etc...
43
44 here's the list of all scenario connectors of iXPath : 
45
46 |(% style="width:158px" %)**Scenario Connector**|(% style="width:79px" %)**Icon**|(% style="width:753px" %)**Description**
47 |(% style="width:158px" %)__FileToXML__|(% style="width:79px" %)[[image:2021-04-21_12h19_50.png||height="69" width="82"]]|(% style="width:753px" %)Transforms a certain file to XML format with a given output file name.
48 |(% style="width:158px" %)__XMLToFile__|(% style="width:79px" %) [[image:2021-04-21_12h27_09.png||height="60" width="68"]]|(% style="width:753px" %)Converts an XML file to a file format.
49 |(% style="width:158px" %)__ExcelToXML__|(% style="width:79px" %) [[image:2021-04-21_12h31_41.png||height="63" width="66"]]|(% style="width:753px" %)Takes an Excel (XSL, xslx) file and converts it to XML format.
50 |(% style="width:158px" %)__XMLToExcel__|(% style="width:79px" %) [[image:2021-04-21_12h31_58.png||height="59" width="59"]]|(% style="width:753px" %)converts an XML file to its convenient Excel format.
51 |(% style="width:158px" %)__XMLToPdf__|(% style="width:79px" %) [[image:2021-04-21_12h34_23.png||height="64" width="63"]]|(% style="width:753px" %)Converts an XML file to PDF text format.
52 |(% style="width:158px" %)__PdfToXML__|(% style="width:79px" %) [[image:2021-04-21_12h34_33.png||height="56" width="64"]]|(% style="width:753px" %)Transforms a PDF file input to XML format.
53 |(% style="width:158px" %)__XMLToXML__|(% style="width:79px" %) [[image:2021-04-21_12h34_57.png||height="55" width="59"]]|(% style="width:753px" %)Transforms an XML File to another XML File.
54 |(% style="width:158px" %)__TrkToXML__|(% style="width:79px" %)[[image:2021-04-21_12h49_47.png||height="61" width="68"]]|(% style="width:753px" %)retrieve a tracking from the database and translate it to an XML file.
55 |(% style="width:158px" %)__XMLToTrk__|(% style="width:79px" %)[[image:2021-04-21_12h49_52.png]]|(% style="width:753px" %)Stores tracking in the database from the XML input file.
56 |(% style="width:158px" %)__XMLToBDD__|(% style="width:79px" %)[[image:2021-04-21_12h50_16.png||height="58" width="65"]]|(% style="width:753px" %)Translates data from an XML file and store it in the database.
57 |(% style="width:158px" %)__BDDToXML__|(% style="width:79px" %)[[image:2021-04-21_12h49_57.png]]|(% style="width:753px" %)Extracts data from the database and converts it into an XML file.
58 |(% style="width:158px" %)__JsonToXML__|(% style="width:79px" %)[[image:2021-04-21_12h50_33.png]]|(% style="width:753px" %)Takes a JSON file and translates it to XML format.
59 |(% style="width:158px" %)__XMLToJSON__|(% style="width:79px" %)[[image:2021-04-21_12h50_38.png]]|(% style="width:753px" %)Converts an XML file to JSON format.
60 |(% style="width:158px" %)XMLToBin|(% style="width:79px" %)[[image:2021-04-21_12h50_24.png||height="69" width="71"]]|(% style="width:753px" %)Converts an XML file to its Binary format.
61 |(% style="width:158px" %)__CopyFile__|(% style="width:79px" %)[[image:2021-04-21_12h50_50.png]]|(% style="width:753px" %)Copy a group of files from some connectors to a certain directory.
62 |(% style="width:158px" %)__SplitXML__|(% style="width:79px" %)[[image:2021-04-21_12h51_08.png]]|(% style="width:753px" %)splits an XML file in a certain node with a split number and output file name.
63 |(% style="width:158px" %)__MergeXML__|(% style="width:79px" %)[[image:2021-04-21_12h51_12.png]]|(% style="width:753px" %)merges XML files in a certain node with a given output file name.
64 |(% style="width:158px" %)__Pile__|(% style="width:79px" %)[[image:2021-04-21_12h51_17.png]]|(% style="width:753px" %)Put data in a linear stack that is used to store the collection of objects.
65 |(% style="width:158px" %)__GenerateFile__|(% style="width:79px" %)[[image:2021-04-21_12h51_24.png]]|(% style="width:753px" %)writes and generates a file with a given output file name.
66 |(% style="width:158px" %)__FiltreTracking__|(% style="width:79px" %)[[image:2021-04-21_12h51_30.png]]|(% style="width:753px" %)Retrieves Tracking data from the database using a filter, and puts it in a JSON file.
67 |(% style="width:158px" %)__LoadFile__|(% style="width:79px" %)[[image:2021-04-21_12h51_33.png]]|(% style="width:753px" %)Loads a group of files from a directory path and chooses to move it or not from the original folder.
68 |(% style="width:158px" %)__ReturnWebService__|(% style="width:79px" %)[[image:2021-04-21_12h50_45.png]]|(% style="width:753px" %)(((
69 returns a web service with an HTTP code response to a flow.
70 )))
71
72 ==
73 Routing ==
74
75 Routing connectors help route received files to the appropriate destination, and launch a route inside each environment.
76
77
78 |(% style="width:151px" %)**Routing connector**|(% style="width:86px" %)**Icon**|(% style="width:753px" %)**Description**
79 |(% style="width:151px" %)__File Detection__|(% style="width:86px" %)[[image:2021-04-21_16h28_15.png]]|(% style="width:753px" %)(((
80 Detects the input file type and makes a filter by pattern and type.
81 )))
82 |(% style="width:151px" %)__File Fix__|(% style="width:86px" %)[[image:2021-04-21_16h28_22.png]]|(% style="width:753px" %)Fixes a file by giving: its identifier column, size, and value and sets the value needed to be fixed.  
83 |(% style="width:151px" %)__File Variable__|(% style="width:86px" %)[[image:2021-04-21_16h28_33.png]]|(% style="width:753px" %)Sets a bunch of variables in the input file.
84 |(% style="width:151px" %)__XML Detection__|(% style="width:86px" %)[[image:2021-04-21_16h28_38.png]]|(% style="width:753px" %)Detects XML file by a checked XPath expression.
85 |(% style="width:151px" %)__Savoye__|(% style="width:86px" %)[[image:2021-04-21_16h28_43.png]]|(% style="width:753px" %)~*~*~*~*~*~**
86 |(% style="width:151px" %)__Call Scenario__|(% style="width:86px" %)[[image:2021-04-21_16h28_46.png]]|(% style="width:753px" %)Load a saved scenario and insert it in the current scenario.
87
88 == Exploitation ==
89
90 Exploitation Connectors are often available only for root users in iXPath, their main mission is to fix and prevent all database and memory problems.
91
92 here's an updated list of exploitation connectors :
93
94 |(% style="width:188px" %)**Exploitation connectors**|(% style="width:81px" %)**Icon**|(% style="width:721px" %)**Description **
95 |(% style="width:188px" %)__PurgeJob__|(% style="width:81px" %)[[image:2021-04-22_14h22_15.png]]|(% style="width:721px" %)Deletes jobs older than a given date.
96 |(% style="width:188px" %)__BackupBDD__|(% style="width:81px" %)[[image:2021-04-22_14h24_03.png]]|(% style="width:721px" %)Dumps database for a backup.
97 |(% style="width:188px" %)__PurgeTrackings__|(% style="width:81px" %)[[image:2021-04-22_14h22_22.png]]|(% style="width:721px" %)Deletes trackings older than a certain date.
98 |(% style="width:188px" %)__PurgeFiles__|(% style="width:81px" %)[[image:2021-04-22_14h22_30.png]]|(% style="width:721px" %)Deletes files or directories older than a certain date.
99 |(% style="width:188px" %)__Zip__|(% style="width:81px" %) [[image:ZipConnectors.png||height="51" width="51"]]|(% style="width:721px" %)Create a zip format for input files.
100 |(% style="width:188px" %)__UnZip__|(% style="width:81px" %) [[image:UNZipConnectors.png||height="48" width="48"]]|(% style="width:721px" %)Unzip the input zip file in a directory.
101
102 == Timers ==
103
104 Timers connectors, as its name says, set a timer to execute the next connector or launch a scenario ...
105
106 Timers connectors are listed as below :
107
108 |(% style="width:155px" %)**Timers connectors**|(% style="width:72px" %)**Icon**|(% style="width:762px" %)**Description**
109 |(% style="width:155px" %)__Wait__|(% style="width:72px" %)[[image:2021-04-22_14h40_14.png]]|(% style="width:762px" %)Waits for a given time.
110 |(% style="width:155px" %)__Wait Until__|(% style="width:72px" %)[[image:2021-04-22_14h40_19.png]]|(% style="width:762px" %)Waits Until a certain date.
111
112 = Gateways =
113
114 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.
115
116 == Inclusive gateway ==
117
118 [[image:2021-04-22_14h55_44.png]]
119
120 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.
121
122 == Exclusive gateway ==
123
124 [[image:2021-04-22_14h55_30.png]]
125
126
127 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.
128
129 == parallel gateway ==
130
131 [[image:2021-04-22_14h55_22.png]]
132
133 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. 
134
135 = Variables =
136
137 It means the variables that are used to describe some system or local values in iXPath App.
138
139 There are 2 types of variables:
140
141 * System Variables.
142 * Local Variables.
143
144 == System variables ==
145
146
147 == Local variables ==
148
149 = Conditions =
This wiki is hosted and managed by iXPath
Powered by XWiki 13.3 debian