Home Page Icon
Home Page
Table of Contents for
III. Under the Hood
Close
III. Under the Hood
by Satish Thomas, Deepak Kumar, Tomasz Kaminski, Hans Jorgen Skovgaard, Michael Fru
Inside Microsoft Dynamics® AX 2009, Second Edition
Inside Microsoft Dynamics® AX 2009
Foreword
Acknowledgments
Introduction
Who Is This Book For?
The History of Microsoft Dynamics AX
Organization of This Book
Reading Guide
Differences from Inside Microsoft Dynamics AX 4.0
Product Documentation
Product Web Site
Naming
Code
Glossary
Special Legend
System Requirements
Release Software
Technology Updates
Code Samples
Bonus Content
Find Additional Content Online
Support for This Book
Questions and Comments
I. A Tour of the Development Environment
1. Architectural Overview
Introduction
Design Philosophy and Benefits
Application Development and Runtime Configurations
Rich Client Application
Web Client Application
Integration Client Application
Architecture of Dynamics AX
Development Environments
Application Modeling
Logic Elements and Data Elements
Application Frameworks
Runtime Environments
Communications
Model Layering
Licensing, Configuration, and Security
Database Layer
Application Model Layering System
Working with the Layers
Model Element IDs
Application Frameworks
RunBase Framework
Batch Framework
Dialog Framework
Operation Progress Framework
Number Sequence Framework
SysLastValue Framework
Application Integration Framework
Wizard Framework
Infolog Framework
Enterprise Portal and Web Parts
Reporting Framework
Operations Environment
2. The MorphX Development Environment
Introduction
Developing with MorphX
Planning Phase
Design Phase
Implementation Phase
Stabilization Phase
Release Phase
Application Model Elements
Operational and Programming Model Elements
Operational Model Elements
Programming Model Elements
Value Type, Database, and Data Association Model Elements
Value Type Model Elements
Database Model Elements
Data Association Model Elements
Class Model Elements
Presentation Model Elements
Rich Client Model Elements
Web Client Model Elements
3. The MorphX Tools
Introduction
Application Object Tree
Navigating the AOT
Creating New Elements in the AOT
Modifying Elements in the AOT
Refreshing Elements in the AOT
Element Actions in the AOT
Element Layers in the AOT
Project Designer
Creating a New Project
Automatically Generated Projects
Group Masks
Filters
Development Tools
Layer Comparison
Upgrade Projects
Project Types
Property Sheet
X++ Code Editor
Shortcut Keys
Editor Scripts
Label Editor
Creating a New Label
Referencing Labels from X++
Visual Form Designer and Visual Report Designer
Visual Form Designer
Visual Report Designer
Code Compiler
Dynamics AX SDK
Best Practices Tool
Understanding Rules
Suppressing Errors and Warnings
Adding Custom Rules
Debugger
Using the Debugger
Debugger Interface
Main Window
Variables Window
Call Stack Window
Watch Window
Breakpoints Window
Output Window
Status Bar
Debugger Shortcut Keys
Visio Reverse Engineering Tool
UML Data Model
UML Object Model
Entity Relationship Data Model
Table Browser Tool
Find Tool
Compare Tool
Starting the Compare Tool
Using the Compare Tool
Compare APIs
Cross-Reference Tool
Version Control
Element Life Cycle
Check-Out
Undo Check-Out
Check-In
Quality Checks
Updating Source Code Casing
Creating New Elements
Renaming Elements
Deleting Elements
Labels
Get Latest
Synchronization
Synchronization Log
Show History
Revision Comparison
Pending Elements
Build
Integration with Other Version Control Systems
Unit Test Tool
Test Cases
Test Suites
Test Projects
The Test Toolbar
Code Coverage
Test Listeners
Object Model
4. The X++ Programming Language
Introduction
Jobs
The Type System
Value Types
Reference Types
Type Hierarchies
The anytype Type
The common Type
The object Type
Extended Data Types
Syntax
Variable Declarations
Expressions
Statements
Data-Aware Statements
Exception Handling
Interoperability
CLR Interoperability
COM Interoperability
Macros
Comments
XML Documentation
Classes and Interfaces
Fields
Methods
Code Access Security
Design and Implementation Patterns
Class-Level Patterns
Parameter Methods
Constructor Encapsulation
Serialization with the pack and unpack Methods
Observers and Listeners
Table-Level Patterns
Find and Exists Methods
Polymorphic Associations
Generic Record Reference
II. Core Development Concepts
5. Customizing Dynamics AX
Introduction
Table and Class Customization
Creating New Dimension Types
Adding New Dimensions to a Table
Enabling New Dimensions in Forms
Customizing Other Tables
Adding Dimensions to Queries
Adding Lookup, Validation, and Defaulting X++ Code
Form Customization
Learning Form Fundamentals
Customizing with Metadata
Metadata associations
Metadata inheritance
Menu definitions
Important metadata properties
Image metadata
Customizing with Code
Displaying an Image
Displaying an Image on a Form
Displaying an Image by Using Joined Data Sources
Displaying an Image When Activating the Image Tab
Report Customization
Creating Promotional Materials
Adding Promotional Materials to an Invoice Report
Implementing Promotional Methods
Binding Display Methods to Report Controls
Preventing Printing of an Empty Body Section
Number Sequence Customization
6. Extending Dynamics AX
Introduction
Wizard Framework Extension
Creating a New Wizard
Creating Labels
Adding Content to the Wizard
Adding the Wizard to the Navigation Pane and the Area Page
Creating a Default Data Wizard
RunBase Framework Extension
Inheritance in the RunBase Framework
Property Method Pattern
Pack-Unpack Pattern
pack and unpack Methods
Bike-Tuning Service Offers Example
Creating the Labels
Creating the Table
Creating the Class
Implementing the Class Description
Implementing Constructors
Implementing a User Dialog Box
Implementing the run Method
Implementing the pack and unpack Methods
Creating a Menu Item
Adding Property Methods
Adding Constructors
Adding a Query
Client/Server Considerations
7. Enterprise Portal
Introduction
Inside Enterprise Portal
Page Processing
New Features in Dynamics AX 2009 Enterprise Portal
Enterprise Portal Development Tools
MorphX
Visual Studio
Windows SharePoint Services
Developing Data Sets
Developing Web User Interface Components
AxDataSource
AxGridView
ContextMenu
AxFilterControl
AxForm
AxMultiSection
AxSection
AxGroup
AxLookup
AxToolbar
AxPopup
BoundField Controls
Web Parts
Programming Enterprise Portal Controls
AJAX
Session
Context
Data
Metadata
Labels
Formatting
Error Handling
ViewState
Page Life Cycle
Proxy Classes
Securing Web Elements
Developing the Navigation
Web Files
Import and Deploy Page/List Tools
Record Context and Encryption
Security
8. Role Centers
Introduction
Inside Role Centers
Architecture
Developing Role Centers
Customizing an Out-of-the-Box Role Center
Creating a New Role Center
Role Center Web Parts
Cues
Quick Links
Adding Quick Links
Maintaining Quick Links
Business Overview
Working with Measures
Working with Time Periods
Business Overview Authentication
Unified Worklist
Reports
Role Centers in MOSS
KPI Lists
Filter Web Parts
User Profiles
Associating Users with User Profiles
Kerberos Authentication
Security
9. Workflow in Dynamics AX
Introduction
Dynamics AX 2009 Workflow Infrastructure
Windows Workflow Foundation
Automating Business Processes
Workflow from a Developer’s Perspective
Key Workflow Concepts
Workflow Document and Workflow Document Class
Workflow Categories
Workflow Templates
Event Handlers
Menu Items
Workflow Elements
Providers
Workflow Configurations
Workflow Instances
Work Items
Workflow Architecture
AOS and IIS Workflow Runtimes
Workflow Runtime Interaction
Logical Approval and Task Workflows
Workflow Life Cycle
Designing Workflows
State Model
Creating a Workflow Category
Creating the Workflow Document Class
Adding a Workflow Display Menu Item
Activating the Workflow
10. .NET Business Connector
Introduction
Integration Technologies
Inside .NET Business Connector
Logical Component Stack
Managed Classes
Transition Layer
Interpreter
Run Time
Web Interoperability
Security
Authentication
Authorization
Code Access Security
Usage Scenarios for .NET Business Connector
Client
Business Data Lookup Snap for Microsoft Office
PDA Synchronization Example
Web
Server
Working with .NET Business Connector
Data Types and Mappings
Managed Classes
Processing Requests and Responses
Request Processing
Response Processing
Exception Handling
HelloWorld Example
Accessing Data
Querying Data Across Companies
Method 1: Using ExecuteStmt
Method 2: Using the Query Object
Invoking Business Logic
Enhanced CLR Interoperability with the Dynamics AX Interpreter and X++
Passing Managed Objects to Dynamics AX
Registering Managed Callbacks
Migrating Applications
11. Reporting in Dynamics AX 2009
Introduction
Reporting Overview
What Is a Report?
Reporting and Users
Providing Reports in Dynamics AX 2009
Report Categories
Kinds of Reports in Dynamics AX 2009
Reporting Platforms in Dynamics AX 2009
Report Entry Points
Inside the Dynamics AX 2009 Reporting Framework
Data Flow Overview
Reporting Services Production Reporting Technical Scenario
Reporting Services Ad Hoc Reporting Technical Scenario
Building Dynamics AX Reporting Services Reports Using Visual Studio
Dynamics AX Reporting Development Tools
Integration with Dynamics AX
Report Development Life Cycle
Reporting Tools Model Elements
Reports
Report Designs
Auto design layout
Precision design layout
Structure of a Dynamics AX Reporting Project
Report Data Sources
Data Methods
Ad Hoc Reporting
Deployment: Perspectives and SMDL Models
Performance and Platform Considerations
Security
Creating Ad Hoc Reports
Troubleshooting
Unable to Validate the Report Server
Unable to Generate a Report
SMDL Model Is Not Seen on the Report Server After Successful Model Generation
Unable to Generate an SMDL Model Because One or More Languages Are Missing Some Information
12. Performance
Introduction
Client/Server Performance
Reducing Round-Trips Between the Client and the Server
CacheAddMethod
RunBase Technique
Caching and Indexing
Writing Tier-Aware Code
Working with Temp Tables
Removing Client Callbacks
Chunking Calls
Transaction Performance
Set-Based Data Manipulation Operators
The insert_recordset Operator
The update_recordset Operator
The delete_from Operator
The RecordInsertList and RecordSortedList Classes
Restartable Jobs and Optimistic Concurrency
Caching
Record Caches
The EntireTable Cache
The RecordViewCache Class
Limiting Field Lists
Field Justification
Other Performance Considerations
Dynamics AX Monitoring Tools
Dynamics AX Trace Parser
Setting Tracing Options
Setting Tracing Options on the AOS
Setting Tracing Options on the Client
Tracing Options and Other Tracing Activities
Troubleshooting Tracing
Importing Traces
Analyzing Traces
Monitoring Client/Server Calls
Monitoring Database Activity
Code Profiler Tool
13. Configuration and Security
Introduction
IntelliMorph
Best Practices
Principles for Forms
Principles for Reports
Working with IntelliMorph
Licensing and Configuration
Configuration Hierarchy
Configuration Keys
Using Configuration Keys
Security Framework
Organizing Security
Applying Security
Domains
User Group Permissions
Record Level Security
Security Coding
Table Permissions
Code Access Security
Batch Jobs
Best Practice Rules
III. Under the Hood
14. The Database Layer
Introduction
Transaction Semantics
Transaction Statements
Isolation Levels
Autocommit
Transaction IDs
AOS Process Pool
Concurrency Models
Concurrent Scenarios
Disconnected Updates of the Same Record
Using Relative Updates to Prevent Update Conflicts
Choosing a Concurrency Model During Development
Setting a Concurrency Model Globally
Optimistic Concurrency and Exception Handling
Concurrency Models in Forms
Repeatable Read
Record Identifiers
Allocation
Programming Model
Administration
Upgrade
Company Accounts
Identification
Changing the Company Account
External Accessibility
Unicode Support
Databases
Application Runtime
MorphX Development Environment
Files
DLLs and COM Components
Database Access
Database Synchronization
Table, Column, and Index Naming
Left and Right Justification
Placeholders and Literals
Dynamics AX Type System vs. Database Type System
Database Log and Alerts
Database-Triggering Methods
insert, update, and delete Methods
Selecting Rows
Validating Rows
Changing the Default Behavior
SelectForUpdate
concurrencyModel
selectWithRepeatableRead
readPast
skipTTSCheck
selectLocked
Set-Based DML Statements
Temporary Tables
Using Temporary Tables
Design-Time Setting
Configuration-Time Setting
Application Runtime Setting
Composite Queries
Paging Framework for Queries
Position-Based Paging
Value-Based Paging
Query Framework Enhancement
Complex Queries
Union Queries
UnionBranchID Field
forupdate Flag
Query as a Central Data Modeling Tool
Specifying Query Ranges Using the SysQueryRangeUtil Class
15. Reflection
Introduction
Reflection System Functions
Intrinsic Functions
TypeOf System Function
ClassIdGet System Function
Reflection APIs
Table Data API
Dictionary API
Treenodes API
16. The Batch Framework
Introduction
Batch Processing in Dynamics AX
Dynamics AX Batch Concepts
Batch Framework Capabilities
Performance
Common Uses of Batch Processing
Batch-Enabling a Class
Creating a Batch Job
From the Dialog Box of a Class
From the Batch Job Form
Create a Batch Job
Add a Task to a Batch Job
Class parameters
Define dependencies between tasks
Using the Batch API
Create a Batch Job
Add a Task to the Batch Job
Define Dependencies Between Tasks
Save a Batch Job
Example of a Batch Job
Managing the Batch Server Execution Process
Set Up Server Configuration
Create a Batch Group
Manage Batch Jobs
Batch Job Status
Control Maximum Retries
Cancel a Batch Job
Review the Batch Job History
Debug a Batch Task
Configure the AOS for Batch Debugging
Configure the Client for Batch Debugging
Run AxDebug.exe on the Client Computer
17. The Application Integration Framework
Introduction
Overview of the Application Integration Framework
Overview Scenarios
Overview of Dynamics AX Services
Components of Dynamics AX Services
Overview of Document Services
Document Services Artifacts
Axd<Document> Classes
Ax<Table> Classes
Document Services Use Cases
Document Service Development Tools
Overview of Custom Services
Custom Service Use Cases
Custom Services Development
Working with Custom Services
Creating a Service Implementation Class
Creating a Service Contract
Implementing Data Objects
Discovering Custom Services
Working with Document Services
Creating Dynamics AX Queries
Generating Document Services
Customizing Document Services
Customizing Tables
Adding Custom Service Operations
Customizing Validation Logic
Customizing Defaulting Logic
Customizing Axd<Document> Queries
Customizing Security
Publishing Dynamics AX Services
Configuring Dynamics AX Services
Configuring WCF Parameters
Configuring AIF Parameters
Configuring Access to Services
Troubleshooting Tips for Services
Consuming Dynamics AX Services
Sample WCF Client for Dynamics AX Services
Updating Business Documents
Full updates
Partial updates
Document hashes
Overriding Default Values in SOAP Headers
Message identifier
Destination endpoint (target company)
Source endpoint and source endpoint user
Sample SOAP message
Sending One-Way Requests from Dynamics AX
Implementing a Trigger for Transmission
AIF Send API
AxdSend API
Configuring Transmission Mechanisms
Consuming Web Services from Dynamics AX
Dynamics AX Service References
Consuming an External Web Service
Getting the WSDL and Creating a Service Reference
Writing Integration Code
Configuring Service References
Guidelines for Consuming External Web Services
Integration Guidelines
Security Guidelines
Privacy
Authentication
Authorization
Custom SOAP Headers
Performance Considerations
18. Code Upgrade
Introduction
Terminology
Why Code Upgrade Is Necessary
Role of Customization
Role of Layers
Overlayering and Conflicts
Starting a Code Upgrade
Conflict Types
Conflict Detection Tool
Conflict Detection Algorithm
Upgrade Projects
Conflicts in Layered Upgrade Projects
Contents Conflicts
Property conflicts
Resolution Tip
Code conflict
Resolution Tip
Ordering conflict
Overlayering Conflicts
Resolution Tip
Delete Conflicts
Resolution Tip
Conflicts in Framework Conflict Projects
Trustworthy Computing Conflicts
Record level security
Resolution Tip
Parameter validation
Resolution Tip
Use of dangerous API
Resolution Tip
Reference to unsigned .NET assembly
Resolution Tip
Validation of display or edit values
Resolution Tip
Record ID and Table ID Reference Conflicts
RecId relation missing
Resolution Tip
TableId relation missing
Resolution Tip
Field uses RecId
Resolution Tip
Field uses TableId
Resolution Tip
Type extends RecId
Resolution Tip
Type extends TableId
Resolution Tip
Upgrade Project Tools
Visual Indicators
Mark As Resolved, Unresolved
Remove Resolved Elements
Rerun Conflict Detection
Code Upgrade Tools
Element Usage Log Report
Upgrade Estimate Report
Compare Tool
Property Sheet
X++ Code Editor
Finishing a Code Upgrade
Smart Customizations
Using IntelliMorph Technology
Creating New Elements or Using Class Substitution
Modifying Stable Application Elements
IV. Appendices
A. Application Files
Application File Extensions
B. SQL Server 2005, SQL Server 2008, and Oracle Database 10g Comparison
C. Source Code Changes Required for Upgrade
Code Changes
Metadata Changes
Table Modifications
Multiple Time Zones
Language Enhancements
API Enhancements
Metadata Enhancements
System Field Changes
Upgraded System Fields
DateTime Control and Form Changes
D. Glossary
E. About the Authors
Principal Authors
Contributing Authors
Index
About the Authors
Copyright
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
13. Configuration and Security
Next
Next Chapter
14. The Database Layer
Part III. Under the Hood
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset