 |
 |
|
|
|
Guidelines for Creating Process Open Client ASPX Pages
If you are developing a Process Open Client application, you will be
using JiGlue to provide the COM Bridge between the Data Providers and
Process services (the JiGlue COM Bridge provides the ability to make VB.NET
calls to the Java API with the effect of native Java statements for most
Win32 programming tasks). There are a number of JiGlue and COM-related
issues to keep in mind when creating your ASPX pages and User Controls,
including:
- ASPCOMPAT: When you create your ASPX page, be sure that you
do not set the ASPCOMPAT="True"
page directive. Setting this ASPX page directive can cause random "Invalid
callee" exceptions (this is a known ASP JiGlue issue). On the other
hand, if you instead use ADO to query the database instead of via the
Process API, you will have to set ASPCOMPAT="True".
- Sun JRE and JiGlue: The Sun JRE must be installed in its default
directory in order for JiGlue to work properly.
- JiGlue and Data Providers: When you use the Process Open Client
out-of-the-box Step Processor and the FnProcessStepProcDP Data
Provider, the Data Provider provides the interface to JiGlue, thereby
insulating your ASPX page and the User Controls from JiGlue and the
Process server. No references to JiGlue should be made outside the
Data Provider.
- Method Calls to JiGlue: You should not combine multiple method
calls to JiGlue in a single VB.NET statement. For example, the following
example statement:
JiglueObject1.setABC(JiglueObject2.getXYZ())
will fail in some cases. If failure does occur, the symptoms and
exceptions can be obscure.
Using JiGlue
If you are not going to use the out-of-the-box Step Processor and the
FnProcessStepProcDP Data Provider, you will need to specify a Data
Provider that will provide the JiGlue interface. For example, to use JiGlue
to help create and instantiate a Process VWSession object and logon, you
might use VB.NET example code similar to:
Imports Jiglue
Public Class FnJiglueSample
Protected m_aJiglue As New JiglueUtil()
Public Function Logon() As Boolean
...
'Use JiGlue to create a VWSession object and logon
Dim aVWSession As Object
aVWSession = m_aJiglue.newinstance("FileNet.vw.api.VWSession")
SetVWSession(aVWSession)
aVWSession.logon(strUserName,strPassWord,strRouterURL)
...
End Function
...
End Class
where strRouterURL is
the URL of the router for the Process server.
Declaring Integer Arrays
If you are developing using both Java and VB.NET (for example, using
JiGlue) and want to declare an integer array, be aware that in Visual
Basic, an integer is a 16-bit value, whereas in Java (and for the Process
API), an integer is a 32-bit value. If, for example, you specify a 2-byte
integer array in Visual Basic, it might be mapped in JiGlue to java.lang.Short,
thereby causing the Java API to throw an exception. For example, the following
call to setDataFields will fail:
Dim integerArray(2)
integerArray(0)=10
integerArray(1)=20
integerArray(2)=30
wob.setFieldValue "integerArrayField", integerArray, false
dataFields = wob.getDataFields(127,1)wob.setDataFields dataFields, false
However, if you change the array to 4-byte integers as follows, the
call to setDataFields succeeds:
Dim integerArray(2)
integerArray(0)=CLng(10)
integerArray(1)=CLng(20)
integerArray(2)=CLng(30)
wob.setFieldValue "integerArrayField", integerArray, false
dataFields = wob.getDataFields(127,1)
wob.setDataFields dataFields, false
Tip: Alternatively, you may wish to use
the VB.NET Convert.ToInt32 Method (Int16)
method, which converts the value of the specified 16-bit signed integer
to an equivalent 32-bit signed integer.
For additional information on JiGlue (including guidelines and the JiGlue
COM Bridge conversions between COM data types and Java data types), see
the FileNet Process Developer's Guide.
|