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.

  • Parameters

  • 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

  • System Data Group

  • 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.