Release 10.1A: OpenEdge Development:
Open Client Introduction and Programming

> ## Specifying AppObject and SubAppObject definitions

> As part of defining an AppObject or SubAppObject, you must specify the following information in the AppObject tab folder:

> - The object name (Name field).

> - The `PROPATH` (Propath Components list box), set to the locations of AppServer procedures for this Open Client interface object. (See the "Defining procedures in AppObjects and SubAppObjects" section.)

> Optionally, you can specify:

> - Proxy object descriptive information (Description edit box).

> - Whether to enable the client to use an object to access the 4GL Unknown value (`?`) as a `null` in parameters and return values (Enable Unknowns for Parameter and Return Values check box). This check box applies to the entire AppObject or SubAppObject. For more information, see the "Handling the Unknown value (?)" section.

> Note: If you are using the Open Client interface object to access a remote Progress SmartDataObject, you must enable access to the 4GL Unknown value (`?`) for the entire object definition. Check this box and make sure the boxes in all ProcObject and method definitions remain checked.

> - How to map temp-table parameters for Java proxies (Map Temp-Table Parameters to SQL ResultSets for Java check box). This check box applies to the entire AppObject or SubAppObject. A Java Open Client can map temp-tables as SQL `ResultSet` objects or as OpenEdge `ProDataGraph` objects. For more information, see the "Mapping temp-table parameters in Java Open Clients" section.

> ##### Handling the Unknown value (?)

> You can specify how an Open Client handles the 4GL Unknown value (`?`) at all levels of the interface, including:

> - At a global level for the AppObject or SubAppObject.

> - For each procedure or user-defined function.

> - For individual parameters of a procedure or user-defined function.

> The settings at each level specify whether to enable access to the Unknown value (`?`) in parameters and return values by allowing the client to access these values as derived objects, which in .NET and Java Open Client applications can pass the 4GL Unknown value (`?`) as a `null`. Otherwise, if available in the language, a .NET or Java application must use an intrinsic type, which cannot accept a `null` value and cannot therefore represent the 4GL Unknown value (`?`) in the native Open Client environment. For more information on the intrinsic types available in .NET or Java, see the reference documentation for your client development language.

> Note: Web services can always pass the 4GL Unknown value (`?`), regardless of the Open Client interface settings, because Web service parameters are all nillable and allow `"nill"` to be passed as a representation of the 4GL Unknown value (`?`).

> ##### Mapping temp-table parameters in Java Open Clients

> You can specify how a Java Open Client maps temp-table parameters at two levels of the interface:

> - At a global level for the AppObject or SubAppObject.

> - For each procedure or user-defined function.

> The settings at each level specify whether temp-table parameters are mapped to Java SQL `ResultSet` or OpenEdge `ProDataGraph` objects. In projects created with the current release of ProxyGen, all settings indicate that temp-table parameters are mapped by default to `ProDataGraph` objects. In projects created and maintained in releases prior to OpenEdge Release 10.1A, temp-table parameters are always mapped to SQL `ResultSet` objects. So, if you open one of these earlier projects in the current release of ProxyGen, all settings indicate that any temp-table parameters are mapped to SQL `ResultSet` objects.

> However, in any new or existing project that you open in the current release of ProxyGen, if you add a procedure or user-defined function that passes at least one ProDataSet (`DATASET` or `DATASET-HANDLE`) parameter and at least one temp-table (`TABLE` or `TABLE-HANDLE`) parameter, the temp-table parameter settings for that procedure or user-defined function indicate that temp-table parameters can only be passed as `ProDataGraph` objects. This is because the mechanism for accessing temp-table parameters as SQL `ResultSet` objects is incompatible with the mechanism (`ProDataGraph` objects) for accessing ProDataSet parameters.

> For more information on mapping temp-table parameters to Java SQL `ResultSet` or OpenEdge `ProDataGraph` objects, see OpenEdge Development: Java Open Clients .

> ##### Specifying AppServer procedure files

> You also must specify any AppServer procedure files you want to include, and whether they are non-persistent or persistent procedures (ProcObjects), using the Procedure menu on the menu bar. These procedures are listed on the Procedures tab folder. For more information on specifying AppServer procedure files, see the following section.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095