We now have an INPUT(, ) function that can be used to define inputs that are dynamically “bound” to values via user input or via other actions that compose them.
This is a beta feature but available for anyone to try. If you run into issues please let us know. As always, we would love your feedback and suggestions.
This addresses two popular feature requests:
- Action: UPDATE EXISTING ROW(s) using values from this row with 92 votes, the top-voted feature request here in the user community
- Add an action that prompts an input box with 21 votes
This only works today for limited scenarios involving the SetColumnValue action being invoked from a Ref Action. There’s more coming that extends this mechanism to Add Row actions and to automation tasks.
Much of the basic AppSheet app interface uses “CRUD” operations — in particular, add/update operations on row data driven by the column structure of the tables. We automatically generate interfaces (UI or data change actions) for these CRUD operations based on the schema. Using these interfaces, end-users or application logic can “invoke” CRUD operations and pass in the appropriate “inputs” to configure them.
However, more advanced AppSheet interfaces use Actions (in UI and automation) and Tasks and Processes (in automation). Actions, Tasks, and Processes are logical operations rather than physical operations. We currently use expressions to configure the behavior of these logical operations. But so far, we had no mechanisms to pass dynamic “inputs” into them. It is important to do so as AppSheet apps have a compositional model — individual elements can be composed into more complex elements. In the case of actions, individual actions can be composed into complex actions. Inputs for actions are a mechanism to “parametrize” the logic so that the same action can behave differently depending on how it is composed.
See Dynamic inputs for data change actions | AppSheet Help Center for detailed description