Hi everyone!
Hot on the heals of the GA release for Expressions, Iām thrilled to announce the launch of the Public Preview for Apps and Data Service Integration. Just like Data Serviceās existing integration with Studio, you can now import entities directly into Apps and interact with them natively. With the new integration you can:
- Build faster apps
- Centralize your automation data into a single source of truth
- Ensure that critical business information is not being left on user or robot machines, file shares, or other storage services
- Bring powerful no-code data modeling and storage capabilities to your automations and apps
Example
To help you understand some of the amazing new capabilities introduced with direct Data Service integration, weāve put together a sample Todo list app - backed entirely by Data Service.
Setup
- Import UiTodoSchema.json (2.8 KB) into Data Service.
For details about how to do this, check out @Karanās recent post on Schema Export/Import. - Download the UiTodo.uiapp template (447.3 KB)
- Navigate to Apps in Automation Cloud and click āBuild a new appā
- Name your app (eg: āUiTodoā), click the āImport from fileā link, and select the
.uiapp
template you downloaded earlier. - Tell App Studio where to find your recently imported Entityā¦
- When you import an app template that uses external dependencies (like processes, entities, storage buckets, etc) any missing dependencies will be flagged on the Tree View.
- Since youāve already uploaded the
Todo
Entity this app depends on, Apps will automatically suggest which Entity to use when replacing this dependency in your app.
Run it
Before walking through this app in detail, try running it first to familiarize yourself with the runtime experience! You wonāt have any data to start, so why not go ahead and create some todo items for yourself
App breakdown (how was it built?)
Homepage
The Homepage allows you to create new todo items and view outstanding items.
The top of the page is a small form that allows you to enter a new Todo item (and some optional details). The āClicked Onā event for the Add button uses the new Create/Update Entity Record rule to push a new record to Data Service:
The Todo list itself is displayed as a single-column table, which is linked to the Todo entity using a Filter
function to only show the end user records that where (1) created by the current user and (2) have not yet been completed.
When you select an item from the Todo list, you can edit it or add Todo details. To save these details, we use the same Create/Update Entity Record rule as before, only this time instead of specifying the entity type we want to create, we use the Lookup
function to update a specific record. In this case itās the entity record Id
that is equal to the Id of the selected record in our Todo table (TodoTable.SelectedValue.Id
):
When updating a record, you can choose to only pass in fields that you wish to update, and thatās exactly what we do for the āClicked Onā event for the āMark Completeā button:
Archive
The Archive page allows you to view completed items, mark them incomplete, or delete them from Data Service entirely. Similar to the homepage, there is a single-column table here that contains completed todo items.
To delete an entity record, we use the Delete Entity Record rule (big surprise there ). Similar to our update scenarios, we use the Lookup function to get the entity record that we want to delete:
Development Patterns
Now that Apps can read/write directly to Data Service there are some really interesting new architecture patterns. (ps I canāt be the only one that gets excited saying ānew architecture patternsā?!)
Backend Systems <-> Unattended Robots <-> Data Service <-> Apps
This is a great option if you want to have a speedy runtime experience and donāt need your data to be real-time. You can use Unattended Robots to pull data from pretty much anywhere into Data Service where it can be easily queried by Apps. Apps then performs operations directly on Data Service and then your Unattended Robots are triggered to write data back to whatever system of record. (Or you can do a 1-time ingestion of data into Data Service and use that and your system of record)
Robots <-> Data Service <-> Apps <-> More Robots!
Want 2-way communication between Apps and your Robots? You can now do this for Attended processes How? Attended processes write data to Data Service and send incremental status updates. When the apps receives a status message it loads in data from Data Service, allowing you to read rich data from the process while the process is still executing!
Documentation and Learning Resources
To recap, with the public preview release of Apps + DS weāve introduced 3 new expressions to help you retrieve data from Data Service:
-
Filter
your data where the fields match a given condition. -
Sort
your data so that it is ordered by a specific field or fields. -
Lookup
get the first record that matches a given condition.
Weāve also introduced two new rules for create/update/delete operations:
To learn more, check out the detailed documentation:
Preview Limitations
- During the public preview, we donāt support pagination. Youāll be limited to retrieving a maximum of 1000 records.
- Custom List does not yet support using expressions for Filtering/Sorting data.
- File and Choice Set fields are unsupported
Your feedback is important to us!
Weāre excited to learn from you! Share your ideas, use cases, suggestions and questions with us.
We canāt wait to see what you build