Archive
June, 2010
Browsing all articles from June, 2010
4

A study was done by Job Graphs (http://www.jobgraphs.com/) for Microsoft Dynamics AX as a global software product. I leave you with the graphs.

Dynamics AX – Modules demand trend

Modules demand trend

Salary Comparison

Salary Comparison

Dynamics AX – Role Wise Comparison

Role Wise Comparison

Dynamics AX – Experience based demand trend

Experience based demand trend

Dynamics AX World Wide Demand

Dynamics AX World Wide Demand

Source: http://jobgraphs.com/dynamics-ax/

0

Arabic Help Files for Dynamics AX 2009

Arabic Help Files

Download

If you don’t have the Arabic help files of Dynamics AX you could download them from here:

To install the downloaded file to your environment, you have to get it copied to all the clients that needs to access the help files in an Arabic version. To get that, do the following:

  1. Download the files
  2. Unzip the folder in order to to get the “AR” folder
  3. Copy the unzipped folder in each client into: <<Installation folder>>Microsoft Dynamics AX50ClientBinHelp

By this you will be able to read the help files in the Arabic version.

And of course, do not forget to turn the Help language in the User Options form into AR!

User options form (Click to enlarge)

Here we are :)

Help in Arabic (Click to enlarge)

3

If you wanted to write a an X++ code to generate a number sequence and assign it to a field, you might use the following X ++ statement.

1
yourTableBuffer.Field = NumberSeq::newGetNum(NumberSequenceReference::find(TypeID2ExtendedTypeId(TypeId(YourExtendedDataType)))).num();

And for the continuous number sequence (notice the “true” parameter):

1
yourTableBuffer.Field = NumberSeq::newGetNum(NumberSequenceReference::find(TypeID2ExtendedTypeId(TypeId(YourExtendedDataType))), true).num();

But, what you could do if you have that field in form and you want to generate a number sequence while the user creates a new record is the class NumberSeqFormHandler.

NumberSeqFormHandler is a great class that doesn’t only take care of generating a new number sequence for your field… but also it takes care of removing or inserting that number in the Number Sequence List table when the number is not used (in case that the record hasn’t been inserted although the number has been already generated).

To use the NumberSeqFormHandler class, you have to declare a NumberSeqFormHandler object in the class declaration. Also you have to create a method at the Form level like the following:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Form level method
NumberSeqFormHandler numberSeqFormHandler()
{;
    //you should have been declared numberSeqFormHandler variable in the ClassDeclaration of your form
    if (!numberSeqFormHandler)
    {
        numberSeqFormHandler = NumberSeqFormHandler::newForm(NumberSequenceReference::find(TypeID2ExtendedTypeId(TypeId(YourExtendedDataType))).NumberSequence,
                                                             element,
                                                             YourDataSourceName,
                                                             fieldnum(YourTableName, Field));
    }
 
    return numberSeqFormHandler;
}

Then you need to actually call the NumberSeqFormHandler class methods like:

1
2
3
4
5
6
7
8
9
//Form methods
public void close()
{
    if (numberSeqFormHandler)
    {
        numberSeqFormHandler.formMethodClose();
    }
    super();
}
1
2
3
4
5
6
//DataSource method
public void write()
{
    element.numberSeqFormHandler().formMethodDataSourceWrite();
    super();
}
1
2
3
4
5
6
7
8
9
10
//DataSource method
public boolean validateWrite()
{
    boolean ret;
 
    ret = super();
    ret = element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret) &amp;&amp; ret;
 
    return ret;
}
1
2
3
4
5
6
//DataSource method
public void linkActive()
{
    element.numberSeqFormHandler().formMethodDataSourceLinkActive();
    super();
}
1
2
3
4
5
6
//DataSource method
public void delete()
{
    element.numberSeqFormHandler().formMethodDataSourceDelete();
    super();
}
1
2
3
4
5
6
7
8
9
//DataSource method
public void create(boolean _append = false)
{
    element.numberSeqFormHandler().formMethodDataSourceCreatePre();
 
    super(_append);
 
    element.numberSeqFormHandler().formMethodDataSourceCreate();
}

By this you will have your form works efficiently with the Number Sequence engine of Dynamics AX  and you don’t have to write any code at the table level… so remove all that code that you might have written at the initValue method of your table.

One last important thing, NumberSeqFormHandler works with Continuous and non-Continuous number sequences. But if you want to “regenerate” the unused numbers that have been previously generated, you have to set your number sequence as Continuous of course.

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 »