Showing posts with label dynamics ax. Show all posts
Showing posts with label dynamics ax. Show all posts

Monday, January 30, 2012

Dynamics AX technical consultant interview questions


Today, I have spent quite a lot of time to gather the interview question for a Dynamics AX Technical Consultant and Developer. I have also provided the links of the answers of those question
1.      How can we create primary key for a table?

2.      what precautions you need for overriding fetch() method for a report?

3.      Difference between OCC (Optimistic concurrency control) and PCC (Pessimistic concurrency control)?

4.      How many types of MAP there in Dynamics AX?

5.      What is cache lookup what is it used for?

6.      Difference between table and views?

7.      why we use dialog? and how to accomplished it?

8.      what are the different type of index?

9.      Difference b/w cascade + restricted and restricted delete actions?

10.  In which case delete_from and delete() have same result?
Delete() will delete one record at a time.

Delete_from can delete multiple records at a time.


11.  Explain sales/purchase order processes in AX.

12.  Can you just tell the table properties that you can remember

13.  Different types of relation? Explain it detail?

14.  Explain Queries? What’s it used for?

15.  Explain different types of reports?
There are two types of reports in AX

16.  Differentiate auto design spec & Generated design? Which one is a preferable choice and why ? 



17.  What are all the add- on tools you used in Dynamics AX (It’s an indirect question for AIF)



19.  What is the default index for a table?

       Default Index in Table

20.  Did you work with EP (Enterprise Portal & Workflow) how you can implement this features into your projects ?
       EP in AX 2012

21.  Can you just point out some best practice you used when u develop a project? 

22.  Did you worked with base modules? 

There is a also a link containing a document that have hundreds of question

passing parameters between forms in AX


In dynamics AX, working with forms, there are times when you need to pass some information from current form to the opened form, so the question arrived is that what's the best way to open the new form and pass information.

Answer: It depends upon the information that is needed in the new form; there is Args class that plays an important role to pass the information. Let’s take a look on some of the important methods of that class

Args class (Argument)

"The Args class is used to pass arguments such as a name, a caller, and parameters between application objects"

Some important methods are

Caller

Gets or sets the instance of the object that created this instance of the Args class.  
name

Gets and sets the name of the application object to call.
parm

Gets or sets a string that specifies miscellaneous information for the called object.  
parmEnum
Gets or sets the enumeration value of the enumeration type that is specified in the parmEnumType method.  
parmEnmType

Gets or sets the ID value of any enumeration type. 
ParmObject

Gets or sets an instance of any object to pass to the called object.

record

Gets and sets the record from the table on which the caller object is working.

There are four methods that can be used to pass extra information to the new class:

  1. The parm method – to pass strings
  2. The parmEnum and parmEnumType method – to pass enumeration values
  3. The parmObject method – to pass an object of any type.  
Examples:

1.      If you need a data from the parent form main data source for the current record, so you don’t need to do anything in parent, just create a display menu item and give the form name that needs to be opened, create a menuItem button and assign the newly created menu item.

Override the Init method on opened form

And you get the parent dataset records as 

element.args().record()


2.      Need to pass any object/string/Enum
                Use the same approach for creating the button

Parent form
void clicked()
{
    Args args;
    FormRun formRun;
   
    super();

    args = new Args(formstr(FormName));
 // To pass any string value
    args.parm(<string value>);
 // To pass any object
    args.parmObject(<object>);
 // To pass any Enum 
       args.parmEnum( EnumValue);
       args.parmEnumType( EnumNum( <EnumName>) );

 formRun = classFactory.FormRunClass(args);
    formRun.init();
    formRun.run();
    formRun.wait();
    formRun.detach();
    parenttable_ds.refresh(); // Refreshing parent table DataSourceTable
    parenttable_ds.executeQuery(); // Refreshing Parent DataSourceTable
}

Child Form
void init()
{
    args = element.args();
    // get string parameter
    <string> = args.parm();
    // get object parameter
    <object> = args.parmObject();
    // get enum parameter
   
if( element.args().parmEnumType() == EnumNum( <EnumName>) )
   
{
   
    <enum contol/variable>  =( element.args().parmEnum() );
    }
}

3.      There are many parameters that you need to pass to the child form.
               In that scenario, you need to create an extra class (parameter/contract class), you can first set the parameters in the init method for that class, use the parmObject for setting and gets the object on the child form






Sunday, January 29, 2012

Upgrade from AX 2009 to 2012

Question: Is there any guide line to upgrade the dynamics Ax 2009 to 2012

Ans: Microsoft written a document that provided the standard steps to upgrade AX 2009 to Ax 2012

That includes the following topics 
  •  What's New: Upgrade
  •  Supported upgrade paths
  •  Hardware and software requirements
  •  Best practices for upgrade
The link shared by Ahmed El-Sayed