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 :).
In a previous post, I descriped in deatils how to gte (and set) Hijri date in Microsoft Dynamics AX 2009. In that post I have shown how to get Hirji date in Dynamics AX by calling a SQL function from X++.
A calleague of mine has also came up with another great idea to handle the Hirji date using the CLR Interoperability. The standard Dynamics AX 2009 comes with a set of very important .NET libraries referenced to be used automatically in Dynamics AX 2009.
What you could use out of those libraries: System.Globalization library of .NET framework. But of course, you have to use a string to show the value of that date since you cannot get a Hirji date (with its values like 1430 as a year) and assign it to an X++ date datatype.
Check out this code to have the Hirji date converted from X++ gregorian date:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | display STRExtendedDT ExpieryDate_H() { System.Globalization.Calendar Calendar = new System.Globalization.HijriCalendar(); System.Globalization.DateTimeFormatInfo hirjiDate; System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ar-SA",false); System.DateTime dt; STRExtendedDT dateString; ; dt = this.ExpieryDate; hirjiDate = cultureinfo.get_DateTimeFormat(); hirjiDate.set_Calendar(Calendar); dateString = dt.ToString("dd/MM/yyyy", hirjiDate); return dateString; } |
You will get :
Cool session. It was all about showing muscles of Dynamics AX of how this enterprise software could manage the integration with external systems.
It was all about AIF, .NET business connector and CLR Interoperability.
For each of them I gave a simple application, like the following:
· For AIF, I created a service using the Document Service Wizard. Then we extending it by adding a new operation. Then we published it on the local IIS. After this we were able to create a very simple console application to get data from Dynamics AX through the created web service.
· For .NET Business connector, I created I windows application from Visual Studio .NET to call using the .NET business connector a static method that is written in X++.
· For the CLR Interoperability, we called System.IO .NET library from within the X++. And then we a simple library in Visual Studio .NET, referenced it in Dynamics AX and then called it from within an AOT Job and X++.
Search the site
Dynamics AX 2012 Event
Recent Posts
- D365FO | Cannot Connect to SQL Server Database on Your Cloud Test Machines
- Intro to Microsoft Dynamics AX in Arabic – سلسلة حلقات مايكروسوفت داينامكس إيه إكس بالعربية
- Microsoft Dynamics Launch – Sunday, 24th February – Intercontinental Hotel, Riyadh
- Files of Our AX Brains Dec 2012 Event
- It was a great day!
- Tomorrow is the day for our Dynamics AX Brains Technical Seminar
- Dynamics AX Brains December 2012 Technical Seminar
- Windows Server 2012: Built from the Cloud Up
Tags
Archives
- October 2019 (1)
- January 2014 (1)
- February 2013 (1)
- December 2012 (4)
- September 2012 (2)
- December 2011 (2)
- November 2011 (3)
- July 2011 (3)
- June 2011 (4)
- May 2011 (3)
- April 2011 (4)
- March 2011 (12)
- February 2011 (2)
- January 2011 (3)
- December 2010 (1)
- November 2010 (1)
- October 2010 (5)
- August 2010 (1)
- July 2010 (3)
- June 2010 (4)
- May 2010 (5)
- April 2010 (1)
- March 2010 (9)
- February 2010 (4)
- January 2010 (4)
- December 2009 (11)
- September 2009 (1)
- August 2009 (1)
- July 2009 (2)
- September 2008 (1)
Random Testimonial
- ~ Mohammad A-Awami, Dynamics AX Specialist at WorleyParsons
"I worked with Amer for WorleyParsons. I found him very cooperative. He is able to help me in a lot of issues that related to ax. His ability to solve the problems is fascinating me. It is so fast and done on the best practice. His ability on business analysis and implantation are done on the best methods."
- Read more testimonials »