Browsing all articles tagged with Dynamics AX 2012 Archives - Amer Atiyah, Microsoft Dynamics 365 Blog
20

Dynamics AX 2012 Live Deployment Scenario

After over than 9 months of absence, here I am back to my lovely blog and lovely community.

I will start the new journey with my last deployment for our Dynamics AX 2012 environment. It has been really an interesting architecture the one we built on our servers based on the requirements we have.

Our requirement was to have a stable, available and reliable Dynamics AX 2012 environment for our 7 companies that are distributed all over Saudi.Those seven companies are working in different types of businesses like contracting, investment, manufacturing, contracting, services/maintenance, and trade. Thus, determining the number of transactions was not easy. The main point in here is that our users needed to have different modules, processes, workflows, and reports. Moreover, some of them might contradict in their requirements which makes the customization not easy as well.

I also would like to mention that we will be having customers entering our Enterprise Portal through the internet to access their bills which have been migrated automatically from Saudi banking payments system: SADAD. Internal employees will be using the EP of course as their employee slef-services portal. That EP will be integrated with the internal portals and document management solutions in the future.

Number of users is around 336 users:

 As you might expect, to allow the availability of such number of users and requirements we have to have a big architecture that serves every single detail of the requirement.

 Here are some notes about the architecture:

Server Quantity Notes
Application Servers: Dynamics AX 2012 AOS 5 Load balanced AOS Virtual Servers
Batch Server: Dynamics AX 2012 AOS 1
Database Server: SQL Server 2008 R2 2 Failover Cluster
Reporting Server for SSRS, SSAS and Management Reporter 1 Might be two as load balanced in the future
Web farm: SharePoint Server and Help Server 2
Terminal Servers 2 Load balanced to allow accessing of all users through the Terminal Services of Windows 2008 R2
File Server 1  As a document repository on a SAN storage

If you are interested to know about the configuration of those servers, please leave a comment and I will be more than happy to answer your inquiries. :)

7

If you ever started working on the image downloaded from the Microsoft PartnerSource of Microsoft Dynamics AX 2012, you might face a trouble while trying to explore Role Centers or Enterprise Portals.


This error is due to the configuration setup in the AX2012 image that let’s DNS points to contoso.com domain. What has to be done is to redirect that domain to the current machine (which is the same virtual machine you’re using).

To do so you must add a loop back IP to your” Hosts” file. You can think of that files a Rolodex for your computer. Its where a computer looks first to translate the URL of a website into a numerical IP address that it can actually use. You can find the “Hosts” file in: “C:\Windows\System32\drivers\etc\Hosts”.

To fix the issue, open the Hosts file a notepad and add this line to the end of the file:

127.0.0.1       dynamicsax.contoso.com

In the beginning, you might encounter the below error… but it will be fixed with “refresh”:

 

1

Microsoft Dynamics AX 2012 Event in Khubar

Description: Microsoft Dynamics AX 2012, Powerful, Agile and Simple  Cubes Solutions

After its successful event in Riyadh last May, Microsoft Dynamics AX Brains community is back to continue its support to the Saudi community in the Eastern Region this time.

Under the sponsorship of Cubes Solutions, December 14th will gather all community members at Al Gosaiby hotel in Khubar to introduce the new version Microsoft Dynamics AX 2012.

The event will be a great opportunity for Microsoft Dynamics AX partners, customers, and consultants to gather and network.

 

Agenda (09:30AM – 02:45PM):

Session Start Time End Time Speaker
Registration 09:30 09:55  

Welcoming note and Dynamics AX Brains Introductory      09:55 10:00 Amer Atiyah
If you have no idea what “Dynamics AX Brains” is, then this is a good chance for you to know how you can benefit from such community and technical gathering.


Microsoft Dynamics AX 2012 10:00 10:15 Ahmad Sharkawi
Ahmad Sharkawi from the Microsoft MBS team will be presenting an introduction to Microsoft Dynamics AX 2012


 

Introducing the New Features of Financials and Projects Accounting in Dynamics AX 2012 10:15 11:30 Ahmad Yakan
Microsoft Dynamics AX deals with customers and partners pain in its new version AX 2012 by adding very important functions in Financials and Projects accounting. The session will focus on certain functionalities that give Microsoft Dynamics AX the advantages comparing it with other business solutions systems; generally we will talk about the improved collaboration, the increased productivity and the strong measures and controls with a better financial insight.


 

Prayer and Coffee Break 11:30 12:15  

Introducing the New Features of Supply Chain Management & Manufacturing in Dynamics AX 2012 12:15 13:30 Ahmad Maghraby
Microsoft Dynamics AX 2012 is coming with so many new capabilities that are critical for any business. Specifically in the supply chain management and the production areas, major processes have been introduced. This session will reveals the new features of AX 2012 in the supply chain management and manufacturing. Join us and get ready for the new release.


 

Coffee Break 13:30 13:45  

Technology in Microsoft Dynamics AX 2012 13:45 15:00 Amer Atiyah
This session is a light weight technical session describes the new Dynamics AX 2012 for new as well as experienced Dynamics AX technical and non-technical attendees.Tremendous changes and efforts have been made on the technology side from the Dynamics AX 2012. Layers in database, new Modeling system, Reports only on SSRS, Enterprise Portal on MOSS 2012, AOT in VS.net… and many other new updates you would really like to watch.


2

If you have ever used the General Ledger AIF service of the Microsoft Dynamics AX 2009, you might have noticed the limitation of not integrating other than Ledger transactions. For example, you cannot send Customer and Vendor transactions through that AIF Service.

I came across a requirement where I needed to integrate external Vendor and Bank transactions through AIF. After spending sometime on testing as well as on X++ code tracing… I came to know that Microsoft is putting some restrictions on the code to not to accept the Ledger Journal transactions of types other than Ledger.

The following code is a standard X++ code that was written to prevent such integration.

37
38
39
40
41
42
43
44
45
46
47
48
49
//LedgerJournalTableType (class) -- initializeLedgerJournalName (method) -- Line number 37
/*Commented to disable the Non-Ledger type restriction*/
    if (!true /*this.isJournalNameValidJournalType()*/)
/*Commented to disable the Non-Ledger type restriction*/
    {
        AifFaultContext::setGlobalContextField(tableId, fieldId);
        AifFault::checkFailedLogFault(strfmt("@SYS114718", axLedgerJournalTable.parmJournalName(), axLedgerJournalTable.parmJournalType()), #InvalidJournalNameJournalTypeCombination);
        throw AifFault::faultList("@SYS98197", #ValidationFailed);
    }
/*Initilizing the journal type from the journal name*/
    ledgerJournalTable.JournalType = ledgerJournalName.JournalType;
/**/
}

Also I have changed:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//Amer Atiyah, http://www.amerax.net/
//LedgerJournalTransType (class) -- validateAccountType (method) -- Line Number 1
protected boolean validateAccountType()
{
    boolean         isValid = true;
    ;
 
    switch (ledgerJournalTable.JournalType)
    {
        case LedgerJournalType::Daily :
                /* I had to comment this code to prevent the validation
                if (ledgerJournalTrans.AccountType != LedgerJournalACType::Ledger)
                {
                    if (this.isConsumerStateTracked())
                    {
                        // AX5 service limitation
                        isValid = AifFault::checkFailedLogFault("@SYS117885", #AccountTypeMustBeLedger);
                    }
                }*/
            break;
 
        default :
            break;
    }
 
    return isValid;
}

What I like to mention in here is that Microsoft Dynamics AX 2012 now supports integrating Vendor, Customer, and Bank transactions out-of-the-box. I copied the following code from the LedgerJournalTransType class in Dynamics AX 2012 without doing any changes to it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
protected boolean validateAccountType()
{
	boolean isValid = true;
 
	this.initializeLedgerJournalTable();
 
	switch (ledgerJournalTable.JournalType)
	{
		case LedgerJournalType::Daily :
			if(LedgerJournalTrans.AccountType != LedgerJournalACType::Ledger &&
			   LedgerJournalTrans.AccountType != LedgerJournalACType::Bank &&
			   LedgerJournalTrans.AccountType != LedgerJournalACType::Vend &&
			   LedgerJournalTrans.AccountType != LedgerJournalACType::Cust)
			{
				if(this.isConsumerStateTracked())
				{
					isValid = AifFault::checkFailedLogFault("@SYS117885", #AccountTypeIsNoSupported);
				}
			}
			break;
		default;
			break;
 
	}
 
	return isValid;
}
25

Developing applications is now easier and faster in the new Microsoft Dynamics AX 2012 than its earlier versions. .NET developers who are familiar with Visual Studio .NET will be comfortable with developing Dynamics AX applications although Dynamics AX has its own IDE which called MorphX and its own programming language with is X++.

This image shows the Dynamics AX AOT (Application Objects Tree), one of the MorphX IDE objects that Dynamics AX developers use to navigate through programming objects like Forms, Reports, and X++ Classes:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

With Microsoft Dynamics AX 2012, you can view that AOT in the Microsoft Visual Studio 2012:

Dynamics AX 2012 Applicatoin Explorer in VS.NET

Proxies

Microsoft Visual Studio 2010 now creates proxies internally to support interacting with Microsoft Dynamics AX 2012 X++ classes, tables and base enums. By creating those proxies, developers will interact with Dynamics AX objects in C# and VB.NET exactly as if they are interacting with it in X++. After the proxy is created, that type is available as a strong type and features such as IntelliSense are available. For example, table fields and X++ methods are now exposed to be used in C# with one click. The created proxies are using .NET business connector internally to connect to the Dynamics AX objects.

The following pictures speak quietly how you can access and interact with Microsoft Dynamics AX 2012 objects from within Microsoft Visual  Studio 2010:

Adding Visual Studio Project to the Dynamics AX 2012 AOT

Visual Studio Project inside Microsoft Dynamics AX 2012 AOT

Adding a Dynamics AX 2012 object to the VS 2010 Creates an Internal Proxy

 

The CustTable Appears in the Solution Explorer. You Can Now Use the Dynamics AX CustTable Methods, Properties and Fields!