Read and Write Containers
Read and WriteContainers form an abstraction layer that allows you to define, on the pages of an application, which data is read and where it is written. ReadContainers are used to read data, and WriteContainers are used to write data.
The "ReadContainer" and "WriteContainer" sections can be shown or hidden via the "View" main menu. When you select an application page in the application structure, the Read or WriteContainer section displays which containers are defined for that page.
A ReadContainer is used to read data from the data group in which the respective application page is located. With WriteContainers, data can be written to any data group within the same application. It is also possible to integrate your own Java classes using custom ReadContainers or WriteContainers. You can find information on this topic in our Academy seminars.
ReadContainer
Each application page has exactly one ReadContainer for the data group in which it resides. Exceptions are the view pages on the first level of the application structure (directly below the application node) and pages in a system data group. There are no ReadContainers here, and none can be created.
In addition to the ReadContainer already defined for application pages that are part of a data group, you can create custom ReadContainers that allow you to integrate your own Java classes.
Add ReadContainer
Opens a dialog box where you can create a new custom ReadContainer.
Name
The name of a ReadContainer is usually the name of the data group whose data it reads. The name can be changed as desired, but it should be unique. If this is not the case, a corresponding message will be displayed.
Type
For a ReadContainer, you can select the "Custom" type here. Any number of ReadContainers of this type can be created.
User-Defined Class
Here, you can integrate your own Java classes for the "Custom" type, for example, to read data from a specific database table. For more information on this topic, please attend our Academy seminars.
Click "OK" to create a new ReadContainer and close the dialog box.
Edit ReadContainer
You can find all the information here.
Delete ReadContainer
Deletes the currently selected ReadContainer.
Bindings
Bindings link the data read by ReadContainer to the application elements on the page. This section lists all application elements that have a binding.
Delete Binding
Deletes the currently selected binding.
Features
For each ReadContainer, you can access the properties by clicking "Edit" under "
."
In addition to the name of the ReadContainer, you'll also find its type here. The following types are available:
-
Data Group
This type is used for the default ReadContainer, which is automatically created for every application page that is part of a data group. The name of such a ReadContainer is formed from the prefix "READ_" and the name of the data group. Generally, the data group type is used for containers that provide the data from a data group.
-
Multi-Input
This type is used for freely formatted tables that appear on the page. For every custom table, exactly one ReadContainer of the "Multi-Input" type is automatically created on the page where the table is located when the table is generated. The name is formed from the prefix "READ_" and the GUID of the custom table. This also applies to WriteContainer.
-
Custom
This type is used for ReadContainers that incorporate custom Java classes.
If the page is part of a data group, you'll also find the application and data group from which the data is read here in the ReadContainer properties.
Filter Criteria
The source and destination of the ReadContainer are specified in the lower section of the properties. By clicking "Edit Filter Criteria" at
, you can access the filter settings for the "Data Group" and "Custom" types.
For the "Data Group" type, these criteria are usually already pre-filled appropriately. The filter criteria tell the page which record to display. Filtering data using filter criteria is equivalent to the WHERE clause in a SELECT statement in a database query. Since a page in a data group is intended to display only a single record, not all combinations of source and target values are available for selection when editing the filter criteria in every situation. This prevents a query from returning more than one record, which would cause an error when loading the page. For the "Multi-Input" type, the filter criteria are disabled because the display of data in a customizable table is controlled by the pages embedded within it.
You can copy the selector's GUID to the clipboard by clicking the button shown on the right.
Source
This defines the source of the value to be compared with the target values. The following sources are possible:
-
Control - Here, you can select an application element on the page.
-
Data field—you can also select the desired ReadContainer here
-
Session / Request / Processing Context
-
Static value
-
Velocity Script
-
Current User - allows you to select the desired user data
-
Other - You can enter the name of your parameter here
Objective
Displays the target against which the values defined in the source are compared. If there is a match, the corresponding record is displayed.
WriteContainer
For each application page, a WriteContainer is automatically created for the data group in which it is located. WriteContainers can be created on all pages except view pages at the first level of the application structure (directly below the application node). A record cannot be deleted from a page without a WriteContainer.
In addition to the WriteContainer already defined for application pages that are part of a data group, any number of WriteContainers can be created.
/ Edit WriteContainer
Opens a dialog box where you can create a new WriteContainer or edit an existing one.
Name
You can enter the name of the WriteContainer here; it should be unique. If this is not the case, a corresponding message will be displayed.
Type
Select the desired type here. The "Data Group" type allows data to be written to any data groups from the current application. If you select the "Custom" option, the appearance of the dialog box will change.
User-Defined Class
You can include your own Java classes here. You can also choose from "Session" and "SharedState," as well as tenants (SelectedTenants). For more information on this topic, please attend our Academy seminars.
Click "OK" to create the new WriteContainer and close the dialog box.
Delete WriteContainer
Deletes the currently selected WriteContainer.
Bindings
Here, you can add or edit any application elements that have a binding. Elements can also be moved from the workspace to the bindings area using drag and drop.
/ Edit Binding
You can find all the information here.
Delete Binding
Deletes the currently selected binding.
Move to the top /
Move to the bottom
You can use the arrow buttons to change the order in which the bindings are processed.
Features
The properties of the WriteContainer are the same as those of the ReadContainer.
In addition, the WriteContainer has a "Trigger Process" setting. This setting is already enabled when a WriteContainer is created. This causes data group event handlers that listen to the same data group as the WriteContainer to be automatically triggered when the "Add Record," "Save," or "Delete" are performed in the browser on the page containing the WriteContainer. If this setting is not enabled, the event handler will not respond and will not trigger the subsequent process steps. This setting is helpful, for example, for wizards that guide the user through multiple input pages in the browser. This option allows you to configure the system so that the event handler is not triggered until the last page of the wizard is saved.
The source and destination of the ReadContainer are specified in the lower section of the properties. By clicking "Edit Filter Criteria" at
, you can access the filter settings for the "Data Group" and "User-Defined" types.
Filter Criteria / Binding
This dialog box is used for both editing filter criteria and editing bindings.
The filter criteria tell the page which data record should be saved. Filtering data using filter criteria is equivalent to the WHERE clause in the UPDATE statement in a database query. Since a page in a data group is intended to write only a single record, not all combinations of source and target values are available for selection when editing the filter criteria in every situation. This prevents a request from processing more than one record, which would cause an error when saving the page. For the "Multi-Input" type, the filter criteria are disabled because writing data to a custom table is controlled by the pages linked to it.
Source
Displays the source of the filter criterion. The source corresponds to the value by which the data in the data group should be filtered. You can find all the information about the various sources here.
Objective
Displays the target against which the values defined in the source are compared. If there is a match, the corresponding data record is selected for writing the data.
Use "Use for" to select the desired mode: "Modify and Add Record," "Modify Record," or "Add Record."
Copying Files - Bindings
Files can be copied using a WriteContainer. You can find detailed instructions on this in our Tips & Tricks article, "Copying Files Using WriteContainer. "
Container / Data Field
This is where you specify the source of the file(s) to be copied.
Target Data Field
Select the file data field here where you want to save the copy.
Use for
Here, you can select the desired mode—“Edit and Add Record,” “Edit Record,” or “Add Record.”
Number of source files to copy
Enter the number here. If the value is "-1," all files contained in the dataset are copied.
Source File Name Filter
Here, you can filter the source files by name. "*" selects all files.
Count / Apply filter from
If a number or filter has been specified, you can use this option to determine whether the copy process starts from the beginning or the end of the source files.
Copy Mode: Target File(s)
Select the desired copy mode here.












