Skip to main content
Skip to search
Powered by Zoomin Software. For more details please contact
Zoomin
Home
Home
English
English
Čeština
Deutsch (Germany)
Español (Spain)
Français (France)
Italiano (Italy)
Português (Brasil)
日本語
Русский (Russia)
中文 (简体) (China)
中文 (繁體, 台灣) (Taiwan)
ar-AR
Login
OpenEdge Programming Interfaces
Pointer conversions
Save PDF
Save selected topic
Save selected topic and subtopics
Save all topics
Share
Share to email
Copy topic URL
Print
Table of Contents
Expand
Collapse
OpenEdge Programming Interfaces
Data Management
Database Access
Database connections
Connection parameters
Secure database connections
The CONNECT statement
Auto-connect
Multi-database connection considerations
Run-time connection considerations
Connection failures and disruptions
Using CONNECT with NO-ERROR
Using the CONNECTED function
OpenEdge database connection functions
Balancing conserving connections with minimizing overhead
Disconnecting databases
Logical database names
Database aliases
Creating aliases in applications
Compiling procedures with aliases
Using shared record buffers with aliases
Data-handling statements
Adding and deleting records
Defining a set of records to fetch
Fetching records
Order of fetched records
Sample record fetches
ROWID and RECID data types
Comparing ROWID and RECID
Returning record ROWID values
Storing and retrieving ROWID and RECID values
Additional ABL support
Converting from RECID to ROWID
Writing DataServer-portable applications
Results lists
Navigating a results list
FIND repositioning
Repositioning after FIND fetches
Fetching field lists
Field list benefits
Specifying field lists in ABL
Queries versus record selection blocks
Shared queries
Avoiding implied field list entries
Updating and deleting with field lists
Updating and deleting with query field lists
Cursor repositioning and field lists
Field list handling in degenerate cases
Joining tables
Specifying joins in ABL
Specifying the type of join
Relating and selecting tables
Using joins instead of nested reads
Using inner joins
Using left outer joins
Implementing other outer joins
Mixing inner and left outer joins
Server-side join processing
The CONTAINS operator
The CONTAINS operator and word indexes
Word indexes and word-break tables
Creating and viewing word indexes
Word indexing very large fields
Word indexing double-byte and triple-byte code pages
Using word-break tables
Specifying word delimiter attributes
Understanding the syntax of word-break tables
Examples of word-break tables
Compiling word-break tables
Associating compiled word-break tables with databases
Word-break tables for double-byte and UTF-8 databases
Rebuilding word indexes
Providing access to the compiled word-break table
Writing queries using the CONTAINS operator
Syntax of the CONTAINS operator of the WHERE option
Examples of the CONTAINS operator
Word indexing external documents
Indexing by line
Indexing by paragraph
Word indexing non-OpenEdge databases
Sequences
Choosing between sequences and control tables
Using sequences or control tables
Performance versus capabilities
Transaction independence
Storage limits
Creating and maintaining sequences
Providing sequence security
Dumping and loading sequences
Accessing and incrementing sequences
Using the CURRENT-VALUE function
Using the NEXT-VALUE function
Using the CURRENT-VALUE statement
Resetting a terminating sequence
Referencing sequences within a WHERE clause
Database trigger considerations
Storing triggers in an operating system directory
Storing triggers in an r-code library
Using the RAW data type
Multi-database programming techniques
Referencing tables and fields
Positioning database references in an application
Using the LIKE option
Creating schema cache files
Building a schema cache file
Example schema cache file creation
Using a schema cache file
Application Security
Types of application security
Elements of an application authentication model
Authentication systems
Security domains
Domain registries
User credentials
Security tokens (client-principal objects)
User identity management mechanisms
Client context management mechanisms
Application authentication design options
Elements for authenticating ABL user identity
Authentication systems supported in ABL
Specifying user IDs and passwords in ABL
Password encoding
Security tokens in ABL
Authenticating and managing user identity in ABL
User identity applications
ABL for managing user identity
Client-principal objects
Unsealed and sealed client-principals
Client-principal object attributes
Client-principal object methods
Setting up and using domain registries
Identifying the trusted domain registry
Building and using a session domain registry
Authenticating and setting user identity
User ID (-U) and Password (-P) database connection parameters
SET-DB-CLIENT function
SETUSERID function
SET-CLIENT( ) method on the SECURITY-POLICY system handle
SEAL( ) method on the client-principal object handle
Initializing a client-principal for user authentication and SSO
Managing the client-principal after establishing identity
Configuring login sessions
Starting and maintaining user login sessions
Establishing database connection identity
Built-in client support for authenticating database connection identity
Setting connection identity with application-performed user authentication
Establishing ABL session identity
Setting the ABL session identity
Establishing and managing identity for multi-tier applications
Initializing a client-principal object for a multi-tier application
Managing user identities for a stateless application service
Managing user identities for a state-free application service
Establishing auditing identity
Creating and managing unique object identities
Authorizing access to procedures and database resources
Authorizing users from within a given procedure
Defining activities-based user authorization
Creating an application activity permissions table
Adding records to the permissions table
Including security checking in procedures
Protecting and maintaining the permissions table
Authorizing user access to tables and fields
Using ABL callbacks in authentication systems
Advantages of using ABL authentication callbacks
Running ABL callbacks
Adding an ABL callback to an authentication system
Extending the built-in systems where OpenEdge performs user authentication
Extending SSO-only authentication systems
Using ABL to implement user authentication systems
Creating an ABL authentication callback procedure
AuthenticateUser and AfterSetIdentity signatures
ABL authentication callback procedure example
Using cryptography to secure data
Creating and maintaining a cryptography policy
Setting a symmetric encryption algorithm
Setting an encryption key
Generating encryption keys
Implementing symmetric cryptography in ABL
Using ABL encryption and decryption functions
Example code using the ENCRYPT and DECRYPT functions
Using message digests in ABL
Securing a message digest
Generating message digests in ABL
Managing message digests
Managing and transporting crypto data
Objectives for crypto data management
Requirements for crypto data management
Crypto data storage
Crypto data management and transport
Planning for changes in size for encrypted data
Multi-tenant ABL
Running applications in a multi-tenant database environment
Existing applications
Super-tenant applications
Coding for super-tenant access
Setting effective tenancy
Tenancy identification
Identifying database connection tenancy
Identifying database record tenancy
Identifying tenancy in temp-tables
Identifying the tenants defined in a database
Super-tenant queries
TENANT-WHERE option of the record phrase
SKIP-GROUP-DUPLICATES option of TENANT-WHERE
Query examples without groups
Query examples with groups
Super-tenant data updates
Super-tenant sequence access
Using multi-tenant-enabled sequences
Using multi-tenant sequences with shared and group-configured tables
Restrictions for using groups and sequences
Managing access to tables with groups
ABL API for Data Admin, Multi-tenant and Table Partition Management
Overview of the API
API packages, classes, and interfaces
Interface naming conventions
Creating and accessing objects with the API
API entities and entity service methods
Instantiating a DataAdminService
Managing the service life cycle
Managing transactions
Table updates that require two transactions
Maintaining multi-tenant and table partition entities
Areas (creating and reading)
Authentication systems (creating, reading, updating and deleting)
Domains (creating, reading, updating and deleting)
Schema (reading, loading, and updating)
Sequences (creating, reading, updating and deleting)
Tables (reading and updating)
Table permissions (reading and updating)
Tenants (creating, reading, updating and deleting)
Getting a tenant by an external ID
Tenant groups (creating, reading, updating and deleting)
Users (creating, reading, updating and deleting)
User permissions (reading)
Partitions (creating, reading, updating, deleting, enabling and allocating)
Working with partitions
Splitting a Partition
Filtering and sorting
Filter expressions
Filtering on a child collection using the RequestInfo class
IRequestInfo interface properties
IRequestInfo interface methods
Exporting and importing
Exporting and importing objects as JSON files
Exporting tenants and tenant groups as ABL code
Exporting and Importing Partition Policies and Details
Executing DataAdminService utilities
IDataAdminUtility interface
DeallocateUtility class
PartitionMergeUtility class
Merge one partition into a target partition
Merge multiple partitions into a target partition
PartitionSplitUtility class
Split from a composite partition
Split from an allocated partition detail
Dump and load table data using Data Admin Utilities
Handling errors
Handling data errors with the DataAdminErrorHandler class
Controlling data errors with the IDataAdminService interface
IDataAminService interface public properties for error handling
IDataAminService interface public methods for error handling
Auditing
Setting up application security for auditing
Configuring the auditing identity
Asserting the auditing identity
Using the database connection ID
Using the OpenEdge session ID
Application design considerations
Verifying that auditing is enabled
Configuring auditing privileges
Recording application events
Planning application events
ABL for generating application events
Instructing OpenEdge to record an application event
Managing audit event context
Generating client login session context
Generating application context
Generating audit event groups
Application design considerations
Supporting OERA-conformant clients
Examining active audit policies
Developing auditing tools
Custom audit configuration tools
Accessing the audit policy tables
Accessing the Audit Policy Maintenance APIs
Audit configuration security
Custom audit archiving tools
Accessing the audit data and supporting tables
Handling archiving requirements
Audit archiving security
Input/Output Processes
Handling User Input
Making HTTP(S) requests from ABL applications
Introduction
Configuration
Basic request-response functionality
OpenEdge.Net.HTTP.IHttpRequest
OpenEdge.Net.HTTP.HttpClient
OpenEdge.Net.HTTP.IHttpResponse
OpenEdge.Net.URI