Blog

Microsoft Dynamics AX Blog

Browsing all articles in Blog
0

The great Microsoft Dynamics team is conducting some sessions in the coming period. Those online sessions will cover topics in all Dynamics products including Microsoft Dynamics AX.

The first coming event will be “Management Reporter and Performance Management with Microsoft Dynamics AX that will be held in the 12th of Jan. The next session will be “See the New Payroll for Microsoft Dynamics AX“, and I’m really excited to attend this session to see the new Payroll. The Payroll session will be in the 1st of Feb.

To see full list of those webcasts and to register, click here.

4

Happy new year :)

I got a SQL error today when I tried to open the “BI project generation options” form in Dynamics AX. The error was like the following:

When walked through the code, I discovered that it tries to delete some entries from a table called: “UDM Roles (BIUdmRoles) throw a SQL statement but unfortunately that SQL statement is mistyped!

To correct the issue, go to AOT –> Classes –> SRSStatement –> deleteInvalidBIUdmRoles method and write the code between my comments as below:

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
28
29
//Amer Atiyah, http://blog.amerax.net/
public static void deleteInvalidBIUdmRoles()
{
    BIUdmRoles udmRoles;
    UserGroupInfo userGroupInfo;
    str list = #emptyString;
 
    Connection connection;
    Statement statement;
    SqlStatementExecutePermission permission;
 
    str sqlStatement = @"DELETE FROM %1BIUDMROLES WHERE USERGROUPID IN (%2)";
    ;
 
    while select udmRoles
    {
        select userGroupInfo where userGroupInfo.Id == udmRoles.UserGroupId;
        if (!userGroupInfo)
        {
            if (strlen(list) > 0)
            {
                list += #comma;
            }
            /*Comments Begin*/
            //list += udmRoles.UserGroupId;
            list += "'" + udmRoles.UserGroupId + "'";
            /*Comments End*/
        }
    }
0

Tracing Role Center KPIs

If you wanted to know where the KPIs in Dynamics AX 2009 are getting its values from, then you might need to have a look at this document:

This documents describes in detailes how to trace those values in Visual Studio.

Have fun!

4

I had an issue where I needed to install a new Enterprise Portal on a server that has two AOS’s: TEST and DEVELOPMENT.
The TEST AOS has already an Enterprise Portal installed and configured. The requirement was to install an Enterprise Portal also for the DEVELOPMENT AOS.
When I successfully completed the installation, I figured out that the Websites form (in Administration –> Setup –> Internet –> Enterprise Portal) in TEST contains two websites! The old and the new one. I tried to delete the new website from this form and I also added an entry in the same form on the DEVELOPMENT environment. But, for some reason the EP was showing incorrect results like this:

Enterprise Portal

I solved the issue by letting the .NET Business Connector Configuration points to the DEVELOPMENT environment! Before that, I have un-installed that new EP.

Then I was able to deploy the EP on the DEVELOPMENT environment :).

0

I had a problem while running the SharePoint Configuration Wizard after installing WSS 3.0 SP2 that says:

Failed to connect to the configuration database.
An exception of type System.Data.SqlClient.SqlException was thrown.  Additional exception information: Access to module dbo.proc_getObjectsByClass is blocked because the signature is not valid.
System.Data.SqlClient.SqlException: Access to module dbo.proc_getObjectsByClass is blocked because the signature is not valid.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
.......

As it looks clear from the error, the wizard simply fails to connect to the database. (The database was installed as Express edition on the local machine and the OS was Windows Server 2008 R2.) After lots of tries to uninstall WSS 3.0 and reinstall it again and again… I have done the following:

  1. Un-installed Microsoft SQL Server Express Edition (from Programs and Features)
  2. Downloaded Microsoft SQL Server 2008 R2 Edition (http://www.microsoft.com/express/database/) and then installed it
  3. Installed WSS 3.0 SP2 as farm installation
  4. After the installation has finished, I got the SharePoint Configuration Wizard where I was able to choose the local database that I have just installed..

The wizard then ran just fine. Hope it will with you as well :)

4

I had an issue where I needed to install a new Enterprise Portal on a server that has two AOS’s: TEST and DEVELOPMENT.
The TEST AOS has already an Enterprise Portal installed and configured. The requirement was to install an Enterprise Portal also for the DEVELOPMENT AOS.
When I successfully completed the installation, I figured out that the Websites form (in Administration –> Setup –> Internet –> Enterprise Portal) in TEST contains two websites! The old and the new one. I tried to delete the new website from this form and I also added an entry in the same form on the DEVELOPMENT environment. But, for some reason the EP was showing incorrect results like this:

Enterprise Portal

I solved the issue by letting the .NET Business Connector Configuration points to the DEVELOPMENT environment! Before that, I have un-installed that new EP.

Then I was able to deploy the EP on the DEVELOPMENT environment :).

0

Microsoft OpenDoor is the largest Microsoft technical event in Saudi Arabia during Fiscal Year 2011. The keynote speaker for this event will be Microsoft CEO “Steve Ballmer”. Open Door is a 3-days conference (2-days in Riyadh city on Nov 2/3, 1-day in Jeddah city on Nov 7). The OpenDoor event is designed to attract more than 2200 TDMs, IT technical professionals and developers in Saudi Arabia. The event consists of 3 different tracks: one for IT professionals, one for developers, and one for technical Managers. The event’s main theme will be “Transitioning to the cloud & technology roadmap”, and it will cover various Microsoft technologies in cloud computing, IW, core infrastructure, database, client, in addition application platform and tools. Subject matter experts from Microsoft and top local industry experts will be speaking at the event. A major highlight of this big event will be the Microsoft partners’ expo where top Microsoft partners show their latest solutions and offerings in the Saudi market.

Following is a brief about the main tracks that will be run during this event:

  • General Track: 3 keynotes, 2 closing sessions
  • IT Professional Track: 11 breakout sessions with deep technical demos for IT technical professionals for the full duration of event
  • Developer Track: 11 breakout sessions with deep technical demos for IT technical professionals for the full duration of event
  • Technical Managers Track: 10 IT management and strategy sessions during 2nd day of the event in Riyadh, and during Jeddah event day
  • Partners Expo: Sponsoring partners will be demonstrating and showing their local solutions/offerings in the market for the full duration of the event

Saudi OpenDoor Event

Microsoft OpenDoor Event

3

Convert All Hirji Formats into Gregorian

I came across a requirement where I needed to convert users entry from Hirjri Calendar date (the Islamic Calendar) into the Gregorian Calendar. In previous posts, I have shown how to convert Gregorian Date (date data type in Dynamics AX) into Hirjri… if you are interested in those check them out here:

In order to convert a Hirji date into Gregorian, I used the .NET classes referenced in the any Dynamics AX standard version.

Enjoy!

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//Amer Atiyah, http://blog.amerax.net
static date hijri2GrDate(DAPHijridateStr   hijriDateStr)
{
    System.Globalization.CultureInfo arCul = new System.Globalization.CultureInfo("ar-SA");
    System.Globalization.CultureInfo enCul = new System.Globalization.CultureInfo("en-US");
    System.DateTime                  tempDateTime;
    str                              strTemp;
    System.String[]                  arr;
    date                             grDate;
;
 
    //all expected dates formats
    arr = new System.String[18]();
    arr.SetValue("dd M yyyy",  0);
    arr.SetValue("yyyy/MM/dd",  1);
    arr.SetValue("yyyy/M/d",    2);
    arr.SetValue("d/M/yyyy",    3);
    arr.SetValue("dd/MM/yyyy",  4);
    arr.SetValue("yyyy-MM-dd",  5);
    arr.SetValue("d/MM/yyyy",   6);
    arr.SetValue("dd/M/yyyy",   7);
    arr.SetValue("yyyy-M-d",    8);
    arr.SetValue("dd-MM-yyyy",  9);
    arr.SetValue("yyyy MM dd",  10);
    arr.SetValue("d-M-yyyy",    11);
    arr.SetValue("d-MM-yyyy",   12);
    arr.SetValue("dd-M-yyyy",   13);
    arr.SetValue("d M yyyy",    14);
    arr.SetValue("dd MM yyyy",  15);
    arr.SetValue("yyyy M d",    16);
    arr.SetValue("d MM yyyy",   17);
 
    try
    {
        tempDateTime = System.DateTime::ParseExact(hijriDateStr, arr, arCul, System.Globalization.DateTimeStyles::AllowWhiteSpaces);
    }
    catch
    {
        error("Unexpected Hirji date format.");
        return datenull();
    }
    strTemp = tempDateTime.ToString("dd/MM/yyyy");
    grDate = str2date(strTemp, 123);
 
    return grDate;
}

It might a great idea if you added this method to the “Global” class, like what I did :).

Hirji into Gregorian

22

I have faced this error twice, I sloved it the first time by “Enabling the 32-bit Applications” on the application pool level of the workflow.

But in another time the installation was on Windows 2008 R2, and this made things harder. Enabling the 32-bit Application did not solve the issue. This actually happened because of the conflict in this Windows between the .NET framework 2.0 and .NET framework 4.0. It also might be caused of an authentication issue, so you better check that all one by one to get this validation problem resolved.

To solve the issue, I basically have gone through these steps: (of course I followed those steps after installing the workflow and I did not uninstall it)

  • Deleted the application from the IIS (the selected node in the picture below).

  • Added a “Virtual Directory” to the same site and named the new virtual directory with the same name of the deleted application.
  • In the physical path of the virtual directory, I pointed to the installed worklfow folder (most probably will be in “C:Program FilesMicrosoft Dynamics AX50Workflow“). This folder contains the web services of AX workflow.

  •  Then, I converted the new “Virtual Directory” to “Application” by right-clicking that directory and clicking “Convert to Application”.
  • I went to permissions of that application, by clicking (selecting) the “Applicaiton” you have just converted and double clicking “Authentication” and I insured that “ASP.NET Imporsenation” and “Windows Authentication” are enabled and any other things are disabled.
  • (Optional) You might disable the Kernel-mode authentication for the Windows Authentication by clicking the “Advanced settings” for the Windows Authenticaion. You cannot do that if if you have a kerberos authentication configured in your environment, if not.. then you better disable it to improve your environment performance.
  • I then went to the “Handler Mapping” of the Workflow Application. I selected “WebServiceHandlerFactory-ISAPI-2.0” and then clicked “Edit”. I insured that the “Executable” path is pointing to the .NET framework version 2.0 32-bit. (Note that this Windows contains on two versions of framework handlers and in two different folders inside the “C:WindowsMicrosoft.NET” folder.) In our case, you always have to point to the “aspnet_isapi.dll” file in the “Framework” folder not “Framework64”.

By this, you will be able to browse anyone of the *.asmx files in the Workflow Application. Also you might validate your workflow configuration.

Hopefully it has been resolved to you as well. :)

0

I have examined an error while trying to re-generate the proxies classes that are used in the Enterprise Portal.

When I traced the code, I discovered that this tool is actually updating .NET proxies classes based on the EP installation physical path. For some reason, this tool was not able to get that path.. the generated path was: “” (empty string).

What I did is that I got the physical path of the proxy classes, and changed the code where it tries to get that path and fixed it. This is done in ClassesSysEPDeploymentcreateDevWebsiteProxyDir.

This code shows what I did:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static client str createDevWebsiteProxyDir()
{
    #AOT
 
    Microsoft.Dynamics.Framework.Deployment.Portal.EPSharepointAdmin epSharepointAdmin;
    EPGlobalParameters epGlobalParam;
    str dir;
 
    select firstonly epGlobalParam;
 
    if(!epGlobalParam.DevelopmentSiteId)
        // UA!No development web site.
        throw error('@SYS108771');
 
    epSharepointAdmin = new Microsoft.Dynamics.Framework.Deployment.Portal.EPSharepointAdmin();
 
    /*comment from here
    dir = epSharepointAdmin.GetAppCodeDirectoryFromSiteId(guid2str(epGlobalParam.DevelopmentSiteId));
    comment to here*/
 
    //add this line of code (My installation was on this path)
    dir = "C:\inetpub\wwwroot\app_code";
    //In Dynamics AX VPC1, the installation is on this path <>
    dir = "C:\Inetpub\wwwroot\wss\VirtualDirectories\sharepoint80\App_Code";

Here is where the EP proxies classes to be generated and hence used by the Dynamics AX EP.

By this, the tool just worked fine :).

362

As I have mentioned in an earlier post, to get my life easier with developing new Dynamics AX Workflows I have created an easy to use wizard that generates AOT objects for one Approval workflow in Dynamics AX 2009, without writing a single line of code. I have used this wizard since more than a year to develop all the workflows that I had to develop.

I have been asked many times by Dynamics AX technical and functional consultants to share that with them. And here I am sharing it with the Dynamics AX community.

By following three steps, Dynamics AX Workflow for Dummies simply:

  1. Adds a Workflow Template
  2. Adds a Workflow Category
  3. Adds a Workflow Approval
  4. Adds a workflow state field to the selected table
  5. Enables the workflow for the selected form
  6. Creates needed classes like the document class for the workflow document
  7. Creates a query (Workflow Document)

Here are the steps that you have to follow: (pictures speak quietly)

Wizard menu

Welcoming message

General information

Generated AOT Objects Parameters

Generated AOT Objects Parameters

Generated AOT Objects Information

After clicking Finish, you would get a Dynamics AX Project:

Workflow Project

Generated AOT Project

In order to configure the generated Workflow template, go to the module that you have selected in the wizard, and open the Workflow Configuration under the Setup menu of that module. This is what you will have:

Workflow Configuration

If you are interested to have it, just comment on this post and write me your email or send me an email to amer@amerax.net and I will be more than happy to send the project to you.

I also would welcome any feedbacks on this. :)

Dynamics AX 2012 Event

Recent Posts

Tags

Archives

Random Testimonial

  • ~ Muheet Shariff, Dynamics AX Consultant

    muheet"I have found Amer a pleasant, generous person who is never afraid to take on a challenging task.Amer is an independent, self directed person who is able to communicate effectively and meet even the most demanding challenges. I am positive he will make outstanding contributions to Microsoft technologies. It was a great experience working with Amer during our implementation of Dynamics AX at  Al-Fahad and Al-Othaim companies. His support to Microsoft Dynamics AX is outstanding and very professional. Technically he sounds very strong. It was a great pleasure to be associated along with Amer performing some challenging tasks. I wish him to reach the desired success with his professionalism."

  • Read more testimonials »