Wiki source code of Flow Editor - Components

Last modified by Erik Bakker on 2024/08/19 22:01

Show last authors
1 {{container}}{{container layoutStyle="columns"}}(((
2
3 In eMagiz, while many flows come pre-built, there are times when you'll need to customize or add components to meet your specific requirements. This microlearning will guide you through the various types of components available in the flow editor, explaining their functions and showing how to use them effectively. Whether you’re working with inbound, outbound, or transformation components, understanding these elements will help you build and refine your integration flows more efficiently.
4
5 Should you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]].
6
7 == 1. Prerequisites ==
8
9 * Basic knowledge of the eMagiz platform
10
11 == 2. Key concepts ==
12
13 This microlearning focuses on the components in the flow editor.
14
15 == 3. Flow Editor Components ==
16
17 Not all flows in the flow editor are completely pre-built yet and do require changes made by you.
18 Therefore we would like to walk you through the various types of components that you can use to edit your flow:
19
20 * Inbound (Input)
21 * Outbound (Output)
22 * Transformation (Change)
23 * Splitter (Change)
24 * Filter (Decision)
25 * Router (Decision)
26 * Support (Help)
27
28 To connect each of these components you use channels that connect one component to another component.
29
30 === 3.1 Inbound ===
31
32 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
33
34 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--inbound-components.png]]
35
36 Via these components, the flow either **receives** or **retrieves** data from an external source. The inbound components most frequently used are:
37
38 * JMS Message-Driven Channel Adapter
39 * HTTP Inbound Gateway
40 * Web service Inbound Gateway
41 * File inbound channel adapter
42 * Kafka message-driven channel adapter
43
44 We will not discuss each of them in detail here but all of them receive or retrieve data from an external source.
45 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.
46 The file inbound channel adapter **retrieves** messages from a specific location.
47
48 === 3.2 Outbound ===
49
50 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.
51
52 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--outbound-components.png]]
53
54 Via these components, the flow either **sends** or **retrieves** data to/from an external source. The outbound components most frequently used are:
55
56 * JMS outbound channel adapter
57 * HTTP Outbound Gateway
58 * Web service Outbound Gateway
59 * File outbound channel adapter
60 * Kafka outbound channel adapter
61
62 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.
63 The JMS outbound channel adapter for example **sends** messages to a certain queue.
64 The HTTP outbound gateway **sends** or **retrieves** (based on the operation) messages from an external source by calling an endpoint.
65 The Kafka outbound channel adapter **sends** data to a topic.
66
67 === 3.3 Transformation ===
68
69 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.
70 In all other cases, you will have to add a transformation component to the flow. These components are identified as blue rectangles in eMagiz
71
72 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--transformation-components.png]]
73
74 The two most often use cases of a transformation component are:
75
76 * XSLT Transformer (Using the message mapping in Design)
77 * Standard Header enricher
78
79 We will talk more about the former later in this course.
80 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).
81 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.
82
83 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--standard-header-enricher-component.png]]
84
85 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--standard-header-enricher-component-name-value.png]]
86
87 Some other transformation components that are used are:
88
89 * Flat file to XML transformer
90 * XPath header enricher
91 * Standard Transformer
92
93 === 3.4 Splitter ===
94
95 In eMagiz, you can split messages based on the input message.
96 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.
97
98 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--splitter-components.png]]
99
100 We will discuss the splitter components in more detail in a later microlearning.
101
102 === 3.5 Filter ===
103
104 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.
105 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.
106
107 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--filter-components.png]]
108
109 There are three filter components available of which the XML validating filter is used most often:
110
111 * XML validating filter
112 * Standard filter
113 * XPath filter
114
115 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).
116 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.
117
118 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.
119
120 === 3.6 Router ===
121
122 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.
123 These components are identified as yellow diamonds in eMagiz.
124
125 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--router-components.png]]
126
127 There are several router components in eMagiz. The most used ones are:
128
129 * Header value router
130 * Recipient list router
131
132 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.
133
134 === 3.7 Service activators ===
135
136 In eMagiz, service activators can be used to execute a Groovy script or SpEL expression, or to trigger custom error messages.
137
138 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--service-activator-components.png]]
139
140 === 3.8 Support ===
141
142 In eMagiz, support objects can be linked to a functional component to aid the working of that component. These components can be found in the right panel of the screen.
143
144 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--support-components.png]]
145
146 More information on the support components can be found in [[this microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.Create - Flow Editor - Components.WebHome||target="blank"]].
147
148 === 3.9 Channel ===
149
150 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.
151
152 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--channel-components.png]]
153
154 Each channel should be given a descriptive name so you and others you work with know what the channel is used for.
155
156 === 3.10 Annotation ===
157
158 eMagiz also offers you the option to add an annotation and link it to one or more components.
159 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.
160
161 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--annotation-components.png]]
162
163 === 3.11 The Combination ===
164
165 Combining this all together results in a flow with at least an input and output component helped by several support objects. An example of what a working flow looks like is:
166
167 [[image:Main.Images.Microlearning.WebHome@crashcourse-platform-create-flow-editor-basics--working-flow.png]]
168
169 == 4. Key takeaways ==
170
171 * By making the correct Design decisions eMagiz will generate most of your flow for you based on defined best practices.
172 * If no best practice has yet emerged only the known components are generated
173 * A flow needs to have at least an input and output component paired with the default support objects
174 * Every component has a specific function and there are a lot of them
175
176 == 5. Suggested Additional Readings ==
177
178 * [[Crash Course (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]]
179 ** [[Crash Course Platform (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.WebHome||target="blank"]]
180 *** [[Flow Editor - Basics (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-flow-editor-basics||target="blank"]]
181 *** [[Support objects - Introduction (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-support-objects-introduction||target="blank"]]
182 *** [[Splitting messages (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-splitting-messages||target="blank"]]
183 * [[Flow Editor (Search Result)>>url:https://docs.emagiz.com/bin/view/Main/Search?sort=score&sortOrder=desc&highlight=true&facet=true&r=1&f_space_facet=1%2FMain.eMagiz+Academy.&f_type=DOCUMENT&f_locale=en&f_locale=&f_locale=en&text=%22flow+editor%22||target="blank"]])))((({{toc/}}))){{/container}}{{/container}}