Exam code MB6-821 AX 2009 MorphX Solution Development Version 1.0


Volume: A
1: Isaac, the Systems Developer, wants to modify the method SalesLine.calcLineAmount(). He wants to be sure that the change does not cause problems when it is used with the application. How can he find out where it is used?

A.Use the Reverse Engineering tool

B.Use the Cross-Reference tool

C.Right-click on the method and select Find D.Right-click on the method and select Compare  Answers: B

2: Where are the online help files stored? A.In the AOT.
B.In .chm files on the client machine. C.In .hlp files on the AOS.
D.In .ahp files in the application files directory.

 Answers: B


3: To obtain an overview of the data types inherited from AmountMST, which of the following would you use?:

A.The Reverse Engineering tool. B.The "Used by" node in the AOT. C.The "References" node in the AOT. D.The Application Hierarchy Tree.
 Answers: D

4: How can modifications be moved between a development and a test system? Choose two that apply.
A.Export the modifications from the development system to a .xpo file and import it into the test system.

B.Copy  the  .aod  and  .ald  files  from  the  development  application  file  directory  to  the  test application file directory.

C.Use the application merge tool in the test application, and specify the development application directory.

D.Run the application upgrade wizard from the development application and specify the test application file directory.

 Answers: A B

5: How can the best-practice error in a display method be turned off, after it has been investigated whether record-level security is required?

A.Add the comment:
//Record-security documented
B.Add the keyword Secure to the method definition. C.Add the comment:
//BP deviation documented

D.Add the keyword Ignore to the method definition.

 Answers: C


6: Isaac, the Systems Developer has moved the axCUS.aod and axCONen-us.ald files from the development application directory to the test application directory. What must he also do to ensure the labels are updated ly?

A.Recompile the application.


B.Synchronize the database. C.Delete the axCONen-us.ali file. D.Synchronize the labels.
 Answers: C


7: Isaac, the Systems Developer, wants to debug code in the class SalesFormLetter when it is called from the sales order form. What steps must he take to achieve this? Choose three that apply.


A.Install the debugger on the client.

B.Allow debugging to be executed on the AOS.

C.Open the debugger from the Tools menu before the code is executed. D.Set a breakpoint in the code.
 Answers: A B D

8: When writing a direct SQL statement, what would be the  syntax to execute a statement and tell the Code-Access Security layer that it is safe?

A.new SqlStatementExecutePermission(sqlString).secure(); stmt.executeQuery(sqlString); CodeAccessPermission::revertSecure();

B.new CodeAccessPermission(sqlString).assert(); stmt.executeQuery(sqlString); CodeAccessPermission::revertAssert();

C.new SqlStatementExecutePermission(sqlString).assert(); stmt.executeQuery(sqlString); SqlStatementExecutePermission::revertAssert();
D.new SqlStatementExecutePermission(sqlString).assert(); stmt.executeQuery(sqlString); odeAccessPermission::revertAssert();

 Answers: D


9: Which of the following are valid application object classes? Choose three that apply.


A.Form B.FormDesign C.FormQueryDataSource D.FormRun
 Answers: A B D

10: What is the purpose of the RunBase framework?

A.It defines a common structure for all reports in Microsoft Dynamics AX.

B.It defines a common structure for all access rights in Microsoft Dynamics AX.

C.It defines a common structure for all data manipulations in Microsoft Dynamics AX. D.It defines a common structure for all forms in Microsoft Dynamics AX.
 Answers: C


11:  Which  method  on  RunBase  class  does  the  following  statement  describe?  "This  method receives a container as a parameter and restores the type specific variables of the class"

A.initValue B.main C.unpack
D.getFromDialog


 Answers: C


12:  Which  of  the  following  is  a  difference  between  the  two  classes:  RecordSortedList  and
RecordInsertList?

A.RecordInsertList lacks the sort order features that are available in RecordSortedList. B.RecordSortedList lacks the sort order features that are available in RecordInsertList. C.RecordInsertList cannot insert multiple records into the database in one trip. D.RecordSortedList cannot insert multiple records into the database in one trip.  Answers: A

13: Isaac, the Systems Developer, has created a new class which extends the RunBase Framework. He  needs to make the query visible on the dialog, for user interaction. Which methods will he need to override to achieve this?

A.showQueryValues() B.queryValuesVisible() C.showQuery() D.queryVisible()  Answers: A

14: Isaac, the Systems Developer, needs to write X++ code to iterate through the elements in a
Map object. What class(es) can he use to do this? Choose two that apply.


A.MapEnumerator

B.MapIterator

C.Map

D.ListIterator

 Answers: A B

15: What is the Args-class used for?

A.It verifies arguments sent to the Called application object. B.It passes information between running application objects. C.It handles end-user input.
D.It handles external access to classes in the AOT.

 Answers: B


16: Which of the following are methods on the Args class that will accept a string type as a parameter? Choose two that apply.


A.caller() B.name() C.parm() D.element()
 Answers: B C

17: Isaac, the Systems Developer, needs to run a form from his X++ code. Select the  statement to replace the /* insert answer here */ comment in the following code:

Args args;
FormRun formRun;
;
args = new args(formstr(inventTable));
formRun = classFactory.formRunClass(args);
/* insert answer here */

A.formRun.init(); formRun.prompt(); formRun.wait();

B.formRun.init();
formRun.run();

C.formRun.init(); formRun.run(); formRun.prompt();

D.formRun.init(); formRun.run(); formRun.wait();

 Answers: D


18: What is the advantage of using placeholders when retrieving data from the database? A.It reduces the time a record is locked and improve scalability.
B.It makes the optimal access plan for each query as all information is available for the database, when the access plan is decided.

C.It reduces the CPU usage on the database server as the access plan can be reused. D.It ensures that all the necessary data are retrieved when specifying a field list.  Answers: C

19: Parm tables use a ParmId value to uniquely identify each update. How is the ParmId value created?

A.It is a sequential number taken from the Parm ID number sequence set up on the Administration parameters.

B.It is a sequential number taken from the System ID number sequence set up on the Company
Info table.

C.It is a GUID created using the newguid() function.

D.It is a GUID created using the WinAPI::createGUID() function.

 Answers: B


20: When will the default behavior of a select statement be to use literals?
A.When the number of records exceeds the threshold specified in the Server Configuration Utility. B.When  the  select  joins  more  than  two  tables  from  the  table  groups:  Miscellaneous,  Main,
Transaction, Worksheet Header & Worksheet Line.

C.When no locking (forupdate) is specified on the select statement.

D.When an update is performed using an array operation like update_recordset or delete_from.

 Answers: B


21: Which select statement is identical to the Query object produced by the following block of code?

Query q; QueryBuildDataSource qbDS; QueryBuildRange qbR;
;
q = new Query();
qbDS = q.addDataSource(tableNum(InventTrans)); qbDS.addSelectionField(fieldNum(InventTrans,Qty),SelectionField::Sum); qbDS.orderMode(OrderMode::GroupBy);
qbR = qbDS.addRange(fieldNum(InventTrans, ItemId)).value(SysQuery::value(""OL-2500"")); qbDS = qbDS.addDataSource(tableNum(InventDim)); qbDS.orderMode(OrderMode::GroupBy);
qbDS.addSortField(fieldNum(InventDim, InventBatchId));
qbDS.relations(true);

A.while select sum(qty) from inventTrans where inventTrans.ItemId ==OL-2500 join inventDim
group by inventBatchId

where inventDim.InventDimId == inventTrans.InventDimId

B.while select inventTrans
where inventTrans.ItemId ==OL-2500 join inventDim
group by inventBatchId
where inventDim.InventDimId == inventTrans.InventDimId

C.select sum(qty) from inventDim group by inventBatchId
join inventTrans
where inventTrans.InventDimId == inventDim.InventDimId
&& inventTrans.ItemId ==OL-2500

D.while select sum(qty) from inventDim group by inventBatchId
join inventTrans
where inventTrans.InventDimId == inventDim.InventDimId
&& inventTrans.ItemId ==OL-2500

 Answers: A


22: Which of the following strategies are appropriate to reduce locking of central records in the database?

A.Do not use ttsBegin and ttsCommit when accessing records which can increase the locking. B.Set up the class to run on the server.
C.Set up the table to use Optimistic Concurrency Control (OCC). D.Always specify an index to reduce the load on the database.  Answers: C

23: The following code creates an ODBC connection to an external database. Which block of code is valid and can be inserted into the /*insert answer here*/ line?

If (odbcConnection)
{

sql  ="SELECT  *  FROM  MYTABLE  WHERE  FIELD  ="  +  criteria  +  "  ORDER  BY FIELD1,FIELD2 ASC"
perm = new SqlStatementExecutePermission(sql);
perm.assert();
statement = odbcConnection.createStatement();
resultSet = statement.executeQuery(sql);
/*insert answer here*/
}

A.while (resultSet.next())
{
print resultSet.get(4);
print resultSet.get(3);
} resultSet.close(); statement.close(); pause;

B.while (resultSet.next())
{
print resultSet.get(1);
print resultSet.get(3);
}
pause;

C.while (resultSet.next())
{
print resultSet.getString(2);
print resultSet.getString(1);
} resultSet.close(); pause;

D.while (resultSet.next())
{
print resultSet.getString(1);
print resultSet.getString(3);
}
pause;

 Answers: D


24: To optimize a While Select statement what should you consider using? Choose two that apply.


A.Fieldlist B.Order by C.Join
D.Quick select

 Answers: A C

25: Where is the entire table cache located?

A.It will be present on the client to reduce response time when browsing the data in a grid. B.It will be present on the server to make the cached data available for all clients connected. C.It will be present on a dedicated cache server to support clustering of multiple AOS servers.
D.It will be present on the database server as this will reduce the internal disk I/O and improve scalability.

 Answers: B


26: Suppose you have a handle to a temporary table. How do you make this visible in a form with the temporary table as data source?

A.Loop  through  the  data  in  the  temporary  table  and  copy  each  record  to  the  data  source using .insert().

B.The data will be visible without any manipulation as the handle and data source share the same table definition.

C.Call the method .loadTmpData() on the data source and specify the handle to the temporary data.

D.Redirect the data source to use the same file as the handle by calling the method .setTmpData().

 Answers: D


27: How would you cache display methods on forms?

A.Modify  the  DisplayCache  form  method,  adding  the  element.cache(<methodname>)  before super()

B.Set the method modifier to Cache Display.

C.Add a call to the method cacheAddMethod after super() in the Init method of the form. D.Set the Cacheable property on the display method to Yes.
 Answers: C


28: On which tier is the physical file holding a temporary table placed? A.It is placed on the tier where the first record in inserted.
B.It is always placed on the AOS, as this will reduce the traffic between AOS server and the database.

C.It is placed on the tier, where the handle is defined.

D.It is always placed on the client to secure the Trustworthy Computing principles.

 Answers: A


29: What is the InventMovement class used for?

A.To check and prepare data for an update to inventory transactions. B.To create a Movement Inventory Journal.
C.To post physical inventory movements.

D.To make adjustments to inventory during an inventory close.

 Answers: A


30: Microsoft Dynamics AX uses a concept called "inventory dimensions" to track variations in inventory movements. What are the two defined types of inventory dimensions? Choose two that apply.


A.Location B.Storage C.Item D.Source
 Answers: B C

31: Which table is used to store all combinations of inventory dimensions that have been used in the data?

A.InventDimCombination B.InventDimParm C.InventDimGroup D.InventDim
 Answers: D


32: What is the class that posts transactions to a journal? A.JournalPost
B.LedgerJournalCheckPost

C.LedgerPost

D.NewJournalPost

 Answers: B


33: The Microsoft Dynamics AX Trade modules allow you to create a sales order using X++ code. What table methods are used to create a sales order? Choose three that apply.


A.SalesTable.InitValue() B.SalesTable.Insert() C.SalesTable.PostTransaction() D.SalesLine.CreateLine()  Answers: A B D
34: What are the main journals in Microsoft Dynamics AX? Choose three that apply.


A.Ledger B.Inventory C.Project D.Trade
 Answers: A B C

35: All  Microsoft  Dynamics  AX  modules  interface  with  which  of  the  following  accounting modules?
A.General Ledger B.General Journal C.Cash Journal D.Ledger Voucher

 Answers: A


36: Which of the following classes is not a standard Microsoft Dynamics AX FormLetter class? A.SalesFormLetter_FreeText
B.SalesFormLetter_InvoiceProject C.SalesFormLetter_PackingSlipProject D.SalesFormLetter_PickingListRegistration  Answers: D

37:  Before  a  transaction  is  committed,  which  table  is  updated  when  changes  are  made  to
InventTrans? A.InventSum B.InventSumLogTTS C.InventSumDelta D.InventTransSum  Answers: C

38: Which method is used to add customer transactions to a voucher? A.ledgerVoucher.Add()
B.CustVoucher.add() C.LedgerVoucher.end() D.CustVoucher.end()
 Answers: B

39: Which class is used to post Inventory Journals? A.InventJournalPost
B.InventJournalCheckPost C.InventPostJournal D.InventCheckPostJournal  Answers: B

40: Which class is used to create inventory transactions? A.InventCreate
B.InventUpdate C.InventNew D.InventTrans  Answers: B

41: Isaac, the Systems Developer, needs to install a new DLL which he will reference in his X++
code in Microsoft Dynamics AX.

When installing DLL assemblies that will be referenced by Microsoft Dynamics AX, which of the following is true?

Choose two that apply.


A.The DLL can be installed into the Bin directory of the Microsoft Dynamics AX Client, on each machine where a Client is installed.

B.The DLL can be installed into the Bin directory of the Microsoft Dynamics AX Application
Object Server, on each machine where an Application Object Server is installed.

C.The DLL can be installed into the Global Assembly Cache on the machine where the Microsoft
Dynamics AX application files are installed.

D.Install  each  DLL  into  the  Global  Assembly  Cache  on  each  machine  where  a  Microsoft
Dynamics AX Application Object Server is installed.

 Answers: A D

42: How do you make CLR Interop assemblies visible to Microsoft Dynamics AX X++ code? A.CLR assemblies must be programmed in X++ code.
B.CLR assemblies must be referenced in the Application Object Tree (AOT). C.CLR assemblies must be registered with .NET Framework.
D.CLR assemblies must access the application using the .NET Business Connector.

 Answers: B


43: The Microsoft Dynamics AX .NET Business Connector provides a set of managed classes that provide access to X++ functionality in Microsoft Dynamics AX. It is installed and required for the following Microsoft Dynamics AX components? Choose three that apply.


A.Enterprise Portal. B.Reporting Services. C.Workflow
D.Windows Share Point Services.

 Answers: A B C

44: Isaac, the Systems Developer, is writing a .net application that will be used by users that are not Microsoft Dynamics AX users. The program will use a default Microsoft Dynamics AX user for  anyone that uses the program. Which method in the IAxapta3 interface can he use so that


the .net program can login through the business connector and impersonate a default user? A.logon()
B.logonAs() C.logonImpersonate() D.LogonUser()  Answers: B

45: The following code saves an xml document to a file. This action invokes the Code Access Security layer, and needs to have the  permissions asserted. Which line of code that is missing from the following block of code, will achieve this?

System.Xml.XmlDocument xmlDoc;
;
/* insert answer here */
xmlDoc = new System.Xml.XmlDocument();
... xmlDoc.Save('c:\\test.xml');

A.new InteropPermission(InteropKind::COMInterop).assert(); B.new InteropPermission(InteropKind::DLLInterop).assert(); C.new InteropPermission().assert();
D.new InteropPermission(InteropKind::CLRInterop).assert();

 Answers: D


46: What class is used to provide Code Access Security permission to a CLR Interop class? A.CLRSecurity
B.InteropAccess

C.CLRPermissionAccess

D.InteropPermission

 Answers: D


47: Which of the following are two of the characteristics of the Microsoft Dynamics AX .NET Business Connector? Choose two that apply.


A.Requires Microsoft Windows authentication.

B.It is backward compatible with the COM Business Connector.

C.Has  a  Business  Connector  Proxy  user,  which  acts-on-behalf-of  users  who  cannot  be  fully authenticated.

D.Provides an event log that only records .NET events.

 Answers: A C

48: Under which node in the AOT are web service references created? A.Resources
B.Services

C.References

D.Web > Web Services

 Answers: C


49: Which of the following is true about forms? Choose three that apply.

A.When inserting X++ code on a form, enter it on the design. B.Forms do not support inheritance.

C.X++ code implemented in forms is always executed on the client. D.When inserting X++ code on a form, enter it on the data source.  Answers: B C D
50: How does Microsoft Dynamics AX support ActiveX controls? A.ActiveX objects are supported in classes only.
B.ActiveX controls are visual elements and are supported on forms and reports. C.ActiveX controls are supported across all Microsoft Dynamics AX objects. D.ActiveX controls are visual elements and are supported as form controls.  Answers: D

51: Which form method can be overridden when code is required to be executed when the user clicks the OK command button?

A.Close() B.OkClose() C.CloseOK() D.OK()
 Answers: C


52: Which of the following application object classes would be used during runtime? Choose two that apply.


A.FormBuildStringControl

B.FormStringControl


C.FormBuildTreeControl D.FormTreeControl  Answers: B D
53: What would you do to distinguish between an insert and update on a form? A.Check if initValue has been set to Active.
B.Check the value of the Boolean "New" on the record. C.Call the UpdateTrue method on the data source.
D.Create a condition on the RecId field in the Write method on the data source.

 Answers: D


54: Which runtime class instances exist for a running form with a data source? Choose three that apply.


A.FormRun B.FormDataObjectSelect C.FormDataSource D.FormDataObject  Answers: A C D
55: Which of the following is the Report Method "Fetch" responsible for? Choose three that apply.

A.Initialize the QueryRun. B.Sorting data.

C.Fetch data.

D.Prompt for the query.

 Answers: A C D

56: How can a form be designated to be a ListPage style form? A.Set the ListPage property on design to True
B.Set the ListPage property on the menu item that calls the form to True

C.Set the WindowType property on the design to ListPage

D.Set the WindowType property on the menu item that calls the form to ListPage

 Answers: C


57: Which runtime class instances exist for a running report with a data source? Choose two that apply.


A.ReportDesignSpecs B.QuerySelect C.QueryRun D.ReportRun
 Answers: C D

58: Issac,  the  Systems  Developer,  has  created  a  new  form  to  be  used  when  displaying  the drop-down list for an item number. Which method on the form control should he override to call this form?
A.JumpRef() B.DropDown() C.LookUp()

D.MouseDown()

 Answers: C


59: What steps must be taken to use an aggregated field on a report data source? Choose three that apply.


A.Right-click on the Fields Node in the data source and select New, and then the type of aggregate field.

B.Right-click in a section in the report design, and select Add Sum. C.Add one or more fields to the Group By section in the data source.
D.Set the Dynamic property on the Fields node on the data source to No, and delete all the fields in the field list.

 Answers: A C D

60: Which data type is returned from the method PrintJobSettings.PackPrintJobSettings()? A.A Record
B.A String C.An Array D.A Container
 Answers: D


61: When using a number sequence on a form, which is the best approach to use? A.Assign the number in the create() method of the data source.
B.Call the NumberSeq.num() method in the Init method of the form.


C.Use the NumberSeqFormHandler class. D.Use the NumberSeqReference class.  Answers: C

62:  Several  database  tables  are  used  to  manage  the  number  sequences  used  by  Microsoft
Dynamics AX. Which table contains the definition of each number sequence? A.NumberSequenceList
B.NumberSequenceTable C.NumberSequenceReference D.NumberSequenceGroup  Answers: B

63: The PrintJobSettings class is used with report output. What does the PrintJobSettings class do? Choose three that apply.


A.It contains methods and variables to hold the report output settings. B.It can be used to create new report options.
C.It can be used to retrieve report options. D.It can be used to set report options.  Answers: A C D
64: Isaac, the Systems Developer, has written some code that uses a number sequence. When he runs  it,  he  gets  the  error  message  "System  does  not  support  setup  of  continuous  number sequence." What could be the cause?

A.The number sequence reference is not set to Continuous.


B.The call to the number sequence is not inside a transaction. C.The code has been written in a form method, instead of a class.
D.The number sequence reference has not been added to the number sequence table.

 Answers: B


65: Isaac, the Systems Developer has created a new extended data type and wants to create a new number sequence to be used with it that is defined in the parameters form. Which methods in the NumberSeqReference class should he modify?

A.LoadNumRef() B.LoadSeq() C.LoadModule() D.LoadParameters()  Answers: C

66: Which of the following classes control Production order updates? A.ProdMulti
B.ProdStatusType C.ProdUpd D.WorkFlowSchedule  Answers: C

67: The classes that manage Production Scheduling in Microsoft Dynamics AX handle large amounts of data to be able to calculate start and end dates, and start and end times. Data used in the  process are stored in temporary tables and arrays. Which suffix is found at the end of the classes used to manage the data in the scheduling process?

A.Data B.Temp C.TemporaryData D.TempData
 Answers: A

68: Updating the status of a production order is controlled by what class? A.ProdUpdScheduling
B.ProdStatusType C.CtrScheduleJobs D.ProdMultiRelease  Answers: B

69: What is the name of the main database table where each project has a record? A.ProjProposalJour
B.ProjTransaction C.ProjCustTable D.ProjTable
 Answers: D

70: Where can you specify which module a workflow is used in? A.In the module property on the WorkflowTemplate.


B.In the module() method in the WorkflowDocment class. C.In the module property on the WorkflowCategory.
D.In the module() method in the WorkflowProcessor class.

 Answers: C


71: What must be modified on a form to enable workflow? Choose two that apply.


A.Override the WorkflowEnabled method on the form datasource. B.Set the WorkflowEnabled Property on the data source to Yes, C.Override the canSumbitToWorkflow method on the form.
D.Set the canSubmitToWorkflow property on the form.

 Answers: A C

72: To specify which table is to be used in a workflow, it must be added to a query. How do you specify that the workflow should use this query? Choose two that apply.


A.Create a class that extends workflowDocument and override the getQueryName() method. B.Set the query name in the Workflow Template.
C.Specify the WorkFlow Document in the Workflow Template.

D.Create a class that extends workflowDocument and the getTemplateName() method.

 Answers: A C

73: Isaac, the Systems Developer has created two menu items to be used for the Approve and
Deny actions in a workflow. Where should he assign the menu items to the workflow?

A.In the Workflow Approvals component.

B.In the Workflow Template component. C.In the Workflow Document class.
D.In the WorkFlow Processor class.

 Answers: A


74: Which components need to be installed to use Workflow in Microsoft Dynamics AX? Choose three that apply.


A.Workflow website in IIS B.Workflow accounts C.Workflow server component D.Workflow application layer  Answers: A B C
75: Which class processes a workflow to determine who should take the next action on the workflow?

A.WorkflowWorkItem B.WorkflowDocument C.WorkflowProcessor D.WorkflowSubmit
 Answers: A