EDW Developer's Guide

(Edw is a Data Warehouse)

Nando Dessena

Revision History
Revision 1.027-nov-2006
Revision 1.519-dec-2006
Revision 1.5.115-jan-2007

Table of Contents

1. Introduction
1. What is EDW
2. Basic Concepts
1. Programs and controllers
2. Agents
3. Configuration objects and configuration files
4. Macro expansion
5. MetaSchema and GUICatalog
6. Database access layers
7. Icons, logos and other media elements
3. ETL features
1. Loaders, readers and writers
1.1. Choosing the right loader
2. The DB loaders, readers and writers
2.1. The DB reader
2.2. The DB writer
3. The standard DB loader (TEDWStandardDBLoader)
3.1. The DB cursor reader (TEDWDBCursorReader)
3.2. Introduction to data maps (TEDWDataMap)
3.2.1. The PascalScript data pipe
3.2.2. Data map item attributes
3.3. The DB record writer (TEDWDBRecordWriter)
3.4. Using table writers (TEDWDBTableWriter)
3.4.1. The base strategy
3.4.2. The Insert strategy
3.4.3. The Update strategy
3.4.4. The Merge strategy
3.4.5. The Delete strategy
4. The hierarchy DB loader (TEDWHierarchyDBLoader)
4.1. The DB cursor hierarchy reader (TEDWDBCursorHirearchyReader)
5. The standard XML DB loader (TEDWStandardXMLDBLoader)
5.1. The SAX structured CDS reader (TEDWSAXStructuredCDSReader)
6. The standard dataset DB loaders (TEDWStandardADORecordsetDBLoader and TEDWStandardCDSDBLoader)
6.1. The dataset readers (TEDWADORecordSetReader and TEDWCDSReader)
7. The text loaders (TEDWStandardFixedWidthTextLoader and TEDWStandardCSVTextLoader)
7.1. The fixed-width text reader (TEDWFixedWidthTextReader)
7.2. The comma-separated-values reader (TEDWCSVTextReader)
8. Commonly used data packet types and transformers
8.1. The basic data item class
8.2. The data item data packet
8.3. The data row data packet
8.4. The DB params data packet
8.5. The dataset-based data packets
9. The SQL agents
9.1. The general-purpose SQL agent (TEDWSQLAgent)
9.2. The empty table SQL agent (TEDWEmptyTableAgent)
9.3. The SQL select agent (TEDWSelectAgent)
10. Miscellaneous agents
10.1. The shell agent (TEDWShellAgent)
4. Building a GUI: MetaSchema and GUICatalog
1. The MetaSchema model
1.1. Items, tables and columns
1.2. Chaining fields
1.3. Constraints (primary keys and foreign keys)
1.4. Code example
2. The GUICatalog model
2.1. The form element
2.2. The cube element
2.3. The action link element
3. The search model
4. Building (and rebuilding) the models
5. Editing the models
5. GUI power tools: actions and triggers
1. GUI actions and action implementations
1.1. Opening a GUI element: StandardGUIElementGUIAction
1.2. Running an EDW program: StandardProgramGUIAction
1.3. Visiting a URI: StandardURIGUIAction
1.4. Executing generic SQL statements: StandardExecSQLGUIAction
1.5. Emptying a table: StandardEmptyTableGUIAction
2. GUI triggers and trigger implementations
2.1. Purpose of GUI triggers
2.2. Types of GUI triggers
2.3. Trigger registration, linking and firing
2.4. Generating record IDs: StandardGenIdGUITrigger
2.5. Non-interactive lookups: StandardLookupGUITrigger
2.6. Generic SQL select statements: StandardSingletonSelectGUITrigger
2.7. Constant values as defaults: StandardConstantGUITrigger
2.8. Jack of all trades: StandardPascalScriptGUITrigger
2.8.1. The Environment object in script triggers
2.8.2. Other script trigger examples
6. Using the multi-dimensional analysis tools
1. The cube element
1.1. Adding GUI fields
1.2. Defining dimensions
1.3. Defining measures
1.4. Other cube settings
2. The simple cube form
7. Reporting
1. Reporting agents
1.1. Dataset reports (TEDWCDSReport and descendants)
1.2. Processing datasets (TEDWDataSetReport and descendants)
1.3. Processing datasets with xslt
1.3.1. Introducing xslt
1.3.2. Support for xslt in EDW
1.3.3. Other xml-related utilities
1.4. CBLib-based document producers
1.4.1. The dataset builder (TEDWDBDataSetBuilder)
1.4.2. The doc producer (TEDWCBDocProducer)
1.4.3. A CBReport example
8. Rebuilding the EDW executable files
1. When and why you should rebuild EDW
2. Building the EDW binaries
2.1. Dependencies: installing CBLib
2.2. Required EDW binaries
2.3. Optional EDW binaries: Addins
2.4. Updating the system path
3. Building the stand-alone executables
3.1. Selecting the features you want
3.2. Adding your own extensions
9. Advanced Techniques
1. How to create and deploy EDW Plugins
1.1. Naming and location of Plugins
1.2. Initialization and finalization
2. Creating and registering custom agents
2.1. Configuring agents
2.2. Database agents
2.3. Loaders, readers and writers
2.4. Agent registration and identification
3. Creating model builders
4. Creating custom GUI triggers and actions
4.1. Custom GUI triggers
4.2. Custom GUI actions
5. Adding custom forms and other GUI elements: the GUI handlers
6. Extending the macro expansion engine
7. Advanced uses of data maps and extension of the data map mechanism
7.1. Data map internals
7.2. Using and manipulating data maps
7.3. Creating new data pipes
8. Extending the search tools
9. Supporting a new database type
10. Using the Invocation Registry
10.1. Advanced uses of the Invocation Registry
11. Using the URI Processor
12. Adding custom strategies to table writers
10. Script reference
1. System routines and constants
2. Delphi-specific symbols
3. EDW base classes and routines
4. Other Pascal script features

List of Tables

2.1. EDW agent families
2.2. Configuration data types
2.3. EDW macros
2.4. EDW database access layers
3.1. TEDWDBAgent configuration parameters
3.2. TEDWDBLoader configuration parameters
3.3. TEDWDBReader parameters
3.4. TEDWDBWriter parameters
3.5. TEDWStandardDBLoader parameters
3.6. TEDWDBCursorReader parameters
3.7. TEDWDataMap parameters
3.8. Data pipe categories
3.9. TEDWDBRecordWriter parameters
3.10. TEDWDBTableWriter parameters
3.11. Parameters common to all strategies
3.12. Insert strategy parameters
3.13. Update strategy parameters
3.14. Merge strategy parameters
3.15. Delete strategy parameters
3.16. TEDWDBCursorHierarchyReader parameters
3.17. TEDWSAXStructuredCDSReader parameters
3.18. TEDWSelectAgent output parameters
5.1. Available trigger firing events
5.2. Common GUI trigger parameters
6.1. GUI cube predefined measure formulas
7.1. TEDWCBDocProducer configuration items
8.1. EFCore dependencies
8.2. EDWCore dependencies
8.3. EDWVisualCore dependencies
8.4. EDW units by functional group
9.1. Predefined search operators