Archive

Posts Tagged ‘technical conference’

Dev Tip: Activating document handling for inquiry(read only) forms – Dynamics Ax 2012

September 20, 2013 Leave a comment

This post will explain how document handling can be activated only for specific tables or for all tables.

Activate document handling for selective tables.

To activate document handling for selective tables.

Go to Organization administration -> Setup -> Document management -> Document management parameters

Check the flag “Use active document tables

selective_active_document

Once specified here then document handling is active only for selective list of tables. To specify the active list of tables  go to Organization administration -> Setup -> Document management -> Active document tables. Document handling is now only enabled for the selected tables in a controlled mode.

active_doc_table

Activate document handling for all tables.

Simply unchecking the  “Use active document tables” in Document management parameters makes it activate for all tables. There is a limitation here, in the case where document handling is enabled for all tables the system verifies if the table has edit/delete permission. Only if it is the case document handling is activated otherwise it is disabled. E.g This means tables like Salestable/Salesline will have permission to add/edit documents while forms that uses tables like custInvoiceJour, vendinvoice jour will have document handling disabled.

User’s may ask for document handling to be activated on these read only  forms. In these case there is a way out.

Go to Organization administration -> Setup -> Document management -> Active document tables and enter the table name, say “VendInvoiceJour” also make sure to check the “Always enabled” flag. This is very important since this means the document handling is enabled irrespective of the table permission. So this way you can activate document handling for read only tables

alwayenabled

\Forms\DocuView\Methods\doReSearch – Go to this method

on line Number: 130 – add the following line,

allowEditBasedOnActualForm = true

codeimage

Setting this will enable you to use the full document handling feature even for read only forms.

What’s coming in the future Ax 201X ? :) – KeyNote Day 2 @ Dynamics Ax2012 R2

October 25, 2012 1 comment

The Keynote on Day 2 had to two portions one focusing on the LifeCycle and the other on What’s cooking for the future ?

Mike Ehrenberg, Technical fellow @ Microsoft was the one who came down to feed our curiosity.

Major  innovations are happening in these areas,

Modern Client:

– Microsoft is looking to see how it can totally revamp the UI to fit it with the happening story of Windows 8. They are totally trying to give a new face to the ERP interface by attempting to give importance to Data visualizations and Tile way of organizing information.

– There is also this attempt to eliminate Rich and Poor 😉 Clients to have one common client that can work over the internet or one premise

– Microsoft Recommendation is not to make UI investment for the current release on the Product as their can happen something to what happened to the legacy reports

Performance and Scale

– Cloud concentric approach where they try to leverage the Private cloud concept to create a On-Premise kind of setup of Ax

-Scalability is brought in through the Cloud Infrastructure

Simplifying Customization’s and Upgrade

– Microsoft is working hard to make code upgrade smoother and simpler (Refer Programming Improvements with Dynamics Ax)

– Other interesting area is to no downtime data upgrade. Here the concept is take snapshots of the database and upgrade the db in parallel then upgrade the Delta that has been created through a iterative approach.

Application Life Cycle Management

– Mike was definite to point out that the slew of Life cycle tools that we see is the reflection of their efforts towards this direction

– The current ALM tools are meant only to be a teaser and more is to come

Innovation Areas

Integration of  other products.

– There is also work in progress for bringing in Skype, Yammer in to the ERP Platform to break the barriers  and connect it to the external world much more in a seamless manner

Kinect integration is also seriously considered. The last few attempts of showcasing kinect was early attempts but there is efforts to built in more ERP specific context to the kinect SDK that can take voice commands and relate it to the Forms in the ERP

BING: There is also exploration going on to see how to bring the power of search in to the ERP and take the ERP search also little further it’s current limits of the Database.

Product Integrations

Preparing for the future

– Avoid UX investments

– Educate on Windows Private Cloud

– Adopt and stick to Best Practice that ensures your transition would be smoother and predictable

– Move to Dynamics ax 2012 R2

 

Programming Improvements with Dynamics Ax 2012 R2

October 25, 2012 2 comments
This was one of the very interesting session we had :). As a developer it was really exciting to see how we can scale the application further.

LINQ:

– Though the .net integration worked well with through Ax proxies there was a void when it comes data acess.
– The X++ team has come up with a LINQ provider that will fill up this gap.

Highlevel: X++ LINQ Provider will create a search tree based equivalent for the C# search tree created through LINQ

What this means ? You can access data from AOT Tables through LINQ with just few lines of code, something like the one below.

</pre>
//Pseudo not exact syntax
 QueryDataProvider query = new QueryDataProvider('TableName');

//Rest the regular Linq Syntax applies
<pre>

– Since LINQ Queries are composable the data once fetched can be applied with multiple composable ranges further E.g

</pre>
QueryDataProvider query = new QueryDataProvider('select custtable');

 var results = from qr in query
 select new (q.custaccount, q.custName)
 //prints the all the customer records
 foreach (var result in results)
 {
 Console.WriteLine(result);
 }

 //basically for a single result set fetched in query
 //you can apply multiple select criteria later to fetch data
 //This is like narrowing a search result further
 var results = from qr in query
 where qr.custName like 'Test*'
 select new (q.custaccount, q.custName)
 //prints the all the customer records
 foreach (var result in results)
 {
 Console.WriteLine(result);
 }
<pre>

– You can filter based on expressions

– Field list concept is no more applicable. The choice of fields is automatically decided by the linq framework based on the conditions applied in each case.

– query is not executed untill the results are fetched.

– Folks, the advantages mentioned here are just to give you a feeling but it is limitless. All advantage that LINQ has brought in to the C# space is now applicable for data access to X++ tables.

– Remember this is LINQ Provider on the C# end and not on the X++. Means basically it works for the Visual Studio Projects

– LINQ Project Portal – http://msdn.microsoft.com/en-us/library/vstudio/bb397926.aspx

Keep watching the X++ team blog as Peter Villadsen who detailed this has promised to put more examples here 🙂

LINQ – Points to note

Solver Foundation

– OR(Operation Research) issues like the travelling sales man problem, transportation problem can be solved with the help of solver Foundation

Solver Foundation is a mathematical modelling API brought in place by Microsoft. Solver Foundation is sold seperately to customers (Read more here).

-But the Good!!! news is that it comes fully licensed with Dynamics Ax

– Leverage this Solver Foundation to solve problems concerning with Optimization(Shortest Route), Bin Packing(Optimal allocation)

– The dll is present in the Dynamics Ax installation(Client i guess) and you can just add it to your reference and get to use it.

– Solver foundation is used by standard Dynamics Ax in constraint based product configurator.

Code Upgrade Tool

– Microsoft is trying to see how it can reduce the pain of code upgrade with rollup and major releases. CUT is an outcome of this exercise.

– This is very very powerful, as AST(Abstract Syntax Tree) is created for the X++. (Similar to Roslyn Project for C#)

What is an AST ? AST is a DOM(XML sort of) representation of a method or a class.This means the variables in a class could just be a node in the DOM and can be easily queried. Similarly expressions, Types etc.

How does this help ? unlike the X++ parser output the output of AST is simple, structured, queryable. Which means you can easily manipulate code based on Rules..
– E.g:

– All methods must have a access specifier, if not an access specifier is entered automatically
– If there is a IF condition it must have braces around
– Format the code

Architecture

What it has to do with Code Upgrade ? Means, the system will try to better manage automatic merge and simplify the process. The CUT tool that is to come will create automerged objects and put it in a patch layer(not sure if it is patch). Then one can review to decide to keep the changes or eliminate them

What other use AST has ? The Life cycle tools that are built my Microsoft relies on the AST to analyze the code metrics.

Can i use it for older versions ? No it can’t be used. Since AST can’t be built for older versions.

When is CUT available ? Not confirmed as of now.

Code Upgrade tool (AST visible on the left)

ALM (Deployment) with Dynamics Ax 2012 R2

October 24, 2012 Leave a comment

Metadata db and the datadb can now be separate 🙂

Single user Topology for development: Microsoft recomments the Single user topology when using sourcecontrol and to manage multiparty development

– Shared application topology is not recommened for the following reasons
– To debug a Pcode the visual studio needs to be used. During the attach process the AOS is paused for all user
– Server restarts for a single user stops the entire application

– Visual Studio Projects – Apart from the Synchornize to the AOT, we must right scripts to run MSbuild for these projects. This
ensures a proper VS project import

Deploying to the Production

– Element id’s as we all know is generated during the import of models, so it is recommended not to import models in to Production
system to avoid id conflicts

– Maintain a seperate staging setup where the metadatastore of the production and staging are maintained commonly. Import models to
the staging and then move the metadata

– Model store import is quicker, will bring the down time and speed up import.

 

Data Partitions with Dynamics Ax 2012 R2

October 24, 2012 2 comments

– This is one of the key feature of Dynamics Ax 2012 R2.

– A data partion helps sharing the Ax install base but not the data

– This is a powerful feature that can help companies use the same installation. Takes away the hassle of updating multiple
installation.

What it means functionally ?

– As we had company id’s there is one level on top of it now, called the partition key.

– The partition key on the status bar indicates your active partition.

– System Data like AIF, Configuration, Batch are shared between the partitions. While Application data like address book, Unit of
measure are shared only between the companies within each partitions

– Partition is identified through the client configuration.

– Like Default company there will be a default partition called the “initial”

– Users belong only to a particular partition

– There can be companies with the same name in multiple partitions.E.g Every partition will have the default company ‘DAT’

– Intercompany doesn’t work across partitions

Mircosoft Recommends: Implementation choice must be made carefully as the companies between two partitions cannot be merged and Intercompany features cannot be used. The only option is to use Data migration tool kit for data export import between partitions and AIF for inter company operations
How is it achieved Technically ?

– A new partition table is introduced with a Key and the Recid field

– There is a new field called ‘PartitionRecid’ in everytable and as the dataareaid was by default applied to all contexts(Forms
queries) the partition key will also be added. So a look in to the SQL trace would transalate a Dax query as follows

Ax Query
Select * From CustTable

SQL (Before Partition)

Select * from custTable where dataareaid = ‘Dat’

SQL (After data partiion)

Select * from custTable where data areaid = ‘Dat’ and Partion key = ‘Initial’

– No cross company query on partitions are allowed like the cross company query

– You can know the current partition through ‘getcurrentpartitionrecid()’ similar to ‘curext()’

– Batch servers work across partitions

– AIF works across partitions

Programming Impact
— BC.Net new parameter to mention the partition id
— AIF Envelope includes partition id
— Workflow created in the AOT as metadata is shared but while you have to create workflow configuration in each partition.

– New table property like “SaveDataPerPartition” has been introduced like the “SaveDataPerCompany”. So for AIF, Batch tables – Save
data per partition is set to “No”

Life Cycle tools – Dynamics ax 2012 R2

October 24, 2012 Leave a comment

Life cycle services

Life Cycle Dash board

– This is a all new cloud based service that helps managing several stages of implementations

– Has a dashboard kind of setup that gives a complete overview of all projects and their status.

– Industry solutions like Public Sector, Manufacturing, are modeled through their business process. The business process are created in detailed manner and then mapped to their behavior in ax.(Similar to Rapid value from ColumbusIT)

– These business process can be customized based on  your implementation requirement. Finally these can be used to generate gap fit documents.

-The Process created here can be used to create workItems directly in TFS helping manage the customization process.

Business Process

 

Hot fix process

– Based on components (Classes/Tables) you can search for Hotfixes/changes that has happened in the previous or the upcoming hotfix releases.

– A search on element shows up all the Hotfixes that are related to it and allows to further drill down to see the changes that has happened in the specific hotfixes.

HotFix Analysis

Diagnostic services:

– The Microsoft Dynamics AX 2012 Diagnostic Framework, also called DiagFX, helps administrators diagnose the health of Microsoft Dynamics AX 2012.

– The framework assesses the health of  Application Object Server (AOS), Microsoft SQL Server, Microsoft SQL Server Reporting Services, and  Analysis Services.

– It can be configured to Collect data from Microsoft Dynamics AX servers, Execute rules on the collected data, Report rule violations on a dashboard interface, and Provide reports based on collected data.

– The Microsoft Dynamics AX 2012 Diagnostic Framework also helps administrators mitigate problems by providing information about issues, and also links to sites where suitable information is available. Users can add new modules and rules.

Diagnostic Framework – Dashboard

 Code Analyzer tool:

– A cloud based service that allows to upload code as (XPO/Model-Not sure here). The models are analyzed to give you detailed reports on the quality of the customization changes.

– Can be accessed through information source

– You can compare models against different versions

– Since it is a cloud tool takes no resource from you, that you can upload leave it and wait for the results to be back.

– A few higlights like,

– Bench mark metrics on Performance, Quality.(More to be added before the release)

– Excel report on table without indexes, Forms and the datasource count, Charts on various quality factors by table group, Top
errors in the application etc

– A consolidated HTML report that gives you stastics on New components by their type like Table, classes. Deprecated key word in
code, Best practice warnings etc.

Code Analyzer results view

Business Intelligence with Dynamics Ax 2012 R2

October 24, 2012 2 comments

– Interactive Charts: These charts help analyzie the data deeper by narrowing down the data. They can be added to the new role center
pages

– Power view: Helps create easy data mashup’s with interactive capability

— More to come through the next two days after the actual sessions–

E-Commerce in Retail with Dynamics Ax 2012 R2

October 24, 2012 2 comments

– This is one of the mind blowing features that was showcased through the key note

Data from DAX: The entire data of the ecommerce website is driven automatically through Dynamics Ax. What this means is that you keep your site up to date just through Dynamics Ax. (For the techies: There are query webparts now that pull the data from Ax
directly)

Order generation: A website is just another channel, so when a order is placed through the ecommerce portal it actually creates sales order at the backend

Catalog: Item catalogs show up based on the product attributes. So the portal looks up to dynamics ax attribute for catalog

Product Search by attributes: You can specify the criteria for each product and the search is automatically enabled on the eCommerce portal. Eg. Like Color, Size etc.

Multiple Device support: A whole website was showcased where the template is driven by sharepoint and data by Dynamics Ax. The templates are device dependant, which means there is an abstraction between data and the rendering. This helps you to have device based templates. So tosupport multiple devices like mobile, desktop all you need to do is to set the right templates

– The e-commerce alltogether has come up as the most key functionality in the Ax for retail section and did attract a lot of  attention from the audience

E-commerce portal with sharepoint 2013

Notes from the Dynamics Ax2012 R2 Technical Conference

October 24, 2012 1 comment

Hello Folks,

I’m jotting all my notes here so that you and i can share it later. I’ll update all my notes and link it to this post for the rest of the days in the conference also.

E-Commerce for Retail

BI

Data Partitioning

Application Life Cycle Management

Deployment

— Life Cycle Management

Programming Improvements (LINQ, Solver Foundation, Code Upgarde)

What’s coming in the Future Ax 201x ? Key note Day 2

VPC and Data from the Conference  – Download Link to Information source(Access required)