UserCustom is a Java class consisting of callback methods that are invoked by ExtraView. This class is extended to modify the functionality of ExtraView.
The class facilitates integration with 3rd party systems and/or additional data validation and provides for business rule customization over and above those provided by the base product.
UserCustom extensions allow the programmer to alter the base functionality of many parts of ExtraView. To create a user custom class, inherit from this class and override the methods of interest. ExtraView Corporation has extended the base ExtraView product with many useful functions as part of its best practices implementation. If you want to take advantage of these functions, then extend CustomCodeBase.java rather than UserCustom.java. CustomCodeBase.java itself extends UserCustom.java. Given you have extended the CustomCodeBase.java class, and you want to override the code in a method within that class as well as executing the same method name in your own class, then use the Java special variable super. This can be placed at different points in your own method, allowing you to decide whether to execute your own code first or last in sequence.
The convention for naming user custom classes is to use the company name and optionally append a version. For example, if your company is named MyCo, name your user custom class as –
The beginning of a sample skeleton user custom class becomes:
package com.extraview.usercustom; import java.io.*; import java.sql.*; import java.text.*; import java.util.*; import javax.servlet.http.*; import java.text.SimpleDateFormat; import com.extraview.applogic.admin.*; import com.extraview.applogic.layout.*; import com.extraview.applogic.problem.*; import com.extraview.applogic.report.*; import com.extraview.applogic.security.*; import com.extraview.common.datatype.EnumeratedDataType; import com.extraview.common.*; import com.extraview.util.*; import com.sesame.misc.*; import com.sesame.template.*; import com.extraview.dbms.Sequence; import com.extraview.presentation.*; import com.extraview.presentation.chart.*; import com.extraview.presentation.problem.*; import com.extraview.presentation.search.EVHTMLWorkerFont; import com.extraview.presentation.usercustom.*; public class MyCo extends CustomCodeBase{ . . . . . . . . }
Principles
The UserCustom.java class is the customer’s way of extending the functionality and validation features within ExtraView. Working with this class implies that you will have intimate knowledge of the underlying database environment, the Java programming language, and the environment that ExtraView offers to programmers. In addition, familiarity with the ExtraView schema is assumed. ExtraView has considerable experience using this interface to custom write code for methods such as:
- Providing additional business rules that are not part of the base product
- Directly linking ExtraView through sophisticated data management techniques to other Oracle database systems, such as CRM and SCM systems
- Link to remote applications of any type, through URL methods
- Allowing remote applications to call ExtraView and perform data extractions or data updates
-
Allowing ExtraView to call remote applications and perform updates or data extractions. The principal functions of the UserCustom module allow the administrator to modify the behavior of ExtraView at many points during the process, for example –
- Before you insert a new issue
- Before you update an existing issue
- After you insert a new issue
- After you update an issue.
All code changes made within the UserCustom source code are limited to a single customer of ExtraView. They will not be overwritten by successive upgrades of the ExtraView product. However, care should be taken when upgrading to test that your functionality still works as expected.
The interface can be used to extend ExtraView in virtually any direction, and can call other external packages and systems. It is assumed that the programmer has a working knowledge of the following:
- ExtraView administration
- Knowledge of Java programming
- Knowledge of SQL programming
- Knowledge of HTML programming is useful, but not required
- Knowledge of web servers such as Apache is useful, but not required
- Knowledge of application servers such as Apache Tomcat is useful, but not required.
The user exits are method calls to a Java class named UserCustom.java. The method calls are made synchronously with the execution of a service in the servlet environment which runs under the application server. All code executed in the UserCustom methods is completed before responses are sent to the client browser; this should be taken into account when considering the use of long-running methods. Performance of the user interface is very important to the user’s perception of speed of the entire application.
Certain objects are passed to the UserCustom methods as defined by the UserCustom Interface object. These objects model the customer business objects within ExtraView and maintain the current object context, some of which may be modified by the customer programming the UserCustom methods. All object attribute modification must be done through setter methods; all inspection of object attributes must be done through getter methods. It is possible for the programmer to modify objects in ways that cause erroneous behavior with respect to the customer’s business model; therefore, care must be taken to test and verify any programs that will be installed in a production system. Customers can consult with ExtraView about any aspect of proper or improper use.
All code added to the UserCustom class must be thread-safe, since multiple threads will execute simultaneously on that code. This implies that all libraries called by UserCustom methods must also be thread-safe. All ExtraView methods are thread-safe.