Skip navigation FileNet logo
  Open Client Developer's Guide
  Search  |  Index  |  Glossary   |  
Open menu Overview
Close menu Open Client Architecture
  Project Directory Structure
  Close menu Developing ASPX Pages
    ASPX Page Guidelines
    Code-Behind File Guidelines
    Open Client Guidelines
  Open menu User Interface Controls
  Open menu Data Provider
Open menu Developing for Process
Open menu Error and Exception Handling
Open menu Customizing the Framework
Globalization / Localization
Open menu General Information
   

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.