Model Design
When an app is opened, the Excel Templates view is open by default.
Every Nooxl App consists of one or more templates in which the end users work. The access to a template is done by the users via the left navigation of the app.
Select a dataset and List of all existing datasets
For each template there are two possible actions that the user can directly perform:
Clicking on the templates name will open the dataset selection for the template .
Clicking on List, will List all existing datasets .
This is the default behavior of Nooxl. The functionalities can also be configured in exactly the opposite way per account. In this case, "More" is displayed on the right instead of "List".
Dataset selection
The following functionalities can be used in the dataset selection:
- Jump to the list of existing datasets .
- Depending on the configuration of the selections of the dataset, a click on !](../media/f52fc256d7445205ff6a9d33bcaf25d6.png) opens a menu where further [elements can be created, edited or deleted .
- Depending on the configuration of the template, there are different selections that describe a dataset. There can also be templates without any selection, in which case there is exactly one dataset.
- If an element is selected for each of the available selections of the template, the View button turns green and can be clicked to load the selected dataset.
- A click on this button opens a menu through which the following additional functions can be accessed:
- Copy data from another dataset
- Recalculation of datasets
- Import data via a template
- Mass export of datasets
- This dropdown lets you switch between selection releases. Older selection releases let you access older major versions of the template (7).
- This menu lets you choose an older version of the template .
- When you click on the templates name, you will go back to the navigation with all the templates.
List all existing datasets
The list of existing datasets shows one row per dataset and contains different information about each dataset in the columns.
A click on an entry in the list opens the dataset in a new tab of the workspace.
Configuration of the columns
The displayed columns are freely configurable by the users. To do so, click on the column symbol (1) and then tick the columns to be displayed (2). As soon as the selection is complete, the selection window can be closed again by clicking on the "x" (3).
The available columns are on the one hand standard columns, which are always present, and on the other hand every selection of the dataset selection is available as a column.
Column | Description |
---|---|
Id | The Nooxl internal Id to identify the dataset. |
User | Display name of the user who last used the dataset. It is irrelevant whether the user has also changed the dataset and/or saved this change. A simple display is sufficient to store the new user name in the list. |
Save date | Date on which the user saved the dataset. The date format corresponds to ISO 86012 (YYYY-MM-DD). And time at which the user saved the dataset. The format corresponds to the extended time format of ISO 86013 without seconds ([hh]: [mm]). |
File version | The version number of the template that was used to save the dataset. |
Access | The following columns always consider the current user. There is a ticket checkbox for each of the different permissions you can set up in the workflows of Nooxl. The message contains whatever was is stored for the current user in the AssignText column of the workflow . |
Save | |
---|---|
Delete | |
ToDo | |
Message |
1: Standard columns of the list of existing datasets
Search for a dataset
You can filter the datasets by searching for values in the columns.
Note that you can change the search type depending on the column, by clicking on the . For example you can search for all datasets saved between to date/ times by changing the type to between and giving a start and end date.
Saving and interacting with saved column configuration
The last column view set up is automatically saved for each user and used in the future. In addition, each user can also configure and save any number of other column configuration, so that different views can be pre-configured for different use cases. These views can be made public so that other users of the app can use the same column view.
The steps for saving configurations are:
- Opens the menu to interact with column configurations (create new, delete, modify, publish, etc.)
- A click on New creates a new view, which can be named.
- Opens a selection menu with all available views.
- A click on the disk saves the current view. This button is not available in the <autosave> view.
- Marks the current view as the user's default view, which is selected as default when the list of datasets is opened.
- Makes the current view available for other users of the app.
- Renames the current view.
- Deletes the current view.
Grouping the datasets
Besides the pure list view, columns can also be used to create groupings. To do this, simply drag and drop the desired column header into the designated area.
There must be at least one column in the table. The order of the hierarchy can be changed at any time by drag and drop.
Deleting a dataset
To permanently delete a dataset of a template, the selection mode must be activated (1). Then the datasets to be deleted can be selected in the list (2) and deleted by clicking on the trash can (3).
Before deleting, Nooxl asks again if the selected datasets should really be deleted. A click on Yes then deletes the dataset(s).
Copy data from another dataset
Copying datasets is useful if, for example, you want to start a new planning session but want to build on the planning of the last session and do not want to restart it completely.
To copy datasets, click on the three blue-grey horizontal lines (1) in the dataset selection of the template and then select the entry "Copy data from another dataset" (2) in the menu that opens.
In the opening mask you have the following setting options:
This is the target dataset to which the data is copied.
This is the source dataset whose data is copied to the target dataset (1).
If your dataset selection has several selections, it may be useful to select the "All" option.
If this option is not active, existing data in the target dataset (1) will not be overwritten. This means that only data from cell stores that are not filled in the target dataset will be enriched by the data from the source.
If this option is active, only "filled" cell memories from the source dataset are copied to the target. If this option is not activated, data in the target would be overwritten with "nothing".
If everything is set, click on Copy to start the copying process.
At the bottom of the screen you will be informed that the copy process has started in the background (1) and at the top you can see the progress (2).
The copy process takes place on the servers of Nooxl, which means you can switch off your computer and Nooxl continues the process without you.
Recalculation of datasets
A recalculation of datasets is always necessary if
- uploaded a new template with modified Excel logic in Nooxl, or
- have connected new cell memories whose values are to be used in other templates.
To recalculate datasets, click on the three blue-grey horizontal lines (1) in the dataset selection of the template and then select "Recalculate datasets" (2) from the menu that opens.
Depending on the use case, mark in the available selections that all containing elements (1) are to be calculated and then click on the Recalculate button (2).
At the bottom of the screen you will be informed that the recalculation was started in the background (1) and in the upper area you can see the progress (2).
The recalculation takes place on the servers of Nooxl, this means you can switch off your computer and Nooxl continues the calculation without you.
Import data via template
If you regularly receive data from third party systems as Excel, CSV or TXT files, you can create an import and migration template to extract, transform and load the data into Nooxl (ETL process). In this way, recurring similar data imports can easily be imported into Nooxl by your users.
The following articles are available on this topic:
How to import data via template
When a template is set up with a data import and migration template you'll see a third option in your dataset actions menu:
The dialog Import data lets you choose an import template (1) and select the file (2) containing all the data. Once you have selected a file, a button to upload the data appears.
After the upload is complete, the template will open with an additional sheet. When you click on this sheet, you can see the actual data contained in your upload file.
To finish the import process, click on Save.
Create Migration Template Dialog
For CSV and TXT files
Name
The name of your Import template. This will be shown to the users in the Nooxl dialog "Import data":
File
A file selection dialog, were you need to point Nooxl to the actual excel import and migration file.
Import document type
CSV [csv, txt], max. 10 MB
is set here.
CSV separator
By default Nooxl recommends the comma as separator, since CSV is short for Comma Separated Values. However, some systems use a pipe symbol ( | ) or something exotic as the column separator, so here you can specify it.
Culture (en-US, de-DE,..)
The ISO 639-1 language code of the data you are dealing with. Essentially, this is where you tell Nooxl what to expect as decimal separator for numbers and what the date format looks like.
Has Header
If your data comes with a header row, check this option.
UTF7 Format
When this option is not set, the file is treated as an ANSI encoded file, which is okay for most data extracts. However, when you deal with special characters, your file is probably encoded with UTF-7 or UTF-8 and you want to tick this option in order to ensure that the special characters get imported correctly.
Name of the linked data file in the template (e.g. data.xlsx)
The name of the Excel data example file you used to create your import and migration template with. This string will be replaced with whatever the actual name of the import file is, which the user is trying to upload.
When you create an import and migration template based on a csv or txt file, you will do this as well with an Excel file as your example file. Please make sure, that the sheet, in which your data is located, is called CSV (all caps).
How to create an Import and Migration template
The following article will guide you through the process of how to create an import template for your Nooxl App. It will demonstrate the underlying concepts, which you can then apply to your specific use case.
The following schema illustrates the import and migration process.
Step 1: View your source file with the raw data
First of all, we need to take a look at the data source provided to us, so we know what we are dealing with. Nooxl supports *.txt, *.csv and *.xlsx files as data sources.
In our example we will deal with travel expense data provided as an Excel spreadsheet by the travel agency of our company.
Please download the example file data for import.xlsx if you want to follow the guide.
In the file you will find the travel expenses per employee on a monthly basis. Additionally, the department of the employee is mentioned.
Step 2: Decide which data you need
Most of the time, you'll deal with files which are not tailored specifically for you. Typically, the files will contain information you do not need and which you want to discard on the way into Nooxl. This will dictate the layouts of your Nooxl template and your Import template.
Our travel expense example has detailed data per employee, but we only want to know the total travel expenses per department per month. So this is something we will need to transform in our Import template.
Step 3: Create your Nooxl template and store your data
In this step we create the Nooxl Template used to load the data, which is the template on the right side in the process scheme at the top. It will also be the base for the import and migration template in the middle.
As mentioned in the last step, we want to store the travel expenses per department per month in Nooxl. As the layout we could choose a tabular layout, but we will go for a X-/ Y-axis approach.
Department | Month | Sum of travel expenses |
---|---|---|
Management | 2020-01 | 1234 |
Management | 2020-02 | 5678 |
... | ... | ... |
2: tabular layout example
↓ Department / → Month | 2020-01 | 2020-02 | ... |
---|---|---|---|
Management | |||
Marketing | |||
Sales |
3: X-/ Y-Axis approach
Create the two catalogs for the two dimensions
For the Nooxl template you will need two catalogs (Department and Month), with the following elements :
- Month
•
•
2020-01
2020-02
- 2020-03
- 2020-04
- 2020-05
- 2020-06
- Department
- Management
- Marketing
- Sales
Create the Nooxl template in Excel
The Nooxl template will look really simple, as it consists of just four cells.
You can download it here.
!](../media/c8bd82537f348e86c7163c43e80351c2.png)Select the cell and click on ![ to create a new cell storage entry for the cell. Give your
cell storage a meaningful name and click on create.
Open the database mark in the right hand tools section and activate the advanced mode.
In the advanced mode set up the two catalogs as the vector right and vector down.
Set the Expanse option to Insert complete lines (1) and to Copy cells with size from dataset 1 (2).
When you now take a look at the template in Nooxl you'll notice that the rows and columns have been inserted, but the labels are missing:
Read the catalog element names
To fix this issue you need to add two more values to your cell storage and set them up as follows:
Department | Month | |
---|---|---|
Cell Entry Name | Departments | Months |
Content Type | dataset | dataset |
Content Source | CONDITION | CONDITION |
Dimension | Down | Right |
Property | ELEMENT_NAME | ELEMENT_NAME |
Storage | READ | READ |
---|---|---|
Offset Columns | 1 | 0 |
Offset Rows | 0 | 1 |
Cell Style Auto | deactivate | deactivate |
We get the desired result.
Step 4: Alter your template to read data from the source file (create the import template)
In design mode you need to download your template. This will serve as the base for the import and migration template. Open up the template as well as the file with your import data and place them next to each other:
Go ahead and create an Excel logic in the cells making up your cell storage (in the example ), which is
able to extract the data from your source file. For the example file the formula could look like this:
=SUMIFS(
'[data for import.xlsx]Sheet1'!$D:$D; '[data for import.xlsx]Sheet1'!$A:$A;$B3; '[data for import.xlsx]Sheet1'!$C:$C;C$2
)
To test your formula you are of course allowed to insert test values in C2 and B3 :
As soon as you are finished:
Save your file.
data for import.xlsx
Make a note of the file name of your raw data (the string between the brackets in your formula). In the
example this is
Close the import template.
Close the file with the raw data.
Step 5: Upload your import and migration template
In Nooxl, go to the dataset selection of your template and activate the design mode of your app.
Open the Version Management of your template.
Open the section Migration/Import (1) and click on Add a new migration template (2).
Give your template a name (1) and point Nooxl to the file from the previous step (2). For the import document type you need to specify the type, which is either Excel or CSV (this includes TXT files) (3). The field Name of the linked data file in the template (e.g. data.xlsx) (4) wants to know the name of the import file you used to create the migration template. This is the name between the brackets from the last step you needed to make a note of. When you are all set, click on Upload (5).
Step 6: Test the import
In the context menu Actions (1) of your template you will now find a new entry called Import data from Excel via template (2).
Click on it, choose your import template, point Nooxl to the file with the raw data and click on Upload. You can see the aggregated data of your raw file as well as the raw data itself (last tab). Right now the data is not yet stored, so you need to click save to finish the upload process.
When you click on Reload Calculation you will see that your data was successfully stored in the Nooxl database.
Congratulations, now when the travel agency sends you new data next month, you can easily import the data into your Nooxl app and use it in your templates.
Tips
Dealing with dates
DATEVALUE()
When you deal with dates in your raw data, please make sure that you convert those into real date data
types in your migration template. This can be done with the Excel formulas and .
If you don't do this, it is possible that your migration template will just discard the separators ("." or "/"
for example) and you end up with strings in the form
Dealing with special characters in txt and csv files
, but not actual dates.
When you have trouble with special characters like "&", "ä", and others, please make sure to activate the UTF7 Format option when you create the template:
Sheet name when creating a csv/txt based import and migration
When you create an import and migration template based on a csv or txt file, you will do this as well with an Excel file as your example file. Please make sure that the sheet, where your data is located is called
(all caps).
Execute imports via JobRanges
As mentioned in the article about JobRanges , you can have an import be part of your job.
Setting up an import job step
First of all you need to follow the instructions in the article about JobRanges to set up a job
in your template.
When you are done you need to create a cell storage in your template which will allow the users to upload the file with the data you want to import.
In the design mode of the template go to the markup for your document. Active the Advanced Mode (1),
add a fifth value (2), name it DocId (3) and get the that it will printed right next to the cell storage (5).
property for the uploaded file (4). Make sure
Then reload the template and write down the documents Id.
Now you have all the information you need to fill in everything for your jobs step.
Column | Description |
---|---|
Job-Name | Any name you feel suitable for your import. |
Job-Type | MatrixDataCopy |
Run | 1 if it should run. You can make this field editable for the user by changing the background color, to enable him to decide if the step should run or not. Another option would be to insert an excel formula to decide if it runs based on certain parameters. |
Parameter 1 | Here you need to insert the name of your import template, as it is shown in the navigation. |
| Column | Description |
| | |
Column | Description |
---|---|
The migrationDocId (line 5) is the number from the last step. |