Analytics Platform Components Guideknime2
Analytics Platform Components Guideknime2
Analytics Platform Components Guideknime2
Components vs metanodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Setup components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Reconfigure metanodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Configuration nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Scripting Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Widget nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
View nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Plotly nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Legacy flag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Advanced layouting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Default execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Streaming execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Sharing components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Introduction
In this guide we introduce components and metanodes.
Components really are KNIME nodes that you create which bundle functionality, have their
own configuration dialog and their own composite views. Metanodes on the other hand are
containers of a part of your workflow, that help to build cleaner and structured nested
workflows.
In this guide, we explain how to create components and metanodes, how to create composite
views and configuration dialogs for components, and how to use them.
Components vs metanodes
Components are nodes that contain a sub-workflow, which lets you bundle functionality for
sharing and reusing. Components encapsulate and abstract functionality, can have their own
configuration dialog, and custom interactive composite views. You can use them to hide
some complexity in a workflow and you can also reuse them in other workflows or in
different parts of the same workflow, or you can share them with others via KNIME Server or
on the KNIME Hub. Additionally, components and their composite views are also used to
define pages in a web application workflows, which once deployed via KNIME Server can be
accessed through KNIME WebPortal.
In contrast to components, metanodes are purely used to organize your workflows better:
you can take parts of a larger workflow and collapse it into a metanode, hiding that part of
the workflow’s functionality.
3. Give the component or metanode a name in the dialog that opens shown in Figure 2
4. Click OK, and you will see the new component or the new metanode in the workflow
editor in place of the single nodes, as shown in Figure 3
Appropriate input and output ports will appear for the component and the metanode based
on the connections coming into and out of it. Notice that collapsing nodes into a component
or a metanode resets the nodes.
Setup components
To change the settings of a component, first right-click the component and in the context
menu, shown in Figure 4, select Component → Setup….
• Remove existing input and output ports by clicking the Remove button. Notice that you
have to remove from inside the component, all connections coming to and from the
port before you can remove it.
• Change the order of the input and output ports using the Up and Down buttons.
Changing the order of the ports does not affect any functionality of the workflow but is
often practical to avoid crossing connections and thus improve the visual appearance
of the workflow.
Reconfigure metanodes
To change the settings of a metanode right-click it and select Metanode → Reconfigure…
from the context menu. In the dialog that opens, shown in Figure 7 you can change the
metanode name, and add or remove input and output ports of any type.
To return the nodes within a component or a metanode into their original, uncollapsed state,
right-click the component or metanode and select Component (or Metanode) → Expand in the
context menu. To change a component to a metanode, under Component select Convert to
Metanode. Same works in the opposite direction to transform a metanode into a component,
selecting Metanode → Convert to Component.
The description of a metanode instead can not be manually changed and it is composed by
its name and a list of contained nodes type with the respective description.
Metanodes can also be executed, meaning that the nodes building up the sub-workflow it
contains, will be executed. However, since metanodes are only containers of parts of the
workflow they can not be configured. The state of the metanode is indicated by different
icons: a green tick and a yellow watch, respectively indicating if the metanode is executed or
not.
In metanodes, a dot close to the output port will indicate if output from that port is:
• Accessible ("green" dot), meaning that all the nodes building the sub-workflow branch
connected to that output port are successfully executed
• Connected but empty ("yellow" dot), meaning that the sub-workflow branch connected
to that output port did not produce an output
• Disconnected ("red" dot), meaning that the port is not connected to any sub-workflow’s
node.
Table 1. The different execution and output states of components and metanodes
Components
Successfully executed
Configured
All outputs connected
Execution failed
Contains unconnected
output
Breakpoint
Component Output
Component Input GroupBy Column Filter Execution failed
One branch failed
Metanodes
Successfully executed
All outputs available
Breakpoint
To change this you need to specifically allow the flow variable to exit or enter the component:
1. Right-click the component in the executed state and choose Component → Open from
the context menu
2. From inside the component right-click the Component Output node if you want a locally
created flow variable to exit the component, or the Component Input node to allow an
externally created flow variable to be available within the component
3. Add the desired flow variable in the Include column on the right pane in the window that
opens, shown in Figure 8.
In this section, we explain how to create a custom configuration dialog for a component
using Configuration nodes.
You can also change the order of the panes in the layout of the configuration dialogs. For
more details about how to do this please refer to the Layout of configuration dialogs section.
Configuration nodes
A Configuration node can provide input parameters for other nodes in the workflow. If you
use one or more Configuration nodes inside a component, the configuration dialog of the
component will show all these configuration options you created inside it in its custom
configuration dialog.
Configuration nodes enable different types of user inputs such as string input, integer input,
selecting one value in a list and more. You can find all available Configuration nodes in the
node repository under Workflow Abstraction → Configuration category, as shown in Figure 9.
They are divided into two categories, which are explained in the Table 2.
Input Nodes
Checked = true
Boolean Boolean values
Unchecked = false
Selection Nodes
Figure 10 shows, for example, the configuration dialog of the Value Selection Configuration
node, where you can define the input label, description, default selection option, and some
visual properties. Here, you can also define the name and default value of the output flow
variable, along with other settings to control the appearance of the custom dialog, if the
Configuration node is used inside a component, as explained in the next section.
Another node can access the flow variable output of a Configuration node, if the flow variable
output of the Configuration node is connected to it, as shown in Figure 11. The flow variable
created in the Configuration node as output, will then be used to overwrite the settings of the
connected node. To know how to do this, please refer to the Overwriting settings with flow
variables section of the KNIME Flow Control Guide. The value of the output of the
Configuration node is either its default value defined in the Configuration node configuration
dialog, or corresponds to the value provided by the user in the custom component
configuration dialog.
Value Selection
Configuration
Once you create a component, like the one shown in Figure 11, right-click the component and
select Configure from the context menu to open the configuration dialog, shown in Figure 12,
and configure the component’s parameters.
You can also combine different Configuration nodes in one component and have a more
Scripting Components
KNIME provides a possibility to implement desired component functionality through scripting
by supporting a number of scripting frameworks. You will also have the possibility to
integrate dependencies with the scripted component. Given below are the nodes that can be
used to script a desired component.
Node Description
All composite views on root level also define a web application, accessible
through KNIME WebPortal.
To inspect the composite view in KNIME Analytics Platform, as for any KNIME node that
outputs a view, right-click the component and select Interactive View: … after execution.
You can also customize the layout of the composite views. For more details about how to do
this please refer to the Layout of composite views section.
In the next sections we will explain how to use Widget nodes, Interactive Widget nodes and
View nodes to build a customized composite view.
Widget nodes
Widget nodes, similarly to Configuration nodes can provide input parameters for other nodes
in the workflow. However, unlike Configuration nodes, Widget nodes are shown as widgets in
the composite views. When inspecting the composite view in KNIME Analytics Platform in
the window that opens you can adjust the parameters, and on the right bottom corner of the
window:
• Click Apply to set these parameters for the current execution of the workflow
• Choose Apply as new default from the drop-down menu next to Apply button to set
these parameters as the new default parameters for the Widget nodes
• Click Close and, choose to either discard changes, apply settings temporarily or apply
settings as new default
• Choose to Close & Discard, Close & Apply or Close & Apply as new default from the drop-
down menu next to Close button.
Additionally, when the workflow is deployed to a KNIME Server via KNIME WebPortal they
allow you to set parameters for the workflow execution.
You can find all available Widget nodes in the node repository under Workflow Abstraction →
Widgets category.
• Input: you can use widgets in this category to input parameters of different type into the
workflow. For example you can input integers, strings, booleans, doubles, lists, but also
other formats like date&time or credentials. They are shown in Table 4.
Input Nodes
Checked = true
Boolean Boolean values
Unchecked = false
• Selection: you can use the widgets in this category to select input values from an
available list of values. For example, you can choose a specific column from a data
table, multiple columns to include or exclude from a dataset or select a value of a
chosen column to filter a data table. You can also enable the choice of single or
multiple values from a list, or a single value from a single column of a data set. They are
shown in Table 5.
Selection Nodes
• Output: you can use these widgets to either produce a link to download files or to
display images or dynamic text. They are shown in Table 6.
Output Nodes
• Filter: you can use these widgets to trigger interactive filter events in a layout of views.
In the next section these interactive widget nodes are explained in more details.
• Re-execution: you can use the Refresh Button Widget node to add a button widget with
configurable text to the composite view of the component. When the user clicks the
button it will emit reactivity events that trigger re-execution of the component
downstream nodes. In the Refresh Button Widget node section you will find more
detailed information on the functionality and outcome of the reactivity functionality of
the Refresh Button Widget.
You can arrange different Widget nodes in a composite view, enclosing them into a
component, where ideally you could adjust different parameters to be injected into the
workflow.
View nodes
You can use View nodes to visualize your data as charts, plots, tables or visualize your own
JavaScript code generated view. They are available in the node repository under Views →
JavaScript, shown in Figure 13.
These nodes can also be combined together in a component in order to build composite
views and dashboards.
One example of a component made of four different View nodes is shown in Figure 14.
Scatter Plot
Table View
Conditional
Box Plot
Pie/Donut Chart
When executing such a component and opening the relative Interactive View: … in KNIME
Analytics Platform, an interactive dashboard like the one shown in Figure 15 will appear. The
layout can be adjusted as explained in the Layout of composite views section and different
elements can be added like text or images, with the use of Widget nodes.
Figure 15. The composite view of a component combining different View nodes
composite view a reactivity event will trigger re-execution of the component downstream
nodes. This will result in the update of the visualizations of the composite view
corresponding to the Widget and the View nodes that are in the branch downstream to the
Refresh Button Widget node. To use the node, connect the flow variable output port to the
nodes which should be re-executed. The downstream nodes of those connected nodes will
also be re-executed when the widget is clicked.
Please note that the Refresh Button Widget works in KNIME Analytics Platform only when
using the Chromium Embedded Framework as browser for displaying JavaScript views. In
case Chromium Embedded Framework is not set as the default you need to configure it. To
do so go to File > Preferences and find JavaScript Views under KNIME. Set the first pane to
Chromium Embedded Framework (CEF) Browser as shown in Figure 16.
Figure 16. Setting KNIME Analytics Platform preferences to use CEF Browser for displaying
Views
The example in Figure 17 shows the workflow bundled in a component. The first branch
(yellow rectangle) has a Refresh Button Widget node, connected via flow variable port to a
Column Selection Widget node and a Box Plot node. The second branch instead does not
have the Refresh Button Widget node connected. In the resulting composite view is possible
to choose the columns to be plotted in the Box Plot views. When clicking the Refresh button
only the first Box Plot view is showing the selected column.
When the re-execution option is selected the Widget node will have the icon on the right
upper corner of the node, as shown in Figure 19.
Single Selection
Widget
Please note that the re-execution of Widget nodes works in KNIME Analytics
Platform only when using the Chromium Embedded Framework as browser for
displaying JavaScript views. In case Chromium Embedded Framework is not
set as the default you need to configure it. To do so go to File > Preferences and
find JavaScript Views under KNIME. Set the first pane to Chromium Embedded
Framework (CEF) Browser as shown in Figure 16.
nodes in order to build composite views where you are allowed to interactively filter the data
visualized in the View node(s) connected to them, acting on the different elements which are
integrated in the composite view.
This Interactive Widget node shows a slider in a composite view. You can define the column
to be filtered according to the slider and the range, together with different configurations and
settings, in the node configuration dialog.
An example about how to use this Interactive Widget node is available on the KNIME Hub and
is shown in Figure 20.
Interactive Range
Component Input Color Manager Slider Filter Widget Scatter Plot Component Output
Figure 20. An example component where the Interactive Range Slider Filter node is used
Two snapshots of the interactive composite view are shown in Figure 21. The range of values
that are filtered and plotted is adjusted with the slider.
Figure 21. Two possible snapshots of the interactive composite view of a component using
Interactive Range Slider Filter node
This Interactive Widget node shows a filter in a composite view. You can define the column
to which the values are filtered. You can also have different configurations for this widget like
choose a single or multiple values, and other settings, that you can configure in the node
configuration dialog.
An example about how to use this Interactive Widget node is available on the KNIME Hub and
is shown in Figure 22.
Interactive Value
Component Input Color Manager Filter Widget Scatter Plot Component Output
Figure 22. An example component where the Interactive Range Slider Filter node is used
Two snapshots of the interactive composite view are shown in Figure 23. The values of the
chosen column that are included or excluded and plotted is adjusted with the include/exclude
element on the top.
Figure 23. Two possible snapshots of the interactive composite view of a component using
Interactive Value Filter node
Plotly nodes
You can also have access to View nodes where plotly views are already implemented and
ready to use.
First navigate to File → Install KNIME Extensions… and install the KNIME Plotly extension
under KNIME Labs Extensions.
Now you find Plotly nodes in the node repository under KNIME Labs → JavaScript Views
(Labs), as shown in Figure 24.
• A layout consists of one or more rows. Each row can have up to twelve columns.
• A column can be resized when there is more than one column in a row
• One or more views can be added to a column
• By default the position of widgets and views in the custom view follows the position of
the corresponding nodes in the component sub-workflow, from top to bottom.
The visual layout editor, shown in Figure 26, consists of a left panel which shows a list of all
Widget and View nodes in your component that have not yet been added to the layout and an
interactive preview of the layout on the right.
6
2
7 3
To add a view, drag it from the left panel (1) to the desired position in the layout preview.
To add a column, click the '+' button (2) in the layout preview.
To resize a column, click and move the resize handle between columns (3).
To add a row, drag a row template (4) from the left panel to the desired position in the layout
preview. You can choose between different templates, e.g. 1-column, 2-column, 3-column or
you can add and remove columns later on.
To delete a view, column or row use the trash bin button (5). This is only available for
columns and rows when they are empty, i.e. do not contain widgets or views.
To move a view into another column drag it to the layout preview. Complete rows can also be
moved by dragging.
Note that nesting is possible. Columns can contain rows as well as views, those nested rows
can contain columns, rows, and views, and so on.
You can also adjust the height of the views. Each view has default sizing settings which can
be changed via the cog icon (6) in the layout preview. You can choose between automatic
height based on the content of the view or aspect ratio sizing (16:9, 4:3 or square). When
using automatic height it is possible to define minimal and maximal pixel sizes.
If you have switchable views or widgets within your component, for example if you are using
a Refresh Button Widget node combined with IF and CASE Switches, you need to insert all the
switchable views and widgets in your layout by positioning them within the same cell of the
Composite View Layout, as shown in Figure 27.
Figure 27. The visual layout editor of a component with switchable views
When building a component to be deployed as a page of a Data App you might want to give
the final Data App user the possibility to choose the type of visualization they want to see in a
specific position of the page. To do this you can use for example IF and CASE Switches in
order to enable the user to alternatively select a visualization. When building such an
application you need to insert all the View or Widget nodes that you might want to show in a
specific position on the page.
Legacy flag
On the left side of the Composite View Layout tab of the Node Usage and Layout window a
Use legacy mode button, number (7) in Figure 26, is available.
The Widget nodes user interface has been improved starting from KNIME Analytics Platform
version 4.2.
When creating components with KNIME Analytics Platform version 4.2 the legacy mode is
deactivated by default. This means that the composite views are visualized with the new
improved user interfaces for the Widget nodes.
Instead, for components that have been created using Widget nodes in KNIME Analytics
Platform version 4.1 and earlier, the legacy mode is activated by default. The composite
views will have the previous user interface as in KNIME Analytics Platform version 4.1 and
earlier.
It is always possible to check/uncheck the Use legacy mode checkbox to visualize the
composite views with old/new Widget node style. This is found in the Composite View Layout
tab of the layout editor for the component view, number (7) in Figure 26.
Alternatively, in the Advanced Composite View Layout tab of the layout editor, this property
can be enabled/disabled on a node-by-node basis (see (8) and (9) in the next section).
Advanced layouting
The layout structure is saved in a JSON format which advanced users can edit directly in the
Advanced Composite View Layout tab.
An example of JSON format generated by the visual layout editor is shown in Figure 28.
1
2
3
5
6
7
9
Row (1)
A row is the outer most element that can be defined and is the first element inside the layout
container. The JSON structure’s outer layer is an array of rows. A row contains a number of
layout-columns.
To further customize a row you can add optional fields. With additionalClasses you can
provide an array of class names to append to the created HTML row element,
additionalStyles (2) is an option to directly insert CSS style commands on the element. For
example, to create a visual separator between one row and the next, you can add a bottom
border:
The grey line that appears in the custom view output of the component is shown in Figure 29.
Column (3)
A column is a layout element inside a row which determines the width of its components. To
define a width, use a number between 1 and 12. 12 means taking up 100% of the width,
whereas 6 would be 50% of the width. In this way it is possible to define a layout with
components side by side by providing their relative widths. For example, if three components
are to be laid out horizontally with equal column widths use a row with three columns, each
of width 4. If the sum of widths for a particular row is larger than 12, the extra columns are
wrapped onto a new line.
It is also possible to define multiple widths of the columns so that they can adapt to the
screen size. With this option responsive layouts can be achieved.
To define the responsive width of a column, use at least widthXS and one or more of the
following fields: widthSM, widthMD, widthLG.
The content of a column can be an array of one of any of the following: . Another set of rows,
providing the possibility to create nested layouts . Regular HTML content, to insert plain
HTML elements into the layout . A node reference to embed the contents of a JavaScript-
enabled KNIME node.
As for rows, it is also possible to further customize the column using the optional fields
HTML content
It is possible to include plain HTML into the layout by placing a content element of type html
inside a column. To insert the content a single field value is used.
For example:
[...]
"content":[{
"type":"html",
"value":"<h2 >Title defined in layout</h2>"
}]
[...]
To embed the contents of a KNIME node inside the layout, you can use a content element
with type view. The element has quite a few ways to customize the sizing and behavior of the
content, which are explained in Table 7.
Referencing the node is done by the field nodeID (6), which takes the ID-suffix of the node as
a string argument. If nodes exist inside the component which are not referenced by the
layout, a warning message appears underneath the editor. Errors will also be issued for
referencing nodes twice or referencing non-existing nodes.
The content of each is wrapped in its own iframe element, allowing to encapsulate the
implementation and avoid reference and cross-scripting issues. As iframe elements do not
adapt to the size of their content automatically, you need to resize them to achieve the
desired behavior. To achieve this result you have the following options:
1. Size-based methods: This method uses an iframe-resizer library to resize the iframe
according to the size of its contents. You will need to explicitly or implicitly set a
concrete size for the content. You can determine the size using different approaches,
as explained on the iframe-resizer GitHub page. Size-based resize methods all start
with the prefix View in the JSON structure.
2. Aspect-ratio based methods: If a node view is set to adapt to its parent size, rather then
implicitly providing a size, the size-based methods will either not work properly. To
allow these views to take up an appropriate amount of space in the layout an aspect
ratio setting can be used. Here the width is taken as 100% of the horizontal space
available at that position in the layout and the height is calculated according to the
given ratio. Aspect-ratio based resize methods start with the prefix aspectRatio in the
JSON structure.
3. Manual method: You can also trigger manually resize events at appropriate times. This
requires the implementation of the node to make the appropriate resize calls itself.
In the table below a list of available fields to personalize the view content (7) is shown.
resizeMethod The resize method used to correctly determine the size of the
iframe at runtime. Can be any of the following values:
viewBodyOffset, viewBodyScroll, viewDocumentElementOffset,
viewDocumentelementScroll, viewMax, viewMin, viewGrow,
viewLowestElement, viewTaggedElement, viewLowestElementIEMax,
aspectRatio4by3, aspectRatio16by9, aspectRatio1by1, manual
autoResize Boolean only working with size based resize methods. Use this to
enable or disable automatic resizing upon window size or DOM
changes. Note that the initial resize is always done.
resizeInterval Number only working with size based resize methods. Sets the
interval to check if resizing needs to occur. The default is 32 (ms).
scrolling Boolean only working with size based resize methods. Enables or
disables scroll bars inside iframe. The default is false.
sizeHeight Boolean only working with size based resize methods. Enables or
disables size adaption according to content height. The default is
true.
sizeWidth Boolean only working with size based resize methods. Enables or
disables size adaption according to content width. The default is
false.
resizeTolerance Number only working with size based resize methods. Sets the
number of pixels that the content size needs to change, before a
resize of the iframe is triggered. The default is 0.
The parentLayoutLegacyMode (8) is activated (true) to allow all Widget nodes contained in
the component to use the legacy mode. Each individual Widget node can also be unset from
the legacy mode setting the option (9) useLegacyMode to false.
It is best practice to avoid the usage of Quickform nodes and use instead Configuration
nodes and Widget nodes. However, in case you are using Quickform nodes in your
components and you want to hide them you can do it in the Node Usage tab.
Check or uncheck the node in the WebPortal/Component View column to show it or hide it
from the composite view. Check or uncheck the node in the Component Dialog column to
show it or hide it from the configuration dialog.
Figure 30. The Configuration Dialog Layout tab of the layout editor
Here, you will find all the Configuration nodes that are part of the component. You can easily
drag and drop them to resort their position which then they will have in the component
configuration dialog.
• Click the arrow in the top right corner of the node repository
• In the menu that opens, select Show Additional Info. Now, the information on ability for
streaming execution appears next to the node names, as shown in Figure 31.
• If you select Show Streamable Nodes Only in the menu, only streamable nodes will
appear in the node repository.
Figure 31. Some nodes with additional info in the node repository
The execution can be performed in default or streaming mode which are described in the
next sections.
Default execution
In the default execution mode, the operations in a workflow are executed node by node. Data
are passed from one node to another after the entire input data of a node has been
processed. The dataset passed to the next node is the intermediate output table, which you
can inspect by opening the output table of a node in the middle of a workflow.
If you open the Job Manager Selection tab in any configuration dialog, and see the job
manager selection <<default>>, then the node operation is executed according to the default
execution mode.
Streaming execution
In the streaming execution mode, data is passed from one node to another as soon as it is
available. That is, all data do not have to be processed at once, but they can be divided into a
number of batches which are streamed one by one. Therefore, the streaming execution mode
leads to a faster in-memory execution because only the rows in transit are concerned and
intermediate tables are not stored.
To switch from default to streaming execution select Simple Streaming under the Job
Manager Selection tab in the component or node configuration dialog. If the streaming
execution option is not available for the node you will only see the <<default>> option in the
menu.
Here, for streaming execution mode, you can also choose the size of the batch to be
streamed, as shown in Figure 32.
Larger values will reduce synchronization, with better runtime, while small
values will assure that less data is in transit.
If you use the streaming mode to execute a component, the sub-workflow inside it is always
executed entirely. The intermediate output tables of the nodes inside the component are not
available, because they are not stored. Each batch of data is streamed one by one through
the streamable nodes of the sub-workflow. If they reach a non-streamable node they will be
stored there until all the batches have been streamed. Then they are again divided into
batches and passed to the next streamable node(s).
The component icon shows a dashed black arrow on the right bottom corner while the nodes
in the component sub-workflow show either three green right-pointing angle brackets >>>, if
they are streamable, or a red X, if they are not, as shown in Figure 33. The numbers that
appear above the connection between nodes refer to the number of records that have passed
that particular connection.
Error Handling
Error handling is a significant issue that needs to be addressed while building a workflow.
While executing a workflow, you might encounter various errors. For instance, a failing
connection to a remote service, the invocation of a non-accessible database etc. It is
necessary to provide an error handling method that alerts if a node execution fails. While
building a component, Breakpoint node as shown in Figure 34 can be used for error handling.
The node can be used to detect whether the input or configurations of the component satisfy
the minimum requirements. It can also be configured to provide a customized error message
to the user about what should be fixed if the component execution fails. Thus, when
specified conditions are not met the error message appears on the node and on the outside
of the component.
Sharing components
Components encapsulate functionalities that can be reused as your personal customized
KNIME nodes, to perform tasks that you often repeat, or you can simply store them for
further reuse for yourself. They can also be shared with others via KNIME Hub and KNIME
Server.
After you create a component in a workflow, if you would like to reuse it in some other
workflow you could copy paste it in to the new workflow. However, in this way, changes to
the component in one workflow are not triggered to the others. You can obtain changes to
the component to be applied to the others by sharing and linking components.
To share a component, right-click it, select Component → Share… from the context menu, and
choose the destination for the shared component in the window that opens, shown in Figure
37.
Please be aware that if input data are included they will be accessible to
everyone who has access to the component itself.
Link type
The link type defines how a workflow looks for the shared component when checking for
updates.
After choosing the destination of your component, a dialog opens asking you to choose for
the link type you want to use.
• Create absolute link: the workflow connects to the absolute location of the shared
component
• Create mountpoint-relative link: the workflow connects to the shared component based
on the folder structure under which mountpoint the workflow lives. If you deploy a
workflow to a KNIME Server you have to deploy the shared component as well, and
keep the path from the mountpoint to the component the same.
• Create workflow-relative link: the connection between the shared component and a
workflow where an instance of it is used is based on the folder structure between the
workflow and the shared component
• Don’t create link with shared instance: creates a shared component but does not link
the current instance to it.
The selected link type is used for the current instance and as default link type
for all other instances of the same shared component, created later on.
After selecting the proper link type click OK and the shared component appears in KNIME
Explorer, as shown in Figure 38.
When you open an instance of a shared component the background is grey and you can not
make any change.
To be able to edit the instance you need to first unlink it from the shared component. Right-
click the instance and select Component → Disconnect Link.
You can also trigger back the changes to the shared component, overwriting the changed
instance to it. Right-click the changed instance, select Component → Share, select the shared
component location and overwrite it. To find the location of the first instance of the
component right-click the current instance and select Component → Select in Explorer from
the context menu. This highlights the shared component in the KNIME Explorer panel.
To check if the instance of the component in use is the latest version of the linked shared
component, right-click the current instance and select Component → Update Link. If updates
are available a dialog opens asking if the current component should be updated.
When deploying a workflow to KNIME Server via KNIME WebPortal, the components on
workflow root level containing Widget nodes and View nodes are visualized as Data Apps.
Widget nodes
You can use Widget nodes inside a component to build a composite view that will be
visualized as a web page on KNIME WebPortal. The use of Widget nodes is meant to set
specific configurations, e.g. select a value from a specific column of a data table to filter by.
In the web page you will be then able to enter values for specific parameters before
proceeding with the workflow execution. These values are injected into the workflow, and
used to parameterize its execution.
You can find additional explanation on how to use KNIME WebPortal and how to build
specific workflows in the Data Apps for KNIME WebPortal section of the KNIME WebPortal
User Guide. Furthermore, to learn more on how to deploy interactive, composite views built
on KNIME Analytics Platform as Data Apps with KNIME WebPortal refer to the blogpost on
KNIME Data Apps Design.
The KNIME® trademark and logo and OPEN FOR INNOVATION® trademark are used by KNIME AG under license
from KNIME GmbH, and are registered in the United States. KNIME® is also registered in Germany.