...

Expand
titleHow to change the placeholder for error message for each form field?

The mechanism to change the placeholder for displaying error messages for each form field is supported at the application-level, meaning the placeholder can be set for all form items globally across the whole application. By default, Canvas displays the error message for a form field on hovering over the error icon that is adjacent to the form item. However, you can change it to display the error message below the form items. For details of this mechanism, refer Displaying Error Messages below the Form Items.


Expand
titleHow to get information from stored procedures or functions with parameters, such as log-in user ID, language, in datasource?

Data can be fetched using Instruction classes (Java class) in Canvas. Canvas uses iBatis library for database access. Callable statements can be used to access Stored Procedures and Functions to get the data.


Login ID, Language etc. will be passed as parameters by Canvas which can be used to filter data accordingly.


Expand
titleCan the existing DB connections of Adrenalin application be reused for the app created using Canvas instead of creating new ones in Studio?

Database details are fetched by Canvas as JNDI lookups (preferred approach). Alternatively, the connection details can be stored in the DB and datasources can be created to point to these connections to fetch data.


Expand
titleCan multi database connectivity be established in single application (e.g. Intellect, Polaris) using Canvas?

Yes. Canvas can fetch data from multiple databases (either as JNDI lookup or via Connection Details configured).


Expand
titleHow are the data connection strings stored (as part of WAR or outside)?

Data connection strings are stored on the server in the case of JNDI. The JNDI names are referred in a property file as part of the application WAR file. Alternative approach stores the database details in the Canvas framework's database instance.


Expand
titleHow to implement SSO authentication for the app created using Canvas?

The authentication token provided by the SSO's authentication provider has to be stored in a Canvas' custom object called SessionInfo, which will be stored in the session object. This will be passed by Canvas to the application code for all requests coming in which can be used by application to do re-authentication/re-authorization as appropriate. This re-authentication is typically done in a SessionFilter, which is attached to all requests.


Expand
titleHow to specify multiple entitlement criteria for a column for data-level entitlement?

Canvas supports multiple criteria values that can be defined at Product-SubProduct-Function level. Each grid column can specify one criteria to be respected.


Expand
titleScroll bars for Chart based on data volume. Is it possible to increase/decrease chart height?

Yes. Chart allows customizations via a configuration (using properties that are exposed by Fusion Charts).


Expand
titleIs it possible to enable end-users (application users) to change the display name of columns in a widget?

No. End users are not allowed to change the column titles. However, they can change the filters applied by default and can save those as custom views which will be applicable to those users.


Expand
titleOn-demand loading of form listeners is at workspace-level, can it be done at form-loading level?

Yes. Define filesets in the ondemandjsfile.xml grouping the JS files needed. Use ct.core.downloadManager object's requireScripts API to fetch this fileset before loading the form.


Expand
titleHow Canvas manages users sessions and timeout?

When a user is logging in, Canvas creates a custom SessionInfo object, loads it with user details, and stores it in session. When the session times out or when the user logs out, session is invalidated and the SessionInfo is cleared. This is orchestrated by a class called SessionManager. Application must call SessionManager's validate session. Each request will be validated for a valid session using SessionFilter.


Expand
titleSample code for form data submission to a web service.

Refer Posting Data using the POST Method.