Professional Documents
Culture Documents
Whats New in Microsoft Dynamics AX 2012 For Developers
Whats New in Microsoft Dynamics AX 2012 For Developers
Microsoft Corporation
Published: August 2011
Microsoft Dynamics AX
Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you
and your people to make business decisions with greater confidence. Microsoft Dynamics works like
and with familiar Microsoft software, automating and streamlining financial, customer relationship and
supply chain processes in a way that helps you drive business success.
U.S. and Canada Toll Free 1-888-477-7989
Worldwide +1-701-281-6500
www.microsoft.com/dynamics
This document is provided “as-is”. Information and views expressed in this document, including URL
and other Internet Web site references, may change without notice. You bear the risk of using it.
Some examples depicted herein are provided for illustration only and are fictitious. No real association
or connection is intended or should be inferred.
This document does not provide you with any legal rights to any intellectual property in any Microsoft
product. You may copy and use this document for your internal, reference purposes. You may modify
this document for your internal, reference purposes.
© 2011 Microsoft Corporation. All rights reserved.
Microsoft, Microsoft Dynamics, Active Directory, Excel, Hyper-V, Internet Explorer, Outlook, SharePoint,
SQL Server, Visual Studio, Windows, Windows PowerShell, Windows Server, and Windows Vista are
trademarks of the Microsoft group of companies. All other trademarks are property of their respective
owners.
Table of Contents
What's New in Microsoft Dynamics AX 2012 for Developers ...................................................................4 ...................
What's New: Analytics for Developers in Microsoft Dynamics AX 2012 .................................................................... 8
What's New: AOS and Database for Developers in Microsoft Dynamics AX 2012 ............................................. 11
What's New: Best Practices for Developers in Microsoft Dynamics AX 2012 ....................................................... 16
What's New: Client for Developers in Microsoft Dynamics AX 2012 ....................................................................... 27
What's New: Enterprise Portal for Developers in Microsoft Dynamics AX 2012.................................................. 33
What's New: Help System for Developers in Microsoft Dynamics AX 2012 .......................................................... 38
What's New: MorphX Development for Developers in Microsoft Dynamics AX 2012 ...................................... 41
What's New: MorphX Tools for Developers in Microsoft Dynamics AX 2012 ...................................................... 46
What's New: Reporting for Developers in Microsoft Dynamics AX 2012 ............................................................... 52
What's New: Security for Developers in Microsoft Dynamics AX 2012 ................................................................... 59
What's New: Services & AIF for Developers in Microsoft Dynamics AX 2012 ...................................................... 62
What's New: Visual Studio Tools for Developers in Microsoft Dynamics AX 2012 ............................................ 70
What's New: Workflow for Developers in Microsoft Dynamics AX 2012................................................................ 75
What's New: X++ for Developers in Microsoft Dynamics AX 2012 .......................................................................... 79
Title Description
What's New: Analytics for Developers in Microsoft The Analysis Services project wizard makes it easier to
Dynamics AX 2012 create, update, configure, and deploy Analysis Services
projects. The wizard performs many of the tasks that
you would otherwise have to perform manually in
Microsoft Business Intelligence Development Studio
(BIDS).
What's New: AOS and Database for Developers in The following Application Object Server (AOS) features
Microsoft Dynamics AX 2012 provide functionality for advanced applications or make
it easier to write applications:
What's New: Best Practices for Developers in Microsoft Best practice compiler-enforced checks are updated to
Dynamics AX 2012 reflect new features added for this release. Emphasis is
on security and evaluating existing rules that generate
warnings. Warnings that require action have been
promoted to errors. Minor warnings that are typically
ignored have been removed.
What's New: Client for Developers in Microsoft Dynamics New forms, controls, and data source features are added
AX 2012 to help you customize the Microsoft
Dynamics AX 2012Windows client.
What's New: Debugging for Developers in Microsoft For more information about debugging scenarios in
Dynamics 2012 Microsoft Dynamics AX 2012, see Debugging in Microsoft
Dynamics AX 2012.
What's New: Enterprise Portal for Developers in Enterprise Portal is now based on Microsoft SharePoint
Microsoft Dynamics AX 2012 2010. New user controls and support for Microsoft
Dynamics AX 2012 features significantly enhance the
usability. The developer experience has been improved.
What's New: Help System for Developers in Microsoft You can create and publish new Help documentation.
Dynamics AX 2012 The new Help server simplifies how you update and
customize Help documentation.
What's New: MorphX Development for Developers in New and enhanced features are available in the MorphX
Microsoft Dynamics AX 2012 development environment. This topic describes:
· Object IDs
· Installation-specific IDs
What's New: MorphX Tools for Developers in Microsoft New and enhanced development tools are available in
Dynamics AX 2012 the MorphX Integrated Development Environment (IDE).
What's New: Organization Model for Developers in You can extend organization model to support ISV or
Microsoft Dynamics AX 2012 partner customization or configuration scenarios. You
can define new custom operating unit types.
What's New: Reporting for Developers in Microsoft SQL Server Reporting Services is now the primary
Dynamics AX 2012 reporting platform for Microsoft Dynamics AX 2012. The
reporting tools for Microsoft Dynamics AX enable you to
What's New: Security for Developers in Microsoft The security keys of earlier versions are gone from
Dynamics AX 2012 Microsoft Dynamics AX 2012. The record level security
(RLS) feature will be removed from a future version of
the product.
What's New: Services & AIF for Developers in Microsoft New features are available in Services and Application
Dynamics AX 2012 Integration Framework. Services enable integration with
Microsoft Dynamics AX, and AIF is the services
framework.
What's New: Visual Studio Tools for Developers in New features in Visual Studio Tools enable integrated
Microsoft Dynamics AX 2012 development with Visual Studio.
What's New: Workflow for Developers in Microsoft New and enhanced features for Workflow include a new
Dynamics AX 2012 Workflow Editor with advanced controls, line item
workflows, and automated workflows.
What's New: X++ for Developers in Microsoft Dynamics Microsoft.NET Framework is integrated with Microsoft
AX 2012 Dynamics AX in the following ways:
Analytics
Microsoft Dynamics AX provides a model driven approach for developing Business Intelligence (BI)
applications that use the SQL Server Business Intelligence Development Studio (BIDS) development
environment. Microsoft SQL Server Analysis Services provides OLAP functionality.
The Analysis Services project wizard is introduced to make it easier to create, update, configure, and
deploy Analysis Services projects. The wizard performs many of the tasks that you would otherwise
need to perform manually in BIDS.
You can create Gregorian calendars to use as date dimensions in your Analysis Services project.
Model data in Use tables to model data Use tables and views to model Modeling data using
perspectives. in perspectives. Use data in perspectives. views and tables
custom query definitions makes it easier to
to perform the following customize cubes.
tasks:
Create measures or
dimension attributes
using calculated
fields.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Deploy default cubes. Initially deploy the default Use the Analysis Services It is easier to deploy the
cubes by using the Setup project wizard to deploy an default cubes.
wizard. existing Analysis Services
project. Choose the default
cubes from the AOT.
Configure an Analysis Manually update your Use the Analysis Services It is easier to update
Services project after Analysis Services project project wizard to remove Analysis Services
you change the Microsoft in BIDS to remove measures, dimensions, and projects after you change
Dynamics AX measures, dimensions, KPIs that you do not have the Microsoft
configuration. and KPIs that you do not access to according to the Dynamics AX
have access to according license and configuration keys configuration.
to the license and in Microsoft Dynamics AX.
configuration keys in
Microsoft Dynamics AX.
Update an existing Use the Update a Use the Analysis Services It is easier to update an
Analysis Services project. Business Intelligence project wizard to update an existing Analysis Services
project form. Analysis Services project to do project.
the following:
Add or remove
dimensions.
Create a new Analysis Use the Update a Use the Analysis Services It is easier to create a
Services project. Business Intelligence project wizard to create an new Analysis Services
project form. Analysis Services project. project.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Add date dimensions to Date dimensions are not Define Gregorian calendars in The limitations of using
cubes. available in Microsoft the Calendar builder form in the server time dimension
Dynamics AX 2009. Use a Microsoft Dynamics AX that in Microsoft Dynamics AX
system time dimension you can use as Date 2009 are as follows:
instead. dimensions in your Analysis By default, only one
Services project. Gregorian calendar
can be included in the
Analysis Services
project.
Date attributes
cannot be translated
to Microsoft
Dynamics AX
languages.
Let the system The feature was You can set the ValidTimeStateFieldType The program code
manage data not supported. property on a table to make the table a valid time that manages data
relationships that state table. The system then adds the ValidFrom relationships over
are valid only and ValidTo columns that track a date range in date ranges is
during a specified each row. The system guarantees that the values complex. Now,
date range. in these date fields remain valid by preventing Microsoft
overlap among date ranges, based on the primary Dynamics AX can
key value. The X++ select statement has the manage these
validTimeState keyword to filter rows by date or relationships for
date range. The Query class has properties that you.
provide a filter by date range, such as the
ValidTimeStateAsOfDateTimeRange property.
UnitOfWork Class
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Manage the operation The feature was not You can use the UnitOfWork Application programmers
sequence and supported. class to safely manage the no longer have to track
transaction integrity for operation sequence and every detail of foreign key
row-based database transaction integrity for your relationships when they
operations. row-by-row database deletes, perform a set of data
inserts, and updates. You first modification calls. The
register each of your SQL data UnitOfWork class helps
modification calls with the enforce transaction
UnitOfWork object. Then, with integrity.
one method call, you instruct
the object to run the data
modification calls. The object
calculates the correct sequence
in which each data modification
call is run.
What can you do? Microsoft Microsoft Dynamics AX 2012 Why is this
Dynamics AX 2009 important?
Let a table inherit fields, The feature was not Just as an X++ class could Table inheritance can
methods, and supported. inherit from another X++ class improve your design of
relationships from in Microsoft Dynamics AX 2009, data models and reuse
another table. a table can inherit from another of schema components.
table in Microsoft
Dynamics AX 2012. As in earlier
releases, the Common table is
still the base table of every
table.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Create a full text The feature was not A full text index has a separate This feature supports full
index on a table. supported. entry for each significant word in text queries. Full text
a string field. The QueryRange queries improve the
class can enable an instance of performance of SQL
the Query class to benefit from a statements that have a
full text index. where clause condition
that is directed at a word
that is embedded in the
middle of a string field.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Have a temporary Only temporary tables of In the properties for a table in TempDB temporary
table of the TempDB the InMemory type were the Application Object Tree tables can be joined with
type. supported. (AOT), the TableType property regular tables on the
is now an enum property. The database tier. Joining
enum value InMemory is the TempDB temporary
legacy type of temporary table tables with regular tables
that is hosted in the client. The often improves
enum value TempDb is the performance and
new type of temporary table simplifies the
that is hosted in the TempDb programming model.
database of the underlying
Microsoft SQL Server. TempDB
temporary tables can be joined
with regular tables on the
database tier. Joining TempDB
temporary tables with regular
tables often improves
performance and simplifies the
programming model.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Have a computed The feature was not A computed column is the Using a computed column
column in a view. supported. output of a computation that can simplify application
uses a regular column as input. development. Various
parts of the client code
can all rely on the
computed column that is
processed by the server in
one location.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Implement filtering of The feature was not You can use the new QueryFilter Filtering the result set
the result set from an supported. class to filter the result set from from an outer join can
outer join. an outer join. The QueryFilter reduce the number of
class can produce different rows that the database
results than the server must scan.
QueryBuildRange class in outer
joins. The QueryFilter class
filters later in the process for
internal queries, and can
prevent rows that have null
values from appearing in the
result set.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Use the AOT to add The feature was not The AOT now has a Having node In a query, you can now
a having clause on supported. under Queries > MyQuery > specify a filter condition
the data source for a Data Sources. This node for an aggregate value.
query. corresponds to the having clause
in standard SQL.
Retain the table in the The underlying table was When you disable the External programs and
underlying Microsoft SQL dropped at the moment configuration key for a table Microsoft SQL Server
Server database when the that it was disabled. that is listed in the AOT, the cubes no longer fail
table is disabled in corresponding table in the when you disable a
Microsoft Dynamics AX. underlying database table. The programs
management system is not and cubes can continue
dropped. When you modify a to read the data from
configuration key to disable a the table, because they
table, you must decide whether bypass Application
you want to manually delete Object Server (AOS).
the data that is in the table. You must decide
whether you want
external processes to
continue to read from
the disabled table.
Message Description
RecID field cannot be part of the A RecID field was set as the replacement key.
ReplacementKey index. Best practice rule that supports relational application design. The
following properties were added to define a model:
Class is packing element IDs instead of You used an element ID in your pack and unpack methods. Examples
element names. of element IDs are ClassId, TableId, and FieldId. Use the element
name in your pack and unpack methods.
The form must include a grid that contains If a form has a data source with ValidTimeStateAutoQuery
ValidFrom and ValidTo fields when that form property set to DateRange, the form must include a grid that
has a data source with contains valid from and to fields.
ValidTimeStateAutoQuery set to DateRange.
The class %1 is obsolete. Instead, use the You tried to use a class that is obsolete.
class %2.
Do not use braces around the case blocks in You have braces around a case block in a switch statement that must
Do not use the <syntax> tag in XML You have a <syntax> tag in XML documentation that must be
documentation. The syntax is derived from removed.
the method declaration, and must not be
explicitly provided.
Line item workflow '%1' event handler does Best practice rule for event handling that is now supported for
not reference a valid class implementing the approvals and tasks.
'%2' interface
Line item workflow relation '%1' not found Best practice rule for event handling that is now supported for
on workflow document query '%2’ approvals and tasks.
Line item workflow relation '%1' is invalid. Best practice rule to support event handling that is now supported
Relation must be configured with a fetch for approvals and tasks.
mode of 1:n on workflow document query
'%2'
Line item workflow relation not defined Best practice rule to support event handling that is now supported
for approvals and tasks.
Line item workflow type '%1' not found Best practice rule to support event handling that is now supported
for approvals and tasks.
Workflow document query not found on line Best practice rule to support event handling that is now supported
item workflow type '%1' for approvals and tasks.
Line item workflow relation '%1' does not Best practice rule to support event handling that is now supported
match root datasource on line item for approvals and tasks.
workflow type document query '%2'
Line item workflow must have at least one Best practice rule to support event handling that is now supported
line item workflow type for approvals and tasks.
The Company association type cannot be Choose an alternative association type. This best practice rule was
used for this workflow type because the added to support organizational model types in workflow.
table for the primary data source used by
the workflow type is not configured to 'Save
Data Per Company'.
The Global and Other association types Best practice rule to support organizational model types in workflow.
cannot be used for this workflow type
because the table for the primary data
source used by the workflow type is
configured to 'Save Data Per Company'.
An association type relation must be Best practice rule to support organizational model types in workflow.
selected when the association type is Other
A class extending the SysTableExtension Best practice rule to support the extension of the base class
class must not have any member variables. SysTableExtension. Use the SysTableExtension class to override the
table data defaults.
The node's path exceeds the maximum Best practice rule to report tree node paths that exceed a string size
length of 400 characters. Reduce number of of 400.
nesting levels or rename nodes.
Another interface already defines %1. Best practice rule added to check that there are no method conflicts
between the interfaces. For example, a class cannot implement two
interfaces that both define a method with the same name.
The class %1 does not implement methods Best practice rule that checks that the implementation in a class
%2 implementing an interface contains the methods specified in the
interface profile.
The base type of the return type of method Best practice rule to check that the implementation in a class
%1 is different from the base type of the implementing an interface has the return type that is specified in the
corresponding field. parameter profile.
The expected parameter count does not Best practice rule to check that the implementation in a class
match the actual parameter count. implementing an interface has the same number of parameters that
is specified in the parameter profile.
The parameter %5 must be optional on Best practice rule that checks that the parameter is either optional
both methods %1.%2 and %3.%4, or be on both methods or required on both methods.
non-optional on both.
The parameter %5 must be of the same Best practice rule that checks that the parameter has the same type
type on both methods %1.%2 and %3.%4. on both methods.
The upgrade script is missing required Best practice rule that checks that the upgrade script has the
attribute %1. required Description attribute.
The upgrade script is missing required Best practice rule that checks that the upgrade script has the
attribute %1. required Type attribute.
The upgrade script is missing required Best practice rule that checks that the upgrade script has the
attribute %1. required Stage attribute.
The upgrade script is missing required Best practice rule that checks that the upgrade script has the
attribute %1. required Table attribute.
The upgrade script method cannot be static. Best practice rule that checks that the upgrade script is a non-static
method.
The upgrade script method cannot accept Best practice rule that checks that the upgrade script method has no
parameters. parameters.
Table %1 specified in the Best practice rule that checks that the table stated in the attribute of
UpgradeScriptTableAttribute is not valid. an upgrade script exists in the AOT.
Configuration Key %1 specified in the Best practice rule that checks that the configuration key stated in the
UpgradeScriptConfigKeyAttribute is not
Class %1 specified in the Best practice rule that checks that the class name stated in the
UpgradeDependsOnModuleAttribute is not attribute of an upgrade script exists in the AOT.
valid.
Method %1 in class %2 specified in the Best practice rule that checks that the method name stated in the
UpgradeDependsOnModuleAttribute is not attribute of an upgrade script exists in the AOT.
valid.
The upgrade script does not have a valid Best practice rule that checks that the script version stated in the
version defined attribute of an upgrade script exists in the AOT.
[#define.version(sysReleasedVersion)] in
the class declaration.
Return type covariance: Return values must Best practice rule that checks that the return values must both be
both be either tables or maps (%1.%2). either tables or maps.
@Return type covariance: Methods must Best practice rule that checks that the methods must return the
return the same map (%1.%2). same map.
The %1 relation to the %2 table does not The unit of measure table is now global. At upgrade, company-
have an upgrade script assigned. You must specific units will be merged using user-defined mapping. This
assign an upgrade script or exclude it from requires that existing tables that have relations to the unit of
upgrade validation. measure also apply the mapping. This best practice checks for
relations to unit of measure and confirms that the relation to unit of
measure is registered with an upgrade script or that the table is
marked to be excluded from the upgrade.
UnitOfMeasureUpgradeExecutor::registerUpgradeJobs()
UnitOfMeasureUpgradeValidator::registerExcludedRelations()
A non-surrogate key primary index is not Best practice rule that checks that the primary key for a company-
valid for a company-specific table specific table must be a surrogate key.
Use of labels for developer documentation Best practice rule that checks that tables have a description of the
table specified in the DeveloperDocumentation property.
Framework classes must have a disclaimer Best practice rule that checks that the framework classes providing
in the ClassDeclaration to discourage platform functionality have a message on them to discourage
customizations. developers from customizing them. Customizing and extending
classes that provide platform functionality may cause problems with
future upgrades.
The framework class disclaimer must be Framework classes have a disclaimer to discourage developers from
placed after the XML documentation. customizing them. Customizing and extending classes providing
platform functionality may cause problems with future upgrades.
Best practice rule that checks that the disclaimer is placed after the
XML documentation, meaning after the /// comments.
Each perspective entity (table or view) must Best practice rule that checks that the perspective entity (table or
have at most 1 parent. view) has at most one parent.
Each perspective entity (table or view) must Best practice rule that checks that the perspective entity (table or
have at most 1 child. view) has at most one child.
Each perspective entity (table or view) must Best practice rule that checks that the perspective entity (table or
have a corresponding child for each parent. view) has a corresponding child for each parent.
Each perspective entity (table or view) must Best practice rule that checks that the perspective entity (table or
have a corresponding parent for each child. view) has a corresponding parent for each child.
In each perspective entity the parent type Best practice rule that checks that in a perspective entity, the parent
should be the same as the child type if type is the same as the child type if one exists.
present.
%1 or %2 must not be used in the sys Best practice rule that checks that the
layer. UpgradeModuleDependsOnMeAttribute attribute and
UpgradeTaskDependsOnMeAttribute attribute are not used in the SYS
layer.
Inconsistent usage of AOSAuthorization Best practice rule that checks that all the tables in the inheritance
property for a table in chain of inheritance. hierarchy have the same value for authorization: either enabled or
Ensure that both tables %1 and %2 have disabled.
authorization either enabled or disabled.
Allowed CacheLookUp values for this Best practice rule that checks that the cache lookup is valid for the
TableGroup is %1 table group.
Service group must have a valid description Best practice rule that checks that the Description property for a
service group is provided. The description value must be a valid
label.
Service must have a valid Namespace Best practice rule that checks that the Namespace property for a
property service is set to a valid namespace. You may not use the default URI,
for example http://tempuri.org.
Entry point is not in any privilege Best practice rule that checks that the entry point is in a privilege.
Menu item points to a class that is not a Best practice rule that checks that the menu item has a linked
RunBase class; it should probably have a permission.
linked permission object
All duties should be part of a role Best practice rule that checks that a duty is part of a role.
All duties should be part of a process cycle Best practice security rule that checks that a duty is part of a process
cycle.
A form that is not associated with other Best practice security rule that checks that a form is linked to a
forms should be linked to at least one menu menu item.
item
Non-system-managed %1 resource with Best practice security check that a non-system-managed resource
incorrect managed by value %2 has Managed By value set to Manual.
Privilege is not in any duty. Best practice security rule that checks that the privilege is set to a
valid duty.
Missing SysEntryPointAttribute on service Best practice rule that checks that the SysEntryPointAttribute
operation attribute on the service operation because it is exposed externally.
Missing processReport method Best practice rule that checks that the report has a processReport
method.
Missing SysEntryPointAttribute on SSRS Best practice rule that checks that the SQL Server Reporting Services
RDP class report data provider class has a processReport method defined with a
SysEntryPointAttributeSysEntryPointAttribute attribute specified.
Info part not linked to menu items Best practice security rule that checks that an Info Part is linked to a
menu item. An Info Part is a collection of related data fields you can
associate with a record in a form. You use Info Parts to create a
FactBox for a form or the preview pane for a list page. To add an
Info Part to a form, you use a menu item that links to the Info Part.
DeveloperDocumentation label should not Best practice rule that checks that the DeveloperDocumentation
be marked to be translated. property should not be translated. The DeveloperDocumentation
property should have the {Locked} keyword in the comment for the
label used in the DeveloperDocumentation property.
The help provider class isn't specified for The HelpProviderClass property must be set if the
this online documentation set ContentLocation property is set to Online for a Help Document Set.
Query %1 can not be made searchable Best practice rule that checks that the searchable query has a data
because it has zero or more that one data source. You will get a best practice violation if no data source is
sources. specified or if more than one data source is specified.
Query %1 cannot be made searchable Best practice rule that checks that the searchable query must have
because it does not have the the SearchLinkRefName property or the FormRef property set on
searchlinkrefname property or formref the root table.
Query %1 is searchable but it does not Best practice rule that checks that the searchable query must have
have the searchlinkrefname property set to the SearchLinkRefName property set to a URL menu item on the
a url menu item on the root table %2. The root table or the search results will not appear in Enterprise Portal.
search resuls in wll not appear in Enterprise
Portal.
Query %1 is searchable but it does not Best practice rule that checks that the searchable query must have
have the formref property set to a form on the FormRef property set to a form on the root table or the search
the root table %2. The search results in wll results will not appear in the Microsoft Dynamics AX client.
not appear in AX client.
Query %1 can not be made searchable Best practice rule that checks that the valid searchable query must
because it does not have the titlefield1 or have the TitleField1 or the TitleField2 fields set on the root table.
titlefield2 set on the root table %2.
Update permissions for search crawler role Best practice rule that checks that the search crawler role has
from searchable queries. permissions for the table that was used in the query.
Query %1 can not be made searchable Best practice rule that checks that the searchable query must have a
because it has has a root table that is a root table that is a transaction table with an index on the
transaction table with no index on the ModifiedDateTime field.
modifieddatetime field.
Element has changed name since previous Best practice rule that checks that the element has the same name
release. If the rename is intentional then as the previous release. If the change was intentional then suppress
suppress this violation; otherwise, update the violation. This best practice check is not new, the message has
the LegacyID. Old name was: %1 been updated. This check has been modified due to the changes
regarding installation specific IDs.
The element has an origin value that is Best practice rule that checks that the same origin value occurs in
different from the origin value in a previous the earlier version of Microsoft Dynamics AX. This check was added
version of Microsoft Dynamics AX. due to the changes regarding installation specific IDs.
Element has no LegacyID assigned and was Best practice rule that checks that the element has a LegacyID
shipped in a previous version. All ID-based property assigned because the element was shipped in an earlier
elements already shipped must have a version of Microsoft Dynamics AX. This check was added due to the
LegacyID. Set Legacy ID to %1. changes regarding installation specific IDs.
Element has a different LegacyID than Best practice rule that checks that the value specified in the
previous shipped version. Please update LegacyID property occurs in the earlier version of Microsoft
LegacyID, old LegacyId was %1. Dynamics AX. If a violation of this best practice occurs, update the
LegacyID property. This check was added due to the changes
regarding installation specific IDs.
The element does not have an origin value. Best practice rule that checks that the element has an origin value.
This element must have a non-null origin This element must have an origin value that is not NULL. This check
value. was added due to the changes regarding installation specific IDs.
Do not use a deprecated field as title field. Best practice rule that checks that the deprecated field is not used as
Please select another title field. a title field.
Do not use deprecated field %1 in non- Best practice rule that checks that the deprecated field is not used as
deprecated index %2. Please remove the an index. Remove the deprecated field or deprecate the index.
field or deprecate the index.
Do not use deprecated field %1 in field Best practice rule that checks that the deprecated field is not used in
group %2. Please remove the field from the a field group. Remove the deprecated field from the field group.
field group.
Message Description
Control %1 bound to table field group has name that Best practice rule that checks for when a Group or Grid
does not match default name of %2, consequently the control has the DataGroup property set but the child
control requires storage and cannot be optimized control cannot be created when the form is loaded. This
is because the name bound to the table field group does
not match the default name. The control must be saved
as metadata. This requires storage and the control
cannot be optimized.
The form group and table group have different fields at Best practice rule that checks that the Group or Grid
position %1: '%2' != '%3', consequently the control control has the DataGroup property set but the child
requires storage and cannot be optimized control cannot be created when the form is loaded. This
is because the controls in the form group must match
the position in the table field group. If the position does
not match, the position must be saved as metadata.
This requires storage and the position cannot be
optimized.
The best practice rule changes for container controls resulted in best practices that have been
removed. The following table lists the best practice checks that were removed.
be AOS optimized
Form group (%1) and table group (%2) have different BPErrorFormGroupControlDifNumOfFields
number of fields, consequently they cannot be AOS
optimized
The action menu item is not defined. The action menu BPErrorWorkflowNoActionMenuItem
item or the action Web menu item must be defined. BPErrorWorkflowNoWebActionMenuItem
@SYS108556
@SYS55415
The table %1 has no record ID index but does use the BPErrorTableNoRecordIdIndex
@SYS68904
@SYS152538
Table has record ID index but does not use record ID BPErrorTableRecordIdIndexNotUseField
field explicitly.
Table has a record ID index but does not seem to use BPErrorTableRecIdFieldUsedUseless
the record ID field explicitly for lookup.
Forms
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Set the Style property of Feature not available. Specify the type of form that After you set the Style
a form. you want to create. property, several form
properties are updated to
use the values required for
the specified form.
Create a Table of Feature not available. Use the table of contents The Table of Contents
Contents form. pattern for small forms that form is a useful design
display data on one or more pattern that you can use
tabs. to create a form that sets
parameter values. For
example, the Accounts
receivable parameter form
uses the table of contents
pattern.
Use metadata to create If you want the same list The list page that you create A single list page saves
a list page that appears to appear in the client and can appear in both the client development time, and
in both the Microsoft Enterprise Portal, you had and Enterprise Portal. ensures that the same list
Dynamics AX client and to create two separate list is viewed in both the client
Enterprise Portal for pages. and Enterprise Portal.
Microsoft Dynamics AX.
Add an action pane to a Action panes were limited You can add an action pane Action panes improve
form. to list pages and content to a details form. access to actions that
pages. were previously available
on the menu or toolbar of
the form.
Specify that a form When you view a form To quickly view data values, To reduce the risk of
opens in read-only that has editable controls, you use forms that are in accidental changes, you
document view mode. you could accidentally read-only mode. can specify that the form
change a field value. show a read-only version
of the form.
Add enhanced previews When you rest the pointer When you rest the pointer on The use of a FactBox gives
for foreign key fields or on a record in a list, a a record, the preview shows you the option to include
controls. tooltip appears that shows the data fields that are more data fields in the
one or two preview fields specified by a FactBox. preview.
for that record.
Specify how a form You use a form property You use the OpenMode You specify whether the
opens. to specify the mode for a property of menu items and form opens to create a
form. menu item buttons to specify new record, update an
how the form opens in the existing record, or view an
client. existing record in read-
only mode.
Add FactBoxes to a To supply additional You use FactBoxes and a You can add several
form. information about the preview pane to provide a Factboxes that show
selected record in a list, variety of additional various types of
you add a preview pane to information that is related to information. A FactBox
the bottom of the list the selected record in a form. uses a part object that
defines the data that
Specify whether the Feature not available. You can use the By copying the query from
query from the parent CopyCallerQuery property of the parent form to a child
form is copied to a child menu items and menu item form, you ensure that the
form. buttons to specify that the forms display a consistent
query of the parent form is set of data.
used in the child form.
Controls
Use a DropDialogButton Feature not available. You click a button to open a You can complete actions
control. dialog box where you can without opening another
complete an action. form.
Add an action pane strip Feature not available. You can add an action pane You use an action pane
to a form. strip that provides access to strip when the form does
the actions that are not have enough actions
associated with the form. for a full action pane. In
addition, an action pane
strip enables you to put
actions close to the records
and data fields that they
relate to.
Add FastTabs to a form. Tabs were arranged A FastTab is a new vertical FastTabs let you display
horizontally across the presentation style that large amounts of
top of the form. replaces the existing tabs for information in a single
forms. form.
Use the ReferenceGroup Feature not available. You can replace a surrogate You use the
control. foreign key with one or more ReferenceGroup control in
Use the segmented entry Feature not available. You use the segmented The task of entering
control. entry control to enter an complex combinations of
account number and accounts and dimensions is
associated dimensions. simplified.
Use the managed host Feature not available. You can add and use .NET You can add and use
control to add a .NET controls in forms. Windows Presentation
control to a form. Foundation (WPF) or
managed form controls.
Use the MSChart control. To display data in a To display data in a chart, MSChart replaces ChartFX,
chart, you had to use the you use the MSChart .NET and provides new
ChartFX ActiveX control. control. capabilities to create and
save a chart.
Disable or hide controls Feature not available. The form shows unique You can target controls and
that are not used in a controls and navigation navigation elements to
specified country or elements to users in a users in specific countries
region. specified country or region. or regions. The targeted
In addition, users from other controls and navigation
countries or regions cannot elements are disabled or
access these controls and hidden when the form is
navigation elements. viewed by users from other
countries or regions.
Set the Style property of Feature not available. Specify the type of control After you set the Style
a control. that you want to create. property, several control
properties are updated so
that they use the values
that are required for the
specified control.
Data Sources
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Use date effective data There was no standard You create forms that use Forms display the current
from a table. framework for displaying from dates and to dates for data for fields that support
date effective data. data records. date effective data. You can
reference a table that
contains date effective
dates, and specify query
and update behavior.
Use a modeled query Feature not available. You use a menu item to The development and
with a menu item. specify the query that is maintenance of Cues and
used for a Cue or a secondary list pages is
secondary list page. simplified.
Replace a surrogate Tables and lookup forms Tables and lookup forms A form or lookup form that
foreign key with used replacement keys to use a surrogate key to uses a surrogate key shows
specified data fields. identify a related record. identify a related record. values that are
understandable to the user,
instead of the value of the
surrogate foreign key.
Defer the loading of Feature not available. The replacement fields are Performance is improved,
replacement values for not loaded until they are because joined data is not
surrogate foreign keys. visible. retrieved until it is needed.
Use a derived data Feature not available. Controls can be bound to The derived data source
source to access data fields from the derived lets you use data from a
from tables in an tables in an inheritance table in an inheritance
inheritance hierarchy for hierarchy. hierarchy.
tables.
Specify updates to When an update occurred, When you save a record The single transaction
several tables as a each table was updated in a that changes multiple provides a more efficient
single unit of work. separate trip to Application tables, the changes are and consistent framework
Object Server (AOS). In combined into a single for completing data
addition, each trip was a transaction that is initiated changes.
separate transaction. by AOS.
Specify how optional Optional records were The optional record is only You can specify the
records in outer joined always created and saved. created if you enter data behavior of optional
tables are created or for an outer joined table. records. You can choose to
deleted. always create, implicitly
create, or explicitly create
the optional record.
Filter on the fields in all Filtering on outer joined The Filter-by-Grid, Filter- You can sort and filter on
joined tables. fields was disabled. by-Field, Filter-by-Value, the fields in all of the joined
Filter-by-Selection, and tables.
Advanced Filter dialog
boxes support filtering on
Parts
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Create or update a Feature not available. You can create or update a Info parts enable you to
FactBox. FactBox that appears on a list specify the data that
page or in a form. appears in a FactBox.
Use an existing form as Feature not available. You can use a form as a You have more options
a FactBox. FactBox that provides additional to customize the types
information about the current of controls that appear
record. in the FactBox.
Create a Cue in the Cues used copies of the You use the AOT to create a Changes to the list page
Application Object Tree list page query and could Cue that uses an existing query. query no longer affect
(AOT) that uses an break if the list page the Cue.
existing query. query was later changed.
Create a Cue group that Feature not available. A Cue group includes references You use a Cue group as
you can use as a to one or more Cues. a FactBox that provides
FactBox. summary information
that is related to the
current record.
Search
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Make all forms and Feature not available. To make a form or report You can use Search to
reports available appear in search results, you find the forms and
from Search. create a menu item, and add reports that are
the search terms that you associated with a
want to associate with the task.
specified form or report.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Microsoft SharePoint Enterprise Portal uses Enterprise Portal uses SharePoint 2010
2010 provides core Windows SharePoint SharePoint Foundation 2010 or provides features, such
features that are used Services (WSS) 3.0 or SharePoint Server 2010. as the SharePoint
by Enterprise Portal, Microsoft Office Ribbon, that improve the
such as document SharePoint Server 2007. functionality and user
libraries that store experience for Enterprise
Enterprise Portal pages. Portal.
You use Visual Studio Enterprise Portal Enterprise Portal integrations Visual Studio 2010 is a
2010 to develop integrations are are developed with Visual standard development tool for
Enterprise Portal developed with Visual Studio 2010. Microsoft Dynamics AX 2012.
integrations. Studio 2008.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Enterprise Portal Feature not available. In Enterprise Portal, you can Allows for a more efficient
supports tables that use tables that are structured database structure.
are structured into a in a hierarchy.
table hierarchy.
Enterprise Portal Tables typically displayed Tables can have surrogate keys Provides a user interface
supports tables that the key values. that are not displayed to the that is more user-friendly.
use surrogate keys. user.
Enterprise Portal uses The security model was The security model is much System administrators
the new security less flexible. more flexible and configurable. have better control over
model. security settings.
Pages can be opened as Pages always opened in- Pages can open as modal Context is preserved
modal windows. line, replacing the windows. This allows the when the user performs
previous page that was previous page to remain. actions in Enterprise
displayed. Portal.
Enterprise Portal has new The User Control New user control components, Improved visual
User Control components. components for such as AXColumn and appearance of pages in
Enterprise Portal pages AxMultiColumn, allow for more Enterprise Portal
limited the layout flexible layout. improves user
possibilities. productivity.
Enterprise Portal can use Lookups load data at the Lookups can be configured to The user experience is
optimized lookups. time that they are load data at the time the page improved, because users
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Create list pages for Separate list pages are A list page can be created and Saves development time
use in Enterprise created for Enterprise used in both the Microsoft when you are creating
Portal. Portal. Dynamics AX client and lists.
Enterprise Portal.
Services Framework
Enterprise Portal uses Enterprise Portal used the Enterprise Portal uses the Allows for more flexible
Microsoft Dynamics AX .NET Business Connector Microsoft Dynamics AX services deployment of
services to access data to access data and to access data and metadata. Enterprise Portal.
and metadata. metadata.
Search
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Search for data in Data Crawler is used to The SharePoint search By using the search
Microsoft Dynamics implement search. infrastructure is used. infrastructure of
AX. SharePoint, you can
choose the appropriate
Pluggable Authentication
Enterprise Portal can use You must use Active You can use Windows Live ID You do not have to have
Windows Live ID to Directory accounts for accounts for external users. external users added to
provide authentication for external users. the Active Directory for
external-facing pages. your organization.
Proxy Support
Code for Enterprise Portal Proxies are limited to Proxies can be used Proxies are easier to set
can use the new proxy Enterprise Portal and throughout Microsoft up and use. They enable
implementation. not easy to set up. Dynamics AX. This includes Enterprise Portal code to
Enterprise Portal. access Microsoft
Dynamics AX resources,
such as X++ classes.
Cross-reference Support
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
You can use the cross- The cross-reference tool The cross-reference tool It is now easier to see
reference tool in the does not support supports Enterprise Portal how resources are used
MorphX IDE to see how Enterprise Portal resources. in Enterprise Portal.
resources for Enterprise resources.
Portal are used.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Create Help Changes to Help Allows users, system Enables you to customize
documentation. documentation were administrators, and the documentation to the
possible but developers to create needs of your
cumbersome, often documentation. organization.
requiring recompiling and
replacing .chm files.
Use Microsoft Office Word Feature not available. You can use Word to create Anyone who has Word can
to create documentation. documentation. create Help
documentation.
Use HTML or text editors Feature not available. You can use HTML to create You can use any HTML or
to create documentation. documentation. text editor to produce
your documentation.
Use Microsoft Including labels was You can insert labels from Your documentation
Dynamics AX labels in possible but required the the client user interface into matches what the user
documentation. recompilation of .chm your HTML Help sees on the client.
files. documentation.
Hide topics from other You could remove topics When you add new Help The Help viewer always
publishers. from the .chm file but documentation you can also shows the most relevant
you then had to hide outdated documentation
Publish new or updated Changes to Help topics You add or update You can add or update
documentation. required recompilation documentation by putting documentation to reflect
of .chm files. files on the Help server. the needs of your
organization.
Distribute documentation You had to install an Documentation updates are You can make sure all
updates to users. updated .chm file on available to all client clients have access to the
each client computer. computers when the update same documentation.
is published on the Help
server.
Use Search
Add keywords that Changes were possible You can add keywords that Search results are more
improve topic but required the improve the ranking of your accurate and informative.
discoverability. recompilation of .chm topic in a list of search
files. results.
View rich search results. Search results from the Search results contain topic You can use the
.chm files were a list of titles, topic summaries, and summaries to find the
topic titles. links to additional sources of documentation that your
Help documentation. need.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
View Help documentation Adding documentation to The Help viewer retrieves and The Help viewer includes
produced by more than the .chm files was difficult displays documentation from documentation from
one publisher. so Help documentation all publishers. Microsoft, partners,
was often located in developers, and other
separate files. publishers.
Add table of contents Changes were possible Each publisher can add table Your table of contents
entries. but required the of contents entries for new entries are added to the
recompilation of .chm documentation main table of contents
files. that appear in the Help
viewer.
What can you do? Microsoft Microsoft Dynamics AX 2012 Why is this
Dynamics AX 2009 important?
In earlier versions, The model store did The following model features are Storing models in SQL
application model data for not exist in Microsoft new: Server increases
Microsoft Dynamics AX was Dynamics AX 2009. A model is a set of model quality, reliability, and
always stored in a Application model elements in a specific layer. performance. In
proprietary database that data was stored in addition, you can use
Each layer consists of one or
was named the Application .aod files. You can the tools that are
more models. One of the
Object Database (AOD). load .aod files during available in SQL Server
models is generated by the
Each layer of the application version upgrade. You for backup and
system. For example, VAR
had a corresponding .aod can also load .aod administration.
Model is the model that is
file. Microsoft files by using the
generated for the VAR layer.
Dynamics AX 2012 Tools menu.
Each element in a layer must
introduces the model store.
belong to only one model.
Use the SQL Server–based
model store to work with Models can be exported to a
business data, or customer file artifact that is called a
data. model file. Model files have
an .axmodel extension. A
model file is like an .aod file
from earlier versions, but the
Development is performed in
the current model in any
given layer. All development
work, such as creating a new
class, becomes part of the
current model in the current
layer. You can change the
current model by clicking the
name of the current model on
the status bar, similarly to
the way that you change the
current company.
controlled model.
Object IDs
In earlier versions of Microsoft Object IDs were 16 bits Object IDs are 32 bits long. Changing the length of
Dynamics AX, the number of long. object IDs from 16 bits
object IDs that was available to 32 bits exponentially
for application elements was increases the number
limited, both in the range of of object IDs that are
IDs and by layer. In Microsoft available.
Dynamics AX 2012, the 16-bit
object ID is upgraded to 32
bits. This change exponentially
increases the number of object
IDs. Therefore, you no longer
have to worry that you may
run out of object IDs.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Use AxUtil to import The feature was not AxUtil is a command-line utility Users can use these tools
and export application available. that you can use to import and to work with models from
model data and work export .axmodel files into the outside the development
with the SQL Server SQL Server model store. You environment. Therefore,
model store. can also use AxUtil to delete there are more options for
one or more models, create scripting deployment
new empty models, and list all processes.
of the models in a layer.
Development Workspace
In Microsoft Dynamics AX 2012, Old layer names: New layer names: The new layer names
16 layers are supported. more accurately
Because multiple solutions can describe the usage of
be installed in parallel into the USP USP the layers.
same layer, some layers have USR USR
been renamed to emphasize the
new usage. CUP CUP
CUS CUS
VAP VAP
VAR VAR
BUP ISP
BUS ISV
SL3 SLP
SL2 SLN
SL1 FPP
HFX FPK
GLP GLP
GLS GLS
SYP SYP
SYS SYS
Installation-Specific IDs
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Object IDs, such as table Objects IDs were When a new model element is Because of installation-
IDs, field IDs, and class assigned when a model saved, imported, or installed, a specific IDs, conflicts
IDs, are now installation element was created. unique ID is assigned to the are avoided, because an
specific. Therefore, you model element at that ID is not assigned until
no longer have to worry installation site. installation time.
about conflicting object For example, when a new class Because the assignment
IDs in different is added by a developer and of object IDs is handled
installations. saved to the model store, the at the installation site,
class is assigned a class ID. Team Server no longer
However, when the same class has to manage IDs.
is imported into another Team Server is no
installation at a customer site, longer installed, and the
the class ID may be different setup of version control
from the ID that was assigned in is no longer dependent
the first installation site. on Team Server.
X++ Editor
Develop Microsoft The code editor was The code editor is now based The new X++ editor
Dynamics AX applications unique to Microsoft on the code editor for Visual adds features and is
in the X++ code editor. Dynamics AX. Studio, and includes many of more familiar to
the same features and developers who have
shortcuts. The following new worked with Visual
and changed features are Studio.
available:
improved.
Code rendering is
improved. For example,
the value of a label is
displayed when you rest
the mouse pointer on the
label, and an indicator in
the margin tracks your
changes. Additionally, line
numbers are displayed,
the font is improved, there
is more syntax coloring,
and you can view
whitespace.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
View detailed You used the Application Use the Type Hierarchy Browser The Type Hierarchy
information about Hierarchy Tree. to see detailed information Browser and Type
elements in the about an element and its Hierarchy Context
Application Object Tree components, such as methods, provide more
(AOT), and information fields, or properties, and the functionality than the
about the hierarchy of element from which the Application Hierarchy
those elements. element inherits. In the form, Tree.
you can view information about
classes, tables, maps, views,
extended data types, and
enumerations.
Attach a predefined The feature was not Use predefined attributes to A test can be self-
attribute to a test class or available. specify that a test is active, or describing with regard to
test method to provide that it is a check-in test. You organization and when
more information. can also use predefined the test is run. For
attributes to provide the target example, to run only the
element that you are testing. check-in tests, you can
attach an attribute to the
test that indicates that
the test is a check-in
test.
Add custom attributes to You categorized test Add and remove attributes A test can be self-
further categorize test cases by creating them from test cases to provide describing with regard to
cases. and adding them to a detail. For example, to satisfy organization and when
At a glance, know You viewed the test In a test project, an icon At a glance, you can
whether a test case detail by clicking the appears next to each test case understand how well a
passed or failed. Details button on the to indicate whether the test given project is running.
Unit Test toolbar. case passed or failed.
Alternatively, you
displayed results by
using a listener.
Rest the mouse pointer You accessed the In a test project, rest the At a glance, you can
on a failed test case to exception detail in a mouse pointer on a failed test know the exceptions that
display the exception that listener. case to display the exception were introduced for a
occurred. that occurred. project.
Use test metrics to The feature was not Click the Details button on the You can use the duration
measure performance. available. Unit Test toolbar to view how metrics to help improve
long the test case ran. performance.
Use test metrics to The feature was not Click the Details button on the You can use the metrics
ensure the integrity of available. Unit Test toolbar to view the that indicate the number
your starting test data. number of records that were of records that were
updated in the database. updated to troubleshoot
data integrity issues.
When you run successive
test cases, the integrity
of the data that you start
with for each test is very
important.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Select the model The feature was not Use the Change Current Model You can now change the
that you want to available. tool to select the model that you current model.
work with. want to work with.
Use the Create The feature was not Use this form to create a project You can now create a
Project from Model available. from the contents of a model. project that contains only
form. the contents of a model.
Use the Create The feature was not Use this form to create a new You can now create a new
Model Tool form. available. model. model.
Use the Import AOD The feature was not Use this form to load an .aod file You can now load an .aod
File form. available. from an earlier version of file from an earlier version
Microsoft Dynamics AX into the of Microsoft Dynamics AX
model store. into the model store.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Detect conflicts when The feature was not Use the Detect Code Upgrade You can now see how
code is upgraded. available. Conflicts tool to analyze a much manual work is
system, and then create required to upgrade from
projects that contain the an earlier version of
application objects that must Microsoft Dynamics AX.
be upgraded manually.
Migrate Extended Data The feature was not Use the EDT Relation Migration In earlier versions of
Type (EDT) relations. available. tool to move the previous Microsoft Dynamics AX, the
relations that are defined under relations of tables to
the EDT nodes in the AOT to extended data types were
the table nodes. stored in two locations:
relations in tables, and
relations in extended data
types. In the current
version of Microsoft
Dynamics AX, relations in
extended data types are
obsolete. Instead, we
recommend that
developers migrate their
EDT relations to table
relations. The EDT Relation
Migration tool makes it
easy to transfer relations
from extended data types
to tables.
Reporting Improvements
The following table describes the improvements that have been made to the Microsoft Dynamics AX
reporting framework.
Access data for a report. Used Microsoft Uses the data access When you use Microsoft
Dynamics AX queries, methods available in Dynamics AX queries, the
data from analysis Microsoft Dynamics AX reporting framework was
cubes, external SQL 2009 and the report data enhanced to support
Server databases, data provider (RDP) framework display methods, field
methods that access to define business logic for groups, and dimensions.
data from Microsoft a report. When you add a field to a
Dynamics AX or other field group, the field is
sources, and managed reflected throughout the
code for data access. application. This means
that reports
automatically add the
field. Display methods
are treated like fields in
the query, even though
the display method is
retrieving the data from
a different table. Support
for dimensions means
that you can create a
report design using
dimension attributes in
the data set and
dimension attributes can
be used as report
parameters.
Use labels in a report. Each language locale Use AX labels in your Using AX labels in
required a .resx file to reports that can be reports, you no longer
store localized strings. dynamically resolved at have to create a .resx file
runtime. for each language which
improves the time to
deploy reports. Only one
report definition per
report is needed.
Use data on your report that Feature not available. Create a report that has You do not have to
is based on specific time data that is based on handle date effective
periods. specific time periods. The data explicitly for
reporting framework Microsoft Dynamics AX
supports date effective query based datasets.
data.
Use an improved set of Used X++ Reporting Use Visual Studio 2010 In line with the long term
developer tools. Framework and Visual integration, take advantage goal to align with the
Studio 2008. of enhancements to auto- Microsoft technology
design reports, and create stack.
Dundas charts. Brings Reporting Services
features to Microsoft
Dynamics AX developers
like rich charting and
interactive reports. The
following list describes
additional improvements
in the reporting tools:
A drop-down was
added to display the
possible parameter
types.
Microsoft PowerPivot
and other Open Data
Protocol (OData)
Clients are now
supported.
SQL Server
Reporting Services
sub reports in
precision design are
now supported.
Report Data
Customization
Extension (RDCE)
uses Windows event
viewer logging.
New expressive
charting capabilities
for precision design
reports.
Process business logic for Used a report data Use the report data The report data provider
data on a report. method and managed provider (RDP) framework framework can support
code. that supports complex logic to handle data on a
business logic in X++ code. report like calculating an
amount based on a
specific field.
Use services to access data Used .NET Business Create a custom service Standards-based service
and business logic for a Connecter, which has a and access the service interfaces enable you to
report. weakly-typed from a report. integrate with many
programming model. Queries and RDP use platforms.
Work with large datasets for Used a report data Create reports that use Only the first row of a
a report. method to return a data large datasets. Added dataset must be
table. functionality now binds to executed in order to
data methods that return determine the report
data in a page or stream of schema. This makes it
data. easier to work with large
datasets. Now you can
write business logic that
returns data in a page or
a stream of data. You no
longer need to fill the
data table before you
return it which was using
memory and resources
on the Reporting Server.
Use Microsoft Dynamics AX Defined the report Create reports where the Display width, date/time
metadata to auto-format a format explicitly. auto-formatting of the and numeric formatting
report. report is based on the are set. All style and
formatting specified for the colors were updated to
extended data types. be correct.
Define secure reports based Reports were secured Secure your reports by Report security is based
on the role of the user. using security keys. using role-based security on the user role and you
and extensible data can specify with more
security (XDS) policies. precision which data is
permission set.
Create an unlimited number Limited to three default Use the query picker, Create an unlimited
of dimensions attributes. dimensions and seven report model, and report number of dimension
user-definable dimension generation that were attributes using the
attributes. updated to reflect dimension framework.
improvements to the Additional flexibility is
dimension framework. enabled by the ability to
combine dimension
attributes.
Reap the benefits of queries Report queries sourced Use queries that are using Some of the benefits
using a surrogate foreign key data from tables that SFKs instead of natural include improved
(SFK). sometimes contain keys. readability, reduced
natural keys and the text database size, decreased
for the fields was not time to upgrade, and
always understandable. fewer data integrity
issues.
Access cross-reference Feature not available. Use the cross-reference You can see what data
information for a Reporting tool with Reporting the report is using and
Services report. Services reports. what AOT objects are
using the report.
Define a report that can be Right to left flip of a Create a report that will flip You no longer need to
flipped from right to left report design was not right to left at runtime, maintain two report
based on the language that is supported. based on the language that designs for reports that
set for the report. A new precision design is set and properties set on require a right to left flip.
AX_CompanyName report At report design time, The AX_CompanyName You can add organization
parameter has been updated the company name parameter is only added parameters to your
to reflect changes in report parameter was when the query is company report such as Operating
Use the improved drill- Feature not available. The following list describes Using table and field
through functionality on the changes that were names reduces ambiguity
reports. made to improve the drill- and errors.
through functionality on The updated link style is
reports. consistent with expected
The client no longer link style. This improves
uses table IDs, instead the look and usability of
it uses table and field reports that have links.
names to determine Launching a new window
which menu item the for a linked report is
report link should use. consistent with expected
The link style is no behavior and improves
longer underlined and the usability of reports
the color was changed. that have links.
Feature Description
Modify queries used by reports Allows you to filter and sort data on reports.
Control report destination settings The PrintDestinationSettings class was added to allow you to
programmatically change print settings such as saving to a
file.
Print reports in a batch You can use the Reporting Services framework to print a
batch of reports, print a report on a recurring basis, and
schedule a report to be printed during off peak hours.
Important:
Security keys are no longer used.
These mechanisms are described in the following sections:
Security Permissions on Data Sources and Fields
Security Policies on Table Records by Data Values
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Create security The feature was not The system generates sets of The new security system
permissions on supported. permission specifications on takes less work to
individual AOT elements. forms and other AOT elements. maintain as your business
The permission specifications evolves. Security
are inferred by the system to constructs can be reused
match the details of each form. more easily.
The developer can modify the Data that the user does
permission specifications on not have permissions to
any given form. see is never sent from
The developer selects the set Application Object Server
of permission specifications (AOS) to the client, and
that applies to each menu item appropriate security does
that refers to the form. The not rely on forms for
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Implement security The record level security Security policies for table rows Security policies can
policies for table (RLS) feature was used to behave like a where clause in restrict access to table
records. filter access to table SQL. A security policy is based rows, based on foreign key
records. RLS security on a query under the Queries relationships between
constructs applied only node in the AOT. The details of tables. One security policy
within individual tables. the policy are specified under can replace several RLS
RLS was applied only if the Data Sources > Ranges specifications.
the developer explicitly node. Therefore, foreign key After a security policy is
called RLS to enforce relations between tables can be created in the AOT and
security. Therefore, part of a security policy. assigned to a user role, the
security enforcement Security policies are assigned system enforces the policy.
could be accidentally to user roles. Therefore, developers do
omitted. not have to add calls to a
security system in their
code.
Services Enhancements
X++ business logic X++ classes had to X++ classes and members can Enables you to easily
can easily be exposed implement a service interface be exposed as services and expose X++ business
as a service. in order to be exposed as a service operations by using logic as a service to
service. attributes. external systems. This
means that existing
X++ code investments
can be re-used.
Services support data Only classes that Any .NET or X++ native type Enables you to more
contracts of any type. implemented the (such as a str or an int) can be easily develop services
AifSerializable interface could used as a data contract. Any because you can use all
be used as service data class that uses the AIF data native types and
contracts. contract attributes can be used complex types as data
as a data contract. contracts.
Support for X++ Feature not available. Data contracts can now use Support for complex
types in data X++ container types and X++ types means that
contracts. strongly typed X++ collections more complex data
such as a Set or an Array. scenarios can supported
in services.
Service Groups
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
The ability to group Services were managed at A service group is a collection of You only have to add a
services by using the individual service level. services that are frequently reference to a single
service groups was consumed and managed WSDL to gain access to
added to the AOT. together. All services in a service the service proxies for all
group are published in a single the services in that
Web Services Definition service group. Service
Language (WSDL) file. groups enable type
sharing for types
common across various
services in a service
group. For example, if
two services in a service
group take a parameter
of type Address, that
type is shared and can
be seamlessly passed
between the two
services.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Extensive data model Feature not available. The document services framework AIF fully supports data
changes are supported supports the data model changes model features to make
by AIF. implemented in Microsoft data contracts easier to
Dynamics AX 2012. The use.
document services framework
handles the following scenarios to
produce a usable data contract
schema:
Business Operation Only the RunBase BOF uses services to call from You can use BOF to write
Framework (BOF) framework was the client to the server so applications that have
replaces the RunBase available. User interface, application “chattiness” is reduced client to server
framework. business logic code, and reduced. The BOF classes communication. Because
data contract code were separate the user interface, BOF uses services, there is
all contained in a single business logic, and data no calling from the client
class. contract logic. back to the server, and an
open connection from the
server to the client cannot
be maintained. The user
interface for input
parameters can be auto-
generated.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
AIF supports the Feature not available. Data that is not XML, for AIF can work with non-XML
import and export of example, a comma-delimited data, and you can handle
data in non-XML file, can now be imported into data transformations within
formats. and exported from Microsoft Microsoft Dynamics AX
Dynamics AX. This feature
provides the ability for
developers to create custom
transformations that are used
to transform non-XML data into
a format that can be consumed
by AIF. Custom transformations
can be implemented by using
an XSLT or a .NET DLL that
implements the ITransform
interface.
SOAP Headers
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
You can pass data Developers had to SOAP headers have been Extended SOAP headers
into a service by manually add custom code extended. Now there is a enable developers to
using the SOAP for SOAP headers. strongly-typed parameter that is provide more contextual
header. part of the service contract. information to a service
You can add SOAP headers when when the client calls it.
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Consume external You could consume an The Service References node There is now full support for
web services from external Web service from has been removed from the web services that have
X++ without adding X++, but you first had to AOT. You add a service complex schemas in
a service reference in add a service reference in reference in a .NET project and addition to support for web
the AOT. the AOT. The ability to then add that project to the services authentication. The
consume external services model store. Then you can comprehensive deployment
only worked in limited access the external service functionality in Visual
scenarios. For example, from X++ code. Studio means that your
server authentication was service references are
not supported. automatically deployed
when you configure them to
do so.
You can search all AIF Feature not available. A new table links message and Troubleshooting integrations
log information. exception log data. You can do is easier because you can
a full-text search for all search all the AIF log data.
records in the following AIF
forms:
Exceptions
History
Queue manager
System Services
Use system services to Feature not available. System services are Windows The system services open
interact with and retrieve Communication Foundation up Microsoft Dynamics AX
Microsoft Dynamics AX (WCF) services that are development to other
information. included with Microsoft platforms because they
Dynamics AX. The system enable you to retrieve
services include the following: system information via
Application Explorer
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
The Application Explorer Model View enabled View, open for edit, and Enables you to see all
displays a view of the developers to view, delete code elements in the objects in the model
AOT within the Visual create, edit, and delete model store whether they store from the Visual
Studio IDE. models in a reporting are managed code or X++ Studio IDE.
project. elements
You can write business Feature not available. You can save .NET class Developing code that
logic in .NET languages library projects to the integrates with Microsoft
and manage this code in model store. Dynamics AX is now
Microsoft Dynamics AX You can customize these possible in Visual Studio.
just as you would with managed code projects The full development and
X++ classes. using the various layers. deployment scenario is
supported for managed
You can build managed
code.
code projects in Visual
Studio and they are
automatically deployed if
configured to do so.
Proxies
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Allows you to add an Feature not available. When you add an X++ class or You can easily add X++
X++ class or table to table to a project by using the objects to your Visual
your project in Visual Application Explorer, a proxy for Studio project and write
Studio so it can be that class is created internally by managed code that
accessed by managed the system. After the proxy is accesses those objects.
code. created, that type is then
available as a strong type and
features like IntelliSense are
available.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
You can create a Feature not available. The event handler subscribes to You can now create
managed code event the X++ event and can be called event handlers in
handler for an instance before the method begins or managed code as well
method of an X++ after the method completes. You as X++. This means you
class. can handle events raised only by can write .NET code to
a class in the Classes node in the handle class events.
AOT.
You can create a Feature not available. The event handler subscribes to You can now create
managed code event the X++ delegate, and the code event handlers in
handler for an X++ runs when the delegate fires. managed code as well
delegate. as X++. This means you
can write .NET code to
handle delegate events.
Deployment
The deployment Feature not available. Managed code assemblies are Deploys to the locations
functionality enables you deployed to the location that you specify.
to automatically deploy you specify: client, server,
managed assemblies Reporting Services or
(DLLs) that you create in Enterprise Portal. You can
Visual Studio to Microsoft specify where the assembly is
Dynamics AX. deployed by setting project
properties in Visual Studio.
After you deploy an assembly,
you can then see the managed
code classes via IntelliSense
and call the managed code
from X++.
Cross-Reference Tool
The Cross-reference Tool in Feature not available. In order to see cross- Managed code is now
Microsoft Dynamics AX references for a Visual Studio supported by the
lets you see the project, you must first add the Cross-reference Tool in
relationships between project to the model store by MorphX. This means
elements and now using the Application Explorer. you can see the same
supports managed code After you add a project to the cross-reference
that that has been added model store, the project and its information for both
to the model store. cross-reference information are X++ and managed
updated every time you build code. For example,
the project. when you access the
Cross-reference Tool
from a report, you can
see what the report
data source.
Microsoft Dynamics AX Feature not available. The conflict detection and The code upgrade tools
supports layer-based resolution tools enable that are included with
What can you do? Microsoft Microsoft Dynamics AX 2012 Why is this
Dynamics AX 2009 important?
New workflow The feature was not The following table describes the new By using advanced
control elements are available. workflow control elements. workflow controls, you
available. These can create more
elements provide complex workflows
Workflow Description
additional than you could in
element
capabilities for flow Microsoft Dynamics AX
control to increase Start Represents one or 2009.
the automation of a more starting
workflow. points in a
workflow, so that
the intent of the
workflow at these
points is clear.
This workflow
element is used at
the start of a
workflow, or at
intermediate
starting points in a
workflow, such as
in a parallel
workflow.
Sequence Represents a
workflow in which
there is a
dependency
between two other
workflow
elements.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
You can now create a line The feature was not Each line item that is associated You can create a
item workflow that is available. with the header has its own separate workflow for
configured and workflow processing, depending each line item that is
instantiated for different on the conditions that are set associated with a
types of line item records up for that workflow. When header.
that are in a header-to- workflow processing is
line relationship. For completed for all of the
example, a header can individual line items, the overall
be a sales order that has workflow can continue.
sales order lines, or a
purchase order that has
purchase order lines.
Automated Workflow
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
You can now create an The feature was not An automated workflow You can now create
automated workflow available. element runs business logic as workflows that do not
element. An automated part of a workflow that is require human
workflow element is a implemented to automate a intervention.
type of workflow business process. For example,
element that does not automated tasks can execute a
involve human credit check, check inventory,
interaction. run a report, perform
calculations, update records, or
start another workflow.
Workflow Editor
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
You can now create a In Microsoft Dynamics AX The Workflow Editor is a It is now much simpler
workflow by using the 2009, workflows were managed code user interface to create a workflow by
Workflow Editor. configured by using the that is used to graphically define using a drag-and-drop
Workflow templates have In Microsoft Dynamics AX Workflow templates have been All mentions of
been renamed workflow 2009, workflow types renamed workflow types. workflow templates
types. Workflow types are were known as workflow have been replaced by
building blocks that can be templates. workflow types.
used to create customized
workflows that enforce
business policies.
Workflow types are
defined in the Application
Object Tree (AOT) at
design time. The
metadata from workflow
types is used by the
customer to create a
workflow configuration.
For example, workflow
tasks can have metadata
that indicates the class
that is used when the due
date of the task is
calculated.
What can you do? Microsoft Microsoft Dynamics AX 2012 Why is this important?
Dynamics AX 2009
Create proxy classes The feature was not A .NET proxy is a .NET managed Proxy classes enable you
to represent .NET supported. class that represents a class or table to write managed classes
interop to X++. that exists in Microsoft Dynamics AX. that interoperate with
Your managed program can call your X++ classes, to
proxy methods, just as your X++ form a unified
code can call methods on a table or application.
class.
X++ Attributes
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this
2009 important?
Use X++ attribute The feature was not X++ classes and methods can By using attributes, you
classes for metadata. supported. now have metadata in the form can associate declarative
of attribute classes. An attribute information with X++
class is any non-abstract class code. After an attribute
that inherits from the is associated with a
SysAttribute class. Detailed program entity, the
metadata is assigned through attribute can be queried
Use the is operator to The feature was not The X++ language now has When the is operator is
test whether X++ objects supported. the expression operator is. used, your code can
are a type or a subtype You use the is operator to test whether a
of a specific class. test whether an object is a particular downcast
type or a subtype of a assignment would be
specific class or table. valid.
Use the as operator to The feature was not You can use the as operator When the as operator is
make downcast supported. to make downcast used to make a
assignments explicit. In Microsoft Dynamics AX assignments explicit. downcast assignment
Events in X++
What can you do? Microsoft Dynamics AX Microsoft Why is this important?
2009 Dynamics AX 2012
Implement events and The feature was not The X++ language now has the The event programming
event handling in supported. delegate keyword. When model can reduce the
X++. program conditions meet the chance that your
programmer's criteria for the customizations are affected
event, the X++ code can call by upgrades to your
the delegate. The delegate program or to Microsoft
then calls all the event handler Dynamics AX.
Pre-method and post- The feature was not The methods on your X++ The pre-method and post-
method events are supported. class each raise an event method events are stable
generated by the immediately before they start. points at which custom
system. The methods raise another code can run.
event immediately after they
end. These two events offer
opportunities for custom code
to intervene in the program
flow.
What can you do? Microsoft Dynamics AX Microsoft Dynamics AX 2012 Why is this important?
2009
Speed up X++ batch The feature was not Some X++ batch jobs can now Some batch jobs run
jobs. supported. complete in much less time. All much faster as CIL than
X++ code that runs on the they did as p-code.
AX32.exe client still runs as
interpreted p-code. However, all
batch jobs now run as
Microsoft.NET Framework CIL,
which is often much faster than
p-code.