This
Article describes the new and enhanced features for developers that are
available in Microsoft Dynamics AX 2012. Updated and additional developer
documentation for Microsoft Dynamics AX can be found at the Microsoft Dynamics AX Developer Center on the
Microsoft Developer Network (MSDN).
Analytics for Developers in MS DAX
2012
|
|
Analysis services project wizard
|
Model data using tables and views
make it easy to customize cubes
|
It is easy to deploy the default
cubes
|
|
It is easy to create new analysis
service project
|
|
Date Dimensions using gregorian calendars
|
Define gregorian Calendar in
calender builder form in ax that you can use as date dimenssions in analysis
service project
|
AOS and DB for Developers in MS DAX
2012
|
|
Valid Time State Tables
|
"ValidTimestateFieldType"
proerty on table to make the table valide time state table. Ax will add the
"ValidFrom" and "ValidTo" columns that track a date range
in each row.
|
Unit of work Class
|
Mangae the operation sequence and
transaction intigrity for row by row database deletes, inserts and updates.
|
Inheritance among the tables
|
Just as an X++ class could inherit
from another X++ class in Microsoft Dynamics AX 2009, a table can inherit from
another table in Microsoft Dynamics AX 2012. As in earlier releases, the
Common table is still the base table of every table. A table that inherits
from a base table is called a derived table. The terms parent table and child
table describe foreign key relationships, not inheritance.
|
Full text index
|
Craete a full text index on a table
|
TempDB temporary tables
|
In the properties for a table in
the Application Object Tree (AOT), the TableType property is now an enum
property. The enum value InMemory is the legacy type of temporary table that
is hosted in the client. The enum value TempDb is the new type of temporary
table that is hosted in the TempDb 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.
|
Computed columns in views
|
Have a computed column in a view.
|
Filters in outer join
|
Filtering the result set from an
outer join can reduce the number of rows that the database server must scan.
|
Add a Having Clause to a Query in
the AOT
|
Use the AOT to add a having clause
on the data source for a query.
|
Effect of Disabling a Table
|
Retain the table in the underlying
Microsoft SQL Server database when the table is disabled in Microsoft
Dynamics AX.
|
Best practices for Developers in MS
DAX 2012
|
|
Best Practise
|
Best Practice Checks Changed from
Warnings to Errors.
|
|
|
Client for Developers in MS DAX
2012
|
|
Forms
|
|
Controls
|
·
Use a DropDialogButton control.
·
add an action pane strip that
provides access to the actions that are associated with the form.
·
You can replace a surrogate foreign key with
one or more data fields.
·
You can add and use .NET controls
in forms.
·
To display data in a chart, you use
the MSChart .NET control.
·
Disable or hide controls that are
not used in a specified country or region.
|
Data sources
|
·
The replacement fields are not
loaded until they are visible.
·
Controls can be bound to fields
from the derived tables in an inheritance hierarchy.
· When you save a record that changes multiple tables, the changes are
combined into a single transaction that is initiated by AOS.
|
Parts
|
·
You can create or update a FactBox
that appears on a list page or in a form.
·
Use an existing form as a FactBox.
·
Create a Cue in the Application Object Tree
(AOT) that uses an existing query.
|
Search
|
To make a form or report appear in
search results, you create a menu item, and add the search terms that you
want to associate with the specified form or report.
|
Enterprise portal for Developers in
MS DAX 2012
|
|
Microsoft SharePoint 2010
|
·
Enterprise Portal uses SharePoint
Foundation 2010 or SharePoint Server 2010.
·
Microsoft SharePoint 2010 provides
core features that are used by Enterprise Portal, such as document libraries
that store Enterprise Portal pages
|
Microsoft Visual Studio 2010
|
Enterprise Portal integrations are
developed with Visual Studio 2010.
|
Support for Microsoft Dynamics AX
2012 Features
|
·
Enterprise Portal supports tables
that are structured into a table hierarchy.
·
Enterprise Portal supports tables that use
surrogate keys.
·
Enterprise Portal uses the new
security model.
|
List Page Framework
|
A list page can be created and used
in both the Microsoft Dynamics AX client and Enterprise Portal.
|
Services Framework
|
Enterprise Portal uses the
Microsoft Dynamics AX services to access data and metadata.
|
Search
|
Search for data in Microsoft
Dynamics AX.
|
Pluggable Authentication
|
You can use Windows Live ID
accounts for external users.
|
Proxy Support
|
Proxies can be used throughout
Microsoft Dynamics AX. This includes Enterprise Portal
|
Cross-reference Support
|
The cross-reference tool supports
Enterprise Portal resources.
|
Morph X Development for Developers
in MS DAX 2012
|
|
Models and the Model Store
|
The following model features are
new:
·
A model is a set of model elements in a
specific layer.
·
Each layer consists of one or more
models. One of the models is generated by the system. For example, VAR Model
is the model that is generated for the VAR layer.
·
Each element in a layer must belong
to only one model.
·
Models can be exported to a file
artifact that is called a model file. Model files have an .axmodel extension.
A model file is like an .aod file from earlier versions, but the names and
numbers are not limited. Models in the model store can be exported to model
files and imported from model files. Model files can be signed, and the
signature is verified when the model files are installed.
·
Model files replace .aod files as
installation artifacts.
·
Models in the SQL Server–based model store
replace .aod files that were used at run time.
·
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.
·
Any element that is created in the
current layer can easily be moved to another model in the same layer.
·
The Application Object Tree (AOT)
shows you which model a particular element belongs to, in addition to the
layer tags.
·
The additional folder capabilities
for version control have been renamed models, and the capabilities have been
extended. When you add an element to version control, the element is added to
the version-model.
·
You can generate a MorphX project
that contains all of the application objects in the model. A new Model
management submenu on the Tools menu contains many tools that you can use to
work with models and the model store.
·
The new SysModel* system tables
provide a view of the metadata that is associated with models. These tables
enable you to use model metadata in select statements in your X++ code. For
example, you can use the SysModelElementLabel table to retrieve the string
value for the label that is associated with a particular model element.
|
Object IDs
|
Object IDs are 32 bits long.
|
AxUtil Command-Line Utility and
PowerShell Cmdlets
|
AxUtil is a command-line utility
that you can use to import and export .axmodel files into the SQL Server
model store. You can also use AxUtil to delete one or more models, create new
empty models, and list all of the models in a layer. All of the capabilities
of AxUtil are also exposed as PowerShell CmdLets.
|
Development Workspace
|
In Microsoft Dynamics AX 2012, the
development experience is separated from the application experience as a new
workspace. You now use the development environment when you write code in
Microsoft Dynamics AX.
|
Some Layers Have Been Renamed
|
In Microsoft Dynamics AX 2012, 16
layers are supported. Because multiple solutions can be installed in parallel
into the same layer, some layers have been renamed to emphasize the new
usage.
|
|
|
MorphX Tools for Developers in MS
DAX 2012
|
|
X++ Editor
|
The code editor is now based on the
code editor for Visual Studio, and includes many of the same features and
shortcuts. The following new and changed features are available:
·
The method list displays all
methods in the class. You can scroll through the list by using the mouse, and
the size of the list is resized.
·
Basic editing has improved. For
example, you can comment or uncomment code, move code by using a
drag-and-drop operation, swap characters, delete a whole line, and change
text in many other basic ways.
·
Code navigation is more similar to
code navigation in Visual Studio. For example, you can use the Home key,
navigate line ends, and go to the next or previous word as you do in Visual
Studio.
·
It is easier to select code by using the
margin or by using block selection, and word selection is 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. · You can search for code incrementally. Search uses
.NET regular expressions. · IntelliSense has been improved. IntelliSense now
includes word completion, tooltips that display the XML documentation
comments for a method or class, and help for multiline parameters.
·
Errors in code are underlined by
using a wavy line. When you rest the mouse pointer on the wavy line, the
error message for the compiler is displayed. Code breakpoints can be toggled
in the margin.
|
Code Upgrade Tools
|
Use the Detect Code Upgrade
Conflicts tool to analyze a system, and then create projects that contain the
application objects that must be upgraded manually.
Use the EDT Relation Migration tool to move the previous relations
that are defined under the EDT nodes in the AOT to the table nodes.
|
Reporting for Developers in MS DAX
2012
|
|
Use labels in a report.
|
Using AX labels in reports, you no
longer have to create a .resx file for each language which improves the time
to deploy reports. Only one report definition per report is needed.
|
Use data on your report that is
based on specific time periods.
|
Create a report that has data that
is based on specific time periods. The reporting framework supports date
effective data.
|
Define secure reports based on the
role of the user
|
Report security is based on the
user role and you can specify with more precision which data is displayed on
a report.
|
Create an unlimited number of
dimensions attributes.
|
Create an unlimited number of
dimension attributes using the dimension framework. Additional flexibility is
enabled by the ability to combine dimension attributes.
|
Access cross-reference information
for a Reporting Services report.
|
You can see what data the report is
using and what AOT objects are using the report.
|
AX_CompanyName report parameter has
been updated to reflect changes in Ax 2012
|
You can add organization parameters
to your report such as Operating Unit or Department. The AX_CompanyName
parameter was created by the Microsoft Dynamics AX framework for queries that
are company specific. This change reflects the organization hierarchy product
wide feature
|
Use the improved drill-through
functionality on reports.
|
Using table and field names reduces
ambiguity and errors and Launching a new window for a linked report is
consistent with expected behavior and improves the usability of reports that
have links.
|
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.
|
Create auto-reports
|
An auto-report is a report that is
generated by clicking Print on a form. The data on the form is displayed on
the report. Auto-reports are generated by using the Reporting Services
framework for Microsoft Dynamics AX.
|
Print reports in a batchCreate
auto-reports
|
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.
|
Secuity for Developers in MS DAX
2012
|
|
Create security permissions on
individual AOT elements.
|
The new security system takes less
work to maintain as your business evolves. Security constructs can be reused
more easily. Data that the user does not have permissions to see is never
sent from Application Object Server (AOS) to the client, and appropriate
security does not rely on forms for enforcement.
|
Implement security
|
Security policies can restrict
access to table rows, based on foreign key relationships between tables. One
security policy can replace several RLS specifications. After a security
policy is created in the AOT and assigned to a user role, the system enforces
the policy. Therefore, developers do not have to add calls to a security
system in their code. The RLS feature will be removed from a future version
of the product.
|
|
|
Services and AIF for Developers in
MS DAX 2012
|
|
Services Enhancements
|
X++ classes and members can be
exposed as services and service operations by using attributes.
|
Any .NET or X++ native type (such
as a str or an int) can be used as a data contract. Any class that uses the
AIF data contract attributes can be used as a data contract.
|
|
Data contracts can now use X++
container types and strongly typed X++ collections such as a Set or an Array.
|
|
Service Groups
|
A service group is a collection of
services that are frequently consumed and managed together. All services in a
service group are published in a single Web Services Definition Language
(WSDL) file
|
Support for Data Model Changes
|
AIF fully supports data model
features to make data contracts easier to use.
|
Support for Non-XML Files
|
AIF can work with non-XML data, and
you can handle data transformations within Microsoft Dynamics AX.
|
Consume external web services from
X++ without adding a service reference in the AOT.
|
The Service References node has
been removed from the AOT. You add a service reference in a .NET project and
then add that project to the model store. Then you can access the external
service from X++ code.
|
Visual studio tools for Developers
in MS DAX 2012
|
|
Application Explorer
|
The Application Explorer displays a
view of the AOT within the Visual Studio IDE.
|
Managed Code Business Logic
|
You can write business logic in
.NET languages and manage this code in Microsoft Dynamics AX just as you
would with X++ classes.
|
Proxies
|
When you add an X++ class or table
to a project by using the Application Explorer, a proxy for that class is
created internally by the system. After the proxy is created, that type is
then available as a strong type and features like IntelliSense are available.
|
Deployment
|
Managed code assemblies are
deployed to the location that you specify: client, server, Reporting Services
or Enterprise Portal. You can specify where the assembly is 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
|
In order to see cross-references
for a Visual Studio project, you must first add the project to the model
store by using the Application Explorer. After you add a project to the model
store, the project and its cross-reference information are updated every time
you build the project.
|
Code Upgrade Tools
|
Microsoft Dynamics AX supports
layer-based customizations for managed code. Therefore, the tools that enable
developers to find and resolve conflicts that result from those
customizations also support managed code. The code upgrade tools enable
developers to detect and resolve conflicts between two versions of Microsoft
Dynamics AX.
|
Workflow for Developers in MS DAX
2012
|
|
Advanced Workflow Controls
|
By using advanced workflow
controls, you can create more complex workflows than you could in Microsoft
Dynamics AX 2009.
|
Line Item Workflow
|
You can now create a line item
workflow that is configured and instantiated for different types of line item
records that are in a header-to-line relationship. For example, a header can
be a sales order that has sales order lines, or a purchase order that has purchase
order lines.
|
Automated Workflow
|
You can now create an automated
workflow element. An automated workflow element is a type of workflow element
that does not involve human interaction.
|
Workflow Editor
|
It is now much simpler to create a
workflow by using a drag-and-drop user interface.
|
Workflow Templates Are Now Workflow
Types
|
Workflow templates have been
renamed workflow types. Workflow types are building blocks that can be 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.
|
X++ for Developers in MS DAX 2012
|
|
.NET Proxies to X++ Classes
|
A .NET proxy is a .NET managed
class that represents a class or table that exists in Microsoft Dynamics AX.
Your managed program can call proxy methods, just as your X++ code can call
methods on a table or class.
The C# compiler detects
errors in your calls to the proxy at compile time. You can use this
early-bound programming model to fix errors in your code before the code is
run. The internal logic of the proxy class uses the late-bound programming
model of .NET Business Connector. However, the tools that generate the source
code of the proxy have been rigorously tested.
|
X++ Attributes
|
X++ classes and methods can now
have metadata in the form of attribute classes. An attribute class is any
non-abstract class that inherits from the SysAttribute class. Detailed
metadata is assigned through the constructor of the attribute class. Tables
and interfaces can also have attribute classes.
|
New Expression Operators in X++ for
Inheritance
|
When the is operator is used, your
code can test whether a particular downcast assignment would be valid.
|
Events in X++
|
The event programming model can
reduce the chance that your customizations are affected by upgrades to your
program or to Microsoft Dynamics AX.
The pre-method and post-method events are stable points at which
custom code can run.
|
X++ Compiled to .NET CIL is Faster
|
Some X++ batch jobs can now
complete in much less time. All X++ code that runs on the 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. The X++
developer must now complete the extra step of compiling X++ p-code to CIL. To
compile p-code to CIL, right-click AOT, and then click Add-ins >
Incremental CIL generation from X++. Next, if the installation uses multiple
instances of Application Object Server (AOS), all AOS instances must be
stopped and then restarted. This causes the AOS instances to load the updated
assembly. Finally, a service or a batch job must run the X++ code that was
compiled to CIL. Services and batch jobs now run only as CIL. |
No comments:
Post a Comment