Dynamics AX
  RSS Feed  LinkedIn  Twitter
Want to turn you're data into a true asset? Ready to break free from the report factory?
Ready to gain true insights that are action focused for truly data informed decisions?
Want to do all of this across mutliple companies, instances of Dynamics and your other investments?
Hillstar Business Intelligence is the answer then! (www.HillstarBI.com)

Hillstar Business Intelligence for Microsoft Dynamics AX and NAV on Mobile, Desktop, Tablet

Let us prove to you how we can take the complexity out of the schema and truly enable users to answer the needed questions to run your business! Visit Hillstar Business Solutions at: www.HillstarBI.com

Friday, October 28, 2005

What is Dynamics AX?

Thought I would, for the sake of those newbie's give a nice resource that I think best describes Dynamics AX: (What is this?)

From here on out, this link will also be in the top description of this blog so those who find it and are not quite sure what Dynamics AX exactly is, well they can find out thanks to wikipedia.org!

Find a job at: www.DynamicsAXJobs.com

DynamicsAXJobs.com Stats (Formely AxaptaJobs.com)

Well it's been nearlly two months since AxaptaJobs.com, now DynamicsAXJobs.com has launched. I believe a nice milestone has been reached with the site, the following are the current stats:

Number of Job Seekers: 90
Number of Employers: 19
Number of Jobs posted to date: 11

Like I said I believe this to be a great milestone, with a total of 109 members, in less than two months of operation. This is even bigger if you consider that fact that it's the end of the year when hiring has pretty much a freeze. I have been in contact with a lot of the employers on DynamicsAXJobs.com, and they all tell me the same thing about a big push come Q1 of '06.

So I want to thank everyone who has created an account, and we at DynamicsAXJobs.com look forward to helping server everyone in the AX community!

Find a job at: www.DynamicsAXJobs.com

Wednesday, October 26, 2005

Strange Event log entry, and hung C# code

In my current work, I do a lot of connecting to Axapta 3.0 through C# and the Axapta Business Connector. I recently had to make some changes to the X++ classes that are called through the Business connector from C#. When these changes took place the code stopped working.

Further analysis turned up the following Application Event Log entry on the machine that is running the Business Connected C# code:

Event Type: Warning
Event Source: Axapta COM Connector
Event Category: None
Event ID: 110
Date: 10/26/2005
Time: 11:40:12 AM
User: N/A
Computer: MMI200307
Axapta COM Connector Session 65535.

The breakpoints for user '' will not be used, since debugging is not enabled due to one of the following reasons:

1) The user does not have access rights to the development environment.
2) The debug mode is set to 'No' for the user.

Microsoft Axapta Business Connector only:

3) Debugging is not allowed for code running in the Microsoft Axapta Business Connector.
4) The Microsoft Axapta Business Connector is not running as the interactive user. Please use Component Services in the Control Panel to configure the Microsoft Axapta Business Connector to run under the identity of the interactive user.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

This error does not tell you much, but basically it means that there is an error when calling one of the methods of an X++ class through C# and the business connector. It took a few times running this, but for me this means a 'best practice' of testing your code from within Axapta first to make sure there are no loops, or errors. Also make sure that the data types being passed into Axapta are of the correct format. A Data Type changed on me, but the C# code was still passing in the old data type.

Needless to say, if you get a similar event log entry please make sure to test out your X++ code / class within Axapta first, it will save a lot of time and unkown issues!

Find a job at: www.DynamicsAXJobs.com

Tuesday, October 25, 2005

Performance Tuning Axapta

In Axapta, there are a few things that can be used in order to tune for better performance. Before you jump right into performance tuning and tracing in Axapta itself, first you need to take a step back and review the entire picture. You see Axapta, in most cases, is an n-tier (aka: 3-tier) application. There is the Database <-> AOS (Business Logic) <-> Axapta Client (User / Presentation). These are the different major areas of Axapta. There is also two other ways to split this within these major area which are: Software and Hardware.

My approach to performance tuning and tracing is always start at the ground level, Database layer. Your database most likely is a SQL server v. 2000 (or 2k5 for the lucky ones!). Also hopefully it is running on a PC built to be ran as a Server, with at least 2 GB of RAM, and the Data and Logs seperate on different disks.

Some things that you can check here are:
- RAM: at least 2GB, I recommend 3GB with AWE turned on.
- CPU: at least 2x 2.4 GHz processors.
- Disk: Seperate Disk arrays for the OS, Data, and Logs.
*** If you can swing it, put your SQL server on a SAN with at least two clusters Win2k3 nodes, running SQL server as a Virtual Server.

Now that we have looked into the hardware, next is the software side to SQL server. One of the first things I would check is to make sure the SQL server is nothing But a SQL server. Have it be 100% dedicated to being a SQL server. Next thing I would do is run SQL profiler. Use this to indentify any queries, stored proc. that run to long, that are NON Axapta related. By addressing this first, you take some un forseen issues out of the picture. (please reference: SQL Performance Tips for further SQL performance Tips)

Next thing I would do is move on to the AOS server. Here basically the same process, make sure you have enough horse power to give to the AOS. Normally the AOS does not require much, so another big thing that will improve the AOS is making sure the server running it Only runs the AOS and nothing else. This will make sure that the only queued processing items for the CPU is AOS related.

After this, you can check the network between the AOS server, SQL server, and client machines. Between the SQL Server and AOS server a Gigabit ethernet connection would be desired. As for the Client machines LAN at least 100mb ethernet, and WAN no less than 1.54 megabits per second (T1, DSL, etc.) I think at this point a good review of what all you have tested would be recommended. Also make sure to document all your test findings, so that you can use them as bench marks for future fine tuning.

Now that we have looked at everything outside of Axapta, we can move to looking into the code, and application performance. This area there is always improvement, from making sure you have indices created, and you use them, to code profiling, and making sure unneeded database calls are not all over the place. I would recommend starting out here with a SQL trace enabled, to 1000 ms for long queries. Then run a bunch of code, and do some different steps like creating Sales Orders, etc. (note: make sure yo run every single piece of Custom code you can at this point). See if anything pops up, if not, then lower the threshold until things do. If 500 ms is where some of them pop-up I would not worry because most likely you will not get much wiggle room there. Next I would review any code that uses a lot of math, or trips back and forth from the database. Also, try to consolidate code by following true OOP protocols.

Well I hope that I have given enough tips for now when it comes to performance tuning and Axapta. There is still more that you can detail, and each one of the above has details that reach deep down into each section. If there are any sepcific questions please post them in the comments section and I will make sure to answer them on the blog!

Find a job at: www.DynamicsAXJobs.com

DynamicsAXJobs.com added to WEDDLES!

Well it came to my attetion that www.DynamicsAXJobs.com (aka: www.axaptajobs.com) has been added to WEDDLES. WEDDLES is a list of job portals put together the the Weddle family. For a link of the lastest updates goto: WEDDLES.Com

I consider this a great honor, and look forward to having a great long relations with www.weddles.com!

Find a job at: www.DynamicsAXJobs.com

Nice Resource Site

I came across a site that was sent to a mail group I am apart of. The site is managed and ran by: Harshawardhan (Harry) Deshpande

It is a decent little site, with some pretty good ideas, and code samples. I would recommend though that anyone wanting to use his lastest project, that they do it in code, and Not how he has done it. Other than that, I think it's great what he is doing, and I bet we see a lot of good examples posted over time at his site!

Find a job at: www.DynamicsAXJobs.com

Monday, October 24, 2005

Replace the Cubersome date2str

Hello everyone!

Thought I would share a good little piece of code that I have found so very useful. If anyone of you has ever wanted to convert a give Date variable to a string, you have came across a method called Date2Str().

This method is just so wacko to me. I have create a Static method in the global class so it can be called from anywhere, that takes care of changing your passed in Date variable to a string for you! (American Standard Date that is)

public static str safeDateStr(Date _d, boolean
AddTicks=false){ str _s;
_s = _s + date2str(_d,213,2,2,2,2,4);
if(AddTicks) { _s = SQLstr(_s); }
return _s;}

This Little piece of code has saved me a lot of typing over and over again. I hope that someone else can get the same use out of it!

(Edit: 10.25.2005)
I had two comments posted on this entry, that are valid and great! The first was asking about the SQLstr() method. This is a Static method that I created that also lives in the Global class. It adds single tick marks around a passed in string which helps when working with ODBC datasources within Axapta.

There was another comment posted by Steen Andersen (who is releasing an Axapta book soon!) That asked the question why not use: date2strUsr(). To be honest I had never heard of this method, and turns out it does what my above custom method does, plus it makes sure to return the date in the logged in users local setting is for. So needless to say that I would recommend using the built in function date2strUser() over date2str(), unless you had a specific need for converting a date to a specific string based format.
(Thanks Steen!)

Find a job at: www.DynamicsAXJobs.com

Axapta 3.0 Business Connector (COM+)


Let me count the ways, how I lothe the - flaky Axapta Business Connector! Of course it's not that bad, but it is very, very picky - when it comes to setting it up, espically around the identity set for the COM+ objects.

When setting up or changing the Business Connector settings, you have to make sure that the user name set for the identity of the COM+ objects are set to someone whom has a configuration that you are trying to use in your code:

If you set the indentity of the COM+ objects to say the local admin, and no configurations were ever setup under that user name, then you would get a similar error like the following:

AxaptaCOMConnector.Axapta.1 - The configuration 'COM' could not be found.Use the
Navision Axapta Configuration Utility to verify the configuration. Please
restart the Axapta Business Connector before logging on.

So if you experince some frustration with the Business Connector just keep in mind the indentity that you have selected to use. Also in 4.0 Microsoft has changed the way this works, which is suppose to make using and connecting to Axapta so much more easier. Stay tuned for further tips, and tricks with Axapta, err, Dynamics AX I mean!

Find a job at: www.DynamicsAXJobs.com

Sunday, October 23, 2005

Welcome to Dynamics AX!


My name is Brandon George, and I am launching this blog that will focus on Dynamics AX. (Formely known as Axapta). Here I will post code examples, news, what's going on, intergration with .Net, etc. everything that I can about Dynamics AX.

I hope that this will be a tool that many people can come to use, and find useful!

I will also have a weekly update on about the Job Board www.axaptajobs.com (also known as www.dynamicsaxjobs.com). During that post I will tell about the week events like what new employers have signed up, site stats, etc. This blog will also be syndicated to that site, so that the lastest news and latest Dynamics AX Jobs can be found at one place!

Also I am looking for Contract Tech. Writers that would like to help foster this blog. If I can find a few candiates to post here, then we can work on all kinds of projects that can benefit everyone!

Copyright 2005-2011, J. Brandon George - All rights Reserved