A script-enabled browser is required for this page to function properly.

Enhanced JavaBean Support Limitations

Heavyweight JavaBeans

The Forms Java client is based on a lightweight Java windowing toolkit. In lightweight frameworks such as this, the various components and windows in the applet area are all rendered by the toolkit without using native operating system objects, except for an enclosing frame which contains the whole of the applet.

Heavyweight components, on the other hand, use the Java AWT (Abstract Window Toolkit) classes which render each widget and window as a real operating system widget, which has associated with it the problem of a corresponding increase in operating system resource usage. Normally it is difficult to get a heavyweight component such as a JavaBean to exist within a lightweight framework because it cannot be parented to it's lightweight container (the Bean Area in this case). Instead, heavyweight components are parented to the single heavyweight frame that encloses the entire lightweight applet.

The enhanced JavaBean support manages to resolve most problems with this coexistence automatically for you. If you move or hide a Bean Area that contains a heavyweight bean, the enhanced JavaBean support will automatically move or hide the JavaBean for you in step. There are, however, situations where the integration with the lightweight framework will not be seamless:

Method Roundtrips & Timing

Calling a method on a JavaBean using the enhanced JavaBean support using FBean.Invoke may require multiple roundtrips to the JavaBean, especially if the method being called returns a value. Additionally, if the method being called takes a long time to process, the enhanced JavaBean support may ask for the return value from the JavaBean, before the method has actually completed. If this does happen in your code, you can asynchronously use:

GET_CUSTOM_PROPERTY(<BeanName>,<InstanceId>,<MethodName>)

to get the return value of the method at a later point in time. In this case, the name you use for the MethodName, should be the name of the method as shown in the Java console when you run in LOG_INFORMATION mode, including the lowercase m prefix. For Example: mGetRate


declare
    vcRate  VARCHAR2(10);
begin 
    --NOTE: GET_CUSTOM_PROPERTY always returns a string
     vcRate := GET_CUSTOM_PROPERTY('MyBeanArea',1,'mGetRate');
...