Version 1.1 by Carlijn Kokkeler on 2022/10/04 13:49

Show last authors
1 {{container}}{{container layoutStyle="columns"}}(((
2
3 A central part of building your integration in eMagiz is the flow editor. Here you can see what is happening in the flow to make the intended process work as you would expect.
4 To make your life easier eMagiz will generate a starting point for you based on your configuration choices in Design so you don't start with a completely blank canvas.
5
6 Having said that not all flows are completely pre-built yet and do require changes made by you.
7 In this microlearning, we will focus on getting to know the various types of components that are at your disposal while creating/editing a flow and illustrate what those types are based on some examples.
8
9 Should you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]].
10
11 == 1. Prerequisites ==
12
13 * Basic knowledge of the eMagiz platform
14
15 == 2. Key concepts ==
16
17 This microlearning focuses on the flow editor.
18
19 With flow editor we mean: The canvas in Create that allows you to edit the functionality of a flow
20
21 == 3. Flow Editor Basics ==
22
23 A central part of building your integration in eMagiz is the flow editor. Here you can see what is happening in the flow to make the intended process work as you would expect.
24 To make your life easier eMagiz will generate a starting point for you based on your configuration choices in Design so you don't start with a completely blank canvas.
25
26 Some of the flows that are pre-built for 85-95% of the cases include:
27
28 * Onramps and offramps (Messaging)
29 * Entry and exit gate (API Gateway)
30 * Event Processors (Event Streaming)
31
32 Having said that not all flows are completely pre-built yet and do require changes made by you.
33 Therefore we would like to walk you through the various type of components that you can use to edit your flow:
34
35 * Inbound (Input)
36 * Outbound (Output)
37 * Transformation (Change)
38 * Splitter (Change)
39 * Filter (Decision)
40 * Router (Decision)
41 * Support (Help)
42
43 To connect each of these components you use channels that connect one component to another component.
44
45 === 3.1 Inbound ===
46
47 All inbound components represent the input of your flow (i.e. the starting point). Inbound components can be identified through the green color of the components
48
49 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--inbound-components.png]]
50
51 Via these components, the flow either **receives** or **retrieves** data from an external source. The inbound components most frequently used are:
52
53 * JMS Message-Driven Channel Adapter
54 * HTTP Inbound Gateway
55 * Web service Inbound Gateway
56 * File inbound channel adapter
57 * Kafka message-driven channel adapter
58
59 We will not discuss each of them in detail here but all of them receive or retrieve data from an external source.
60 The JMS Message-Driven Channel Adapter for example **receives** messages placed on a certain queue. The HTTP Inbound Gateway **receives** messages every time someone calls your endpoint.
61 The file inbound channel adapter **retrieves** messages from a specific location.
62
63 === 3.2 Outbound ===
64
65 All outbound components represent the output of the flow (i.e. the endpoint). Outbound components can be identified through the white color with a green border.
66
67 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--outbound-components.png]]
68
69 Via these components, the flow either **sends** or **retrieves** data to/from an external source. The outbound components most frequently used are:
70
71 * JMS outbound channel adapter
72 * HTTP Outbound Gateway
73 * Web service Outbound Gateway
74 * File outbound channel adapter
75 * Kafka outbound channel adapter
76
77 As you can see, the list is pretty similar, and when you make the correct design decisions most of these are already placed on the canvas and you only need to fill in the details at most.
78 The JMS outbound channel adapter for example **sends** messages to a certain queue.
79 The HTTP outbound gateway **sends** or **retrieves** (based on the operation) messages from an external source by calling an endpoint.
80 The Kafka outbound channel adapter **sends** data to a topic.
81
82 === 3.3 Transformation ===
83
84 All standard transformations as created as part of the message mapping in Design are automatically transferred and correctly linked to the flow in Create. So that is easy.
85 In all other cases, you will have to add a transformation component to the flow. These components are identified as blue rectangles in eMagiz
86
87 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--transformation-components.png]]
88
89 The two most often use cases of a transformation component are:
90
91 * XSLT Transformer (Using the message mapping in Design)
92 * Standard Header enricher
93
94 We will talk more about the former later in this course.
95 The latter gives you the option to add pieces of metadata to the data that you are processing (i.e. where does it come from, what is it about, where should it go to).
96 To do so you can add a Custom header with name and value to the standard enricher component that will be stored on the message level.
97
98 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--standard-header-enricher-component.png]]
99
100 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--standard-header-enricher-component-name-value.png]]
101
102 Some other transformation components that are used are:
103
104 * Flat file to XML transformer
105 * XPath header enricher
106 * Standard Transformer
107
108 === 3.4 Splitter ===
109
110 In eMagiz, you can split messages based on the input message.
111 If an input message contains a list you can make separate messages based on each entry in the list with the help of a splitter. These components are identified as blue trapeziums in eMagiz.
112
113 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--splitter-components.png]]
114
115 We will discuss the splitter components in more detail in a later microlearning.
116
117 === 3.5 Filter ===
118
119 In eMagiz, you can filter messages based on certain criteria a message should adhere to. If an input message does not fit the criteria it will be filtered out.
120 The failure of matching the criteria can lead to silently dropping messages or could lead to an error (the decision is yours). These components are identified as yellow pentagons in eMagiz.
121
122 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--filter-components.png]]
123
124 There are three filter components available of which the XML validating filter is used most often:
125
126 * XML validating filter
127 * Standard filter
128 * XPath filter
129
130 The best practice is to validate your message **before** and **after** any change done by a component that is capable of altering the message (i.e. transformation and splitter).
131 This can be done with the help of an XML validating filter. This filter validates your input message against your message definition. If the message is valid it can pass. If not it will be refused.
132
133 In a standard filter or XPath filter, you could filter on the information in the body of the message or metadata information stored in a header related to the message. More on those in a later course.
134
135 === 3.6 Router ===
136
137 In eMagiz, you can route messages based on criteria. The content to verify if the criteria are met can be either stored in headers or in the body itself.
138 These components are identified as yellow diamonds in eMagiz.
139
140 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--router-components.png]]
141
142 There are several router components in eMagiz. The most used ones are:
143
144 * Header value router
145 * Recipient list router
146
147 As most of the use cases for incorporating a router component on flow level without eMagiz generating it for you lie within messaging we won't go into detail in the exact mechanics of each of these router options.
148
149 === 3.7 Support ===
150
151 In eMagiz, support objects can be linked to a functional component to aid the working of that component. These components are identifiable through the grey color of the components
152
153 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--support-components.png]]
154
155 We will discuss the support components in more detail in a later microlearning.
156
157 === 3.8 Channel ===
158
159 To connect all these components (except for the support objects) we need channels. A channel makes sure that the output of component A is sent to component B for further processing.
160
161 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--channel-components.png]]
162
163 Each channel should be given a descriptive name so you and others you work with know what the channel is used for.
164
165 === 3.9 Annotation ===
166
167 eMagiz also offers you the option to add an annotation and link it to one or more components.
168 This way you can make it explicit for yourself and others what is exactly happening in those components and why you have opted for a certain option.
169
170 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--annotation-components.png]]
171
172 === 3.10 The Combination ===
173
174 Combining this all together results in a flow with at least an input and output component helped by several support objects. An example of how a working flow looks like is:
175
176 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--working-flow.png]]
177
178
179
180 == 4. Assignment ==
181
182 Open a flow that is pre-generated by eMagiz or built by someone else. Define for each functional component (excluding the support objects) what its function is within the flow.
183 This assignment can be completed within the (Academy) project that you have created/used in the previous assignment.
184
185 == 5. Key takeaways ==
186
187 * By making the correct Design decisions eMagiz will generate most of your flow for you based on defined best practices.
188 * If no best practice has yet emerged only the known components are generated
189 * A flow needs to have at least an input and output component paired with the default support objects
190 * Every component has a specific function and there are a lot of them
191
192
193
194 == 6. Suggested Additional Readings ==
195
196 If you are interested in this topic and want more information on it please read the help text provided by eMagiz or browse through the reference guide to see which components eMagiz offers.
197
198 == 7. Silent demonstration video ==
199
200 This video demonstrates a working solution and how you can validate whether you have successfully completed the assignment.
201
202 {{video attachment="crashcourse-platform-create-flow-editor-basics.mp4" reference="Main.Videos.Microlearning.WebHome"/}}
203
204 )))((({{toc/}}))){{/container}}{{/container}}