Before we start, let us explain how this tutorial is organized:
The tutorial has 3 parts: Basics, Advanced, and Automation. This article starts the Basics part. At
the end of each article, there is a link to the next article.
The tutorial articles have many annotated screenshots of EasyMorph to help you navigate around the application. Some articles include
videos and examples. You're welcome to watch the videos, and download and explore the examples. By the way, most of
the videos in this tutorial are created by actual users of EasyMorph.
Many tutorial articles have a section named "Advanced topics". This section intended for users that already have some experience with
EasyMorph and are looking to deepen their knowledge of EasyMorph. Feel free to skip the "Advanced topics" sections if you're a beginner, or only
looking to get an idea about EasyMorph.
Overview and navigation
The basic concepts of EasyMorph
Actions (e.g. Filter or Sort) import and change data in tables, step by step
Actions have various properties (e.g. formula or file name)
Every calculated action has a result that implicitly becomes the input of the following action
Actions are shown in tables as a chain of pictograms. In EasyMorph you don't have to connect actions (transformations) with arrows every
time you add an action. It is implicitly assumed that if one action is followed by another, then the output of the former becomes the input of the
latter. Any action in EasyMorph can chain with any action. Actions in a table are calculated left to right.
Hint: Drag actions to re-order them or move from one table to another. Shift+click to select multiple actions. Right-click an action for the action context menu.
You can click consequent actions in a table one after another and see how the table data changes step by step. It's like a "time machine", in a way.
When an action is selected (clicked) its result is shown in the datagrid, and its settings are shown in the sidebar on the left (see
screenshot below). The datagrid shows the whole result of an action (even if it's millions of rows), not just a preview with a few top rows.
In the status bar, you can see the number of columns and rows in the input and output of the selected action.
Hint: Tables can be maximized, minimized, resized, and dragged around similarly to windows in Microsoft Windows.
Some actions (e.g. "Export to Excel") don't transform data because they perform an external operation such as
Export to a database or Sending an email. The output of such actions is always the same as the input. External actions are explained
later in the "Automation" part of this tutorial.
Adding data and applying transformations
The two most frequently used buttons in EasyMorph are "Add data" and "Add action" in the "Main" menu (see below).
Before data can be transformed in EasyMorph it should be loaded into EasyMorph first, which is usually done by pressing the "Add data" button. After
EasyMorph loads data (a respective import action is created automatically), press the "Add action" button to apply a transformation (action) to the loaded
Later in this tutorial, we will explain how exactly different types of data can be loaded, and what actions can be applied. For now, just remember that
"Add data" loads data into EasyMorph and "Add action" adds a transformation step (action). As simple as that.
Data persistence and locality
Tables and actions form an EasyMorph project. A project can be saved into a file with the ".morph" extension. EasyMorph doesn't
store data in project files. Data is loaded and kept entirely in memory when a project is run. When EasyMorph is
closed, all the data it worked with is erased from memory. All calculations are performed only in the computer that runs the project. No data is sent
to the cloud or another computer (unless you explicitly instructed EasyMorph to do it).
A quick demo of EasyMorph.
Watch a similar video in
EasyMorph comes with a few pre-installed examples that you can see on the Start page of the application. Every example comes with a
detailed description and explanation. The examples also include the "Inc5000" example shown in the video above.