| Foreword |
|
xvii | |
| Acknowledgments |
|
xix | |
| Introduction |
|
xxi | |
| Who Is This Book For? |
|
xxi | |
| The History of Microsoft Dynamics AX |
|
xxi | |
| Organization of This Book |
|
xxii | |
| Reading Guide |
|
xxiii | |
| Product Documentation |
|
xxiii | |
| Product Web Site |
|
xxiii | |
| Naming |
|
xxiii | |
| Code |
|
xxiii | |
| Glossary |
|
xxiv | |
| Special Legend |
|
xxiv | |
| System Requirements |
|
xxiv | |
| Pre-Release Software |
|
xxv | |
| Technologoy Updates |
|
xxv | |
| Code Samples |
|
xxv | |
| Support for This Book |
|
xxv | |
| Questions and Comments |
|
xxvi | |
|
Part I A Tour of the Development Environment |
|
|
|
|
|
3 | (18) |
|
|
|
3 | (4) |
|
The Operations Environment |
|
|
7 | (1) |
|
The Application Development and Run-Time Environments |
|
|
8 | (2) |
|
|
|
9 | (1) |
|
|
|
9 | (1) |
|
Integration Client Application |
|
|
10 | (1) |
|
The Enterprise Portal and Web Parts |
|
|
10 | (2) |
|
Application Modeling and Program Specification |
|
|
12 | (1) |
|
The Application Model Layering System |
|
|
13 | (4) |
|
The Application Framework |
|
|
17 | (2) |
|
|
|
17 | (1) |
|
|
|
17 | (1) |
|
|
|
17 | (1) |
|
The Operation Progress Framework |
|
|
17 | (1) |
|
The Number Sequence Framework |
|
|
18 | (1) |
|
The SysLastValue Framework |
|
|
18 | (1) |
|
The Application Integration Framework |
|
|
18 | (1) |
|
|
|
18 | (1) |
|
|
|
18 | (1) |
|
|
|
19 | (2) |
|
The MorphX Development Environment |
|
|
21 | (14) |
|
|
|
21 | (1) |
|
|
|
21 | (4) |
|
|
|
22 | (1) |
|
|
|
23 | (1) |
|
|
|
23 | (1) |
|
|
|
24 | (1) |
|
|
|
24 | (1) |
|
Application Model Elements |
|
|
25 | (9) |
|
Operational and Programming Model Elements |
|
|
25 | (3) |
|
Value Type, Database, and Data Association Model Elements |
|
|
28 | (3) |
|
|
|
31 | (1) |
|
Presentation Model Elements |
|
|
31 | (3) |
|
|
|
34 | (1) |
|
|
|
35 | (20) |
|
|
|
35 | (1) |
|
The Application Object Tree |
|
|
36 | (5) |
|
|
|
36 | (2) |
|
|
|
38 | (1) |
|
|
|
39 | (1) |
|
|
|
39 | (1) |
|
|
|
40 | (1) |
|
|
|
41 | (1) |
|
|
|
41 | (3) |
|
|
|
41 | (1) |
|
Automatically Generated Projects |
|
|
42 | (2) |
|
|
|
44 | (1) |
|
|
|
44 | (2) |
|
|
|
46 | (2) |
|
|
|
47 | (1) |
|
|
|
48 | (1) |
|
|
|
48 | (3) |
|
|
|
50 | (1) |
|
Referencing Labels from X+ + |
|
|
51 | (1) |
|
The Form Visual Designer and Report Visual Designer |
|
|
51 | (3) |
|
|
|
52 | (1) |
|
The Report Visual Designer |
|
|
53 | (1) |
|
|
|
54 | (1) |
|
The MorphX Development Tools |
|
|
55 | (36) |
|
|
|
55 | (1) |
|
|
|
56 | (2) |
|
|
|
58 | (1) |
|
|
|
59 | (3) |
|
|
|
59 | (2) |
|
|
|
61 | (1) |
|
|
|
62 | (4) |
|
|
|
62 | (1) |
|
|
|
63 | (3) |
|
The Visio Reverse Engineering Tool |
|
|
66 | (3) |
|
|
|
66 | (2) |
|
|
|
68 | (1) |
|
|
|
69 | (2) |
|
|
|
71 | (2) |
|
|
|
73 | (4) |
|
Starting the Compare Tool |
|
|
73 | (2) |
|
|
|
75 | (1) |
|
|
|
76 | (1) |
|
|
|
77 | (3) |
|
|
|
80 | (10) |
|
|
|
81 | (1) |
|
|
|
82 | (1) |
|
|
|
82 | (1) |
|
|
|
82 | (1) |
|
|
|
83 | (1) |
|
Updating Source Code Casing |
|
|
83 | (1) |
|
|
|
84 | (1) |
|
|
|
84 | (1) |
|
|
|
84 | (1) |
|
|
|
84 | (1) |
|
|
|
85 | (1) |
|
|
|
85 | (1) |
|
|
|
86 | (1) |
|
|
|
86 | (1) |
|
|
|
87 | (1) |
|
|
|
87 | (1) |
|
|
|
88 | (1) |
|
Integration with Other Version Control Systems |
|
|
88 | (2) |
|
|
|
90 | (1) |
|
The X+ + Programming Language |
|
|
91 | (30) |
|
|
|
91 | (1) |
|
|
|
92 | (1) |
|
|
|
92 | (4) |
|
|
|
92 | (1) |
|
|
|
93 | (1) |
|
|
|
94 | (2) |
|
|
|
96 | (19) |
|
|
|
96 | (2) |
|
|
|
98 | (1) |
|
|
|
99 | (15) |
|
|
|
114 | (1) |
|
|
|
114 | (1) |
|
|
|
115 | (3) |
|
|
|
116 | (1) |
|
|
|
117 | (1) |
|
|
|
118 | (3) |
|
Part II Developing with Microsoft Dynamics AX |
|
|
|
Customizing Microsoft Dynamics AX |
|
|
121 | (30) |
|
|
|
121 | (1) |
|
Table and Class Customization |
|
|
122 | (10) |
|
Creating New Dimension Types |
|
|
122 | (3) |
|
Adding New Dimensions to a Table |
|
|
125 | (2) |
|
Enabling New Dimensions in Forms |
|
|
127 | (2) |
|
|
|
129 | (1) |
|
Adding Dimensions to Queries |
|
|
129 | (1) |
|
Adding Lookup, Validation, and Defaulting X+ + Code |
|
|
130 | (2) |
|
|
|
132 | (8) |
|
|
|
133 | (2) |
|
Displaying an Image on a Form |
|
|
135 | (5) |
|
|
|
140 | (7) |
|
Creating Promotional Materials |
|
|
140 | (1) |
|
Adding Promotional Materials to an Invoice Report |
|
|
141 | (6) |
|
Number Sequence Customization |
|
|
147 | (3) |
|
|
|
150 | (1) |
|
Extending Microsoft Dynamics AX |
|
|
151 | (38) |
|
|
|
151 | (1) |
|
Wizard Framework Extension |
|
|
151 | (14) |
|
|
|
153 | (3) |
|
|
|
156 | (1) |
|
Adding Content to the Wizard |
|
|
157 | (7) |
|
Adding the Wizard to the Navigation Pane and Main Menu |
|
|
164 | (1) |
|
Creating a Default Data Wizard |
|
|
164 | (1) |
|
RunBase Framework Extension |
|
|
165 | (22) |
|
Inheritance in the RunBase Framework |
|
|
165 | (1) |
|
The Property Method Pattern |
|
|
166 | (1) |
|
|
|
167 | (3) |
|
Bike-Tuning Service Offers Example |
|
|
170 | (11) |
|
|
|
181 | (1) |
|
|
|
182 | (1) |
|
|
|
183 | (3) |
|
Client/Server Considerations |
|
|
186 | (1) |
|
|
|
187 | (2) |
|
|
|
189 | (24) |
|
|
|
189 | (1) |
|
|
|
190 | (1) |
|
Inside the Business Connector |
|
|
191 | (6) |
|
The Logical Component Stack |
|
|
192 | (1) |
|
|
|
193 | (1) |
|
|
|
194 | (2) |
|
|
|
196 | (1) |
|
|
|
197 | (3) |
|
|
|
197 | (2) |
|
|
|
199 | (1) |
|
|
|
199 | (1) |
|
Working with the .NET Business Connector |
|
|
200 | (8) |
|
|
|
201 | (1) |
|
|
|
201 | (1) |
|
Request and Response Processing |
|
|
202 | (2) |
|
|
|
204 | (1) |
|
|
|
205 | (1) |
|
|
|
206 | (1) |
|
|
|
207 | (1) |
|
|
|
208 | (2) |
|
|
|
210 | (1) |
|
|
|
211 | (2) |
|
|
|
213 | (24) |
|
|
|
213 | (1) |
|
AIF Architectural Overview |
|
|
214 | (2) |
|
|
|
216 | (1) |
|
|
|
217 | (2) |
|
|
|
219 | (6) |
|
|
|
225 | (1) |
|
|
|
226 | (1) |
|
Customizing an Existing XML Document |
|
|
227 | (3) |
|
|
|
230 | (1) |
|
|
|
230 | (2) |
|
|
|
232 | (1) |
|
|
|
233 | (4) |
|
|
|
|
|
|
237 | (38) |
|
|
|
237 | (1) |
|
Inside the Enterprise Portal |
|
|
238 | (1) |
|
|
|
239 | (3) |
|
|
|
242 | (27) |
|
|
|
243 | (4) |
|
|
|
247 | (4) |
|
|
|
251 | (2) |
|
|
|
253 | (3) |
|
Web Menu Items and Web Menus |
|
|
256 | (1) |
|
Web Parts and Web Part Pages |
|
|
257 | (6) |
|
|
|
263 | (2) |
|
The Import Page and Deploy Page Tools |
|
|
265 | (1) |
|
Record Context and Encryption |
|
|
266 | (1) |
|
Web Page Development Flow |
|
|
266 | (3) |
|
|
|
269 | (1) |
|
|
|
270 | (2) |
|
|
|
272 | (2) |
|
|
|
274 | (1) |
|
Configuration and Security |
|
|
275 | (26) |
|
|
|
275 | (1) |
|
|
|
276 | (5) |
|
|
|
277 | (2) |
|
Working with IntelliMorph |
|
|
279 | (2) |
|
Licensing and Configuration |
|
|
281 | (6) |
|
The Configuration Hierarchy |
|
|
282 | (1) |
|
|
|
283 | (2) |
|
|
|
285 | (2) |
|
|
|
287 | (12) |
|
|
|
287 | (3) |
|
|
|
290 | (5) |
|
|
|
295 | (4) |
|
|
|
299 | (2) |
|
|
|
301 | (60) |
|
|
|
301 | (1) |
|
|
|
302 | (20) |
|
|
|
302 | (2) |
|
|
|
304 | (4) |
|
|
|
308 | (14) |
|
|
|
322 | (4) |
|
|
|
322 | (2) |
|
|
|
324 | (1) |
|
|
|
325 | (1) |
|
|
|
326 | (5) |
|
|
|
328 | (1) |
|
Changing the Company Account |
|
|
329 | (2) |
|
|
|
331 | (1) |
|
|
|
331 | (5) |
|
|
|
332 | (1) |
|
|
|
333 | (1) |
|
The MorphX Development Environment |
|
|
334 | (1) |
|
|
|
335 | (1) |
|
|
|
335 | (1) |
|
|
|
336 | (10) |
|
|
|
337 | (2) |
|
Table, Column, and Index Naming |
|
|
339 | (1) |
|
Left and Right Justification |
|
|
339 | (2) |
|
Placeholders and Literals |
|
|
341 | (2) |
|
The Dynamics AX Type System vs. the Database Type System |
|
|
343 | (1) |
|
The Database Log and Alerts |
|
|
344 | (2) |
|
Database-Triggering Methods |
|
|
346 | (5) |
|
The insert, update, and delete Methods |
|
|
346 | (1) |
|
|
|
347 | (1) |
|
|
|
348 | (1) |
|
Changing the Default Behavior |
|
|
348 | (3) |
|
|
|
351 | (1) |
|
|
|
351 | (8) |
|
|
|
352 | (5) |
|
|
|
357 | (1) |
|
Configuration-Time Setting |
|
|
357 | (1) |
|
Application Runtime Setting |
|
|
358 | (1) |
|
|
|
359 | (2) |
|
|
|
361 | (16) |
|
|
|
361 | (1) |
|
Capturing Form Instantiation |
|
|
362 | (3) |
|
Adding Design Controls at Run Time |
|
|
365 | (1) |
|
|
|
366 | (1) |
|
Reacting to User Interface Events |
|
|
367 | (1) |
|
|
|
368 | (1) |
|
|
|
369 | (5) |
|
|
|
374 | (3) |
|
|
|
377 | (16) |
|
|
|
377 | (1) |
|
Reflection System Functions |
|
|
378 | (4) |
|
|
|
378 | (2) |
|
The TypeOf System Function |
|
|
380 | (1) |
|
The ClassldGet System Function |
|
|
380 | (2) |
|
|
|
382 | (10) |
|
|
|
382 | (3) |
|
|
|
385 | (3) |
|
|
|
388 | (4) |
|
|
|
392 | (1) |
|
|
|
393 | (22) |
|
|
|
393 | (1) |
|
The Global Session Classes |
|
|
393 | (5) |
|
|
|
394 | (1) |
|
|
|
395 | (1) |
|
|
|
396 | (1) |
|
|
|
396 | (1) |
|
|
|
397 | (1) |
|
|
|
397 | (1) |
|
|
|
398 | (2) |
|
|
|
400 | (13) |
|
|
|
400 | (2) |
|
|
|
402 | (1) |
|
|
|
402 | (1) |
|
|
|
403 | (1) |
|
|
|
404 | (2) |
|
|
|
406 | (2) |
|
|
|
408 | (2) |
|
|
|
410 | (2) |
|
|
|
412 | (1) |
|
|
|
413 | (2) |
|
|
|
415 | (12) |
|
|
|
415 | (1) |
|
|
|
416 | (4) |
|
|
|
420 | (2) |
|
|
|
422 | (1) |
|
|
|
423 | (1) |
|
|
|
423 | (1) |
|
|
|
424 | (1) |
|
|
|
425 | (1) |
|
|
|
426 | (1) |
|
|
|
427 | (36) |
|
|
|
427 | (1) |
|
Client/Server Performance |
|
|
428 | (4) |
|
Controlling the Execution of Logic |
|
|
428 | (1) |
|
Optimizing Client/Server Calls |
|
|
429 | (2) |
|
Parsing Parameters by Reference and Value |
|
|
431 | (1) |
|
|
|
431 | (1) |
|
|
|
432 | (25) |
|
Set-Based Data Manipulation Operators |
|
|
432 | (10) |
|
Restartable Jobs and Optimistic Concurrency |
|
|
442 | (2) |
|
|
|
444 | (9) |
|
|
|
453 | (3) |
|
Other Performance Considerations |
|
|
456 | (1) |
|
Dynamics AX Monitoring Tools |
|
|
457 | (4) |
|
Monitoring Client/Server Calls |
|
|
457 | (1) |
|
Monitoring Database Activity |
|
|
457 | (2) |
|
|
|
459 | (2) |
|
|
|
461 | (2) |
|
Upgrade and Data Migration |
|
|
463 | (28) |
|
|
|
463 | (1) |
|
Upgrading from an Earlier Version |
|
|
464 | (8) |
|
|
|
464 | (2) |
|
|
|
466 | (1) |
|
Code Upgrade in a Development Environment |
|
|
467 | (3) |
|
Data Upgrade in a Test Environment |
|
|
470 | (1) |
|
Testing of Upgraded Code and Data |
|
|
471 | (1) |
|
Production Upgrade in the Live Environment |
|
|
472 | (1) |
|
Applying Service Packs and Hotfixes |
|
|
472 | (1) |
|
|
|
472 | (1) |
|
|
|
473 | (1) |
|
|
|
473 | (7) |
|
|
|
474 | (1) |
|
Data Migration Techniques |
|
|
475 | (4) |
|
|
|
479 | (1) |
|
|
|
479 | (1) |
|
|
|
480 | (3) |
|
|
|
|
|
|
483 | (2) |
|
Microsoft SQL Server 2000, SQL Server 2005, and Oracle Database 10g Comparison |
|
|
485 | (2) |
|
Source Code Changes Required for Upgrade |
|
|
487 | (4) |
|
|
|
487 | (1) |
|
|
|
488 | (1) |
|
|
|
489 | (2) |
| Glossary |
|
491 | (4) |
| Index |
|
495 | |