Wiki source code of 4. The iXPath BPMN
Version 87.1 by Outhman Moustaghfir on 2021/04/22 16:23
Show last authors
author | version | line-number | content |
---|---|---|---|
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 translate 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" %)~*~*~*~*~*~*~*~*~*~* | ||
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 | |(% style="width:158px" %) |(% style="width:79px" %) |(% style="width:753px" %) | ||
72 | |(% style="width:158px" %) |(% style="width:79px" %) |(% style="width:753px" %) | ||
73 | |||
74 | == | ||
75 | Routing == | ||
76 | |||
77 | Routing connectors help route received files to the appropriate destination, and launch a route inside each environment. | ||
78 | |||
79 | |||
80 | |(% style="width:151px" %)**Routing connector**|(% style="width:86px" %)**Icon**|(% style="width:753px" %)**Description** | ||
81 | |(% style="width:151px" %)__File Detection__|(% style="width:86px" %)[[image:2021-04-21_16h28_15.png]]|(% style="width:753px" %)((( | ||
82 | Detects the input file type and makes a filter by pattern and type. | ||
83 | ))) | ||
84 | |(% 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. | ||
85 | |(% 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. | ||
86 | |(% style="width:151px" %)__XML Detection__|(% style="width:86px" %)[[image:2021-04-21_16h28_38.png]]|(% style="width:753px" %) | ||
87 | |(% style="width:151px" %)__Savoye__|(% style="width:86px" %)[[image:2021-04-21_16h28_43.png]]|(% style="width:753px" %) | ||
88 | |(% style="width:151px" %)__Call Scenario__|(% style="width:86px" %)[[image:2021-04-21_16h28_46.png]]|(% style="width:753px" %) | ||
89 | |(% style="width:151px" %) |(% style="width:86px" %) |(% style="width:753px" %) | ||
90 | |||
91 | == Exploitation == | ||
92 | |||
93 | Exploitation Connectors are often available only for root users in iXPath, their main mission is to fix and prevent all database and memory problems. | ||
94 | |||
95 | here's an updated list of exploitation connectors : | ||
96 | |||
97 | |(% style="width:195px" %)**Exploitation connectors**|(% style="width:84px" %)**Icon**|(% style="width:710px" %)**Description ** | ||
98 | |(% style="width:195px" %)PurgeJob|(% style="width:84px" %) |(% style="width:710px" %) | ||
99 | |(% style="width:195px" %)BackupBDD|(% style="width:84px" %) |(% style="width:710px" %) | ||
100 | |(% style="width:195px" %)PurgeTrackings|(% style="width:84px" %) |(% style="width:710px" %) | ||
101 | |(% style="width:195px" %)PurgeFiles|(% style="width:84px" %) |(% style="width:710px" %) | ||
102 | |(% style="width:195px" %)Zip|(% style="width:84px" %) |(% style="width:710px" %) | ||
103 | |(% style="width:195px" %)UnZip|(% style="width:84px" %) |(% style="width:710px" %) | ||
104 | |(% style="width:195px" %) |(% style="width:84px" %) |(% style="width:710px" %) | ||
105 | |||
106 | == Timers == | ||
107 | |||
108 | |||
109 | = Gateways = | ||
110 | |||
111 | == Inclusive gateway == | ||
112 | |||
113 | == Exclusive gateway == | ||
114 | |||
115 | == parallel gateway == | ||
116 | |||
117 | = Variables = | ||
118 | |||
119 | == System variables == | ||
120 | |||
121 | == Local variables == | ||
122 | |||
123 | = Conditions = |