Monday, January 30, 2012

release of Dynamics AX 2012 for Retail

Microsoft announced the release of Dynamics AX 2012 for Retail

On Jan 16th, At the National Retail Federation’s annual conference today, Microsoft Corp. (Nasdaq “MSFT”) announced the upcoming release of Microsoft Dynamics AX 2012 for Retail
Its enterprise resource planning product designed to provide midsized and enterprise-level retailers with an offering that includes cross-channel capabilities, social and mobile commerce, point of sale, and enhancements for merchandising.
Microsoft Dynamics AX 2012 for Retail helps retailers do the following:
  Connect to customers
  Empower employees
  Execute with insight.

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

types of MAP in dynamics AX

There are two types of Maps available in dynamics AX

1. X++ Maps: it can be used as a temp data store for the given scope of a process. This takes us less over head, and is much quicker than a TempTable. For Further reading
2. AOT Maps: A map can unify the access to similar columns and methods that are present in multiple tables. You associate a map field with a field in one or more tables. This enables you to use the same field name to access fields with different names in different tables. Methods on maps enable you to create or modify methods that act on the table fields that the map references.

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

override canSubmitToWorkflow() method of list page form in ax 2012


Q: How can we override canSubmitToWorkflow() method of list page form in ax 2012 as there is no method to modify (template type is listpage). The requirement is to create a form and to enable workflow for both client and EP


Answer: If you want to enable workflow on a listpage (Client, EP), but you need to override the canSubmitToWorkflow method at the table level. In AX 2012 the listpage are deployed and rendered on EP on a single click so the best practice is to use the templateType == listpage, to make sure that both the client and EP provides the same functionality.


Coding standards of dynamics AX X++


I have read an article about the technical standard to write the code in dynamics ax, that covered the followed standards.
X++ Standards

·         Text Constant Standards
·         Exception Handling
·         Branching
·         Code Layout
·         Methods
·         Handling Dates
·         Label Standards
AOT Object Standards

·         Data Dictionary Extended data type

o   Base Enum
o   Tables
o   Feature keys
o   Table collection

·         Classes
·         Forms
·         Reports
·         Jobs
·         Menu items
The links is quite handful for the AX developers especially for those who are working for a vendor of Microsoft like me.

type of users in Dynamics AX 2012

Question: How many type of users are in Dynamics AX 2012 and what are their duties?

Answer: There are four types of user in AX 2012 (I have copy the matter from a link)
1.     Enterprise
2.     Functional
3.     Task
4.     Self Server
Enterprise User:

·         Unrestrictive access to setup, administer all parameters and functional processes across the enterprise. Key Roles whose work impacts multiple users’ activities or tasks such as budgeting, forecasting, planning or scheduling

·         Manage complete cross organizational activities and business including: Legal, Financial, Payroll, Compensation & Benefits and IT

·         Setting up and Defining Organizations, Business Unit, departments, divisions, Positions, and employee Jobs

·         Access to all Manufacturing Roles and functions excluding Shop Floor Control and Quality Management

·         Managing cross organizational processes

·         Approving professional user processes

Functional Users: 
·         Manage a set of activities in the process to create, fabricate, sell, deliver, or support the product or the service sold by their company.

·         Manage a shop floor within a production or manufacturing cycle.

·         Manage a set of projects and related services incl. the management of relevant resources.

·         Manage HR cycles: Recruitment, Trainings, and On/Off boarding of employees.

·         Manage budget transfers and requests pertaining to his / her operational department, division, or unit.

·         Create applicants / employee master data records; create a job or a position requisition within the organization.

·         Raise invoices pertaining to their clients.

·         Approve Vendor invoices or voucher for rendered services.

·         Create and Manage master data records pertaining to their Customers, Vendors, as well as their product inventory or catalog.

·         Approver of Self Serve or Task Users.

Functional Users do not and cannot perform (these are completed by Enterprise Users):

·         ERP system setup, Data base setup or reports customizations.

·         Functions related to setting up (System Configuration) projects, productions, services or financial parameters (Product, Inventory, projects, production, route, service grouping, etc.)

·         financial Transactions related to Employee Payroll, Customer and vendor settlements, payments, credits, checks, cash dispenses, all Accounting functions & activities
·         transaction spanning cross Business Units or Legal entities processes: Budgeting and Resourcing

Task User:
Users access the system to:
·         Enter billable time (Project Activities, Production card, etc.)
·         Billable expenses (project and other types)
·         Performance management and goal setting, annual reviews, etc.

Self Serve User:

·         Employee Self Serve Discrete Scenarios (Payroll Clock In/Out, Expense Report, Personal Data, Time & Attendance, Personal Service Requisitions

migrate AX2009 reports to AX2012 Reports

There is not any tool available that automatically publicly for the migration/conversion from Morph X++ reports into the SSRS Reports and also the upgrade engine of dynamics ax does not look after the upgrade issues in those objects such as conflicts between the two versions.
“Reports are not upgraded automatically during the upgrade process. Microsoft Dynamics AX provides hundreds of default, out-of-the-box reports that you can deploy and customize. To upgrade Morph X reports, we recommend that you customize a default report. The default reports run on SQL Server Reporting Services. Reporting Services is a server-based reporting platform that provides comprehensive reporting functionality for a variety of data sources.
When upgrading to Microsoft Dynamics AX 2012, existing Reporting Services reports and reports based on the Morph X reporting framework are copied to the Microsoft Dynamics AX 2012system. However, they will not be upgraded” For Further Reading
There was a team sonata software that used a tool (created internally not released) to converts the X++ reports to the SSRS reports.

Basic guidelines for conversion
1.     All the logic that has been placed in fetch method of X++ report should be moved to RDP (Report data provider) class.
2.      Generated Design on X++ report will be replaced by Precision Design in SSRS reports.
3.      Report AOT query will remain the same in both approaches.
4.      X++ reports that do not contain any complex logic, can be done through query based report with Auto Design in SSRS reports.

Install EP in Dynamics AX 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