Wiki source code of 3. Variables
Version 6.1 by Outhman Moustaghfir on 2021/04/27 23:42
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{toc/}} | ||
2 | |||
3 | = Introduction = | ||
4 | |||
5 | Variable is a container that holds a value and can be called in the iXPath Scenario. The importance of | ||
6 | |||
7 | variables is to make flexibility in using some values without referring to their origins. | ||
8 | |||
9 | There are 2 types of variables: | ||
10 | |||
11 | * System variables | ||
12 | * Local variables | ||
13 | |||
14 | To call a variable, we should put it inside ${}. Eg: for a variable named ‘iXVar’, it can be called as ${iXVar}. | ||
15 | |||
16 | == System variables == | ||
17 | |||
18 | System variables define some default values in the system, and they can be called by users several times. | ||
19 | |||
20 | Here is the list of system variables : | ||
21 | |||
22 | 1. At the declaration of the scenario: | ||
23 | 1*. iXSession: it returns the ID of the current session. | ||
24 | 1*. iXSessionPath: gets the Path of the session folder. | ||
25 | 1*. env: name of the environment. | ||
26 | 1*. inputFile: this variable collect all input files in one list. | ||
27 | 1. For a **mail listener : ** | ||
28 | 1*. iXFrom: refers to the sender of the mail. | ||
29 | 1*. iXSubject: refers to the mail subject. | ||
30 | 1. For an **AS2 listener **: | ||
31 | 1*. iXFrom: return the value of the AS2 sender. | ||
32 | 1. All connectors declare a system variable of type BpmnFile, the connector variable uses a bunch of functions to handle the list of BpmnFiles that will be detailed in the table below : | ||
33 | 1*. ((( | ||
34 | (% style="width:884px" %) | ||
35 | |(% style="width:150px" %)**Function**|(% style="width:365px" %)**Description**|(% style="width:367px" %)**Use** | ||
36 | |(% style="width:150px" %)Get(x) |(% style="width:365px" %)Get a file with index number "x" from the BpmnFile list, the indexes begin from 0 as the first element, and so on.|(% style="width:367px" %)((( | ||
37 | if we have an XmlToXml connector named "XmlToXml1" we can get __the second__ BpmnFile as : | ||
38 | |||
39 | ${XmlToXml1.get(1)} | ||
40 | |||
41 | NB: we will make examples on the same connector "XmlToXml1". | ||
42 | ))) | ||
43 | |(% style="width:150px" %)getTrkValues()|(% style="width:365px" %)Return the Tracking values from a BpmnFile.|(% style="width:367px" %)Eg : ${XmlToXml1.get(0).getTrkValues()} returns the tracking values of the first BpmnFile. | ||
44 | |(% style="width:150px" %)path()|(% style="width:365px" %)Return the absolute path of the BpmnFile.|(% style="width:367px" %)Eg : ${XmlToXml.get(3).path()} returns the path of the __fourth__ BpmnFile | ||
45 | |(% style="width:150px" %)fileName()|(% style="width:365px" %)Return the name of the BpmnFile. |(% style="width:367px" %)Eg : ${XmlToXml1.get(2).fileName()} retrieves the name of the third BpmnFile. | ||
46 | |(% style="width:150px" %)extension()|(% style="width:365px" %)Returns the extension of the BpmnFile.|(% style="width:367px" %)((( | ||
47 | Eg : if we want to get the extension of the first BpmnFile, we will proceed as below : | ||
48 | |||
49 | ${XmlToXml1.get(0).extension()} | ||
50 | ))) | ||
51 | |(% style="width:150px" %)fullName()|(% style="width:365px" %)Returns the file name + its extension |(% style="width:367px" %)Eg : ${XmlToXml1.get(0).fullName()} returns the full name of the BpmnFile. | ||
52 | |(% style="width:150px" %)size()|(% style="width:365px" %)Returns the size of the BpmnFile in megabit.|(% style="width:367px" %)((( | ||
53 | Eg : ${XmlToXml1.get(0).size()} returns the size of the first BpmnFile. | ||
54 | ))) | ||
55 | |(% style="width:150px" %)type()|(% style="width:365px" %)Returns the type of the BpmnFile|(% style="width:367px" %)((( | ||
56 | Eg : To get the type of the second BpmnFile , | ||
57 | |||
58 | ${XmlToXml1.get(1).type()} | ||
59 | ))) | ||
60 | ))) | ||
61 | |||
62 | == Local variables == | ||
63 | |||
64 | Local variable is a type of variable that can be newly created and used for a certain need. | ||
65 | |||
66 | So as to create a local variable "newVar" with a value equals to "var number 1", we should write this piece of XSL code : | ||
67 | |||
68 | {{code language="XML"}} | ||
69 | <xsl:value-of select=" ixf:SetVar('newVar', 'var Number 1')"></xsl:value-of> | ||
70 | |||
71 | {{/code}} | ||
72 | |||
73 | The call of this new variable in the scenario is similar to previous system variables: **${newVar}.** | ||
74 | |||
75 | To get 'newVar' inside an XSL file : | ||
76 | |||
77 | {{code language="XML"}} | ||
78 | <xsl:value-of select="ixf:getVar('newVar')"></xsl:value-of> | ||
79 | {{/code}} | ||
80 | |||
81 | = Examples = | ||
82 | |||
83 | We set a simple example of a scenario to illustrate how to use variables. | ||
84 | |||
85 | We want to receive a file by a FileListener and send it by mail that contains a message body. | ||
86 | |||
87 | here is the scenario: | ||
88 | |||
89 | [[image:2021-04-27_21h31_55.png||height="140" width="446"]] | ||
90 | |||
91 | The configuration of the "SendMail" is : | ||
92 | |||
93 | [[image:2021-04-27_21h32_07.png||height="373" width="281"]] | ||
94 | |||
95 | As shown in the mail body, we called 3 variables which are : | ||
96 | |||
97 | * Env : the current environment | ||
98 | * iXSession : ID session | ||
99 | * path : path of the BpmnFile in FileListener1. | ||
100 | |||
101 | |||
102 | |||
103 |