Responsiveness of a system is critical to the user experience. Care should be taken to make IFS Applications highly responsive and to make sure the user feels in control.
Try to always put the user in control:
Make sure operations can be carried out efficiently by programming according to the following guidelines:
DBPLSQLBlock
after populate, which slows down the system.DBPLSQLBlock
in the client
which calls separate procedures/functions in the server.Minimize number of server calls on form load,
show context menu, field validation,
etc.. Making 10-15 calls in these situations is not acceptable. Group the calls into one, or even better develop a
server method that takes needed input parameters, gathers all data needed, and returns that data in a single call (as out
parameter, out ref cursor, etc.). The targets for server calls are as follows:
What | Acceptable | Good |
---|---|---|
Load form | 3 calls | 0 calls |
Populate form | 2 calls per data source (so for example master-detail form 4 calls) |
1 call per data source (so for example master-detail form 2 calls) |
Show context menu | 2 calls | 0 calls |
Validate field (tab out) | 2 calls | 1 call |
DBPLSQLBlock
if possible instead of DbImmediate
due to result in better performance.if (DbPLSQLBlock( c_hSql, "&AO.Order_API.Release( 'A1' )")) // Wrong
g_Bind.s[0] = "A1";
if (DbPLSQLBlock( c_hSql, "&AO.Order_API.Release(:g_Bind.s[0] )" )) // Correct
Note: Read more about "Responsiveness" from a usability perspective on Usability First or Wikipedia.