When designing a form, users may try to reuse and get the data from another form for display or perform further calculations. By default, users can recall the data in the same application by Page Data Source (PDS) or by putting commonly used data in Core Data as all applications are able to access Core Data.
Data stored in Core Data are usually for normalization, making a standard on the platform structure and is retrievable to all users. If users want to share data that is only available to some group of users or applications, there should be another handling method.
To retrieve a particular form or application’s data to other applications, App Data Sharing in DragOnce is intended for this purpose.
Allowing other applications to access the data, settings should be configured in the source application, the application containing a form that shares their data to the target applications. Once a form is shared with the target application, it can be selected as a data source in many areas within the target application.
Human Resources (HR) Data Integration
Financial Accounting Data Utilization
Sales Performance Analysis
Data Consolidation Across Multiple Sources
Interdepartmental Data Sharing: Procurement, CRM, and Inventory
To configure ‘App Data Sharing’, go to the App List and scroll down to the application you would like to share the data to other applications and click more to open ‘App Data Sharing’.
In the App Data Sharing settings, a list of applications in the same environment will be listed for selection. The sharing of forms to different applications could be controlled here independently.
When a form’s data is shared to the target application, the source form could be selected in the Data Source dropdown in many areas, such as Page Data Source, Table Data Source and the Option Source of Dropdown, Selection Box, etc.
The shared form will be listed at the bottom of the Data Source list in the following format:
(From App Name) Page Name - Form Name
(Data Source Setting in Auto-complete, Selection Box and Dropdown)
(Data Source Setting in Form Table)
For example, a user would like to retrieve a value from other apps using Page Data Source, the user will be able to select the shared form from the dropdown once it is shared to the target application.
In the final step in Page Data Source, the user will map the source data widget to the current form widget. Similar to getting data in another form within the same app, the user is able to select the widget in the source form.
(Shared Form in the Source Application)
(PDS mapping setting in the Target Application)
The characteristic of Core Data is providing data to all applications in the environment. By default, all applications could retrieve data from the Core Data application, therefore, it cannot be the source or target in App Data Sharing.
If the data is intended to share with some selected applications only, ‘App Data Sharing’ on a specific application could be used for this purpose.
The majority of the source picking widgets or functions can choose the data shared by App Data Sharing. Still, some of the widgets or functions are not covered by App Data Sharing, below listed some of the limitations
Reference Table
The Reference Table was designed to build precise correlations between forms in the same application. So the data source of a Reference Table is limited to the same application.
Auto-Update Triggering
Forms shared by App Data Sharing only appear when choosing a data source for data display and retrieval, it will make no difference on the shared form. And the behaviour of Auto-Update Triggering is to update the selected form’s widget value. Therefore, it does not apply to this function.
Cascading Workflow Triggering
Similar to the above, App Data Sharing does not allow changes to the shared form. Thus, it cannot change the workflow state of a shared record.
There are normally three ways of using the shared data: retrieving the values using Page Data Source, showing values as a selection option or showing the data on a Form Table. If the user simply uses the above ways, the data can be retrieved without the concern of Runtime Permission to the shared forms of the application.
Retrieving Values
For example, a user Staff A just has Runtime permission to the Target Application but not the Source Application.
(Runtime User Role in the Source Application)
(Runtime User Role in the Target Application)
In a form of the Target Application, there is a dropdown that uses the source form’s widget value. In this level, Staff A is able to read and select the dropdown value as the source data is shared with the Target Application.
(Source form’s data as Target Application’s data source)
When a Form Table is configured to use the shared form as a datasource, Staff A can view all the displayed columns of records on the table. But when Staff A is trying to open the entire record, Runtime permission of Staff A to the source form will be checked. If the user does not have permission to access the data originally in the source form, It will be shown as Access Denied.
(Staff A opens Source Form’s record from Target Application’s form table)
Therefore, displaying shared data of other applications should be handled with care as different users could have different permissions towards Source and Target Applications.
Information !
To better control the data shared to other applications, the designer of the Source Application could create an independent form that only stores the necessary data. Then only share this form in App Data Sharing
Below demonstrating a simple case on how to use ‘App Data Sharing’.
Create a new application, name it as ‘Lunch Menu’ (Source Application) and create a page called ‘Lunch Menu’. On this page, the user will type in all the dishes in the form.
After building the page, save and preview the page. Then add some choices in the ‘Lunch Menu’ form.
Create another new application, name it as ‘Lunch Ordering’ (Target Application), add a page called ‘Lunch Ordering’. In this form, the user will order the lunchbox and the choice is referring to the dishes which were added in the Source Application form.
As expected, the dropdown list should contain the dishes name which are the records in the Source Application’s ‘Lunch Menu’ form. Therefore, App Data Sharing should be set in the source application.
Back to the App List, click on ‘More’ and select ‘App Data Sharing’ in the collapsed area.
Scroll down and find the Target Application’s name, click on the button beside ‘Data Share From’. Select the form(s) in the Source Application that is about to share with the Target Application and submit the changes.
Back to the target application’s ‘Lunch Ordering’ form. Open the widget property settings of the widget ‘Order Dish’.
In the Value section, select ‘Use Widget Values From Other Form’ as the Options Source Type.
Select the shared form as the ‘Data From Page’ and ‘Dish Name’ as ‘Widget’.
Save and preview the page ‘Lunch Ordering’. Click on the dropdown list ‘Order Dish’, the data shared from ‘Lunch Menu’ should display properly in the dropdown list.