Preface
Purpose
Audience
Organization
Using ABL documentation
References to ABL compiler and run-time features
References to ABL data types
Typographical conventions
Examples of syntax descriptions
Long syntax descriptions split across lines
Complex syntax descriptions with both required and optional elements
Example procedures
OpenEdge messages
Obtaining more information about OpenEdge messages
Configuring and Deploying .NET Open Client Applications
Selecting a .NET Open Client Runtime package
Supporting localized messages for .NET client interfaces
Preparing to generate proxies for a .NET client using ProxyGen or Batch ProxyGen
Building a .NET Open Client application that uses a .NET proxy
Deploying a .NET Open Client application using a .NET proxy
Sample .NET client applications
Proxy Objects and Methods
Proxy objects
Namespace for proxy objects
Proxy methods
Connection methods
Remote ABL methods
Passing parameters
Handling return values
Class factory methods
SubAppObject
ProcObject
Common properties
Connection ID
Procedure return string
Procedure type
Request ID
SSL subject name
Common methods
Cancel all requests
Dispose
Running methods on session-free AppObjects
Session-free threading model
Sharing of the connection pool between session-free AppObjects
Sample proxy
Sample AppObject
Sample SubAppObject
Sample ProcObject
Connecting to an AppServer
Connection class
Establishing the connection
Handling connection exceptions
Returning a user defined string to the client from the AppServer connection procedure
Supported AppServer modes
Releasing a session-free Connection object
Passing Parameters
ABL data type mappings
Date and time conversions
Arrays as parameters
Passing arguments by reference
INPUT-OUTPUT parameters
OUTPUT parameters
Unknown value (?) as a parameter
Using .NET nullable value types
Setting an INPUT or INPUT-OUTPUT parameter to the Unknown value (?)
Testing an INPUT-OUTPUT or OUTPUT parameter for the Unknown value (?)
Using OpenEdge holder classes
Setting an INPUT or INPUT-OUTPUT parameter to the Unknown value (?)
Testing an INPUT-OUTPUT or OUTPUT parameter for the Unknown value (?)
ABL temp-table to ADO.NET DataTable mappings
Mapping temp-table components
Mapping temp-table component attributes
Temp-table and buffer attribute mappings
Buffer-field attribute mappings
Resolving differences between ABL and .NET date and time implementations
Mapping the XML-NODE-TYPE attribute to ADO.NET
ABL ProDataSet to ADO.NET DataSet mappings
Mapping ProDataSet components
Mapping ProDataSet component attributes
ProDataSet attribute mappings
Data-relation attribute mappings
Passing TABLE and TABLE-HANDLE parameters
Static and dynamic temp-tables
Data type mapping for temp-table fields
Unknown value (?)
Temp-table array fields
Indexes for temp-tables
Passing a TABLE or TABLE-HANDLE as an INPUT parameter
Providing ABL extensions for INPUT TABLE-HANDLE parameters
Passing a TABLE or TABLE-HANDLE as an INPUT-OUTPUT parameter
Passing a TABLE or TABLE-HANDLE as an OUTPUT parameter
Temp-table examples
Sample static temp-table
Sample dynamic parameter
Sample .NET Open Client application using a temp-table
Passing DATASET and DATASET-HANDLE parameters
Static and dynamic ProDataSets
Data-type mapping for ProDataSets
Passing a DATASET or DATASET-HANDLE as an INPUT parameter
Providing ABL extensions for INPUT DATASET-HANDLE parameters
Passing a DATASET or DATASET-HANDLE as an INPUT-OUTPUT parameter
Passing a DATASET or DATASET-HANDLE as an OUTPUT parameter
Updating a DataSet
ProDataSet examples
Sample static ProDataSet
Sample dynamic ProDataSet
Sample .NET Open Client application using a ProDataSet
Sample ProDataSet update
ProDataTable class methods
Array methods
GetArrayFieldName( )
IsExtentColumn( )
SetExtentColumns( )
Before-image methods
GetBImageFlag( )
SetBImageFlag( )
Column-related (buffer-field) methods
GetColumnProType( )
GetPosition( )
GetUserOrder( )
SetColumnProType( )
SetUserOrder( )
Error handling methods
GetErrorString( )
SetErrorString( )
Data source related methods
GetDataSourceModified( )
GetRejected( )
Schema marshaling methods
GetNoSchemaMarshal( )
SetNoSchemaMarshal( )
Transaction methods
GetUndo( )
ProDataSet class methods
Data source update-related methods
GetDataSourceModified( )
GetRejected( )
Accessing Proxy Properties
Application configuration file
RunTimeProperties and Connection classes
RunTimeProperties class
ServerName RunTime Property
Connection class
Accessing properties with methods
General property accessor methods for the RunTimeProperties class
Get property methods syntax
Set property methods syntax
Example
General property accessor methods for Connection objects
Get property methods syntax
Set property methods syntax
Example
Available properties
Accessing properties using purposed accessor methods
Accessing properties directly
Session properties
Thread control property
Proxy server specification properties
Secure Sockets Layer management properties
Tracing property (RunTimeProperties only)
Compression property
Relationship between RunTimeProperties and Connection objects
Modifying an instantiated Connection object's properties
Alphabetical listing of properties
PROGRESS.Session.AppServerKeepalive
PROGRESS.Session.CompressionEnabled
PROGRESS.Session.CompressionLevel
PROGRESS.Session.CompressionThreshold
PROGRESS.Session.ConnectionLifetime
PROGRESS.Session.ConnectionTimeout
PROGRESS.Session.EnableTracing
PROGRESS.Session.IdleConnectionTimeout
PROGRESS.Session.InitialConnections
PROGRESS.Session.LogFileName
PROGRESS.Session.LoggingLevel
PROGRESS.Session.MaxConnections
PROGRESS.Session.MinConnections
PROGRESS.Session.NoHostVerify
PROGRESS.Session.NoSchemaMarshal
PROGRESS.Session.NoSslSessionReuse
PROGRESS.Session.NsClientMaxPort
PROGRESS.Session.NsClientMinPort
PROGRESS.Session.NsClientPicklistExpiration
PROGRESS.Session.NsClientPicklistSize
PROGRESS.Session.NsClientPortRetry
PROGRESS.Session.NsClientPortRetryInterval
PROGRESS.Session.ProxyHost
PROGRESS.Session.ProxyPassword
PROGRESS.Session.ProxyPort
PROGRESS.Session.ProxyUserId
PROGRESS.Session.RequestWaitTimeout
PROGRESS.Session.SessionModel
PROGRESS.Session.TcpKeepAliveInterval
PROGRESS.Session.TcpKeepAliveTime
PROGRESS.Session.TcpMaxDataRetranmission
PROGRESS.Session.WaitIfBusy
Handling Errors
General ABL exceptions
Exception class hierarchy
Exception descriptions
Using OpenEdge .NET Proxy Objects in Microsoft Visual Studio .NET
Types of .NET open clients
Windows forms (GUI)
Web forms (ASP.NET)
.NET Web services (ASP Web services)
Getting started building a .NET Open Client application using Microsoft Visual Studio .NET
Using the samples
Using the Open Client .NET OpenAPI to Directly Access the AppServer
Overview of .NET OpenAPI classes
Connecting to the AppServer
Running procedures and user-defined functions
Running a non-persistent procedure on an OpenAppObject
Running a persistent procedure (OpenProcObject) on an OpenAppObject
Running a single-run or singleton procedure (OpenProcObject) on an OpenAppObject
Running an internal procedure or user-defined function on an OpenProcObject
Setting up parameters and return types
Creating variables for parameters
Setting up a parameter array
Creating a parameter array
Adding parameters using data type-specific methods
General syntax for add parameter methods
Syntax summaries of all data type-specific add parameter methods
CHARACTER
COM-HANDLE
DATASET and DATASET-HANDLE
DATE
DATETIME
DATETIME-TZ
DECIMAL
HANDLE
INT64
INTEGER
LOGICAL
LONGCHAR
MEMPTR
RAW
RECID
ROWID
TABLE and TABLE-HANDLE
Adding parameters using a generic method
Defining the schema for a temp-table parameter
Defining a TempTableMetaData object
Adding field descriptions to the TempTableMetaData object
Adding the TempTableMetaData with its DataTable as a temp-table parameter
Defining the schema for a ProDataSet parameter
Defining a ProDataSetMetaData object
Defining the temp-tables for the ProDataSetMetaData object
Defining the data-relations for the ProDataSetMetaData object
Adding the ProDataSetMetaData object with its DataSet as a ProDataSet parameter
Defining the return type for a user-defined function
ReturnType property
IsReturnExtent property
UnknownReturnType property
IsReturnUnknown property
Passing parameters
Passing INPUT parameters
Passing INTPUT-OUTPUT parameters
Passing OUTPUT parameters
Handling returned values
Getting OUTPUT parameter values
Accessing RETURN-VALUE function output from procedures
Accessing user-defined function return values
Sample .NET OpenAPI code
Non-persistent procedure sample
Persistent procedure sample
Single-run/singleton procedure example
Preface
Single-run/singleton procedure example