USoft Authorizer
Introduction
Before You Start
Existing Environment
Starting from Scratch
Using the Project Catalog
USoft Authorizer
Advantages
Dynamic Link to the Application
Authorization Tables
Authorization Concepts
Authorization Concepts
Authorization Steps
Authorization Considerations
Application Owner
User Groups
Oracle Roles
Users and Tasks
Rights
Table Rights
Consequences for Other Tables
Column Rights
Foreground and Background Rights
Matrix of Possibilities
Conditions
Constraints
Granting and Revoking Access Rights
Options for Granting or Revoking Access Rights
Authorization for Supertypes and Subtypes
How INSERT Statements are Handled
How DELETE Statements are Handled
How UPDATE Statements are Handled
How to Define Authorization
Definer User Groups
Deployment Configurations
Menu Conditions
Using the Authorizer
How to Add a User to the Authorization System
How to Register Application Users
How to Register Applications and their Owners and User Groups
How to Populate Authorization Tables
How to Assign Users to User Groups
How to Define Conditions
How to Check Conditions
How to Define Table Rights
How to Define Column Rights
How to Assign Menus to User Groups
How to Grant and Update Access Rights
How to Share an Application with Multiple Users
How to Revoke Access Rights
How to Define a Deployment Configuration
How to Apply a Deployment Configuration
How to Set Additional Parameters
SQL_Server_Option_Fast_1 (Additional Parameter)
Max_Driver_Conditions (Additional Parameter)
Auto_Refresh_Constraints (Additional Parameter)
Batch_Loglevel (Additional Parameter)
Record_Facts_Cache (Additional Parameter)
Record_Facts_Cache_Size (Additional Parameter)
Max_Prepared_Checks (Additional Parameter)
Allow_Set_Manipulations (Additional Parameter)
Unique_Key_Check (Additional Parameter)
Read_ Only_ODBC (Additional Parameter)
RDBMS_Connect (Additional Parameter)
Wait_for_Lock (Additional Parameter)
Lock_Foreign_Keys (Additional Parameter)
Rules_Engine_Auto_Commit (Additional Parameter)
Lock_Parent_On_Seqno (Additional Parameter)
Max_Constraint_Depth (Additional Parameter)
Update_Supertype_On_Ins (Additional Parameter)
Show_Component_Errors (Additional Parameter)
How to Set Up Development Environment Authorization
How to Define Menu Conditions
Changing the User Currently Logged In Run-Time
Authentication
Authentication and Authorization
Authentication and USoft
User Account Mapping
How to Change the Rules Engine Cache Refresh Frequency
Example: Authentication Using Client/Server Login Dialog
Authorizing Users to Change their Password
Installing and Using the PWDCredentials Table Component
PWDCredentials Example 1: The length of a password should be greater than 6 characters
PWDCredentials Example 2: The new password must be different from the old one
PWDCredentials Example 3:New passwords should be encrypted
Installing and Using the CredentialsCheck Table Component
How the CREDENTIALSCHECK Table Component Works
CredentialsCheck Example 1: A password should expire every month
CredentialsCheck Example 2: Warn users that their password will expire within 10 days
CredentialsCheck Example 3: A user should not log in more than 5 times a day
MS SQL Server Authentication
Authorization Examples
Drawing Up a Matrix
Deploying a Web Service Provider
Deploying a Web Service Provider
Importing a Web Service
Creating UDDI Businesses, UDDI Registry, and Publish Accounts
How to Create an UDDI Registry
How to Create a New Publish Account
How to Create or Remove an UDDI Business
How to Publish an UDDI Business
Associating a Web Service Provider with an UDDI Business
Publishing a Web Service
Importing an UDDI Business from the UDDI Registry
Using an Encrypted Password
Generated Files
Miscellaneous Web Service Remarks
Calling a Web Service with SSL
How to Create a Certificate File to be Imported in Authorizer
How to Import a Certificate in Authorizer
How to Delete a Certificate in Authorizer
Server Certificates
USoft and Server Certificates
Personal Certificates
How You Can Take Advantage of Personal Certificates
How Digital Certificates Work
TLS/SSL
How Server Certificates Work
A Server Certificate is Domain/Web Site specific
Help with Certificates
How to Configure a Web Server for SSL
Use the Web Server to generate a CSR
Error-Free CSR Generation: Important Information
Example: Generating a Key Pair and CSR
Use the CSR to obtain a Server Certificate via a Certificate Issuer
Configure the Web Server to Use the Obtained Certificate
Self-Signed Certificates and OpenSSL
Step 1: Download and Install OpenSSL
Step 2: Create a Private Key
Step 3: Create a master certificate based on private key
Step 4: Create public key and certificate signing request
Step 5: Self-sign the certificate
Using Self-Signed Certificates with USoft
Activation of TLS/SSL in the Remote Rules Service
Activation of TLS/SSL in the Rules Service
Activation of TLS/SSL in the JDBC Driver
USoft Batch Server
USoft Batch Server Overview
Introduction
USoft Batch Server Advantages
Jobs and Tasks
Flat Files for Distribution
SQL Tasks
Action Tasks
Export Tasks
Import Tasks
Job Tasks
Nesting Jobs
Parameter Sets
External Sets
Schematic Overview
Reading the Diagram
Getting Started
Creating the USoft Batch Repository
Granting Yourself the Appropriate Rights
Starting the Definer
Using the Project Catalog
Project Catalog Batch Tab Page
Catalog Icons
Using SQL Definer
Using USoft Batch in the Definer
Defining SQL Tasks
SQL Task Example
SQL Task Definition Steps
How to Define a SQL Task and its Statements
Defining Action Tasks
Action Task Examples
Starting External Applications
Issuing Messages
Action Task Definition Steps
How to Define an Action Task
Defining Export Tasks
Selecting Data to Export
Example of an Export Task
Export Task Definition Steps
How to Define an Export Task
Defining Import Tasks
Inserting New Data
Updating Existing Data
Import Task Status Files
Import Task Example
Import Task Definition Steps
How to Define an Import Task
Defining Jobs
How to Define a Job and its Tasks
How to Validate a Job
Job Input Parameters
Selecting Records
Job Input Parameter Definition Steps
How to Define Job Parameters
Job Output Parameters
Deactivating and Reactivating Checks and Constraints
Committing Data and Handling Errors
Commit Type
Task-Level Commit vs. Record-Level Commit
Error Handling and Abort Mode
Abort Mode and Commit Type Combinations
Fatal Errors in Batch Jobs
Using External Sets
Overview of External Sets
Storing External Set Data in Tables
External Sets for Export Tasks
Export Task Child Sets
External Sets for Import Tasks
Driving Sets for Import Tasks
Import Task Set Virtuals
Example of an Import Task Set Virtual
User-Defined Tables for Import Tasks
Preparing to Use User-Defined Tables
How to Define External Sets and their Elements
Date Formats and Floating-Point Number Formats
How to Define HTML Sets
How to Specify HTML Set Attributes
How to Compute Set Elements
File Formats
FIXED File Format
FIXEDVLE File Format
VARIABLE File Format
Comma-Separated Values (CSV) File Format
Record Separators
Exporting Data to HTML Files
Layout Style
Navigation Style
Creating a Template
Using more than one layout
Viewing the Results
Executing and Distributing Jobs
Executing Jobs
Executing a Job from within a USoft Application
The BatchRunner Component
The StartJob Method
The RunJob Method
Job Methods
The GetJobProperty Method
BatchRunner Error Handling
Executing Batch Jobs from Constraints
How to Execute a Job from USoft Binder
Executing a Job on a Client Computer
Executing a Job on the Server
File Locations
USoft Batch Log Files
Logging Jobs Started from Within a USoft Application
Batch Runner Command Line Options
Pre-defined Job Parameters
User Defined Table Names
Data Directories
Import and Export File Names
Example: Using different file names
Column Separators
String Delimiters
Null Value for Export Tasks
Enabling/Disabling Import Status Files
Running Jobs in the Production Environment
How to Generate a Job Definition File
Distributing Job Definition Files
Running Jobs from USoft Binder
Advanced Techniques
Batch Processing Through Constraint Definition
Delayed Processing
Delaying Processing Using a Status Field
Delaying Processing Using Deactivation
Export for Import
Store Import Errors
Defining a Reject Table
Transferring Error Status Data Into a Reject Table
Importing All Records Via a Reject Table
Detecting and Repairing Expected Import Errors Before Bulk Import
Status Fields Allocating Import Tasks to Tools
Messages in SQL Tasks and Import Tasks
Job Parameters as Import Task Variables
Import Task Set Virtuals Managing Decision Trees
Import Task Set Virtuals in Record-by-Record Computations
Recognizing External File Layout
Creating External File Layout
Lining Up Columns in an External File
Producing Header or Footer Lines in an External File
Store Batch Scheduler Information
Executing Jobs Scheduled Within a USoft Application
Scheduling Batch Jobs Using a BenchMark Procedure
Schedule Batch Processing with the Application Timer
Checking if a Job Should Run At All
Using a Decision to Check if a Job Should Run
Improving Import Task Performance
Improving SQL Task Performance
Disabling Rules
Improving Export Task Performance
Profiling Batch Jobs
How to Import an XML File within a Batch Job
Using Batch Jobs As Reusable Building Blocks
The HTML Generator Test Drive
HTML Generator Test Drive
Installation Instructions
Step 1: Loading Sample Application Definitions
Step 2: Loading Sample Application Data
Step 3: Running Sample HTML Batch Jobs
Step 4: Exploring the Generated HTML Reports
Step 5: Exploring the Sample Data Model
Step 6: Defining a Simple HTML Batch Job That Extracts Data from One Table
Step 7: Running the Job and Viewing the Result
Step 8: Exploring the Generated HTML
Step 9: Defining More Complex HTML Batch Jobs That Extract Parent-Child Data
Step 10: Running the Job and Viewing the Result
Step 11: Defining a More Complex HTML Batch Job That Extracts Calculated Data
Step 12: Running the Job and Viewing the Result
Step 13: Customizing the HTML Template
Test Drive Background Information
Why Load Sample Application Definitions?
Why Load Data, and Why Load it by Means of a Batch Job?
Why Run Sample HTML Batch Jobs?
Why Explore the Sample Application Definitions?
Why Explore the Generated HTML?
Why Define More Complex HTML Batch Jobs?
USoft BenchMark
USoft BenchMark in Action
Fully Automated Testing
Recorder
Player
Wizard (BenchMark)
Profiler
Tracer
Test Procedures
Test Procedure Editing
Test Checks
Status Checks
Procedure Checks
Property Step Checks
Note Step Checks
Test Data Management
Automating the Maintenance of Test Data
Reasons for SQL Statements
Violation Reports
Constraint Violation Report Structure
Report Configurations
BenchMark Guidelines
Resident Cache
Transaction Performance
Ignoring Import Errors
Using USoft BenchMark
How to Create the USoft BenchMark Repository
Starting USoft BenchMark
How to Start USoft BenchMark together with Your Application
How to Start USoft BenchMark from within Your Application
How to Start USoft BenchMark from the USoft Binder
How to Generate a Test Procedure with the Wizard
How to Record a Test Procedure
How to Record a Subprocedure
How to Record a Property Step Check
How to Record a Note
How to Define a Test Keyword
How to Edit a Test Procedure
How to Use External File Data within a Test Procedure
How to Define a Test
How to Play a Test
How to Inspect the Log Files from Previous Tests
How to Play a Test at Application Startup
Interpretation of Profiles
Test Profiles
Profile Groups
Preparing a Profile
Execution Elements
Execution Tree
SQL Statements Grouped by Source
Manipulations
View on Manipulation
Manipulation Tree
Statistics
Index Hints
How to Obtain Index Hints from the Test Database
How to Obtain Index Hints via the Test Profiles Window
Using Profiles
How to Make a Profile of Interactive User Actions
How to Make a Profile while Playing a Test
How to Make a Profile using the Stand-alone Profiler for Batch Jobs
For example
How to Make a Profile using the Stand-alone Profiler from Within Another Application
Tracing SQL Statements and Method Calls
Tracer Window: Tracer Tab Page
Tracer Window: Options Tab Page
How to Trace SQL Statements and Method Calls
How to Maintain Application Data for Test Purposes
How to Automate the Maintenance of Test Data
How to Drop Undefined Tables and Sequences
Using Violation Reports
How to Create a Report Configuration
How to Exclude a Constraint from a Violation Report
How to Exclude a Relationship from a Violation Report
How to Create a Violation Report on Relationships or Constraints
How to Create a Column Violation Report
How to View a Violation Report on Relationships or Constraints
USoft Binder
USoft Binder Help Contents
Overview
Installing the USoft Binder
Starting the USoft Binder
Using the USoft Binder
Projects
USoft Binder Project Files
Project Items
How to Open a Project
How to Create a New Project
How to Add Items to a Project
How to Delete Items From a Project
How to Change Settings for a Project
How to Change Properties for an Item
How to Start a USoft Developer Series Product
How to Create Tables
USoft Binder Work Area Menus
USoft Binder Work Area Menus
File Menu Options
Item Menu Options
Edit Menu Options
View Menu Options
Help Menu Options
Right Button Menu Options
USoft Binder Dialogs
USoft Binder Dialogs
Execute Project Item Dialog Controls
Create Tables Dialog Controls
Create Repository Dialog Controls
Repository Exists Dialog Controls
Separate Database Dialog Controls
Load System Messages Dialog Controls
Edit Job Name and Parameters dialog controls
Add Dialog Controls
Password Required
Project Item Properties Sheets
Project Property Sheet
Project Property Sheet
Project Properties Sheet General Controls
General Properties Page Controls
Project Properties Page Controls
Database Properties Page Controls
Content Properties Page Controls
Project Item Property Sheets
Definer Item Properties Sheet
Windows Designer Item Properties Sheet
Web Designer Item Properties Sheet
Application Timer Item Properties Sheet
User Application Item Properties Sheet
Authorizer Item Properties Sheet
Repository Manager Item Properties Sheet
Batch Runner Item Properties Sheet
BenchMark Item Properties Sheet
Free Object Item Properties Sheet
Upgrade Tool Item Properties Sheet
Rules Service Item Properties Sheet
Property Sheet Controls
Name
Program
App Name
Logfile
Logfile Overwrite
Run USoft BenchMark
Authorize for Repository
Show Logo
Special
Special (Batch Runner)
Startup Options
Start In
Directory
Verbose
Interval
Max time since last update
Jobs
Command Line Options
Batch Runner Command Line Options
Service Name
Port Nr
Start service at boot time
Use TLS
Peer Rules Service
Hostname
Add (Controlling hosts)
Remove (Controlling hosts)
Install
Remove
Local database service?
Start
Stop
Configure
Menu Options
New
Project Properties
Open
Save
Save As
Send Project
New Item
Load System Messages
Create Tables
Rename
Item Properties
Open (Execute)
Recently Used Files List
Exit
Work Area
Undo
Cut
Copy
Paste
Delete Item
Toolbar
Status Bar
Large Icons
Small Icons
List
Details
Arrange Icons by Name
Arrange Icons by Type
Command Line
Help Topics
About USoft Binder
What's This?
Launch USoft Approach
Context Help
Dialog Controls
Authorize Only
Details (Execute Project Item)
OK (Execute Project Item)
Type (Create Tables dialog)
Name (Create Tables dialog)
Drop Existing Tables
Load System Messages (Create Tables dialog)
OK (Create Tables dialog)
Cancel (Create Tables dialog)
Yes
Use Existing Repository
Create New Repository (Drop Existing Tables)
Change Project Properties
OK (Repository Exists Dialog)
Cancel (Repository Exists Dialog)
Job Name
Job Parameters
From Repository
From Flat Files
Items
Add (Add Dialog)
Project property sheet controls
OK
Cancel
Apply
Help
Read-only
Hidden
Archive
Project Name
Project Type
Module
Language
Separate Properties for Repository and Application
Defining a Separate User Environment
Creating BenchMark Tables in a Separate User Environment
Adding a New User for Developing in a Separate User Environment
Common Properties for Repository and Tables
User
Password
Use Password Next Time
RDBMS
Database
Owner
Properties
Add
Delete
Item Details
USoft Free Object
USoft Definer
USoft Windows Designer
USoft User Application
USoft Application Timer
USoft Batch Runner
USoft BenchMark
USoft Authorizer
USoft Upgrade Tool
USoft Rules Service
USoft Web Designer
USoft Repository Manager
USoft Definer
Introduction
Before You Start
Building an Application
Defining Objects in the Repository
Generating the Database Structure
Running Your Application
Getting Started
Starting the Definer
Using the Project Catalog
Catalog Icons
Quitting the Definer
The User Interface
Info Windows
Lookup Windows
Related Windows
Subtype Windows
Dialogs
Menus
The Objects List
How to Access Database Objects Using the Objects List
The Transactions Window
The Picklist
The Workspace
How to Save your Workspace
The Find in Repository Dialog
The Toolbar
Printing in the Production (Runtime) Environment
Data Printing
Graphical Printing
Using the Definer
Manipulating Records
Moving to the Next Record
Moving to the Previous Record
Moving to the Next Page
Moving to the Previous Page
Inserting a New Record
Duplicating a Record
Duplicating a Field
Clearing a Field
Clearing an Info Box
Deleting a Record
Undoing Actions
Saving Changes Locally
Querying Data from the Database
How to Define and Execute Queries
How to Use Related Windows when Querying
How to Use Wildcards and Operators
Using Spreadsheet Look
Activating the Spreadsheet Popup Menu
Manipulating Records in Spreadsheet Look
Saving Your Changes
Shortcut Keys
Keys and Options
Options and Keys
Keys Available in Spreadsheets
Mouse Pointer Functions
Tables, Columns and Domains
Tables
Columns
Default Values for Columns
Supertypes and Subtypes
Advantages of Using Supertypes and Subtypes
Subtype Definitions and Subtype Sets
Exclusivity and Totality Rules for Subtype Sets
Example of Supertypes and Subtypes
Relationship Inheritance from Supertype to Subtype (RELATE)
Supertype and Subtype Window Layout
Subtype Presentations
How and When Subtype Indicators are Displayed
Manipulating Supertype and Subtype Records
Selecting Subtype Data
Inserting Supertype and Subtype Data
Deleting Supertype and Subtype Data
Updating Supertype and Subtype Data
Setting Defaults for Supertypes and Subtypes
Setting Delete Super on Delete
Setting Update Supertype on Insert
Constraints on Supertypes and Subtypes
Transitional Constraints on Supertypes and Subtypes
Changing a Single-Table Implementation into a Multiple-Subtypes Implementation
Authorization on Supertypes and Subtypes
Logical Views
Logical View Examples
Domains
Display Types
Check Box Display Type
Dropdown List Box Display Type
Option Buttons Display Type
Slider Display Type
IO Formats
Alternative Input Formats
Default Date Format
Inheritance of Domain Properties
Guidelines for Presenting Allowed Values
Generating Unique Values
Generating Unique Values Using a Component
Generating Unique Values: Examples
Unique Values and the Remote Rules Service API
Defining Your Table Structure
How to Define Domains
How to Define Allowed Values for a Domain
How to Define Sequence Numbers for Domains (Oracle only)
How to Comment on a Domain
How to Define a Table and its Columns
How to Add Columns to a Table
How to Define a Subtype Table
How to Comment on a Table
How to Comment on a Column
How to Define a Subtype Definition and its Elements
How to Define a Subtype Presentation and its Elements
How to Define Logical Views
Relationships
Overview of Relationships
Checking Partial Foreign Keys
Referencing Relationships in SQL Statements with the RELATE Keyword
The RELATE Keyword in Transitional Constraints
How to Define a Relationship
How to Comment on a Relationship
Joined Columns
Overview of Joined Columns
When to Use Joined Columns?
How to Define a Joined Column
Constraints
Overview of Constraints
Restrictive Constraints
Corrective Constraints
Invocative Constraints
Constraint Checker
Active and Inactive Constraints
Impact Tree
Deferred Constraints
When to Defer Constraints until Commit
When to Defer Constraints until Post Commit
Constraints Deferred to Post Commit: Error Handling
Including Comments in Constraints
Domain Constraints
DOMAIN Keyword
Single-Record Constraints
Restrictive Single-Record Constraints
Corrective Single-Record Constraints
Multi-Record Constraints
Restrictive Multi-Record Constraints
Corrective Multi-Record Constraints
Transitional Constraints
The OLD() Function
Transition Properties
Default Transition Properties
Resetting Default Transition Properties
Transitional Constraints Without OLD()
Differences Between Transitional and Non-Transitional Constraints
Warning Constraints
Warning Constraint Example: Scheduling Tours to Unstable Destinations
How to Change a Restrictive Constraint Into a Warning Constraint
Recursive Constraints
Example: Recursive Constraint
Time Constraints
The T_APP_TIME Table
The Application Timer
Starting and Stopping the Application Timer
When Constraints Are Evaluated
Variable Constraint Messages
Variable Constraint Messages: Example 1
Variable Constraint Messages: Example 2
Variable Constraint Messages: Example 3
Variable Constraint Messages: Example 4
Variable Constraint Messages: Example 5
Variable Constraint Messages: Example 6
Supported Constraint Variables
How to Define a Domain Constraint
How to Define a Single-Record or Multi-Record Constraint
How to Define a Delete Constraint
How to Define a Transitional Domain Constraint
How to Define a Transitional Table Constraint
How to Check Constraints
How to Comment on a Domain Constraint
How to Comment on a Constraint
How to View a Constraint's History
USoft Rule Language
USoft Rule Language and Table Constraints
USoft Rule Language and Object Name Plurals
USoft Rule Language and Domain Constraints
USoft Rule Language Examples: Simple Constraints
USoft Rule Language Examples: Query Statements With Subquery
USoft Rule Language Examples: Query Statements With Join
USoft Rule Language Examples: Update Statements
USoft Rule Language Examples: Delete Statements
USoft Rule Language Examples: GROUPED BY Clause
USoft Rule Language Examples: Statements Without Conditions
USoft Rule Language Examples: Variable Constraint Messages
Generating Tables
Application Tables
Additional Prompts and Messages
How to Set Up the Table Generator
How to Create or Replace Tables, Indexes, and Sequences
How the Definitions are Used
Data-Driven Functionality
Database Integrity
How USoft Developer Processes Data
Violations
Corrections
Tuning Your Application
Optimizing Application Performance
RDBMS Performance Hints
Additional Indexes
How to Define Additional Indexes
Referential Integrity
Disabling Total Locking
Postponing Validation
Locking Behavior and Transaction Mode
Deploying Your Application
Setting up a Production Environment
Flat Files for Distribution
Locating Flat Files
Installing Your Application on a Server
How to Install Authorization in a Production Environment
Creating a Production Database
Calculating Oracle Table Spaces
How USoft Developer Calculates Table Space
How Inserts are Handled
How Updates are Handled
How to Define Sites
How to Set Table Space Definitions
How to Define Site Tables
How to Define Site Indexes
How to Calculate Space Requirements
How to Create Installation Files
How to Create Flat Files
How to Generate Files from the Command Line
Miscellaneous Tools
Using SQL Command to Execute Scripts
How to Configure SQL Command
SQL Definer
Modes of Operation
How to Start the SQL Definer
How to Start a New Statement
How to Select Tables
How to Change the Appearance of the From List Pane
How to Specify a WHERE Condition
How to Specify Output Columns
How to Specify Values in INSERT...VALUES and UPDATE...SET Statements
How to Build Subqueries into INSERT or UPDATE Statements
How to Define GROUP BY and ORDER BY clauses
How to Modify or Remove Tables and Other Elements
How to Manually Edit Your Statement
How to Execute Your Statement
How to Save Your Statement
Cross Reference
The Business Object Diagrammer
How to Use the Diagrammer
Diagrammer Options
How to Generate HTML Pages from Your Repository
How to Modify the Reserved Words List
Connecting to and from Other Programs
Connection Possibilities
Dynamic Data Exchange (DDE)
DDE Characteristics
USoft Developer as a DDE Client
Starting and Finishing DDE Conversations
Requesting and Sending Items
Executing a Command
Running an Advise Loop
USoft Developer As a DDE Server
Using the Field Topic
Using the SQL Topic
Example of DDE in Use
Which Action(s) to Use?
Support for Microsoft Transaction Server (MTS)
Distributed Transactions and the Two-Phase Commit Protocol
The MTS Architecture
Example 1: The Bank Sample Application
Example 2: MTS Component Sample Code
Open Database Connectivity (ODBC)
JDBC Rules Engine Connectivity
Making Java Client Programs Connect to a Rules Engine
Java Example Step 1: Loading the USoft JDBC Classes
Java Example Step 2: Opening a Connection to the Rules Engine
Java Example Step 3: Selecting Records
Java Example Step 4: Closing the Connection
The Rules Service
How to Configure the Rules Service on Windows
How to Configure the Rules Service on Unix
How to Start the Rules Service on Windows
How to Start the Rules Service on Unix
Starting the Rules Service from the Command Line
Peer Rules Services
How to Start Multiple Peer Rules Services
Setting Up the Rules Service Log File
Rules Service Recovery
Methods Supported in the Rules Service
User Authentication When Using JDBC
JDBC Database MetaData Methods Supported by USoft
allProceduresAreCallable()
allTablesAreSelectable()
getURL()
getUserName()
isReadOnly()
nullsAreSortedHigh()
nullsAreSortedLow()
nullsAreSortedAtStart()
nullsAreSortedAtEnd()
getDatabaseProductName()
getDatabaseProductVersion()
getDriverName()
getDriverVersion()
getDriverMajorVersion()
getDriverMinorVersion()
supportsMixedCaseIdentifiers()
storesUpperCaseIdentifiers()
storesLowerCaseIdentifiers()
storesMixedCaseIdentifiers()
supportsMixedCaseQuotedIdentifiers()
storesUpperCaseQuotedIdentifiers()
storesLowerCaseQuotedIdentifiers()
storesMixedCaseQuotedIdentifiers()
getIdentifierQuoteString()
getSQLKeywords()
getNumericFunctions()
getStringFunctions()
getSystemFunctions()
getTimeDateFunctions()
getSearchStringEscape()
getExtraNameCharacters()
supportsAlterTableWithAddColumn()
supportsAlterTableWithDropColumn()
supportsColumnAliasing()
nullPlusNonNullIsNull()
supportsConvert()
supportsConvert()
supportsTableCorrelationNames()
supportsDifferentTableCorrelationNames()
supportsExpressionsInOrderBy()
supportsOrderByUnrelated()
supportsGroupBy()
supportsGroupByUnrelated()
supportsGroupByBeyondSelect()
supportsLikeEscapeClause()
supportsMultipleResultSets()
supportsMultipleTransactions()
supportsNonNullableColumns()
supportsMinimumSQLGrammar()
supportsCoreSQLGrammar()
supportsExtendedSQLGrammar()
supportsANSI92EntryLevelSQL()
supportsANSI92IntermediateSQL()
supportsANSI92FullSQL()
supportsIntegrityEnhancementFacility()
supportsOuterJoins()
supportsFullOuterJoins()
supportsLimitedOuterJoins()
getSchemaTerm()
getProcedureTerm()
getCatalogTerm()
isCatalogAtStart()
getCatalogSeparator()
supportsSchemasInDataManipulation()
supportsSchemasInProcedureCalls()
supportsSchemasInTableDefinitions()
supportsSchemasInIndexDefinitions()
supportsSchemasInPrivilegeDefinitions()
supportsCatalogsInDataManipulation()
supportsCatalogsInProcedureCalls()
supportsCatalogsInTableDefinitions()
supportsCatalogsInIndexDefinitions()
supportsCatalogsInPrivilegeDefinitions()
supportsPositionedDelete()
supportsPositionedUpdate()
supportsSelectForUpdate()
supportsStoredProcedures()
supportsSubqueriesInComparisons()
supportsSubqueriesInExists()
supportsSubqueriesInIns()
supportsSubqueriesInQuantifieds()
supportsCorrelatedSubqueries()
supportsUnion()
supportsUnionAll()
supportsOpenCursorsAcrossCommit()
supportsOpenCursorsAcrossRollback()
supportsOpenStatementsAcrossCommit()
supportsOpenStatementsAcrossRollback()
getMaxBinaryLiteralLength()
getMaxCharLiteralLength()
getMaxColumnNameLength()
getMaxColumnsInGroupBy()
getMaxColumnsInIndex()
getMaxColumnsInOrderBy()
getMaxColumnsInSelect()
getMaxColumnsInTable()
getMaxConnections()
getMaxCursorNameLength()
getMaxIndexLength()
getMaxSchemaNameLength()
getMaxProcedureNameLength()
getMaxCatalogNameLength()
getMaxRowSize()
doesMaxRowSizeIncludeBlobs()
getMaxStatementLength()
getMaxStatements()
getMaxTableNameLength()
getMaxTablesInSelect()
getMaxUserNameLength()
getDefaultTransactionIsolation()
supportsTransactions()
supportsTransactionIsolationLevel()
supportsDataDefinitionAndDataManipulationTransactions()
supportsDataManipulationTransactionsOnly()
dataDefinitionCausesTransactionCommit()
dataDefinitionIgnoredInTransactions()
getProcedures()
getProcedureColumns()
getTables()
getSchemas()
getCatalogs()
getTableTypes()
getColumns()
getVersionColumns()
getPrimaryKeys()
supportsResultSetType()
supportsResultSetConcurrency()
getConnection()
Dynamic Link Libraries (DLLs)
OLE Client Support for BLOBs
How to Define an OLE Field in Your Application
How to Insert an Object into an OLE Field
OLE Restrictions
OLE Controls (OCX)
Assigning an OCX
Inheritance
Bindable Property
Control Events
Ambient Properties
SetProperty() action
Registering OLE Controls
16-32 Bit Interoperability
Data Model Loader for Meta-Data Exchange
How to Initialize a Microsoft Repository Data Source
How to Set Up Data Model Loader Connections
How to Configure USoft Definer as an ODBC Data Source
How to Load Microsoft Repository Data Directly into USoft Developer
How to Load Data from a Universal Data Access Source Directly into USoft Developer
How to Load Meta-Data From USoft Developer to Microsoft Repository
Connecting Non-Database Users To a USoft Application
Connecting to the Rules Service via HTTP
Rules Service SOAP Error Messages
Rules Service SOAP Success Messages
Localizing Your Application
Application Strings and System Messages
Application Strings
Borrowed Strings and User-Defined Strings
System Messages
Borrowed Messages and User-Defined Messages
How to Define Your Own System Messages
How to Call User-Defined System Messages
Localizing Your Application
Translation Mechanism of Application Strings
Translation Mechanism of System Messages
Translating Your Application
How to Translate Application Strings
How to Add Translation for the Borrowed Strings
How to Translate System Messages
How to Specify the Language with Which to Run the Application
Developing an Application in Your Own Language
Tips and Tricks for Localization
You Do Not See the Context of the Application Strings
Double Booking
How To Retrieve the Strings/Messages Which Have No Translation
How to Make a Report File on the Strings/Messages
How to Find the Strings Which Have Been Added Manually
The MessageLanguage Method
Where To Use the MessageLanguage Method
External Components and Translated Messages
Error Messages
XML Error Messages
XSL Transformations for Editing Messages
How to View Messages in XML Format
Switching between End-User Messages and Developer Messages
Customizing Messages
The USoft XML Message Format
XML Message Overview
XSL Editing Effects on Error Logging
XML Error Message Reference
Common Structure
System Messages with Parameters
Rule Violation Messages
Context Subtree and Execution Stack
Record Information
Constraint-Specific Elements in Rule Violation Messages
RDBMS Messages
RDBMS Specifics
Implementations of USoft Developer
RDBMS Connection Recovery
NULL Values
Concatenation Operators
Set Operators
Start With/Connect By Clause
Outer Joins
RDBMS-Specific SQL Functions
Convertible Data Types
USoft for Microsoft SQL Server
DECODE Function
Isolation Level
USoft for ODBC
ODBC Driver Requirements
ODBC Conformance
ODBC Functions Used by USoft Applications
ODBC SQL Grammar
ODBC Scalar Functions
ODBC Scalar Data Types
USoft for Oracle
USoft for SOLID
USoft for Sybase
Available SQL Functions
Types of SQL Functions
USoft SQL Functions
ADD_DAYS SQL Function
CURRENT_DATE() Function
DATEDIFF_IN_DAYS() SQL Function
ELAPSEDQUERYTRANSACTIONTIME() SQL Function
ELAPSEDTRANSACTIONTIME() SQL Function
SESSION_ID() SQL Function
TIMESTAMP_TO_DATE() SQL Function
TO_CLOB() SQL Function
TRANSACTION_DATE() SQL Function
USERGROUP() SQL Function
RECORDS(n,m) SQL Keyword
Convertible SQL Functions
Non-Convertible SQL Functions
ODBC and SOLID-Only SQL Functions
MS SQL Server- and Sybase-Only SQL Functions
Oracle-Only SQL Functions
User-Defined SQL Functions
Pseudo Columns
Rules-Driven Method Invocation (RDMI)
Rules-Driven Method Invocation (RDMI)
Components
Defining External Components in the Repository
Writing an External Component
Preparing Components for Use in a USoft Application
Invoking Components from a USoft Application
Using INVOKE
INVOKE in the Out-list of a SELECT Statement
INVOKE in Subqueries
Alternative Syntax for Calling Components
Possible USoft Contexts for INVOKE
When and How Many Times a Component Is Invoked
INVOKE: Example 1
INVOKE: Example 2
INVOKE: Example 3
INVOKE: Example 4
Component Construction
Stateless Components
Components with Session Lifetime
Components with Transaction Lifetime
Table Components
Internal Components
The Internal RulesEngine Component
The ExecuteStatement Method
The MustExistExecuteStatement Method
The StartCatchingErrors Method
The StopCatchingErrors Method
The GetLastCaughtErrors Method
The GetLastCaughtErrorsAsXML Method
The GetProperty Method
The GetRegistry Method
The PreCommit Method
The SetProperty Method
The SetTransactionMode Method
The SetUser Method
The RefreshAuthorization Method
Parameters
Parameter Data Types
Modes of RDMI Parameters
InList Parameter Mode
How Parameters are Passed To and From Components
Standard Protocol and Query Protocol for Method Calling
When to Use the Query Protocol
How to Associate Methods with the Query Protocol
How the Standard Protocol for Method Calling Works
How the Query Protocol for Method Calling Works
Transaction Support
Error Handling for Transaction Components
Using RDMI
Using RDMI to Perform Calculations or String Operations
Example 1: Invoking a Randomizer
Example 2: Resolving an Email Address
Using RDMI to Check a Restrictive Rule
Example 3: Checking an Email Address
Using RDMI to Trigger External Actions
Example 4: Sending a Mail
Using RDMI to Connect Applications
Using RDMI to Process Multiple Return Values
Using RDMI to Integrate Legacy Data
Using RDMI to Check Complex I/O Formats
The Internal USFile Component
The USFile Open Method
The USFile Close Method
The USFile ReadLine Method
The USFile EOF Method
The USFile Write Method
The USFile ReadTextFile Method
The USFile ReadBinaryFile Method
The USFile WriteBinaryFile Method
The Internal USFormat Component
CharToDate method
CharAddIOFormat method
CharRemoveIOFormat method
CharToLong method
CharToDouble method
DateToChar method
LongToChar method
DoubleToChar method
IsAlphanumeric method and IsXMLName Method
COM and DCOM Components (Automation Servers)
How to Define an Automation Server
Java Enterprise (J2EE) Components
Defining J2EE Components
Physical Constructors
Defining a Method
Passing Arguments to Methods
Method Lookup Wizard
Method Invocation Syntax
Limitations
Typecasts
Debugging J2EE Components
dotNet (.NET) Components
Defining a Component Using the RDMI Interface
Defining a Component Using C Sharp Code
Example: Tracing Information from a dotNet Application
Example: Calling a Method from a Library Created in an External DLL
Argument Type Mapping for dotNet
Static members
Application Data in dotNet Components
USoft Custom Data Provider
RDMI Error Handling
Showing or Suppressing Component Error Messages
RDMI Error Messages
Off the Shelf Components
Off The Shelf Component Descriptions
Calendar
CalendarTable
CredentialsCheck
EJBIIOP
ExcelTable
FileDialog
FilesTable
HTTPCALL
HTTPProxy
JdbcTable
JMSConnector
JVM
LDAP
MailFolder
PlaySound
OraUserTables
Properties
RandomTable
ScriptCall
SendMail
SMTPMAIL
SoapTable
TempTable
TextFile Components
XMLTable
XSL
How to View the Internal Description of an Off the Shelf Component
How to Import an Off the Shelf Component
Registering Off the Shelf Components in a Production environment
Web Service Components
Creating a Web Service Component
How to Import Web Service Definitions
Calling a Web Service Component
Calling a Web Service Using an INVOKE statement
Calling a Web Service Using a Component Table
Using XSL Transformations for Web Service Component Tables
The USoft Component Table XML Format
Finishing Creating a Web Service Component Table
Proxy Server Settings
How to Modify Existing Web Service Components
Web Service Component Details
Setting a Timeout Value when Calling a Web Service
DIME Messages Support
How to Implement DIME Messages
MTOM (Message Transmission Optimization Mechanism Support)
How to Create an MTOM Web Service Component
How to Change the Name of the Received Files
How to Automatically Generate a File Name for Received Files
Debugging Web Service Components
How to Enable BenchMark Profiling for a Web Service Component
The sendSoapMessage Function
Enterprise Application Development (EAI)
EAI Overview
Example
USoft Connector
Constructor SQL
Error Handling for USoft Connector Components
Using a Component Table
How to Create a Component Table
How to Add a Constructor to a Component
Example Components
Rules Engine XML Support
Rules-Driven XML Communication
The XML Component In Context
USoft XML Specification
XML Representation of Application Data
XML Representation of Application Data With Processing Instructions
XML Representation of Queries
Query By Form Definition
XML Representation of Date Values
Document Type Definition (DTD) Specification
The Internal XML Component
The XML Export Method
Example: Simple XML Export
Example: XML Export With DTD Name And IO Formats
Example: XML Export For Update
Example: XML Export in Combination with USFile
The XML SQLExport Method
Example of the Use of XML SQLExport
XML Output Description
Notes on Aliases in XML SQLExport
When to use XML Export or XML SQLExport
The XML SQLStatementExport Method
The XML Import Method
Processing Instructions for XML Import
Reading from File with XML Import
Where to Use the XML Import Method?
How the XML Import Method Processes Row Elements
The Returning XML Document
Basic XML Formats for Import
Importing Parent-Child Data with XML Import
Importing Parent-child Data When the Parent Key is a Generated Value
Example: How to Transform a Parent-Child XML Document to the Required Import Structure
Example: Simple XML Import From Application Table
Example: Direct XML Import Verifying the Original Values
Example: Constraint Processing an XML Import
The XML Create DTD Method
Example: Simple DTD Creation
The XML Query Method
Example: Simple XML Query
Example: XML Query With Order By Attributes
The XML SQL2XML Method
The XML GenerateComplexType Method
The USXSL Component
The USXSL Apply Method
The USXSL Apply2File Method
The USXSL Value Method
The USXSL Node Method
The USXSL SetXml Method
The USXSL SetXsl Method
USXSL Encoding
XQuery
XQuery Example 1
XQuery Example 2
Web Services
USoft as Web Service Provider
How to Define a Web Service and its Methods
Defining Parameters
Simple Type and Complex Type Parameters
Examples of Simple Type and Complex Type Parameters
Parameter Values and Domains
Rules For Parameter Values
Examples Of Parameter Values
Checking a Web Service Method
SQL Statement Details of a Web Service Provider Method
Detailed Web Service Settings
Generated Files
Namespaces
How to Define a Namespace for an XML Schema
Run-time Architecture of a Web Service
RPC-oriented Methods versus Document-oriented Methods
Differences Between RPC-oriented methods and Document-oriented methods
Web Service Examples
Web Service Example 1: RPC-Oriented Method with Simple Type Parameters
Web Service Example 1: Define a Web Service Provider
Web Service Example 1: Define a Web Service Component
Web Service Example 1: SOAP request and response messages
Web Service Example 2: RPC-Oriented Method with Simple Type Parameters Based on a Domain
Web Service Example 2: SOAP request and response messages
Web Service Example 3: RPC-Oriented Method with a Complex Type Parameter Based on a Domain with Allowed Values
Web Service Example 3: XML Schema Definition for an AGE type with Allowed Values
Web Service Example 4: Document-Oriented Method with Simple Type Parameters
Web Service Example 4: Step-by-Step Instructions
Web Service Example 4: SOAP request and response messages
Web Service Example 5: Document-Oriented Method with Complex Type Parameters
Web Service Example 5: XML Schema Definition for Scheduled Tours
Web Service Example 5: Step-by-Step Instructions
Web Service Example 5: SOAP request and response messages
Web Service Example 6: RPC-Oriented Method with Complex Type Soap Array Parameters
Web Service Example 6: Transforming Attributes to Child Elements
Web Service Example 6: XML Schema Definition for Scheduled Tours
Web Service Example 6: Step-by-Step Instructions
Web Service Example 7: Component Table with an Output XSL Transformation
Web Service Example 7: Define a Web Service Provider Method
Web Service Example 7: Define a Component Table to Access a Web Service
Web Service Example 7: XML Schema Definition for Tours
Web Service Example 8: Component Table with an Input XSL Transformation
Web Service Example 8: Step-by-Step Instructions
Web Service Example 8: SOAP request and response messages
Web Service Example 9: Web Service Executing a Batch Job
Web Service Example 9: Step-by-Step Instructions
WSDL
Example of a WSDL Document
Troubleshooting Web Services
Web Service Error Messages
Web Service Debugging Tips
Web Service Error Handling
Customized XML Error Messages
Example of a Customized XML Error Message
Example of USoft XML Error Messages
Importing a Web Service Provider from a WSDL Document
Modular Development
Modular Development
Defining Interface Providers
Table Interface Providers
Rules for Interface Providers
How To Define a Table as Interface Provider
How To Change an Interface Table into a Database Table
How To Remove a Column as Interface Provider
How To Define or Remove a Domain as Interface Provider
How To Define or Remove a Decision as Interface Provider
How To Define or Remove a Batch Job as Interface Provider
How To View All Interface Providers
Modules
Composing Modular Applications
Running Modular Applications
The Module Field in USoft Binder
Synchronizing Internal Interfaces
How To Import Internal Interfaces
The Travel Agency Application
Travel Agency Data Model
Symbols in the Data Model
Relationships
Supertypes and Subtypes
USoft Windows Designer
Introduction
Overview
Features and Components
Windows Designer Components
Windows Designer Catalog
Window Sets
Windows Designer Catalog Context Menus
Sharing Catalog Items
Design Views and Object Tree
Property Inspector
Object Activator
Property Sheets
The Find in Repository Dialog
Docking Windows
Concepts
Windows Designer Concepts
Actions
Actions Example 1: Automatic Query
Actions Example 2: Button Opening Related Window
Actions Example 3: Button Leading to Tab Page Sensitivity
Actions Example 4: Check Box Leading to Tab Page Sensitivity
Actions Example 5: Contrasting Field Color Based on Record Data
Actions Example 6: Dynamic Default Value
Actions Example 7: Passing a Value to Embedded Web Browser
Actions Example 8: Automatic Insert in Child Table and Related Box
Actions Example 9: Dialog for Search Conditions
Search Results Window
Search by Start Date Dialog
Actions Example 10: Catalog Node Leading to Data Query
ReservationsFromCatalog Window
Catalog Double-Click Action
Actions Example 11: Window with Separate Search Dialog
Find Existing Reservations Dialog
Reservations Window
Actions Example 12: Generic Search Dialog
Search Dialog
Reservations Window
Reservations Child Box
Base Columns, Column Display Objects, Output Columns and Variable Objects
Controls
Data Synchronization
Related Query Statements
Example: Grandchild Data Synchronization
Decisions
Decisions Example 1: Condition
Decisions Example 2: Data Retrieval and Variable Message
Decisions Example 3: Starting Multiple Batch Jobs
Decisions Example 4: Date Calculation
Decision Tree and Caller Tree
ESI Flat Files
ESI Reports
External Schema XML Export Files
ESI Sources
Understanding Synchronization
Dependencies Between Conceptual ESI Sources and Data in ESI Tables
Notes on Synchronization and Backward Compatibility
Events
Interface Events
Click Button Event
Enter Field Event
Leave Field Event
Enter Record Event
Close Window Event
Open Window Event
Open Application Event
After SetUser Event
After Usergroup Changed Event
Data Events
Lookup-Change Field Event
Query-Change Field Event
System-Change Field Event
User-Change Field Event
User-Change Value Event
Create Record Event
Delete Record Event
Fetch Record Event
Insert Record Event
Update Record Event
Commit Transaction Event
Receive Database Error Event
Rollback Transaction Event
When a Record Is Stored
Event Order
Data Validation Order
Data Validation Failure
Extra Queries
Extra Query Example 1: Dynamic Background Color Change
Extra Query Example 2: Child Box Background Color Dependent on Parent Data
Alternative Keys for Related Objects
Extra Queries for Related Information
Computed Values in Extra Queries
Extra Queries vs Added Controls
FORMULA()
GUI Applications and Templates
Using GUI Applications as Templates
Creating Parallel GUI Applications Against a Data Model
Info Box Class Structure
Method Calls
Method Call Syntax
Method Calls versus Actions
Getting a Property Value Using a Method Call
Setting a Property Value Using a Method Call
Argument Types in Method Calls
Type Mismatches in Method Calls
Syntax of Complex Method Calls
Method Calls Embedded in SQL
Method Calls Between Windows
Permanent Window Interaction
The Created Window Affects the Calling Window
The Calling Window Affects the Created Window
Both Windows Affect Each Other
Clearing the Reference To a Closed Window
Example: Permanent Window Interaction between Bookings and Days
User-Defined Global Variables in Method Calls
System-Defined Global Variables in Method Calls
Modular Development
Calling Windows from Another Module
Modular Development of Application Menus
Multiple Inheritance
Objects
Container Objects
Properties
Development-time and Runtime Properties
Built-In and User-Defined Properties
Re-inheritance
Secondary Info Boxes
Synchronization Between Secondary Info Boxes and Master Info Boxes
SqlScript()
SQL Syntax
SQL Syntax Embedded in Method Call Scripts
Style Guide
Style Sheets and Generic GUI Classes
Controls for Style Sheet Option
Default Style Guide
Advantages of Using a Style Guide
Which Properties to Set in a Style Guide
System Colors
Windows
Interaction Between Windows
Working With the Windows Designer
Working With the Windows Designer
How to Start the Windows Designer
How to Start a New GUI Application
How to Open an Existing GUI Application
How to Work with Templates
How to Make or Change a Template's Reuse Selection
How to Work from ESI Flat Files When Developing a GUI
How to Select and Open a Class
How to Select a Base Table Class
How to Delete or Rename a GUI Class
How to Select an Object in the Design View
How to Select the Parent of a Selected Object
How to Select Multiple Objects
How to Group Objects
How to Select Container Objects with the Selection Filter
How to Set Properties with the Property Inspector
How to Reset Properties
How to Open the Object Activator for an Event
How to Open the Object Activator as a Stand-Alone Editor
Using the Object Activator
Selecting an Object to Activate
Selecting a Method or Property to Call
Providing Method Call Parameter Values
Adding a Method Call to a Script
Using the New Property Dialog
How to Delete Method Calls
How to Define a Property
How to Remove a Property
How to Trigger an Action for an Event
How to Run a Window or Dialog
How to Save Your Design Efforts
How to Reset an Object
How to Refresh a Design view
How to Refresh Menu Definitions
How to Open a Property Sheet
How to Make a Class Read/Write
How to Make a Class Read-Only
How to Generate an ESI Report
How to Create an External Schema XML Export File
How to Import an External Schema XML Export File
Prerequisites for Importing an External Schema XML Export File
How to Generate an ESI Flat File
How to Quit the Windows Designer
How to Use the Windows Designer
Using the Windows Designer
How to Design Info Boxes
How to Create Info Box Subclasses
How to Design Dialogs
How to Design Controls
How to Insert Bitmaps
How to Change the Border Color of an Object
How to Change the Border Type of an Object
How to Insert a Close Button
How to Insert Two or More Buttons
Example: Creating a Button Group
How to Call a Lookup Dialog
How to Delete Lookup Buttons
How to Insert Controls
How to Insert a Bar Chart, Pie Chart, or Line Chart
How to Insert a Check Box
How to Insert a Dropdown List Box or Combo Box
How to Insert a List View
How to Add Icons to a List View
How to Set Column Headings and Column Widths in List Views
How to Add Overlay Images to a List View
How to Add or Change a List View's Popup Menu
How to Associate Actions with List Views
Adding Checkboxes to a List View
How to Insert a Slider
How to Insert a Spin Box
How to Insert Option Buttons
How to Insert Tab Pages
Example: Subtype Tab Pages
Tree Views
How to Insert a Tree View
SQL Statements Used in Tree Views
How to Add Icons to a Tree View
How to Add an Overlay Condition to a Tree View
Highlighting a Tree View Entry
Adding Checkboxes to a Tree View
How to Add a Popup Menu and Double-click Behavior to a Tree View
How to Expand a Tree View Initially
How to Add more than One Child Node to a Tree View Node
How to Refer to the Current Item of a Tree View or List View
How to Synchronize a Tree View or List View with an Info Box
How to Open a Window from a Tree View or List View
How to Make a Recursive Tree View
How to Define a Project Catalog
Example: Creating a Project Catalog
How the Travel Agency Project Catalog Was Defined
How the Scheduled Tours Tree View Was Defined
How the Double-Click Action Was Defined
How Icons and an Overlay Condition Were Defined
How Menu Functionality Was Added
How the Persons Tree View Was Defined
How to Make Columns Non-displayed Dynamically
How to Define Decisions
How to Insert Extra Queries
Example: Adding a Computed Column
How to Align Fields into Two or More Columns
How to Change the Order of Fields within Column Boxes
How to Determine the Space between Prompts and Fields
How to Make Fields Non-Displayed
How to Make Non-Displayed Fields Displayed
How to Highlight the Current Record
How to Call Your Own Windows
How to Call Your Own Lookup Windows
How to Pass a Value to Another Window
How to Change the Tab Order of a Window/Dialog
How to Insert Additional Info Boxes
How to Use a Secondary Info box
Example: Secondary Window
How to Insert Joined Columns
How to Insert Related Info Boxes
How to Make an Object Resizable Within a Window or Dialog
How to Change the Orientation of an Object
How to Drag and Drop Objects within Containers
How to Define Spreadsheet Look
How to Change the Properties of Columns in a Spreadsheet
How to Change the Prompts of Spreadsheet Columns
How to Change the Width of All Cells in a Spreadsheet
How to Change the Color of Cells in a Spreadsheet
How to Change the Width of a Column in a Spreadsheet
How to Make a Spreadsheet Resizable
How to Add an Image to Record Selector Buttons in a Spreadsheet
How to Create a Style Guide
How to Use the Controls for Style Sheet Option
How to Design Info Windows Created from SQL Command
Menu Structure
Menu Structure Concepts
Breadth versus Depth
Different Entry Points for Different User Groups
State Sensitivity
Menus and Menu Options
Menu Catalog
Menu Class Structure
How to Define a Menu Page and its Options
How to Translate the Default Window and Help Menu Options
How to Duplicate a Menu Page
How to Make Menu Options State-Sensitive
How to Add a Button to the Toolbar
Creating a Bitmap
Checking out Which Menu Page and Option to Use
Adding the Button's Data to the Menu Option Definition
Checking out Authorization
Looking at the Result
Menu Conditions
ActiveX Support in USoft Developer
USoft Developer and ActiveX
ActiveX Objects in the Windows Designer Catalog
How to Insert an ActiveX Object
How to Create ActiveX Control Columns
ActiveX Control Property Dialogs
Using Method Calls with ActiveX Controls
USoft Developer and ActiveX: Examples
How to Create a Simple Dialog that Contains an ActiveX Control
How to Pass Values to and from an ActiveX Object
How to Call a Method of an ActiveX Browser Control
How to Create an ActiveX Control Column Bound to Base Column Values
ESI Action Interface
Introduction
Differences between the Windows Designer and the ESI Action Interface
ESI Object Model
ESI Object Model Compared to Other Models
Deducing the ESI Object Model from the Layout Model
Differences in Referring to Properties and Their Values
Implicit Controls vs Explicit Controls
Interface Actions
Executing ESI Actions
Available Actions
esi-add-component()
esi-add-info-window()
esi-add-subclass()
esideleteclass()
esideletecontrol()
esiinsertcontrol()
esi-new-application()
esi-open-application()
esi-save()
esi-set-attribute()
esi-set-class-property()
Notes
Frequently Asked Questions
Linking Help to Your Application
The Default Help
External Help File Types
How to Open a Help File
How to Make Context-Sensitive Help
How to Make a HTML Help File Containing Context-Sensitive Topics
How to Call Context-Sensitive Help from Objects in Your Application
How to Add a Help Button
USoft Web Designer
Web Designer Overview
Introduction
History of Web Design
Transactional Web Pages
Reasons for Using XML Technology
Possibilities of XSL Transformations
Default Pages
Default Web Application and Default Pages
Default Lookup Pages
Default Related Pages
Customizing Default Web Pages
Web Designer Components
The Web Designer Interface
The Web Designer Catalog
Design Views and Object Tree
Property Inspector
Docking Windows
The Find in Repository Dialog
The Run-Time Architecture
The USoft Page Engine
The Rules Service
Peer Rules Services
Run-Time Communication
Rules Service Start-Up Parameters
Rules Service Configuration Parameters
Rules Engine Parameters
Component Services and IIS Parameters
Migrating Existing Applications to the Web
Web Applications versus Windows Applications
One Model for Web and Windows Applications
Web Designer versus the Definer
Logical Views and Web Designer
Getting Started
USoft Web Designer Installation
Installing a Web Designer Development Environment On Windows
Installing a Web Designer Production Environment On Windows
How to Register the USoft Page Engine On Windows
Additional IIS and Component Services Settings
If you are Installing on Windows XP with Service Pack 2 (SP2)
Installing a Web Designer Production Environment On Unix
Web Publications
Published XML Files
Published Server Pages (ASP or JSP Files)
Published global.asa File
Cascading Style Sheets
The CustStyle Style Sheet
The WRClasses Style Sheet
The XSLSource Style Sheet
XSL Transformation Sheets
Publications and Page Management
Publication Configurations
The Publication Configuration Window
Publication Attributes
System-Defined Publication Properties
How To Apply A Different jQuery Theme
User-Defined Publication Properties
Referring to Publication Settings
Publishing Pages, Page Sets, or the Application
Page Sets
How to Define a Page Set
Page States
When to Publish What
How to Create a New Publication Configuration
How to Publish Pages
How to Change an Existing Publication Configuration
How to Run a Publication
The Alternative Template Folder
How to Start and Configure the Rules Service
How to Start the Rules Service on Windows
How to Start the Rules Service on Unix
How to Configure the Rules Service on Windows
How to Configure the Rules Service on Unix
How to Start Multiple Peer Rules Services
Rules Service Recovery
Authentication and Authorization
Authorization in USoft Series
Authentication in USoft Series
Authentication for Client/Server Applications
Authentication for Web Applications
Identifying Users
The Validation Agent for a Web Application User
Web Server Validation of Credentials
Web Application Validation of Credentials
Troubleshooting
Using Web Designer
Using Web Designer
Basic Design Operations
How to Open an Info Page From the Catalog
How to Open the Property Inspector
How to Set Properties With the Property Inspector
How to Access Web Designer Property Help
How to Reset Properties
How to Save Your Design Changes
How to Make a Page Read-Only
How to Run an Info Page
The Object Containment Hierarchy
Info Pages
TableDataSource and TableColumn Objects
The Generic InfoPage Object tree
The Bottom Button Group
Changing the Layout
Multi-Record and Single-Record Layout Areas
How to Move a Column Display Between Multi-Record and Single-Record Layout
Web Controls
Button Controls
Container Controls
Column Controls and Input Controls
Column Control Subclasses
Replicated Columns Control
Data Set Number Controls
Dialog Controls
Frame Controls
Grid Controls
Record Identification and Counting in Grid (Edit) Controls
HTML Controls
Image Controls
Label Controls
Menu Controls
Message Area Controls
Record Controls
Script Controls
Selector Controls
Tab Controls
Tree Controls and Tree Node Controls
TreeNodeControl
Data Source Objects
How to Add Column Controls to a Page
How to Change the Input Control of a Column Control
How to Change the Orientation of an Object
How to Change the Sequence of Objects
How to Change the Prompt or Label of an Object
How to Group Objects
How to Include an Image
How to Make Fields Non-Displayed
Changing the Behavior
How to Limit Search Results
How to Limit the Number of Records Retrieved by a Query
How to Sort Search Results
How to Group Search Results
How to Execute a Query When a Page is Opened
How to Use Buttons
Events and Actions
Event Listeners and Actions
How to Insert an Event Listener
How to Insert an Action
Insertable Actions
callClientScript
checkData
clearQueryConditions
closePage
commit
createRecord
deleteRecord
executeQuery
executeSQLStatement
getDataSet
gotoDataSet
login
logout
navigateTo
navigateToLookup
navigateToRelated
nextDataSet
nextRecord
previousDataSet
previousRecord
refresh
rollback
setSearchValue
setValue
How to Change the Parameters of an Action
How to Display Data as Hyperlink
Message Handling
How to Include a Message Area
Web Menus
Defining the Menu Structure Using the Catalog
Displaying a Menu Using the Menu Control
Adding Authorization to Menus
Menu Design Issues
Menu ESI Class Structure
How to Use Images in Web Menus
How to Execute a JavaScript function from a Web Menu
How to Include a Non-Clickable Web Menu Item
How to Revert to the Default Web Menu
Location of Files that Affect Menus
Sharing Menu Pages and Controls between Repositories
Scripting
How to Add a Script to an Object
How to Add a Script with Functions in the Top Section of an HTML Document
Scripting Example: The Period Case
Scripting Example: Client Check on a Mandatory field
AJAX Technology
Executing SQL Statements From a Web Page
Placeholders in SQL Statements
The getValue Placeholder
The getSearchValue Placeholder
The getDataSourceAlias, getThisDataSourceAlias and getMainDataSourceAlias Placeholders
The getWhereClause Placeholder
The getSelection Placeholder
The getExpression Placeholder
Host Variables
Single Quotes in Placeholders
How to Execute a SQL Statement From a Web Page
Setting, Getting, and Displaying Values and Variables
Host Variable (HostVar) Functions
The JavaScript Page Engine Interface
acceptLookupValue()
callClientScript()
cancelWindow()
checkData()
clearQueryConditions()
closePage()
commit()
createRecord()
deleteRecord()
executeQuery()
executeSQLStatement()
getDataSet()
getRecordCount()
getSearchValue()
getTotalNrOfDataSets()
getTotalNrOfRecords()
getValidateValuesResult()
gotoDataSet()
handleEvent()
login()
logout()
navigateTo()
navigateToLookup()
navigateToRelated()
nextDataSet()
nextRecord()
previousDataSet()
previousRecord()
refresh()
refreshRecord()
rollback()
setFrameURL()
setSearchValue()
setValue()
uwa.groupRequests()
validateValues()
Variable Sets
How to Define a Variable Set
Setting a Variable Set with the URL Protocol
Sharing Catalog Items
Calling Info Pages with URL Query Parameters
Special Characters in URL Query Parameters
Translating Your Application
How to Translate Application Strings
How to Add Translation for the Borrowed Strings
How to Translate System Messages
How to Specify the Language with Which to Run the Application
Using Cascading Style Sheets
Using Cascading Style Sheets
Style Sheet Rules
How to Apply Style Sheet Rules
How to Define a Style Sheet Rule
Selectors in Style Sheet Rules
HTML Elements as Selector
Web Designer Classes as Selector
Web Designer Domain Classes
How to Add Domain Classes to the Default Class List
Where to Use Domain Classes
Web Designer IDs As Selector
Contextual Selectors
The Style Property specifying a CSS inline style
Example: The BODY Element
Example: The DIV Element
Example: The ButtonControl Class
Example: The InputControl Class
Example: Highlighting Mandatory Fields
Record Coloring in Grid Controls and Grid Edit Controls
Reusing Existing Style Sheets
How to Set the Class List or Id of an Object
How to Set the Default Class of an Object
Example: Setting a CSS Property For a Group of Objects
Example: Attaching One Control to Multiple CSS Classes
Using XSL Transformation Sheets
Using XSL Transformation Sheets
XSL Transformation Sheets Versus CSS Style Sheets
Transformation Rules
Where To Add Your Transformation Rules
The CustApplet Transformation Sheet
Interaction of Transformation Rules
Dynamics of Transformation Rules
The Combined.xml File
The USApplet Transformation Sheet
Setting Custom Transformations
How to Set a Custom Transformation
How to Customize a Form At Run Time
Working With Pages and Data Sources
Working With Pages and Data Sources
Lookup Pages and Their Data Sources
Related Pages and Their Data Sources
Grid Edit Controls
Displaying Synchronized Data From Multiple Tables in a Web Page
Life Time Property
Page and Data Source Constructs
Pattern 1: Search-and-Results on Single Page
Pattern 2: Master-Detail Form on a Single Page
Pattern 3: Search-and-Results Across Two Pages
Pattern 4: Master-Detail Across Two Pages
Pattern 5: Re-used Search Facility
Pattern 6: Classic Foreign Key Lookup Page
Pattern 7: Classic Foreign Key Dropdown List
How to Change a Foreign Key field into a Dropdown List
How to Change a Non-Foreign Key Field into a Dropdown List
Pattern 8: Classic Joined Column
Stand-Alone, Navigated and Embedded Pages
Page Stacking
Reference Path Syntax
User-Defined Pages and Data Sources
User-Defined Related Pages
How to Build Navigation to User-Defined Related Pages
How to Define a Related Data Source
How to Define a Lookup Data Source
How to Insert a User-Defined Data Source
When to Use User-Defined Data Sources
Embedded Data Sources
Changing the Default Pages
How to Call a Page
How to Embed a Page in Another Page
The Top Page
Appendixes
The Travel Agency Application
Symbols in the Data Model
Relationships
Supertypes and Subtypes
USoft Developer Reference
Shortcut Keys
Keys and Options
Options and Keys
Keys Available in Spreadsheets
Mouse Pointer Functions
Method Reference
Overview
Methods for Starting and Stopping Applications
Methods for Performing Queries
Methods for Moving the Cursor between Records
Methods for Manipulating Data
Methods for Manipulating Controls
Methods for Communicating with the User
Methods for Manipulating Windows
Methods for Providing Help
Methods for Working with Files and Folders
Methods for Working with Resources
Methods for Dynamic Data Exchange (DDE)
Miscellaneous Methods
Methods for Communicating with the Operating System
Methods for Push Buttons
Methods for OLE/ActiveX Containers
Methods Supported in the Rules Service
About()
Accept()
ActionAllRows()
ActionControl()
ActionDecision()
ActionDialogApply()
ActionDialogCancel()
ActionDialogOk()
ActionDllExecute()
ActionDoNothing()
ActionRibbon()
ActionSelectedRows()
ActionStartJob()
ApplicationExit()
ApplicationLogin()
ApplicationProgressShow()
ApplicationProgressSet()
ApplicationProgressHide()
ApplicationRefresh()
CallMethod()
ChangeSql()
CommandSystemBackground()
CommandSystemForeground()
CommandWindows()
ComputerBrowse()
ComputeSet()
ControlAllowResize()
ControlDelete()
ControlFixColumn()
ControlSetActiveTab()
ControlSetFocus()
ControlSetInsensitive()
ControlSetSensitive()
ConvertAlternativeFormat()
Copy()
Create()
create-application-text-file()
create-conceptual-file()
create-external-file()
create-system-message-file()
CurrentColumn()
CurrentField()
CurrentInfoBox()
CursorFirstRecord()
CursorGotoRecord()
CursorLastRecord()
CursorNextRecord()
CursorNextPage()
CursorPreviousPage()
CursorPreviousRecord()
Delete()
Delete()
DataCommit()
DataRdbmsStatement()
DataRollback()
DataToClipboard()
DdeConnect()
DdeDisconnect()
DdeExecute()
DdePoke()
DdeRequest()
DdeStartAdvise()
DdeStopAdvise()
Drag()
ErrorRaise()
esi-create-schema-file()
FieldClear()
FieldDuplicate()
FieldPaste()
FieldSelect()
FileEdit()
FileExists()
FileOpen()
FileSaveAs()
FileSearchIn()
FolderBrowse()
FORMULA()
GetValueFromCurrentItem()
GotoCel()
HasFocus()
Help()
HelpOnAccelerators()
HelpOnControl()
HelpOnLastMessage()
HelpOnTable()
HelpRunWinhelp()
HelpWhatsThis()
InsertString()
ExecuteLookupMethod()
LookupAccept()
MenubarSetItem()
MenubarMarkItem()
MenubarAddItem()
MenubarDeleteItem()
MessageError()
MessageInformation()
MessageLanguage()
MessageQuestion()
MessageShowList()
MessageWarning()
Module()
Notify()
OnlineCall()
PageSetup()
PointerShowWaitstate()
PopupEditorDialog()
Print()
PrintDirect()
QueryAbort()
QueryDbCount()
QueryDefine()
QueryExecute()
QueryPrevious()
RdbmsDisconnect()
RecordClear()
RecordClearTable()
RecordClearWindows()
RecordCreate()
RecordDelete()
RecordDuplicate()
RecordRefresh()
RecordScrollTo()
RecordSelect()
RecordSelectAll()
RecordSingleView()
RecordStore()
RecordUndo()
RecordWrite()
RefreshConstraints()
RefreshList()
RefreshTree()
Rename()
ResourceFileUpdate()
RuleProfilerDescription()
RuleProfilerStart()
RuleProfilerStop()
Save()
Self()
SendMail
Set()
SetDefault()
SetViewMode()
SetProperty()
Sort()
SqlDefiner()
SqlScript()
SqlSelect()
teamwork-export()
Unset()
UnsetDefault()
ValidateJob()
WindowArrange()
WindowAtMousePosition()
WindowCentreScreen()
WindowCentreWindow()
WindowClose()
WindowCloseAll()
WindowCreate()
WindowCreateLookup()
WindowCreateLookupDialog()
WindowCreateRelated()
WindowCreateSecondary()
WindowCreateSubtype()
WindowIconize()
WindowMinimize()
WindowObjectList()
WindowRestore()
WindowToClipboard()
WindowTransactions()
Property Reference
Property Names vs Internal Names
Allowed Property Values vs Internal Resource Values
Base-Column Properties vs Display Properties
Application-Level Properties
Property Overview
Action property
Actions At Startup property
Adjust Change property
After SetUser property
After Usergroup Changed property
Alignment property
Allow Neighbor property
Allow Open Query property
Alternative Input Format property
Auto-commit property
Auto Expand property
Automatic Synchronization property
Auto-Tab property
Auto-resize property
Background Color property
Background Fetch property
Border Color property
Border Type property
Border Width property
Buffer Height property
Button Type property
Caption property
Catalog property
Chart Size (% Of Field) property
Check Count Query property
Check List property
Child Nodes property
Client property
Client Edge property
Column Alignment property
Column Headings property
Column Insertable property
Column Manager Class property
Column Widths property
Context Help property
Create on Demand property
Current Line Color property
Cursor Positioning property
Data Alignment property
Data Length property
Default Bind property
Default Value property
Deletable property
Detail Joined Columns property
Dialog Startup Actions property
Display All Subtype Indicators property
Display Class property
Display Foreign Key property
Display Length property
Display Text property
Display Type property
Displayed property
Double-click Action property
Early Save-local property
Echo property
Edit Method property
Edit Mode property
Expand Tree property
Expansion Level property
Extra Width For Label property
Fast Open property
Fast-Open Priority property
First Field on Create Record property
First Field on Data Manipulation property
First Field on Query property
Fix Column on Display property
Fixed Length property
Floor On Minimum property
Foreground Bitmap property
Foreign Key Color property
Generate List property
Group property
Group Border Title property
Group Border Title Justify property
Height property
Height of Internal Buffer property
Help File property
Help Popup property
Help Topic ID property
Highlight Current Field property
Highlight Current Record property
Highlight Thickness property
Horizontal Cell Margin property
Horizontal Distance property
Horizontal Scrollbar property
Horizontal Spacing property
Iconic property
Idle Time-out Actions
Idle Time-out On Messages
Idle Time-out Time
Image property
Implement Scrollbar property
Include Subtype Presentations property
Initial Value property
Input Allowed property
Insertable property
Internal Height property
Internal Width property
IO Format property
Joined Columns property
Label property
Label Position property
Label Rotation property
Label Type property
Line Color property
Line Style property
Lock Parent On Sequence property
Lookup Method property
Mandatory property
Max Character Width property
Max Height property
Max No of Records Per Fetch property
Max Width property
Maximize Button property
Maximized property
Maximum No of Resident Windows property
MDI Child property
Menu Page property
Minimize Button property
Minimized property
Minimum Height property
Minimum Width property
Mnemonic property
Modal property
Mouse Pointer Shape property
Name property
No Action property
No of Decimals property
No Of Records Displayed property
No Of Records Displayed property (secondary info boxes)
Node-specific Menus property
(NULL) Prompt property
Number Of Columns In Updates Property
Object Name property
On Change property
On Database Error property
On Empty Window property
Open Only Once property
Optimize Joined Column Fetch property
Oracle ROWID property
Order By property
Orientation property
Overlay Condition property
Overlay Image property
Page Title property
Pattern property
Popup Menu Page property
Position property
Post-change property (columns)
Post-change property (info boxes)
Post-close property
Post-create property
Post-delete property
Post-edit property
Post-fetch property
Post-insert property
Post-leave property
Post-open property
Post-rollback property
Post-update property
Pre-close property
Pre-commit property
Pre-delete property
Pre-exit Validation property
Pre-field-entry property
Pre-insert Validation property
Pre-record-entry property
Pre-update Validation property
Primary Key Color property
Primary Key Font property
Prompt property
Prompt For Edit property
Prompt For Fixed property
Prompt For Lookup property
Query Allowed property
Query Mandatory property
Query Some Mandatory property
Range Maximum property
Range Minimum property
Reflect Updates property
Refresh Changed Records property
Related Column property
Related Windows For Menu property
Relationships property
Resize Child property
Root Nodes property
Round Off Monetary Values property
Show Icons property
Show Message Numbers property
Show Root Lines property
Single Selection property
Sizable property
Sort Alphabetically property
SQL Query property
SQL Statement property
Startup Actions property
Static Edge property
Subtype Method property
Subtype Presentations property
Synchronize Lookup property
System Menu property
Tab Order property
Text Color property
Text Font property
Tick Mark Frequency property
Tick Mark Position property
Title property
Tool Window property
Topmost property
Transaction Mode property
Underlying Query property
Uniform Cell Width property
Unit Lines Primary Axis property
Unit Lines Secondary Axis property
Updatable property
Updatable Only if Null property
Uppercase property
Use Static Tables property
Value List property
Value List Prompts property
Values to Query property
Vertical Cell Margin property
Vertical Distance property
Vertical Scrollbar property
Vertical Spacing property
View property
Virtual Color property
WHERE clause property
Width property
Window Edge property
X Position property
Y Position property
Yes Action property
Methods Supported for Backward Compatibility
Methods Supported for Backward Compatibility
ac-rel()
action()
action-other-control()
control-set-values()
set-values()
set-workarea()
USoft Rules Engine
Business Rules IT
Introduction
All Tiers in One Model
Key Characteristics of Good Business Rules Based Systems
Single Point Of Definition (SPOD)
Benefits of Business Rules Automation
Business Rules Defined
A Business Rules Typology
Clustering of Rules
The Rules Engine
SQL-Based Rules
Advantages of Using SQL
Examples of Business Rules in SQL
Scaleable Transparent Deployment
The Rules Engine
Rules Engine Behavior
Database Integrity
Transactions
Rules Engine Validation Moments
Row Events
Pre-Store, Store-Record, and Post-Store Operations
Violation List
Domain Checks
Rules Engine Behavior On Insert
Field Validation Before Insert
Group Validation Before Insert
Pre-Store Record Validation Before Insert
Post-Store Record Validation After Insert
Transaction Validation After Insert
Rules Engine Behavior On Update
Field Validation Before Update
Group Validation Before Update
Pre-Store Record Validation Before Update
Post-Store Record Validation After Update
Transaction Validation After Update
Rules Engine Behavior On Delete
Pre-Store Record Validation Before Delete
Post-Store Record Validation After Delete
Transaction Validation After Delete
Rules Engine SQL Optimization
Row Binding
Local Values
Update Change Check
Resolving Void Conditions
Local SQL Functions
Set Oriented Manipulations
Conditions for Using Set-Oriented Manipulations
Large Numbers
No Childless Parent Cascade
Reasons for SQL Statements
Lock and Commit Management
Smart Locking
Lock Parent on Sequence
Commit Management
Constraints and Constraint Handling
Overview of Constraints
Restrictive Constraints
Corrective Constraints
Constraint Checker
Active and Inactive Constraints
Impact Tree
Deferred Constraints
Including Comments in Constraints
Domain Constraints
DOMAIN Keyword
Single-Record Constraints
Restrictive Single-Record Constraints
Corrective Single-Record Constraints
Multi-Record Constraints
Restrictive Multi-Record Constraints
Corrective Multi-Record Constraints
Transitional Constraints
The OLD() Function
Transitional Constraint Examples
Transition Properties
Default Transition Properties
Resetting Default Transition Properties
Transitional Constraints Without OLD()
Differences Between Transitional and Non-Transitional Constraints
Points to Remember When Making Constraints Transitional
OLD() Value During Constraint Processing
Current Row Counting
Unwanted New Value Substitution
Recursive Constraints
Example: Recursive Constraint
Example: The OLD() Function and Constraint Recursivity
Time Constraints
The T_APP_TIME Table
The Application Timer
Starting and Stopping the Application Timer
Startup Constraints
When Constraints Are Evaluated
Constraint Evaluation: Overview
Corrective Domain Constraints: When Evaluated
Restrictive Domain Constraints: When Evaluated
Corrective Table Constraints: When Evaluated
Restrictive Single-Record Constraints: When Evaluated
Deferred Corrective Multi-Record Constraints: When Evaluated
Restrictive Multi-Record Constraints: When Evaluated
Constraint Evaluation and Field Validation
Constraint Evaluation, Record Validation and Record Storage
Constraint Evaluation and Commit
How to Define a Domain Constraint
How to Define a Single-Record or Multi-Record Constraint
How to Define a Delete Constraint
How to Define a Transitional Domain Constraint
How to Define a Transitional Table Constraint
How to Check Constraints
How to Comment on a Domain Constraint
How to Comment on a Constraint
How to View a Constraint's History
Constraint Handling
Row Checks
Constraint Tests
Tables in Constraints
Update On Self Constraints
Reparations
Constraint Evaluation Order at Record Validation Time
Constraint Evaluation Order: Summary
Pre-Conditions and Post-Conditions
Deactivation Between Constraints
Deactivation Between Incoming Data and Pre- and Post-Conditions
Update On Self Sorting
Driving Tables
How The Driving Table is Determined
Constraint Key Query
Primary Key Substitution of Manipulated Record
Multi-Record Constraint Handling
Relevant Values
Local Evaluation of Changed Record
Prevent Evaluation Twice
Performance and Tuning Tips
Window Startup
Save Workspace
Resident Windows
Fast Open
Fast Open Priority
Remove Automatic Query
Use Gridboxes
Create Tab Pages on Demand
Define properties at the highest possible level
Re-inherit your Settings
Querying
Use Static Tables
Define Additional Indexes
Do Not Allow Open Queries
Query Mandatory
Query Some Mandatory
Check Count Query
Synchronize Lookup
Use Screen Values
Optimize Joined Column Fetch
Remove Columns from Main Query
Limit Query Buffer Size
Data Manipulation
Tune the Number of Columns in Update Statements
When Not to Lock Parent Records
Transaction Mode (Sybase, SQL Server)
Tune Additional Parameters
Unique Key Checks
Record Facts Cache
Record Facts Cache Size
Maximum Prepared Checks
Query Combining
Change in Functionality With Query Combining
General SQL Tuning Tips
Number of Subqueries
Joins versus EXISTS
WHERE versus HAVING
Avoid Grouping (DISTINCT / GROUP BY)
Group By Parent Columns
Use Table Aliases
Use the SQL Definer
EXISTS versus IN
Used Indexes
Table Components
Extended Query Conditions
The Extended Query Conditions XML Document
Pre-Defined XSL Transformations
Fetching Component Tables
Fetching Component Tables: Example
Order of Querying Tables
Deployment Configurations
How to Define a Deployment Configuration
How to Apply a Deployment Configuration
How to Set Additional Parameters
Record Facts Cache (Additional Parameter)
Record Facts Cache Size (Additional Parameter)
Max Prepared Checks (Additional Parameter)
Allow Set Manipulations (Additional Parameter)
Unique Key Check (Additional Parameter)
Read Only ODBC (Additional Parameter)
RDBMS Connect (Additional Parameter)
SQL_Server_Option_Fast_1 (Additional Parameter)
Max_Driver_Conditions (Additional Parameter)
Wait_for_Lock (Additional Parameter)
Lock_Foreign_Keys (Additional Parameter)
Rules_Engine_Auto_Commit (Additional Parameter)
Lock_Parent_On_Seqno (Additional Parameter)
Max_Constraint_Depth (Additional Parameter)
Update_Supertype_On_Ins (Additional Parameter)
Show_Component_Errors (Additional Parameter)
Rules Engine Check-List
Rules Engine Checks
Domain Checks
Field Validation Checks
Group Validation Checks
Record Validation Checks
Transaction Validation Checks
USoft Remote Rules Service API
Introduction
ODBC Overview
How the USoft Remote Rules Service API Works
Data Sources
Configuring the USoft Remote Rules Service API
Introduction
How to Configure a User or System Data Source (Microsoft Windows Platforms)
How to Configure a File Data Source (Microsoft Windows Platforms)
How to Define Additional Data Sources
Setting Up a Connection in Applications
Troubleshooting
Error Messages
ODBC 3.5 Components
ODBC Reference
Supported ODBC Functions
Supported SQL
ODBC Conformance
ODBC Error Messages
Online Documentation
Additional Information
ADO
ADO
ADO Architecture
Product Requirements for using ADO with USoft
Setting Up the ADO - USoft environment
Scripting an Application Using ADO
Examples
Salary Increase from a Visual Basic Script
Tour Reservation from Active Server Pages
The Remote Rules Service Configuration Dialog
The Remote Rules Service Configuration Dialog
Data Source Name (ODBC)
Data Source Description (ODBC)
Application Name (ODBC)
Hostname or IP
Port
Use TLS
User/Password
Timeout
Single Record Fetch
Tracing
Installing USoft Products
Introduction
Installation Overview
Production Environment
USoft Production
Application Built using USoft Developer
Application Server (Optional)
Database Server
Development Environment
USoft Developer
Development Server (Optional)
USoft Developer Repository
Database Server
How to Set Up the Development Environment
USoft Web Designer Installation
Installing a Web Designer Development Environment On Windows
Installing a Web Designer Production Environment On Windows
Web Applications on 64-bit Machines
Registering the USoft Page Engine On Windows
Additional IIS and Component Services Settings
If you are Installing on Windows XP
Installing a Web Designer Production Environment On Unix
How to Set Up the Production Environment
USoft Series Products
USoft Binder
USoft Batch Server
USoft Remote Rules Service API
USoft BenchMark
USoft Authorizer
USoft TeamWork
USoft Web Designer
RDBMS Requirements
Sybase Requirements
Supported Versions of Sybase
Sybase Open Client on Client PCs
Sybase Database Server Sort Order
Creating USoft Developer Tables in Sybase
Creating USoft Developer Tables in Sybase 11 with Sybase Central
Transaction Mode and Sybase Versions Previous to 11.9.2
Adaptive Server Enterprise 11.9.2
Oracle Requirements
Supported Versions of Oracle
Oracle Network Software for Client PCs
OPEN_CURSORS and Oracle
Creating USoft Developer Tables in Oracle
Oracle Table Space
Oracle PL/SQL
Oracle 8.1.6
ODBC Requirements
ODBC Driver Requirements
ODBC Conformance
CONFRMNC.EXE (ODBC)
Microsoft SQL Server Requirements
Supported Versions of Microsoft SQL Server
Notes on SQL Server Version 7.0 Support
Microsoft SQL Server Client Utilities
Microsoft SQL Server: Server Installation Notes
Web Designer Users and Microsoft SQL Server
Repository Owner in Microsoft SQL Server
SOLID Server Requirements
Supported Versions of SOLID Server
Networking Requirements for SOLID Server
Data Source Names and SOLID Server
System Requirements
Hardware and Software Requirements
Hardware Requirements: CPU
Hardware Requirements: Distribution Media
Hardware Requirements: Display
Hardware Requirements: Disk Space
Hardware Requirements: Memory
Software Requirements: Operating System
Software Requirements: Environment Variables
Software Requirements: Database Software
Software Requirements: Networking Software
Software Requirements: Checking WRITE Access for TMP and TEMP directories
Installing USoft Series Products
Getting Started
If you are Installing on Windows XP/2003
Installing USoft Series Products
Log Files and Temporary Files
USAPI.DLL
Registering the USoft Page Engine
Additional IIS and Component Services Settings
If you are Installing on Windows 2003
If you are Installing on Windows XP
If you are Installing on Windows Vista or Windows 7
Silent Installation
Silent Installation: Create an install.sss Parameter File
Silent Installation: Import Registry Settings
Silent Installation: Start the Silent Setup
Silent Uninstall
Post-Installation
Setting the Language
Initializing the Repository
Development Environment
Production Environment
Uninstalling USoft Series Products
Applications Built Using USoft Developer
Deploying a USoft Application
Authorizer
Flat Files for Distribution
Creating Applications from Flat Files
Installing Your Application on a Server
Creating a Production Database
Running Applications in the Production Environment
Save Workspace Option
USoft License Management
USoft License Overview
Terminology used in License Management
Installing a Server based License
Hints and Tips
How to Start and Stop the License Daemon:
How to Start and Stop the License Server as an NT service:
Installing an Evaluation License
Replacing a License File
Checking the Licensed USoft Products
Troubleshooting License Problems
FLEX License Management Software
Three-Server Redundant License Servers
Server Node Configuration
Generating a License File for Redundant Servers
Example
USoft TeamWork
Introduction
What is USoft TeamWork?
USoft Approach
Linear Methods
Iterative Rapid Application Development Methods
Plan Phase
Define Phase
Implement Phase
Prototyping
Time Boxing
Model-Based Application Development (MAD)
Presentation of the Model
Structure Definition
Rule Definition
Interface Definition
Before You Start
Preparing Your Project (Project Definition)
Standards, Implementation Types, Repository Definitions and Versions
Setting Up Development Environment Authorization
USoft TeamWork Objects
Object Classification
TeamWork Catalog
Object Shopping
Object Shopping of Structure and Rule Definitions
Business Rules
Why Use Business Rules?
Guidelines for Writing Business Rules
Easy-to-understand Business Rules
Affirmative and Definite Business Rules
Functional Business Rules
Stand-alone Business Rules
Adding Information to Business Rules
Short Description attribute of Business Rules
Type attribute for Business Rules
Requires Implementation Y/N attribute for Business Rules
Priority attribute for Business Rules
Grouping Business Rules
Grouping Rules by Business Process Step
Grouping Rules by Business Area or Business Object
Grouping Rules by Rule Set
Grouping Rules by Motivation
Grouping Rules by Classification
Grouping Rules by Source
Classify Rules as belonging to other Rules
Splitting Business Rules
Implementing Business Rules
Reporting and Fixing Problems with Business Rules
Tracing a Business Rule's Life-Cycle
Repository Version attribute for Business Rules
Status attributes for Business Rules
Status History for Business Rules
Viewing Business Rules as Business Process Steps
Business Process Steps
Understanding Business Process Modeling in USoft TeamWork
Planning the Best Approach to Business Process Modeling
Approach 1: Work Procedure Handbook
Approach 2: Integrated Processes-and-Rules Base
Approach 3: User Function Coverage
Using an External Business Process Modeling (BPM) Tool
Branching Structures in Business Processes
Defining Business Process Steps
Guidelines for Defining Business Process Steps
Business Areas
Rule Sets
Business Objects
Motivations
Classifications
Sources
Data Contents
Owned vs. Shared Data Contents
Defining Data Contents
Implementations
Implementation Types
Automatically Generated Implementation Types
Manually Entered Implementation Types
Design Documents
Sessions
Notes
Note Sets
Repository Definitions
Repository Versions
Current Version
Test Needs
Export Definitions
Table Export Definitions
Domain Export Definitions
Constraint Export Definitions
Decision Export Definitions
Business Object Export Definitions
Business Area Export Definitions
Menu Page Export Definitions
Index Export Definitions
Site Information Export Definitions
Export Logs
Import Logs
Print Sequence
Workload
Workload at Business Object and/or Business Rule Level
Defining Workload
Monitoring Workload
Change Information
Using USoft TeamWork
How to Define Note Sets
How to Define Rule Sets
How to Define Repository Definitions
How to Define Implementation Types
How to Define Sessions
How to Define Notes
How to Define Business Areas
How to Define Business Objects
How to Define Business Rules
How to Add Information to Business Rules
How to Group Business Rules
How to Classify Business Rules as Belonging to Other Rules
How to Split Business Rules
How to Implement Business Rules
How to Report and Fix Problems with Business Rules
How to Trace a Business Rule's Life-Cycle
How to Define Business Processes
How to Define Data Contents
How to Add Data Contents
How to Define Motivations
How to Define Sources
How to Define Implementations
How to Define Test Needs
How to Define Repository Versions
How to Define the Current Version
How to Define Export Definitions
How to Create an Export File
How to View Export Logs
How to Analyze and/or Import an Export File
Note on Log Files
How to View Import Logs
How to Monitor Workload
How to Obtain Change Information
How to Store a Design Document in the Database
Object Shopping: Quick Start
Quick Start for Tables, Domains, Relationships
Creating a Business Object
Export
Import
Quick Start for Constraints
Creating a Definition
Export
Import
Quick Start for Business Objects Including GUI Elements
Checking a Business Object's Contents
Export
Import
Upgrading USoft Products
Introduction
Upgrading USoft Applications
Overview of Upgrade Procedure
Notes on Upgrading to USoft 8
Modular Development
Defining Interface Tables
Modules
New Tables
Modified Definer Tables:
Modified Authorizer Tables
Modified BenchMark Tables
Removed Tables
Menu Definition in Windows/Web Designer
Flat Files
BrightService Off-the-Shelf Component
FilesTable Component
Windows Designer Tasks
Web Designer and AJAX Technology
Publication Properties
Integration of Batch Definer and Definer
Constraint Messages
Windows Designer Application Properties
Moved Application Resources
Log File Location
Locking of Flat Files
Refreshing of Decisions and Constraints
Constraint Violation Reports:
SQL Server DATALENGTH and LEN functions
Column Position
Menu Mnemonics
Preparing to Upgrade
Upgrading from Version 7.0 or 7.1 to USoft 8
Upgrading USoft TeamWork Export Files
How to Create a Violation Report
Automated Upgrade Procedure
How to Start the Automated Upgrade Tool
How to Run the Upgrade Wizard
Log File
Clean Up Wizard
How to Run the Clean Up Wizard
Post-Upgrade Activities
Overview of Post-Upgrade Activities
USoft Repository Manager
Getting Started
Getting Started
How to Prepare for Using USoft Repository Manager
How to Create the USoft Repository Manager Repository
How to Define Folder Locations
How to Load USoft Repository Data
How to Load Sample Templates
Repository Definitions, Versions, and XML Repositories
XML Repositories
Repository Versions
How to Define a Repository Definition
How to Define a Repository Version
How to Export a Definer Repository
How to View a Definer XML Repository
How to Export an Authorizer Repository
How to View an Authorizer XML Repository
Comparisons
The XML Difference Report
Comparing XML Repositories
The Generated PDF Difference Report
The Generated USoft Import XML Document
How to Compare Two Definer Repositories
How to Compare two Authorizer Repositories
How to View Comparison Results
Repository Baskets
Repository Baskets
How to Define a Repository Basket
How to Export a Repository Using a Basket
Releases
Releases
How to Define a Release
How to Export a Release
How to Freeze a Release
How to Compare Two Releases
How to Compare a Release With Its Backup
Patches
How to Define and Create a Patch
Application Models, Baskets, and Releases
Application Models
How to Generate an Application Model
How to Change the Export Model of an Application
How to Export an Application
How to View an Exported XML Application
How to Export an Application Table
Application Baskets
How to Define an Application Basket
How to Export an Application Using a Basket
Application Releases
How to Define an Application Release
How to Export an Application Release
How to Compare Two Application Releases
Task Sets
Task Sets
Example of a Task Set
Tasks within a Task Set
How to Define a Task Set