The FOEX Live Addon

Overview

The FOEX Live Addon introduces live editing capability within the grid, tree grid, and editable list view plugins. You will be able to see realtime changes and a realtime visualization of other users modifying data in the same view of data you are viewing.

This is achieved using websockets. You can configure an unlimited amount of regions within your application as well as broadcast between regions that share similar data. Setup is simple as checking a checkbox under the options within your region attributes.

For some businesses the difference between knowing something now vs in 1 minute from now can have a huge impact. It can save lives, it can give you a competitive advantage, it can make you more money. This is what you get with FOEX Live, seeing your data changes in realtime and being able to immediately respond and make decisions based on these changes.

Live Grid Editing Demo

Live Tree Grid Editing Demo

(Optionally) Lock Cells to Prevent Editing

Or at the Row Level

Live List View Drag & Drop Demo

Notify Other Regions Demo

Performance

FOEX Live Editing has been designed with performance in mind. There is no additional overhead on the database by enabling this functionality. All data relayed over the websocket is done securely by the browsers after the data has returned from the server. For example: when an update is performed on a Grid, the changes are made in the database, the rows are re-queried and sent back to the browser, and then the browser sends this data to the websocket server to be broadcast to all other users listening on the region's private channel. There are no AJAX calls back to the database to grab any data, even for checksums etc. as this is all provided in the response from the grid update. This applies to all CRUD operations on all region types, forms, grids, tree grids, and editable list views.

For the PLSQL API we use a REST call that allows the database to directly broadcast from one record up to thousands of records in a single call using a SYS_REFCURSOR type.

For the visualization of the changes within the regions, we only apply highlighting to the records the user is currently viewing. We do not apply any highlighting to records that are not in view and must be scrolled to. This maintains optimal browser performance since there's no point showing any highlighting or animation of changes the user can't see.

Security

You can use SSL mode for both the Websocket and REST endpoint or HTTP during development. We use token based encryption to secure connection to the web sockets and regions register what columns users are allowed to see to ensure that data or parts of data are not broadcast to users who should not see it.

The encrypted data uses the AES 256-bit algorithm with Cipher Block Chaining and PKCS #5 padding.

 

PLSQL API

We provide a PLSQL API to allow you to send messages directly from the database via a REST call. You would want to do this in situations where the data is being changed in some batch processing code, or "Execute PLSQL Code" dynamic actions separate from the region's CRUD requests & refresh row actions.

Simply provide a cursor of the changed records you want to broadcast and they will be sent to the websocket server which will message all users registered on the channel(s) you specify. Remember to make sure that your query columns match the same column aliases as your grid/tree/list SQL query columns. Here's a basic example:

DECLARE

  l_cursor SYS_REFCURSOR;
  l_oid    FX_T_DEMO_COMPANY.OID%TYPE;

BEGIN

  l_oid := v('P1_OID');

  OPEN l_cursor FOR
    SELECT OID
	 , COMPANY_NAME
	 , STREET_ADDRESS
	 , POSTAL_CODE
	 , CTY_OID
	 , PHONE_NO
	 , EMAIL
      FROM FX_T_DEMO_COMPANY
      WHERE OID = l_oid;

  fx_p_websocket_notify.data_notification
    ( p_static_ids => 'CELL_EDIT_GRID,ROW_EDIT_GRID' -- you can update multiple regions
    , p_cursor	   => l_cursor
    , p_operation  => 'update' -- create, update, delete
    );

END;
/

Show Active Users

You have the option to show active users i.e. who else is currently viewing/editing data and see their assigned color

Users Change History

You can even set an option to see their change history when you select the user, including the before/after values

Status Indicators - Online, Paused, Offline

 

Choose the Indicator Position

Easy to Enable

 

Customize Default Settings

Get the FOEX Live Addon