Monday, July 20, 2009

date in american standard format

Question: How can I get date in american standard format.

Answer: I have created a class that can be used to get the date in american standard format. Also there is a global method date2StrXpp that does exactly the same.

THe project can be downloaded here.

Friday, July 17, 2009

Assiging a lookup method to a control

Question: I want to add a runtime control and override a lookup method of it.
Answer: I have created a tutorial on form that can be used for this purpose. The form adds a control at run time and override the lookup method of it at runtime.

The form can be downloaded from here.

A form to display container values

Many times during debugging of container objects we normally have to view the current object list contained in the container. Normally we do it using debugger. The linked dynamics ax project will help you analyze the state of container by displaying all the container values in a form. The project contains a class and a job to use this class.
Click here to download the project.

Invoking Method on run time

Question: Can I invoke a table method on run time.
Answer: Yes this can be done using dictionary classes. Dictionary classes exposes the reflection functionlaity in Dynamics AX.

static void invokeMethodOnRunTime(Args _args){
DictTable dictTable = new DictTable(tablenum(CustTable)); CustTable custTable;
//Check if class/table has method
if(tableHasStaticMethod(dictTable, identifierstr('find'))) { custTable = dictTable.callStatic(tableStaticMethodStr(CustTable, Find), '4000'); info(custTable.name()); }
}

Wednesday, July 15, 2009

X++ call stack

Question: How Can I get the curent call stack in dynamics ax.

Answer: The method xSession::xppCallStack() returns the current call stack as a container.

Tuesday, July 14, 2009

Inside Dynamics AX 2009

Inside Dynamics AX 2009 is available now and can be bought from Amazon. The book can be found here.

From the site
"
Take an inside look at Microsoft Dynamics AX 2009 and exploit that in-depth, architectural perspective to more effectively customize and extend your enterprise solutions. The authors members of the Microsoft product team create a real-world context for essential concepts, and expertly illustrate how modules interrelate and interact. They offer practical, scenario-based guidance and troubleshooting advice on topics ranging from business intelligence and workflow to integration, reporting, and performance tuning. The book also provides extensive cross-references to additional reference and system documentation. "

Friday, July 10, 2009

trimString method in X++

public static str trimString(str _str, container _trimStr = [" "]){
int counter;
str lTrim = _str;
str rTrim;
//LTrim
for(counter = strlen(_str); counter >= 1 ; counter--)
{
if(confind(_trimStr, strdel(lTrim, 1, counter - 1))) {
lTrim = strdel(lTrim, counter, strlen(lTrim));
}
else
{
break;
}
}

//RTrim
rTrim = lTrim;
for(counter = 1; counter <= strLen(lTrim) ; counter++)
{
if(confind(_trimStr, strdel(rTrim, 2, strlen(rTrim)))) {
rTrim = strdel(rTrim, 1, 1);
}
else
{
break;
}
}
return rTrim;
}

Usage: info("trimString( "0000000000789798798.0000000", ["0", "."] ) -> " + trimString("0000000000789798798.0000000", ["0", "."] ) );