Powered By Blogger

Tuesday, March 30, 2010

SQL clustering

http://www.docstoc.com/docs/32088055/Document-to-understand-the-SQL-clustering
Clustering mainly refers to a group of two or more servers (generally called nodes) that work together and represent themselves as a single virtual server to a network.

Follow the above link to get the doc attached describing the basics of SQL clustering.

DAX09_GAB functionality

http://www.docstoc.com/docs/32087697/Dynamics_AX09_Global_Address_Book

I ahve uploaded one doc prepared by a MS consultant. It really helps to understand the Global address book functionality in DAX 2009
....Enjoy wth GAb

Monday, March 29, 2010

Axapta keyboard short cuts

Press this To do this Command

Tab Go to the next field Next Field
Ctrl+PgDn Go to the next field group Next Field Group
Ctrl+Shift+End Go to the last entry field in the form Last field
Alt+F9 Delete a record Delete Record



use the above link to download the doc which describes few more such shorctuts on DAX
...........enjoy shorctutting -:)

Friday, March 19, 2010

SQL Tracing in AX

Normally results of SQL Tracing is stored in SQL table, browsable from Axapta itself. The only reason for usage of SQL Tracing to log-file is a special request from Microsoft support team (because it is much easier to e-mail a log-file than log-table).

(A)
SQL Tracing work ONLY if your AOS configuration has “Allow client tracing on Application Server Instance” setting checked. In versions 2 and 3, SQL trace worked independent from any server configuration settings, so I was little surprised when I tried to run familiar SQL trace on DAX4.0 without any results. It seems,that in attempt to gain couple of extra percents of performance, DAX kernel’s team decided to make this SQL tracing globally switchable starting from version 4.0.

(B)

If you are trying to log SQL Trace into file, expect to find this file ON SERVER SIDE. In versions 2 and 3, SQL trace file was being stored on local log directory. Starting from version 4.0, SQL trace file is being stored on Server side log directory. Probably, this is because performance team decided to completely decouple tracing process from client. Before attempt to commence SQL Tracing to file, please ensure that your AOS user (I mean – AD user, under which account AOS is run) has enough rights to create and write files in log directory. (Normally, It is something like C:\Program Files\Microsoft Dynamics AX\50\Server\DynamicsAx\Log).

Apart from this we have Server & Client tracing also in Ax. wil post that in next blog, bored a bit now -:)

Add Fields to a table, using code In DAX

static void createFieldFromCode(Args _args)
{
#AOT
TreeNode tableNode;
AotTableFieldList myAOTTablefieldList;
SysDictTable sysDictTable = new SysDictTable(tablenum(AX));
;
if (! hasSecuritykeyAccess(securitykeynum(SysDevelopment),
AccessType::View))
{
return;
}
myAOTTablefieldList = new AotTableFieldList();
tableNode = TreeNode::findNode(#TablesPath+'\\'+sysDictTable.name());
myAOTTablefieldList =
TreeNode::findNode(#TablesPath+'\\'+sysDictTable.name() + "\\Fields");
if(!myAOTTablefieldList.AOTfindChild("newField")) // check if the field
alredy exists
{
myAOTTablefieldList.addString("newField");
}
tableNode.AOTsave();
}

Best Article --- check if the Dynamics AX 4 client crashes upon startup


This is a very common error we used to get while working with DAx and found below as a resolution for this..
If you get the following error when starting up a Dynamics AX 4 client and just can't see anything wrong with the configuration or anything else; look into the following folder on your local machine "\Documents and Settings\\Local Settings\Application Data\" for a file named "ax__.auc" and rename it or delete it.


when you want a section of code not to report to the infolog, but still want previous messages to be shown at the end of execution

Try this and see the output
public static void suppressInfolog(Args _args){ int i; ; info("A");
i = infolog.line();

info("B"); //Section of code that will not get reported to the infolog

if (infolog.line() > i) infolog.cut(i+1, infolog.line()); info("C");