The enhanced JavaBean support provides a Built-in that can invoke JavaBean
methods. There are several versions of the Fbean.Invoke
Built-in.
One version of Invoke
can call JavaBean methods
that do not require arguments.
Other versions of Invoke
can pass arguments to JavaBean methods:
Within each of these versions of FBean.Invoke
, there are formats
that are defined as procedures for calling JavaBean methods that return void,
and formats defined as PL/SQL functions which return a specific data type for
JavaBean method calls that have return values.
FBEAN.INVOKE ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2);
FBEAN.INVOKE ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2);
FBEAN.INVOKE_CHAR ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2) return VARCHAR2;
FBEAN.INVOKE_CHAR ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2) return VARCHAR2;
FBEAN.INVOKE_NUM ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2) return NUMBER;
FBEAN.INVOKE_NUM ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2) return NUMBER;
FBEAN.INVOKE_BOOL ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2) return BOOLEAN;
FBEAN.INVOKE_BOOL ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2) return BOOLEAN;
FBEAN.INVOKE ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2);
FBEAN.INVOKE ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2);
FBEAN.INVOKE_CHAR ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2) return VARCHAR2;
FBEAN.INVOKE_CHAR ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2) return VARCHAR2;
FBEAN.INVOKE_NUM ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2) return NUMBER;
FBEAN.INVOKE_NUM ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2) return NUMBER;
FBEAN.INVOKE_BOOL ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2) return BOOLEAN;
FBEAN.INVOKE_BOOL ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN VARCHAR2) return BOOLEAN;
FBEAN.INVOKE ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST);
FBEAN.INVOKE ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST);
FBEAN.INVOKE_CHAR ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST) return VARCHAR2;
FBEAN.INVOKE_CHAR ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME & IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST) return VARCHAR2;
FBEAN.INVOKE_NUM ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST) return NUMBER;
FBEAN.INVOKE_NUM ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST) return NUMBER;
FBEAN.INVOKE_BOOL ( ITEM_NAME IN VARCHAR2, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST) return BOOLEAN;
FBEAN.INVOKE_BOOL ( ITEM_ID IN ITEM, ITEM_INSTANCE IN PLS_INTEGER, METHOD_NAME IN VARCHAR2, METHOD_ARGUMENTS IN FBEAN.ARGLIST) return BOOLEAN;
where:
Parameter | Description |
---|---|
ITEM_NAME | the name of the Bean Area |
ITEM_ID | the name of the Bean Area as an ITEM data type. You can use the Forms FIND_ITEM Built-in to get this value. |
ITEM_INSTANCE |
the instance of the item to which the JavaBean method should be applied. This argument is applicable where the Bean Area is part of a multi-row block and more than one instance of the Bean Area is displayed. To apply the JavaBean method to all instances of a multi-row block, use the value ALL_ROWS or FBean.ALL_ROWS. |
METHOD_NAME | the name of the JavaBean method |
METHOD_ARGUMENTS |
for methods taking a comma-delimited string: a comma-delimited list of arguments or a string representing the comma delimited list. for methods taking an argument list: the name of the argument
list created with |
This section contains examples of how to use FBean.Invoke
to call
JavaBean methods.
Here is a simple example of calling methods on the Juggler demo JavaBean to
switch juggling off if it is on and visa-versa.. The JavaBean methods used in
this example do not take arguments. The isJuggling()
method determines
the state; the startJuggling()
and stopJuggling()
methods switch juggling on and off respectively.
declare JuggleStopped varchar2(6); begin -- First determine the state of the Bean
JuggleStopped := FBEAN.INVOKE_BOOL('MyBeanArea',1,'isJuggling');-- Now branch on that state
if upper(JuggleStopped) = 'FALSE' then FBEAN.INVOKE('MyBeanArea',1,'stopJuggling'); else FBEAN.INVOKE('MyBeanArea',1,'startJuggling'); end if; end;
Here is an example of a method called addition(int x, int y)
in
a JavaBean which takes two arguments to add together and returns a number. The
FBEAN.INVOKE_NUM
Built-in will be used to access this method.
In this example, the method will be called using a delimited string argument list.
Declare result number; begin -- Note how a string value is passed containing the two number -- Values 99 & 1 separated by a comma.
result := FBEAN.INVOKE_NUM('adderbean',1,'addition','99,1'); end;
Notice that the delimited string used in FBEAN.INVOKE_NUM
can
also be expressed as:
... method_args := '99, 1' result := FBEAN.INVOKE_NUM('adderbean',1,'addition','method_args'); ...
Here is the same example as above, but this time, the arguments are stored in an argument list.
Declare hArgs FBEAN.ARGLIST; result number; begin -- initialize the Arglist
hArgs := FBEAN.CREATE_ARGLIST;-- Add the two arguments in the correct order
FBEAN.ADD_ARG(hArgs,99); FBEAN.ADD_ARG(hArgs,1);--Invoke the method passing the Arglist
result := FBEAN.INVOKE_NUM('adderbean',1,'addition',hArgs); end;
Defining Method Arguments as a Delimited String
Defining Method Arguments as a List
Working with Overloaded Methods