Tuesday, July 2, 2013

Users in 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
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

Dynamics AX technical consultant interview questions

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? 



Question: What is the default index for a table ?

Microsoft Dynamics AX requires a unique index on each table. If there are no indexes on a table or all the indexes are disabled, a system index is automatically created. The system index is created on the RecId and DataAreaId fields if the DataAreaId field exists. Otherwise, the system index is created on the RecId field. You can see system indexes in the database, but they aren't visible in the AOT. 

Dynamics Axapta FAQs

1 . Breakpoint in clicked method
There is quite well known bug in AX that breakpoint placed in the clicked() method of a button will not be triggered. It is quite unpleasant one since when one faces it first time he gets totally confused. However, there are easy workarounds for this bug. First one – put breakpoint into the method that is called from clicked (in most cases it is possible). But if not, keyword breakpoint can be used – it will be triggered in clicked() method.

2. Global::isType
The easiest way to determine if an EDT extends another EDT (not necessarily directly) is to use Global::isType() method.

For example:
isType(extendedtypenum(PurchUnit), extendedtypenum(UnitIDBase));
give true, since PurchUnit extends UnitID, which extends UnitIDBase.
isType(extendedtypenum(ABCModelType), extendedtypenum(NoYesId));
gives false, since ABCModelType and NoYesId are in different hierarchies.

3. Delete actions and multiple relations
If one table has several relations to another table delete action will not work properly. In such case delete action will be triggered for only one of the relations. So, in the case of multiple relations one should write his own cascading or restricting logic in the delete method. An example can be found in Unit and UnitConvert tables. UnitConvert table has two relations to the Unit table – from unit and to unit. Table Unit has cascading delete action for the UnitConvert table. However, if a unit will be deleted, only unit conversions with from unit equal to the deleted one will be deleted. Conversions with to unit equal to the deleted one will survive. Example of correct implementation can be found in InventTestEmplResponsible and EmplTable. EmplTable has delete method overridden to perform manual delete in the InventTestEmplResponsible table.

UnitofWork

One of the most common design patterns in enterprise software development is the Unit of Work, According to Martin Fowler, the Unit of Work pattern

·       Keeps track of the objects affected by a transaction
·       Coordinates the writing out of changes
·       Resolve the concurrency problem 
A Unit of Work keeps track of everything you do during a business transaction that can affect the database. When you're done, it figures out everything that needs to be done to alter the database as a result of your work.

In x++, there is a system class exists that can be used to implement the unit of work framework some of the details are as follows
UnitofWork class,
some important methods
Clears all the changes
Deletes the records on commit/saveChanges
inserts the records on commit/saveChanges
updates the records on commit/saveChange
This method will hit the server one time to commit the changes

I would like to take an example to demonstrate the use of the UoW framework,
Example 1:
If there is a need to inserts data in a bulk to Table1.
there is also a call tJournalHeader.insert() needed in the for loop



using Unit of work


Example2:
What if we are doing bulk insert of a journal with many lines and the journal header contains some totals calculated based on its lines. It is impossible to insert lines before header since the value of the journal's surrogate key is unknown. But that would be so convenient because otherwise the header should be inserted first, then the lines and then the header should be updated with the calculated totals




AX client has the great support of the unit of work as well. This means that form datasources can be grouped into a unit of work, so all the benefits of simultaneous commit and surrogate key propagation will be available on forms. There are a lot of possibilities and tricks there, so this topic worth one or more dedicated posts as well. 

How to identify the user that was used to change an object from AOT in AX2012

Get the object name for which we need to track these (user and date&time) information's. Login to SQL Server Management Studio an...