Wiki source code of 4. The iXPath BPMN
Version 90.1 by Outhman Moustaghfir on 2021/04/22 16:41
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | {{box cssClass="floatinginfobox" title="**Contents**"}} |
2 | {{toc/}} | ||
3 | {{/box}} | ||
4 | |||
![]() |
2.2 | 5 | = Introduction = |
![]() |
1.1 | 6 | |
![]() |
2.2 | 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 | |||
![]() |
2.3 | 10 | Below an example of a flow traced by the iXPath BPMN module: |
![]() |
2.2 | 11 | |
![]() |
19.1 | 12 | [[image:1615831422135-492.png||height="378" width="996"]] |
![]() |
2.2 | 13 | |
![]() |
42.2 | 14 | As we can see, there are 2 main types: Connectors and Gateways |
![]() |
2.2 | 15 | |
![]() |
1.3 | 16 | = Connectors = |
![]() |
1.1 | 17 | |
![]() |
2.4 | 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 | |||
![]() |
4.1 | 22 | == Listeners == |
![]() |
2.4 | 23 | |
![]() |
19.2 | 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. |
![]() |
2.4 | 25 | |
![]() |
42.2 | 26 | **//Note~://** iXPath detects incoming events in real-time. |
![]() |
6.1 | 27 | |
28 | (% style="margin-left:auto; margin-right:auto" %) | ||
![]() |
18.1 | 29 | |=(% style="width: 138px;" %)Listener Name|=(% style="width: 103px;" %)Icon|=(% style="width: 974px;" %)Description |
![]() |
76.179 | 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. | ||
![]() |
42.2 | 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. | ||
![]() |
34.1 | 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. |
![]() |
40.1 | 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. |
![]() |
42.2 | 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. |
![]() |
6.1 | 39 | |
![]() |
4.1 | 40 | == Scenario == |
![]() |
2.4 | 41 | |
![]() |
42.2 | 42 | A scenario connector deals directly with the input file, either translating it into some desired format or copying it, etc... |
![]() |
2.4 | 43 | |
![]() |
42.2 | 44 | here's the list of all scenario connectors of iXPath : |
45 | |||
![]() |
72.2 | 46 | |(% style="width:158px" %)**Scenario Connector**|(% style="width:79px" %)**Icon**|(% style="width:753px" %)**Description** |
![]() |
76.105 | 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. | ||
![]() |
76.180 | 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. |
![]() |
76.105 | 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. | ||
![]() |
76.110 | 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. | ||
![]() |
76.105 | 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. |
![]() |
76.113 | 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. |
![]() |
89.9 | 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. |
![]() |
76.105 | 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. | ||
![]() |
76.90 | 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. |
![]() |
76.105 | 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. | ||
![]() |
76.102 | 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. |
![]() |
76.105 | 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. |
![]() |
83.9 | 66 | |(% style="width:158px" %)__FiltreTracking__|(% style="width:79px" %)[[image:2021-04-21_12h51_30.png]]|(% style="width:753px" %)~*~*~*~*~*~*~*~*~*~* |
![]() |
83.11 | 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. |
![]() |
76.160 | 68 | |(% style="width:158px" %)__ReturnWebService__|(% style="width:79px" %)[[image:2021-04-21_12h50_45.png]]|(% style="width:753px" %)((( |
![]() |
83.36 | 69 | returns a web service with an HTTP code response to a flow. |
![]() |
76.160 | 70 | ))) |
![]() |
85.1 | 71 | |(% style="width:158px" %) |(% style="width:79px" %) |(% style="width:753px" %) |
72 | |(% style="width:158px" %) |(% style="width:79px" %) |(% style="width:753px" %) | ||
![]() |
42.2 | 73 | |
![]() |
50.2 | 74 | == |
75 | Routing == | ||
![]() |
2.4 | 76 | |
![]() |
83.96 | 77 | Routing connectors help route received files to the appropriate destination, and launch a route inside each environment. |
![]() |
83.75 | 78 | |
79 | |||
![]() |
83.2 | 80 | |(% style="width:151px" %)**Routing connector**|(% style="width:86px" %)**Icon**|(% style="width:753px" %)**Description** |
![]() |
83.36 | 81 | |(% style="width:151px" %)__File Detection__|(% style="width:86px" %)[[image:2021-04-21_16h28_15.png]]|(% style="width:753px" %)((( |
![]() |
83.96 | 82 | Detects the input file type and makes a filter by pattern and type. |
![]() |
83.36 | 83 | ))) |
![]() |
85.1 | 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. |
![]() |
83.96 | 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. |
![]() |
83.12 | 86 | |(% style="width:151px" %)__XML Detection__|(% style="width:86px" %)[[image:2021-04-21_16h28_38.png]]|(% style="width:753px" %) |
![]() |
83.3 | 87 | |(% style="width:151px" %)__Savoye__|(% style="width:86px" %)[[image:2021-04-21_16h28_43.png]]|(% style="width:753px" %) |
![]() |
83.12 | 88 | |(% style="width:151px" %)__Call Scenario__|(% style="width:86px" %)[[image:2021-04-21_16h28_46.png]]|(% style="width:753px" %) |
![]() |
85.1 | 89 | |(% style="width:151px" %) |(% style="width:86px" %) |(% style="width:753px" %) |
![]() |
76.178 | 90 | |
![]() |
4.1 | 91 | == Exploitation == |
![]() |
2.4 | 92 | |
![]() |
83.98 | 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. |
![]() |
2.4 | 94 | |
![]() |
83.100 | 95 | here's an updated list of exploitation connectors : |
![]() |
83.98 | 96 | |
![]() |
87.2 | 97 | |(% style="width:188px" %)**Exploitation connectors**|(% style="width:81px" %)**Icon**|(% style="width:721px" %)**Description ** |
![]() |
89.5 | 98 | |(% style="width:188px" %)PurgeJob|(% style="width:81px" %)[[image:2021-04-22_14h22_15.png]]|(% style="width:721px" %)Deletes jobs older than a given date. |
![]() |
89.4 | 99 | |(% style="width:188px" %)BackupBDD|(% style="width:81px" %)[[image:2021-04-22_14h24_03.png]]|(% style="width:721px" %)Dumps database for a backup. |
100 | |(% style="width:188px" %)PurgeTrackings|(% style="width:81px" %)[[image:2021-04-22_14h22_22.png]]|(% style="width:721px" %)Deletes trackings older than a certain date. | ||
101 | |(% 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. | ||
102 | |(% style="width:188px" %)Zip|(% style="width:81px" %) |(% style="width:721px" %)Create a zip format for input files. | ||
![]() |
89.5 | 103 | |(% style="width:188px" %)UnZip|(% style="width:81px" %) |(% style="width:721px" %)Unzip the input zip file in a directory. |
![]() |
87.2 | 104 | |(% style="width:188px" %) |(% style="width:81px" %) |(% style="width:721px" %) |
![]() |
83.99 | 105 | |
![]() |
18.1 | 106 | == Timers == |
![]() |
2.4 | 107 | |
![]() |
89.6 | 108 | Timers connectors, as its name says, set a timer to execute the next connector or launch a scenario ... |
![]() |
2.4 | 109 | |
![]() |
89.7 | 110 | Timers connectors are listed as below : |
![]() |
89.6 | 111 | |
![]() |
89.9 | 112 | |(% style="width:181px" %)Timers connectors|(% style="width:213px" %)Icon|(% style="width:595px" %)Description |
113 | |(% style="width:181px" %) |(% style="width:213px" %) |(% style="width:595px" %) | ||
114 | |(% style="width:181px" %) |(% style="width:213px" %) |(% style="width:595px" %) | ||
![]() |
89.7 | 115 | |
![]() |
1.3 | 116 | = Gateways = |
![]() |
1.1 | 117 | |
![]() |
76.71 | 118 | == Inclusive gateway == |
![]() |
1.1 | 119 | |
![]() |
76.71 | 120 | == Exclusive gateway == |
![]() |
1.1 | 121 | |
![]() |
1.3 | 122 | == parallel gateway == |
123 | |||
124 | = Variables = | ||
125 | |||
126 | == System variables == | ||
127 | |||
128 | == Local variables == | ||
129 | |||
130 | = Conditions = |