Appboard/2.4/builder/widgets/actions/write static value

Revision as of 18:53, 1 May 2014 by imported>Cmace (action filtering based on data source, not data collection)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The "Write Static Value" action provides a way to write a static value back to the data source based on the selected item. This action only works if the data source supports updates, and is configured appropriately if required.

A simple example and use of this action would be to set an acknowledged flag on a selected ticket in a table widget. In this case either a database table or query would be configured to retrieve the list of tickets, a widget configured to show the tickets, and the action created to set a specific field in order to mark it as acknowledged (e.g. the setting the "Acknowledged" field to "Yes"). See the example use case further down this page.

As with any widget action it's possible to configure these in context, multiple actions if it's desired to set multiple fields, and action menus can be built if different operations need to be presented to the end-user.


Supporting Data Source Types

Data Source Type Details
CSV file/dir no configuration required on data source
Database Table automatic for entities with primary keys defined
Database Query each entity (query) needs a specific SQL update statement defined


How To Create a Write Static Value Action

For instructions on adding an Action to a Widget, see the general instructions in How To Create an Action in a Widget.


How To Configure a Write Static Value Action

Perform the following steps to configure the "Write Static Value" Action for a Widget:

  1. Follow the instructions above to create the Action in the Widget Actions panel.
  2. Name: Enter a name for this Action. For convenience, a default name is provided. The Name is not used anywhere else in AppBoard, and only displayed on this configuration page.
  3. On selection of:
    1. Select "any" or "specific" for the type of data selection by the User that will trigger the Action. When selecting "specific", perform the following additional steps:
      1. Click the Filter button. The Filter Editor is displayed.
      2. Click Add Rule to create one or more rules that indicate what data should trigger the Action, when selected.
      3. Click Close to save the Filter settings.
    2. Select the Data Source name. When the Widget is run, selection of data in this Data Source will trigger the Action.
  4. Enter the following information:
    1. Field Name: Select the name of the field for the user-selected record that AppBoard will update.
    2. Value: Enter the value that AppBoard will write for the indicated field in the user-selected record.


Sample Use Case

Suppose ticket data is retrieved via a database query to a ticketing system. The query could be something like this:

select TicketID, CustomerID, `IP Address`, Error, Acknowledged from TicketTable

And the raw data returned from the query:

TicketID CustomerID IP Address Error Acknowledged
41211 0001 172.21.38.220 License Expired No
41212 0001 172.21.38.226 Server Not Responding No
41213 0002 172.26.11.101 Slow response time No
41214 0002 172.21.38.105 License Warning Yes
41215 0002 172.21.38.313 Temperature too high Yes


Within AppBoard the administrator creates a Table widget driven by this data but also configures a client side filter to filter out rows that have already been acknowledged, saving the end-user some time by only showing the outstanding tickets. Therefore the sub-set of tickets the end-user sees would be:

TicketID CustomerID IP Address Error Acknowledged
41211 0001 172.21.38.220 License Expired No
41212 0001 172.21.38.226 Server Not Responding No
41213 0002 172.26.11.101 Slow response time No


Finally, the administrator configures a Write Static Value on the table widget and sets the Field Name to Acknowledged and the Value to "Yes". When this happens the field is updated back to the database and all end-users will no longer see the ticket on next data collection refresh as it will be filtered by the client side filter.

In order for this to work it would also be necessary to configure an Update Statement on the database query. Note the :fieldName is substituted by the fields from the selected row or the static value of the action if that particular field is the configured Field Name.

update TicketTable set Acknowledged=:Acknowledged where TicketID=:TicketID