- The database connection is dynamic or dependent on one of the input parameters entered by the user. Here, the database configurations could be stored in properties file or in the LDAP server. This will be later accessible through the Java Bean class based on the input parameters.
- There are many database queries to be executed before getting the final result-set (display elements) for the report. In such cases, it’s advisable to go for Java Bean connectivity or stored procedure; as otherwise, it will affect the performance of the report. Also, the report design will be more complex due to this. Merging of two XML data sources can be also considered in this scenario.
- If some client entitlement checks need to be performed before retrieving the data from the data source, then the entitlement related logic could be built as a part of separate Java code framework and will be accessible through the Java Bean class. So the end-user will not be able to see the data, which is not entitled to him.
- If data needs to be retrieved from a custom source, for which the semantic or drivers are unknown to Crystal Reports, then it’s a better option to go for Java Bean connectivity. For example, reporting on the statistics of scheduled reports in Business Objects, Weblogic MQ’s, Mainframe systems, Control-M. Data from the external system needs to be written into temporary text files or XML files before retrieving it back and sending it to the report because a java.sql.ResultSet object is expected by the Crystal Report.