Transcript
Navision 4.0 C/SIDE Solution Development
QUESTION 1
You have created a custom report for Certkiller .com. Your customer has complained about how this report is taking several hours to run. However, your customer has stated that when the report does finish that the information is correct and the report is formatted correctly. Which of the following could cause the performance degradation that your client is experiencing?
The sort button is not available on the request form.
The data items are not using the correct key.
The data items are not linked.
The data items are in the wrong order.
Answer: B
QUESTION 2
Which of the following lines of code would cause a report section to NOT print? A. CurrReport. SHOWOUTPUT (TRUE); B.CurrReport.SHOWOUTPUT(1=0);
C.CurrReport.SHOWOUTPUT(1=1);
D. CurrReport. SHOWOUTPUT:=TRUE;
Answer: B
QUESTION 3
You have opened a File variable and are using it to export data from Microsoft?Navision? Suppose you execute the following line of C/AL code: XFile.WRITE ('Line No.');
where'Line No.' is a field of type Integer. What is the total number of bytes that will be added to the file due to the above line of code, if 'Line No.' had a value of 1000, and if the TEXTMODE for XFile was set to TRUE?
2 bytes
8 bytes
6 bytes
4 bytes
Answer: C
QUESTION 4
Which of the following is TRUE regarding Text Constants?
All error messages must be entered as text constants.
Text constants cannot be translated.
Error messages cannot be entered as text constants.
Text constants are recommended for error messages so that they can be translated.
Answer: D
QUESTION 5
In regard to the following block of code, which statement is true about performance when the code is executed?
WITH Customer DO BEGIN
//section A IF FIND('_')THEN REPET"Credit Limit(LCY)":=1000;MODIFY; UNTIL NEXT=0;
//section B IF FIND('_')THEN REPET"Credit Limit(LCY)":=1000;OK:= MODIFY; UNTIL NEXT=0;END;
There is no difference between sections A and B.
Section A will execute the fastest.
An error will occur in section A.C.
Section B will execute the fastest.
Answer: B
QUESTION 6
Which XMLPort TagName property causes flowfields to be calculated automatically?
CalcFields
DoCalcs
CalcFlow
FlowCalc
Answer: A
QUESTION 7
You are writing code in C/SIDE. Assuming that you are not in a transaction, which of the following would start a transaction?
BeginTrans
StartTrans
Insert
Commit
Answer: C
QUESTION 8
What can be determined from viewing the following C/AL command? Cust Process Code.Update(Customer);
A. A variable named CustProcessCode has been declared with a subtype of Codeunit, and
has a function
which updates the Customer table.
A variable has been declared with the name CustProcessCode, the variable refers to a complex data type, and the object referred to contains a function named Update.
The Customer table has a function named Update.
The Customer table will be updated if the command is executed.
Answer: B
QUESTION 9
An object has a version tag of 'NAVW13.00.03'. The '03' at the end stands for what?
World Wide Add-On 3
World Wide Hotfix 3
Customer Number 3
World Wide Service Pack 3
Answer: D
QUESTION 10
What is meant by optimistic concurrency?
It means we lock the record as soon as possible to ensure that we will be able to make our change.
It means we lock the table as soon as possible to ensure that we will be able to make our change.
It means that we don't lock the records at all hoping that no changes will be made at the same time
because of our efficient use of filters.
It means that we do not lock the record before we read it for an update.
Answer: D
QUESTION 11
Which one of the following Codeunits read the Journal Line table?
Gen. Jnl.-Post Line
Gen. Jnl.-B.Post
Gen. Jnl.-Post Batch
Gen. Jnl.-Check Line
Answer: C
QUESTION 12
Below is a list of report triggers. Of the triggers in the list, which one is actually executed sooner than its position in the list would indicate?
OnPreReport
OnInitReport
OnPreDataItem
OnPostReport
OnPostReport
OnPreReport
OnInitReport
OnPreDataItem
Answer: C
QUESTION 13
Which of the following triggers is executed FIRST when a report that includes a request form is run?
OnPreSection
OnOpenForm
OnPreReport
OnPreDataitem
Answer: B
QUESTION 14
Which of the following statements is true regarding C/AL programming?
Is based on the Microsoft C programming language.
Requires that each line be identifed by line number.
Can be found in any Microsoft Navision application object.
Can be found in object areas known as "events".
Answer: C
QUESTION 15
For a video rental project, the customer, Video Warehouse, will need to bring their data from their old legacy system into Microsoft Navision After looking at some of their data and talking with their accountant, the following requirements for data conversion have been identified:
Current customer balances will have to be brought over. Data in this area is complete and has been tested.
The Closed Invoices and Payments are not complete and testing has not been done on the data.
Open invoices will not be brought over. Analysis has begun on converting the data to bring over the current customer balances.
What standard code do you know will need to be included in your dataport?
Code to call the OnModify table trigger to be run.
Code to call the field OnValidate table triggers to be run.
Code to commit the process when completed.
Code to insert the records.
Answer: B
QUESTION 16
When running a report which contains only one dataitem, and when there are no records in that particular table, which of the following triggers will NOT be executed?
OnAfterGetRecord
OnPreReport
OnPreDataItem
OnPostDataItem
Answer: A
QUESTION 17
Which of the following commands is NOT valid?
A. CODEUNIT.RUNMODAL(CODEUNIT::"GLBudget-Open");
B.CODEUNIT.RUN(10140,DepositHeader);
C.CODEUNIT.RUN(10140);
D.CODEUNIT.RUN(CODEUNIT::"GLBudget-Open");
Answer: A
QUESTION 18
Which of the following is TRUE regarding exporting of MenuSuite objects?
MenuSuite objects can be exported in either object (fob) or text (txt) format.
MenuSuite objects can only be exported in text (txt) format.
MenuSuite objects cannot be exported.
MenuSuite objects can be exported in either menusuite (mns) or text (txt) format.
Answer: A
QUESTION 19
Which of the following controls cannot be contained in a subform?
Tablebox
Picturebox
Tab Control
Subform
Answer: D
QUESTION 20
You have just created additional functionality for a customer who is up and running on a previously implemented Microsoft Navision application. In order to get a copy of modified application objects, so you can install them on your customer's system, which procedure would you use?
Export Objects
Backup Entire Database
Backup Application Objects
'Save as...' the object(s) to a file
Answer: A
QUESTION 21
Which are the two primary debugging tools available within Microsoft?Navision?
Performance Monitor and the JIT Compiler.
Code Coverage and the Debugger.
Query Analyzer and the Profiler.
The JIT Compiler and the Debugger.
Answer: B
QUESTION 22
During a posting routine, you will often want a section of your code to execute only the first time a codeunit is run. In the following code samples, the ellipses (...) represents such a code section. Assuming that any variables you see are defined globally, which one of the following code samples will properly execute the code section (...) only once, the first time the codeunit is run?
IF FirstTimeThrough THEN BEGIN {code};
FirstTimeThrough:=FALS;
END;
IF NextEntryNo = 0 THEN NextEntryNO:=NextEntryNo+1; {code};
IF NextEntryNo < 0 THEN BEGIN {code};
Next Entry NO:=NextEntryNo+1; END;
IF NOT AlreadyRun THEN BEGIN {code};
Already Run:=TRUE;
END;
Answer: D
QUESTION 23
Form A calls a function in a Single Instance Codeunit and populates a global text variable with the value 'Red'. Then, Form B calls the same function and populates the same text variable with the value 'Blue'. Which of the following would be TRUE if Form A were to then call another function in the same Single Instance Codeunit, and retrieve the same global text variable?
The text variable would contain a null value.
A LOCKTABLE error would occur.
The value of the text variable would be 'Blue'.
The value of the text variable would be 'Red'.
Answer: C
QUESTION 24
Which of the following properties must be set for every field or object that a user will see in order to enable multilanguage functionality in Microsoft?Navision?
Caption
CaptionML
Multlanguage
Name
Answer: B
QUESTION 25
To install your modifications for a new client, what steps would you take?
Create a backup of the developement database, install Microsoft Navision on Customer's server.
Create a new database and restore the development backup.
From Windows Explorer, make a copy of the entire Development Directory, bring down the customer's
server and place the directory on the Customer's server.
In the development database copy all the modified objects to an object file (.fob), bring down the
customer's server, install Microsoft Navision on Customer's server and then create a database and
import the .fob.
In the development database copy all the modified objects to a text file, bring down the customer's
server, and install Microsoft Navision on Customer's server. Create a database and import the text
file.
Answer: A
QUESTION 26
You can compile an object without actually opening it by selecting it in the Object Designer and pressing what?
F9
This is not possible. You must compile it from the object.
F10
F11
Answer: D
QUESTION 27
Which of the following is NOT true regarding Complex Data Types?
Complex data types must be declared as either a global or local variable.
Complex data types have properties.
Addition or subtraction functions can be performed on complex data types.
Complex data types have methods.
Answer: C
QUESTION 28
What would be the purpose of the following lines of code?
IF JobLedgEntry."Entry No." = 0 THEN BEGIN
Job Ledg Entry. LOCK TABLE;
IF Job Ledg Entry. FIND('+') THEN
Next Entry No:=Job Ledg Entry. "Entry No.";
Next Entry No:=NextEntryNo+1;
END;
To lock the table, and also to determine the next entry number to use to write additional records to this
ledger table.
To copy the ledger table to the lock table.
To make sure there are no records in this table with a zero value for the Entry No. field.
To make sure that no records can be added to the ledger table.
Answer: A
QUESTION 29
A standard set of journal posting routine codeunits includes one codeunit to check lines. Based on standard practices for these posting routines, which of the following commands should not be included in the check line codeunit?
GET
TESTFIELD
MODIFY
ERROR
Answer: C
QUESTION 30
Which of the following would be the property used to link two tables between the main form and a subform?
Link
SubFormView
SubFormLink
TableRelation
Answer: C
QUESTION 31
What two properties would you change to ensure that a button control on a form remains in the same relative position if the form is resized?
HorzGlue and VertGlue
HorzDock and VertDock
XPos and Ypos
HorzAlign and VertAlign
Answer: A
QUESTION 32
Which of the following is a valid FILE function?
EXISTS
WRITELINE
BINARYMODE
TRUNCATE
Answer: A
QUESTION 33
For the data conversion portion of a project, during an import, you realize the data
from the first record is being copied to all of the following records. These fields should be blank for all of the other records. What is the likely solution to this problem?
Need to add a CurrDataport.SKIP to the OnBeforeImportRecord trigger
Need to add a CurrDataport.SKIP to the OnAfterImportRecord trigger
Need to add an INIT to the OnAfterImportRecord trigger
Need to add an INIT to the OnBeforeImportRecord trigger
Answer: D
QUESTION 34
Which of the following controls would you add to a form to display a subform?
Tablebox
Subform
Tab Control
Picturebox
Answer: B
QUESTION 35
In a certain report there are two dataitems: Customer and Cust. Ledger Entry. The Cust. Ledger Entry dataitem is below Customer and indented. If the CurrReport.SKIP function is executed in the OnAfterGetRecord trigger of the Cust. Ledger Entry dataitem, what will the report process next?
It will process the next record from the Cust. Ledger Entry table.
It will exit the current loop and process the next line of code.
It will process the next record from the Customer table.
The entire report will stop.
Answer: A
QUESTION 36
For a video rental project, after the user enters the appropriate fields in the Journal Form, you want to default the amount to what is found on a Video Card form. This is the standard amount charged for the rental of this Video. Which of the code sections below would best accomplish this?
IF Video.GET('Video No.') THEN Amount:=Video.Amount; VALIDATE(Amount);
IF 'Video No.' <> xRec.'Video No.' THEN BEGIN Video. GET ('Video No.');
Amount:=Video.Amount;
END;
IF 'Video No.' <> '' THEN BEGIN Video. SETRANGE ('No.';Video No.'); Video. FIEND('-'); Amount;=Video.Amount;
END;
IF 'Video No.' <> '' THEN BEGIN Video. GET('Video No.'); Amount:=Video. Amount; VALIDATE( Amount);
END;
Answer: D
QUESTION 37
You are creating a codeunit that will be run from a journal form. The codeunit must be called using the CODEUNIT.RUN command. In the OnRun trigger of the
codeunit you need access to the set of records that the user was viewing on the form. How can you pass in the set of records that user was viewing on the form into the CODEUNIT.RUN function?
Simply call the codeunit using the syntax CODEUNIT.RUN(CodeunitID). Rec will be accessible in the
codeunit just as it is on the form.
This is actually not possible. You will have to create a function in the codeunit that has the correct
parameters and call the function from the form with the following syntax:CodeunitVariable.Func(Rec).
First you change the locals of the OnRun Trigger to accept a record variable as a parameter setting the
subtype of the variable to the SourceTable of the form. Then you can run the codeunit with the following
syntax: CODEUNIT.RUN(CodeunitID,Rec).
First you must set the TableNo property of the codeunit to the SourceTable of the form. Then you can
run the codeunit with the following syntax: CODEUNIT.RUN(CodeunitID,Rec).
Answer: D
QUESTION 38
Entering field names into the TotalFields property of a dataitem is equivalent to using which of the following functions?
CurrReport.CREATETOTALS
CurrReport.SETTOTALFIELDS
CurrReport.TOTALSCAUSEDBY
CurrReport.SHOWOUTPUT
Answer: A
QUESTION 39
Select from the following SETFILTER lines, the one that is equivalent to: Customer. SETRANGE ('No.',LOWValue,HighValue);
Customer. SETRANGE ('No.',LOW Value..High Value);
Customer. SETRANGE ('No.',LOW Value,High Value);
Customer. SETRANGE ( 'No.','% 1|%2',LOW Value,High Value);
Customer. SETRANGE ('No.','% 1..%2',LOW Value,High Value);
Answer: D
QUESTION 40
When posting Journal lines to a Ledger, the locking of the Journal Line table is handled differently depending on whether you are running under the Microsoft?Navision?Server or the Microsoft?SQL Server?Option. What function can you call to discover which Server Option is currently being used?
LOCK TABLE
SERVER OPTION
TABLE LEVEL LOCKING
RECORD LEVEL LOCKING
Answer: D
QUESTION 41
When importing transaction data, you should always import into a
Journal
Report
Codeunit
Ledger
Answer: A
QUESTION 42
Which of the following commands would be best to use in C/AL to change a closing date to a normal date?
NORMALIZEDATE
COMPRESSDATE
NORMALDATE
D. WORKDATE
Answer: C
QUESTION 43
You are performing a data conversion from a legacy accounting system to Microsoft Navision using the Microsoft Navision Server. While analyzing the cash receipt data exported from the legacy system, you notice that sometimes the description for a transaction can be up to 80 characters. You know that the description field length in the Journal table is 50, so you talk to the customer about this. They think that they can get by with the first 50 characters, since the rest just describes what invoices were paid, and Microsoft Navision can handle that in other ways. You are writing a Dataport to import these transactions into the Gen. Journal Line table. How will you handle this oversized description?
You will import the data into a text variable created with a length of 80, and then you have to write code
to copy only the first 50 characters of this variable into the Description field.
You will simply change the Width property of the Description in the Dataport Field Designer to 50.
You will not have to do anything special. Dataports handle this situation automatically.
You cannot handle this situation in the Dataport. Therefore, you will just change the length of the
Description field of the Gen. Journal Line table to 80.
Answer: A
QUESTION 44
You are importing text objects into the Object Designer. Under what circumstances will the Import Worksheet be displayed?
The Import Worksheet will be displayed if an imported object is different from the existing object with
the same ID.
The Import Worksheet will be displayed if both the imported object and the existing object with the
same ID have been modified.
The Import Worksheet is never displayed when importing text objects.
The Import Worksheet is always displayed when importing text objects.
Answer: C
QUESTION 45
You client has requested a modification to add fields to the sales header table and wants these fields on several existing forms as well as existing reports and on one
new report. What steps will you need to take to make sure all modifications are working without errors?
Run and print all affected reports and forms with the customer's database.
Run and print all affected reports and forms with the customer's license.
Perform a thorough code review of all modified objects.
Print the affected reports and screen shots and send to the client.
Answer: B
QUESTION 46
Which of the following files is NOT contained in the three-letter language code sub-folder, found the Microsoft Navision client folder for each language in a multi-language installation?
*.ETX
*.CHM
*.FDB
*.STX
Answer: C
QUESTION 47
Which of the following would NOT be a valid reason to apply Grouping in a Microsoft Navision report?
To print a subtotal of the Balance field for each Salesperson when printing a list of Customers.
To cause the report to print a new page for each Salesperson when printing a list of Customers.
To cause the report to print a sub-heading each time the Salesperson code changes when printing a
list of Customers.
Two cause two or more Customer reports to print simultaneously for each Salesperson.
Answer: D
QUESTION 48
You are going to export data from Microsoft?Navision?into a file using a File variable named XFile. The full path name of the file is stored in a text variable named XFileName. The file will be formatted as a comma separated value text file, suitable for import into Excel as a csv file. The amount of data in each row (line) of the file could vary from 800 characters through 1600 characters, depending on the data in each record being exported. Which one of the following code samples will result in the File variable being opened, ready to export the above data and store it
in the proper format, whether or not the file already exists?
XFile.WRITEMODE(TRUE); XFile. TEXTMODE(TRUE); XFile. QUERY REPLACE (TRUE); XFile. CREATE(XFile Name);
XFile.WRITEMODE (TRUE); XFile. TEXTMODE (FALSE); XFile. QUERY REPLACE (TRUE); XFile. CREATE (XFile Name); C.XFile.WRITEMODE(TRUE); XFile. TEXTMODE (FALSE); XFile. QUERY REPLACE (TRUE); XFile. CREATE(XFile Name);
XFile.WRITEMODE (FALSE); XFile. TEXTMODE (TRUE); XFile. QUERY REPLACE (TRUE); XFile. CREATE (XFile Name);
Answer: B
QUESTION 49
You have added a command button to a form that calls a codeunit when it is pressed (using RunObject). The OnRun trigger of the codeunit modifies the customer record as follows:
IF Customer. GET(CustNo) THEN BEGIN
Customer. 'Chain Name':=New Chain Name; Customer. MODIFY;
END;//Other code here
When does the customer change get committed to the database?
The change gets committed automatically at the end of the execution of the codeunit.
The change gets committed automatically when the user leaves the record or the form.
The change will not get committed since you did not use the commit statement.
The change gets committed automatically with an implicit commit immediately following the modify
statement.
Answer: A
QUESTION 50
What would be the result if the following code was executed, where Customer refers to a record variable with the subtype of Customer? Customer.SETRANGE(Customer.Blocked,0)
FROM.RUN(FROM::"Customer List",Customer);
The Customer List form would be displayed, showing a recordset consisting of customers that are not blocked.
All customers would be unblocked and displayed on the Customer List form.
The Customer List form would be displayed, showing all customers.
Customer 0 would be displayed on the Customer List form and locked.
Answer: A
QUESTION 51
Which property on a Subform control would determine the form to be displayed?
FormID
SourceDataLink
SubFormLink
SubFormID
Answer: D
QUESTION 52
In a standard C/SIDE codeunit, you are changing a function that is passed a record variable (by reference) . This function is usually called from a form. You need to add code to the function to check the filters that the user may have applied. Is this possible. Why or why not?
Yes, the record variable represents a set of records from the associated table including the filters and
key.
No, the record variable only gives you access to one record.
No, although the record variable represents a set of records from the associated table, there is no way
to retrieve the filters that the user set on the form.
Yes, although the record variable only gives you access to one record, there is a system variable that
contains all filters that the user has applied.
Answer: A
QUESTION 53
The design specifications written by your senior Microsoft Navision Consultant in Development call for you to integrate Microsoft Word with Microsoft Navision (running on a Microsoft?Navision?Server). You see that your customer wants to create a mail merge once a week to send out a welcome letter to new customers. Your customer wants a solution in which they can easily add additional fields to the letter without having to require additional customizations by a Microsoft Navision consultant. What option would you choose to fit your customer's need?
Automation from Microsoft Navision to Microsoft Word
Mail Merge using C/ODBC
Automation from Microsoft Word to Microsoft Navision
Mail Merge using ODBC
Answer: B
QUESTION 54
Both GET and FIND are C/AL functions used to retrieve a record from a table in the database. What key(s) can be used in this process?
Both functions can only use the primary key.
Both functions can use whatever key the developer selects.
FIND can use any key the developer selects, while GET can only use the primary key.
GET can use any key the developer selects, while FIND can only use the primary key.
Answer: C
QUESTION 55
For a video rental project, the user should be able to decide whether to view the long description of the Video or not. You will add a CheckBox control to the Request Form and set its source to ShowDesc. Then, you will:
Add a body section for the description and in its OnPreSection trigger, add: CurrReport. SHOW OUTPUT (ShowDesc);
In the OnAfterGetRecord trigger, add:
CurrReport. SHOW OUTPUT (ShowDesc);
Add a body section for the description and in its OnPreSection trigger, add: If NOT ShowDesc THEN
CurrReport. SKIP;
In the OnAfterGetRecord trigger, add:
If NOT ShowDesc THEN
CurrReport. SKIP;
Answer: A
QUESTION 56
Which of the following would not be a valid target for the WRITELINE method of an OutStream type variable?
BLOB
Report
Automation
File
Answer: B
QUESTION 57
When upgrading MenuSuites, if a menu item has been added to a menu group that is no longer a part of the upgraded MenuSuite, what happens to the menu item?
The menu item is placed in a Lost Items group at the bottom of the menu tree.
The menu item is placed in a Deleted Items group.
The menu item is deleted.
The menu item is highlighted at the top of the menu tree.
Answer: A
QUESTION 58
For a video rental project, a posting routine must adjust the Customer balance when the videos are rented. Which of the following methods for changing the Customer balance follows Microsoft Navision standards?
Add code to the posting routine that will fill in a Sales Journal Line record variable with appropriate
values (e.g. Account No. = Customer No.). Then pass this record variable on the Sales Jnl.-Post Line
routine.
Add code to the posting routine that will fill in a Customer Ledger Entry record variable with appropriate
values (e.g. Customer No. = Customer No.). Then Insert that record into the Cust. Ledger Entry table.
Add code to the posting routine that will fill in a General Journal Line record variable with appropriate
values (e.g. Account No. = Customer No.). Then pass this record variable on the Gen. Jnl.-Post Line
routine.
Add code to the posting routine that will adjust the Balance field in the Customer table with the new
Balance (i.e. Balance = Balance + Amount). Then Modify that record in the Customer table.
Answer: C
QUESTION 59
Which of the following is NOT a limitation of C/FRONT?
Every C/FRONT connection is treated as a session.
Only active keys are available.
Triggers will not be fired to execute any field validation.
Changed data cannot be updated back to the Microsoft Navision database.
Answer: D
QUESTION 60
Which of the following lines of code would be a proper way to access a Codeunit from another object?
CODEUNIT.RUNMODAL(CODEUNIT::"My codeunit");
DO CODEUNIT::"My Codeunit";
RUN=CODEUNIT::" My codeunit";
CODEUNIT.RUN (CODEUNIT::"My codeunit");
Answer: D
QUESTION 61
You are writing code in C/SIDE. Assuming that you are in a transaction, which of the following would end a transaction?
EndTrans
PostTrans
Commit
StartTrans
Answer: C
QUESTION 62
Which one of the following Codeunits update the Ledger table(s)?
Gen. Jnl.-Post Line
Gen. Jnl.-B.Post
Gen. Jnl.-Check Line
Gen. Jnl.-Post Batch
Answer: A
QUESTION 63
In the data conversion portion of a project, for the closed invoices and payments, you recommend the data be converted using what method (remember that the data for this conversion has not been thoroughly tested)?
Write a dataport to import the data and insert it into the General Ledger Entry.
Write a dataport to import the data and insert it into the Gen. Journal Line.
Copy and paste the data from Excel into the General Ledger Entry.
Write a dataport to import the data into a Gen. Journal Line record and use it to call the Gen. Jnl.-Post
Line codeunit.
Answer: B
QUESTION 64
Which of the following is NOT true regarding the BLOB complex data type?
BLOBs can be used to store text memos.
BLOBs can be used to store bitmap pictures.
The maximum size BLOB that can be stored in Microsoft?Navision?is 2GB.
BLOBs can only be exported as bitmaps.
Answer: D
QUESTION 65
Which of the following is NOT a type of trigger in C/AL?
Documentation
Data
Function
Event
Answer: B
QUESTION 66
What unique internal documentation should be modified when adding a field to a table?
Project Log
Field Description
Code Comments
Documentation Trigger
Answer: B
QUESTION 67
Which of the following is a valid method of a variable created with a datatype of FILE?
BINARYMODE
TRUNCATE
CREATE
WRITELINE
Answer: C
QUESTION 68
Which of the following is true regarding NODBC and multi-language capability?
Only the Table Name is multi-language enabled.
Only the data is multi-language enabled.
NODBC is not multi-language enabled.
The Table Name, Field Name, and OptionString values are multi-language enabled.
Answer: D
QUESTION 69
Which property of a Label control must be set in order to display a value on the control?
Textbox
Caption
SourceExpr
LabelName
Answer: B
QUESTION 70
When the user presses a button, you are going to run a processing-only report, and then bring up a form which will display the results of the processing. Assuming there is a Report type variable called 'ProcRept' which can be called to run this report, which line of code should you use to run it?
ProcRept.RUN(Rec)
ProcRept.RUN
ProcRept.RUNMODAL
ProcRept.RUN(TempRec)
Answer: C
QUESTION 71
You have created a journal table. You need to write code that identifies whether a line in the journal is empty. You will use this functionality in many places. Using Microsoft Navision standards, how would you implement this code?
Since functions cannot be created in table objects, create a function in a codeunit that accepts a record
variable as a parameter and returns true if the line is empty and false otherwise.
Create a function in the journal form that returns true if the line is empty and false otherwise. It will be
used mostly by the form anyway.
Because the code can be placed in one Boolean expression, you should create a global
variable that
holds the value of the expression and use that variable in all of the objects.
D. Create a function in the journal table that returns true if the line is empty and false otherwise.
Answer: D
QUESTION 72
You are required to create a report that will loop through all the customers and modify a small percentage of the customer records and the sales order records for that customer. Your senior developer has mentioned that you should utilize the principals of optimistic concurrency. Your customer is a rather small client that will only be using the Microsoft Navision Server because they do not desire to use the Microsoft SQL option. What does your senior developer want you to do?
Filter as much as possible and do not lock the table since Microsoft Navision will automtically lock
the table as needed for you.
Lock only the table that you need to as early as possible and then only lock the other tables as you need
them.
Lock all the tables as early as possible to ensure that you will be able to make your modification.
Filter as much as possible and then wait until as late as possible to lock the table.
Answer: A
QUESTION 73
How can an element of an object be addressed in code?
By using a pointer reference.
Through the normal syntax of a structured language.
By using the dot operator.
Through an instance of the class definition.
Answer: C
QUESTION 74
For a video rental project, a posting routine must adjust the Customer balance when the videos are rented. Which of the following methods for changing the Customer balance follows Microsoft?Navision?: standards?
A. Add code to the posting routine that will adjust the Balance field in the Customer table with the new
Balance (i.e. Balance = Balance + Amount). Then Modify that record in the Customer table.
Add code to the posting routine that will fill in a Customer Ledger Entry record variable with appropriate
values (e.g. Customer No. = Customer No.). Then Insert that record into the Cust. Ledger Entry table.
Add code to the posting routine that will fill in a Sales Journal Line record variable with appropriate
values (e.g. Account No. = Customer No.). Then pass this record variable on the Sales Jnl.-Post Line
routine.
Add code to the posting routine that will fill in a General Journal Line record variable with appropriate
values (e.g. Account No. = Customer No.). Then pass this record variable on the Gen. Jnl.-Post Line
routine.
Answer: D
QUESTION 75
Which of the following is a true statement regarding subforms?
A subform must contain a tablebox control.
A subform must contain a worksheet control.
A subform must not be editable.
A subform usually contains a tablebox control.
Answer: D
QUESTION 76
You are performing a data conversion from a legacy accounting system to Microsoft Navision using the Microsoft Navision Server. You have determined that the General Ledger transaction data, as exported by the legacy system, is in excellent shape, and will not need to be reviewed by the customer before being added permanently to the G/L Entry table in Microsoft?Navision Now that test samples have been run and verified, the client wants the General Ledger transaction data brought in on Monday afternoon, so that they can start regular journal entries on Tuesday morning. What method will your Dataport use to store the transactions permanently in the G/L Entry table?
Import data into Gen. Journal Line records, but do not save them. Instead, call the posting routines with
these records as they are being imported.
Import data into Gen. Journal Line records, and save them. Once the import is complete, open up the
Journal form and post the entries to the G/L Entry table.
Import data into G/L Entry records, and save them.
Import data in G/L Account records, and save them.
Answer: A
QUESTION 77
Which function can be used to exit from the OnAfterGetRecord trigger of a report dataitem, still printing normally for that record and all other records for the dataitem?
EXIT
CurrReport.QUIT
CurrReport.BREAK
CurrReport.SKIP
Answer: A
QUESTION 78
You need to delete a large section of code for your modification. What is the Microsoft?Navision? standard for handling this?
The code should be deleted but a comment should be added explaining the deletion.
The code should be deleted to avoid confusion.
Mark out your code using:
{NSCJD01 Start Deletion NSCJD01 End Deletion}
D. Mark out your code using: //NSCJD01 Start //NSCJD01 End
Answer: C
QUESTION 79
You need to open a form to get user input. After this form runs you will use the information to generate records in several setup tables. What is the correct way to run the form from code?
Create a variable for the Form and then use the FormVariable.RUNMODAL method.
Create a variable for the Form and then use the FormVariable.RUN method.
Simply use the FORM.RUNMODAL(FormID) function.
Simply use the FORM.RUN(FormID) function.
Answer: A
QUESTION 80
When posting a Document, we copy the Document Header record to a Document History Header table. What method do we use to do this?
A record copy statement, for example: DocHistHead. COPY(DocHead);
A Field copy statement, for example: DocHistHead. COPYFIELDS (DocHead);
A field transfer statement, for example: DocHistHead.TRANSFERFIELDS(DocHead);
A series of Assignment Statements, for example: DocHistHead.'Customer No.' := DocHead.'Customer
NO.';
Answer: C
QUESTION 81
For a video rental project, you are creating a report to list the Videos that are currently available. The user wants to be able to sort on title or movie type (Adventure, Sci-Fi, Comedy, etc.). Which of the following property settings will allow the user to sort the report?
Populate the key in the DataItemTableView property
Leave the property ReqFilterFields blank
Populate the property ReqFilterFields
Leave the key blank in the DataItemTableView property
Answer: D
QUESTION 82
What is the advantage of using FlowFields to make calculations?
Performance will be better than reading each record in the recordset and manually performing the
calculation.
Calculations can be performed on multiple tables at the same time.
The next step in the process workflow will be initialized.
Calculations can only be performed using the FlowField command.
Answer: A
QUESTION 83
For a video rental project, the customer, Video Warehouse, has requested some changes to the base Microsoft Navision functionality. You are the developer responsible for preparing the objects to be taken to the client's site for deployment. Since many different developers worked on this project you know that there are several things that you need to do before exporting the objects. What is the first step in creating the installation object file?
Select and compile all the objects that you have created or modified
Select and compile all objects with your version tag
Select and compile all objects
D. Select and compile all the objects marked as modified
Answer: C
QUESTION 84
When should the modification flag (in the Object Designer) be turned off?
After all changes have been made and the version tag has been updated.
Before importing the same object for an improvement.
After all changes have been made and before updating the document tag.
After all changes have been made and the documentation trigger has been populated.
Answer: A
QUESTION 85
Assuming that the variable WordApp has been defined with a DataType of Automation, what would be the purpose of the following code?
IF ISCLEAR(WordApp) THEN CREATE(WordApp);
If there is no display for WordApp, then one will be created.
The Word application would be created.
WordApp would be cleared.
WordApp would be instantiated, if that had not been done already.
Answer: D
QUESTION 86
In regard to the following block of code, which statement is true about performance when the code is executed?
WITH Customer DO BEGIN // section A
IF FIND('-') THEN REPEAT DELETE;
UNTIL NEXT=0; // section B
IF FIND('-') THEN REPEAT OK:=DELETE; UNTIL NEXT=0; // section C DELETEALL; END;
A. Section C will execute the fastest.
Section B will execute the fastest.
Section A will execute the fastest.
All of the sections will execute at the same speed. D.
Answer: A
QUESTION 87
You are importing transaction data into a journal. Since the data you are importing does not contain all the information you require to post Microsoft?Navision?transactions, you must call certain validation routines before you save the record in the Journal. In what Dataport trigger will you add the calls to these validation routines?
OnPostDataItem
OnAfterImportRecord
OnBeforeImportRecord
OnPreDataItem
Answer: B
QUESTION 88
Taking into account the following dimension tables, which of the following would be true regarding the flow of data when a General Journal line was posted? (T) Default Dimension (352) (U) Ledger Entry Dimension (355) (V) Journal Line Dimension (356) (W) Document Dimension (357) (X) Production Document Dimension (358)
(Y) Posted Document Dimension (359) (Z) G/L Budget Dimension (361)
V would flow to U.
T would flow to U.
Z would flow to V.
T would flow to Z, which would then flow to U.
Answer: A
QUESTION 89
In a Function, when a parameter is specified as Var, it means:
The parameter is passed as a variant.
The parameter is passed by value rather than reference.
The parameter has variable lengths.
The parameter is passed by reference rather than value.
Answer: D
QUESTION 90
When posting Journal lines to a Ledger, the locking of the Journal Line table is
handled differently depending on whether you are running under the Microsoft Navision Server or the Microsoft SQL Server Option. What function can you call to discover which Server Option is currently being used?
RECORDLEVELLOCKING
SERVEROPTION
LOCKTABLE
TABLELEVELLOCKING
Answer: A
QUESTION 91
Which of the following event triggers would be found in a table object?
OnChange
OnInit
OnModify
OnAfterValidate
Answer: C
QUESTION 92
You have been informed that your customer is about to close a deal. Although your salesperson demonstrated an older version of Microsoft?Navision?to your client, the salesperson discussed some of the features that exist in the latest version plus the standard add-ons that your company uses. Based on the design review done by your senior developer you notice that you will not be using the standard add-on that you typically use since this feature now exists in Microsoft?Navision? What should you do to prepare for any modifications that you will need to make to the customer's database?
Load the latest customized version of the database and all the improvements from Microsoft?Navision? including your standard add-on package.
Load all improvements to the version of the database that your salesperson used for the demonstration.
Load the latest version of the untouched database from the latest product CD.
Load the latest version of the untouched database from the latest product CD, along with all
improvements released by Microsoft?Navision?
Answer: D
QUESTION 93
How many levels can dataitems be nested on a report?
A. Unlimited
100
1
10
Answer: D
QUESTION 94
As the programmer for the data conversion part of a project, you recommend that the current customer balances be converted using what method (remember that this area is complete and the data has been tested)?
Copy and paste the data from Microsoft?Excel into the General Ledger Entry.
Write a dataport to import the data and insert it into the General Ledger Entry.
Write a dataport to import the data and insert it into the Gen. Journal Line.
Write a dataport to import the data into a Gen. Journal Line record and use it to call the Gen. Jnl.-Post
Line code unit.
Answer: D
QUESTION 95
What is the maximum number of fields that can be contained in a primary key?
2
40
1
20
Answer: D
QUESTION 96
What is the maximum number of MenuSuite objects that can exist in a particular database?
15
150
Unlimited
1
Answer: A
QUESTION 97
The Due Date on the Video Card when due in less than three days should be in bold font. How can you make the Due Date bold?
A. OnNextRecord() Trigger
IF ('Due Date' <= WORKDATE + 3) THEN
FORMAT (currFrom.'Due Date',2);
B. OnFormat() Trigger
IF ('Due Date' <= WORKDATE + 3) THEN
CurrFrom.'Due Date', UPDATE FONT BOLD (TRUE);
C. OnNewRecord() Trigger
IF ('Due Date' <= WORKDATE + 3) THEN
CurrFrom. FORMAT ('Due Date',BOLD);
D. OnActivate() Trigger
IF ('Due Date' <= WORKDATE + 3) THEN
CurrFrom.FORMAT'Due Date',UPDATECOLOR;
Answer: B
QUESTION 98
Taking into account the following dimension tables, which of the following would be true regarding the flow of dimension data when a Sales Order line was entered?
Default Dimension (352)
Ledger Entry Dimension (355)
Journal Line Dimension (356)
Document Dimension (357)
Production Document Dimension (358)
Posted Document Dimension (359)
G/L Budget Dimension (361)
T would flow to Y.
X would flow to Y.
W would flow to Y.
T would flow to W.
Answer: D
QUESTION 99
A client wants you to make layout revisions to the Fixed Asset Details Report (No. 5604). What steps should you take to revise this report?
Save the original report to a new number and make the revisions to the new report
Create a new report from scratch
Save the original report to a new number and make the revisions to the original.
Make the revisions to the original report
Answer: A
QUESTION 100
When must the SourceExpr property be populated for a Label control?
When the Label control is bound to a Textbox control.
Only when the control is placed on an unbound form.
Never, there is no such property for Label controls.
When the ParentControl property of the Label control is set to the Source Table.
Answer: C
QUESTION 101
Assuming that a variable has been declared with the name Window and the DataType Dialog, what would be the result of executing the following lines of code? Window.OPEN('Posting: #1####################\ ' + 'Completed:#2###################');
Window.UPDATE(1,2);
A dialog box would be displayed, with a box labeled "Posting:" and another box labeled "Completed:".
The Posting box would contain the number 2.
A dialog box would be displayed, with a box labeled "#1" and another box labeled "#2".
DA dialog box would be displayed with a box labeled "#1Posting:" and another box labeled
"#2Completed:".
CA dialog box would be displayed with a box labeled "Posting:" and another box labeled "Completed:".
The Posting box would contain the number 1 and the Completed box would contain the number 2.
Answer: A
QUESTION 102
Which of the following properties must be set for every field or object that a user will see in order to enable multilanguage functionality in Microsoft Navision?
CaptionML
Name
Caption
Multlanguage
Answer: A
QUESTION 103
If a table has a SumIndexField called Amount, which of the following C/AL functions can be used to calculate the sum of these amounts?
CALCFIELDS (Amount);
SUM (Amount);
CALCFIELDS (Amount);
FLOW FILEDS (Amount);
Answer: C
QUESTION 104
What is the purpose of the following C/AL code, when using the Microsoft? database option?
Customer.SET PERMISSION FILTER; Customer.FIND('-');
To assign permissions to the first Customer record.
To apply security filters to the Customer record variable and find the first record of the resulting record
set.
To allow the first Customer record to be read.
To allow filters to be applied to the Customer record variable and find the first record in the table.
Answer: B
QUESTION 105
You have created a report that gives your customer year end totals as compared to previous years. This report uses specialized keys in many different tables, but is only run at year end. These keys are not used for anything else and slightly increases the amount of time used for insertion and modification into these tables. Can this time be saved How?
No, keys cannot be enabled or disabled from code. They must exist at all times if they will ever be used.
Yes, but you will need to create many key groups. Since keys from different tables cannot belong to the
same key group, you must create a key group for each table and put the key from that table into that
one group. Then the groups can be activated in code afterwards.
Yes, the implementer can travel to the site or use software to enable the keys in the tables when
needed. This is the best solution because the system can build the keys instantaneously and it allows
for billing the customer at least once a year.
Yes, you can create a key group called 'Year End Report' and put each key into that one group. Then
the group can be activated by the user before running the report and deactivated by the user
afterwards.
Answer: D
QUESTION 106
You create a card form for the master video table using the Form Wizard. What standard code is then added to this form?
OnAfterGetRecord() Trigger VALIDATE('NO.');
OnDeleteRecord() Trigger CurrForm.Save Record;
OnNewRecord() Trigger
IF Belowxrec THEN
Posting Date':=xRec.'Posting Date';
D. OnAfterGetRecord() Trigger
SETRANGE('No.,);
Answer: D
QUESTION 107
You need to write code in the OnModify trigger of the Video table. The code must check the Maximum Rental Time field to see if the user changed its value. How can you do this?
You would have to store the user's keystrokes on the form to see what they changed.
Use the GET function for the Video Bar Code table and compare the values there.
Compare the value of Rec.'Maximum Rental Time' to the value of xRec.'Maximum Rental Time'.
Use the UPDATEEDITABLE function for the Maximum Rental Time field.
Answer: C
QUESTION 108
You have created a report that contains one dataitem for the 'Cust. Ledger Entry' table. You have decided to group the ledger entries on the 'Customer No.' field and the 'Posting Date' field. You have created two group header sections (one for each field grouping). But, when running your report for the first time, you notice a problem. Even when printing the report filtered for one customer, the group header for the 'Customer No.' field prints every time the 'Posting Date' group header prints. It should only print once. What can you do to fix this problem?
Add the following code to the OnPreDataitem trigger of the dataitem: Curr Report.CREATE TOTLES ('Customer No.','Posting Date');
Sort the dataitem by setting the DataitemTableView property to a key that contains the two grouped
fields.
Add code to the OnPreSection trigger of each group header like the following (changing the fieldname
appropriatly): CurrReport.SHOWOUTPUT(CurrReport.TOTALSCAUSEDBY = FIELD NO ('Customer No'));
Set the KeepWithNext property of the group header sections to No.
Answer: C
QUESTION 109
During Development, two programmers will modify the item table. Which method is preferred for handling this development?
One programmer must make both modifications to the table.
The first programmer checks out the table, makes their modifications and then checks it back in. The
second programmer then checks out the table makes their modifications and checks it back in.
The table is checked out by both programmers and the first programmer finished hands off their
modifications to the second programmer to implement.
The table is checked out by both programmers but can only be checked in one at a time.
Answer: B
QUESTION 110
How would you create a development database for an existing customer that has the report, table and form designer tool?
Go to the client site and export all modified objects into an object file. At the partner site, import the
object file into the last revised database for the client.
Load a clean database, import any improvements.
Get the partner's last revised copy of the customer database, load any new improvements.
Go to the client site and get a backup of their database, load any improvements.
Answer: D
QUESTION 111
For a video rental project, you have made all the changes requested by the customer, Video Warehouse, and you are now heading to their location to load the new objects. What should be the first step you do to ensure that your client gets the needed changes?
Stop the Microsoft?Navision?service and make a copy of the database. Import the objects into the
copy of the database and restart the service.
Make a backup of the database and import the objects into the live database.
Stop the Microsoft?Navision?service and make a copy of the database. Import the objects into the
live database and then restart the Navision service.
Take last weeks copy of the database with the objects installed and copy it to the server directory. Stop
and restart the Microsoft?Navision?service pointing to the database that you brought with you.
Answer: C
QUESTION 112
Which of the following would NOT be true if the following line of code was placed in the OnAfterGetRecord trigger of a report dataitem, where the DataItemTable Peoperty is set to item? CALCIFIELDS(Picture);
The total number of pictures in the table would be returned.
The command would execute once for each record in the Item table.
The report would execute normally, even if the Picture field was empty.
A PictureBox control contained in a section of the report, with the SourceExpr property set to Picture,
would print the image contained in the Picture field.
Answer: A
QUESTION 113
You have added a custom lookup for the City field in the customer table. This will only allow salespeople to add customers in their designated areas. The code you added is in the OnLookup trigger of the City field in the table. You have also created a new form for the customer table that will allow managers to add customers from any city. On this form you want to use the default lookup code, so that all cities can be looked up. Which of the following methods will allow this?
Simply set the UseDefaultLookup property of the city control on the form to Yes.
You cannot accomplish this. To allow the selection of all cities you must remove the code in the
OnLookup trigger of the city field in the table. Even a comment in this trigger will keep you from being
able to lookup any cities.
The form will ignore the table code normally, so you do not have to do anything.
You will have to write code in the OnLookup trigger of the City control on the form that allows all cities to
be looked up.
Answer: D
QUESTION 114
Assume a variable with the name Customer is declared with a datatype of Record, and a subtype of Customer.
Assuming that there are six customer records, numbers 10000, 20000, 30000, 40000, 50000, and 60000, and further assuming that the commands below are executed, which customer record would be stored in the Customer variable? Customer.FIND('+');
Customer.FIND(3);
Customer.FIND('=');
60000
50000
40000
30000
Answer: A
QUESTION 115
Which of the following would be a more appropriate error message for these lines of code?
IF Name <> xRec.Name THEN ERROR ('Bats fly at dusk!');
Name cannot be changed!
Name cannot be deleted!
Bats cannot be named!
Name cannot belong to a record!
Answer: A
QUESTION 116
You have a form that has a flowfield on it. Your customer has complained that all sales people have the exact same value. When you examine the FlowField, you see that you have the following calculation formula. Method: Sum, Table: Sales Transaction, Field Amount. Why are you getting the same value for all sales people?
Your customer did not set the appropriate filter.
You did not set the Table index filter in the calculation formula.
You did not set the proper table in the Table field of the calculation formula.
You did not set the Table filter in the calculation formula.
Answer: D
QUESTION 117
You have been informed that your customer is about to close a deal. Although your salesperson demonstrated an older version of Microsoft Navision to your client, the salesperson discussed some of the features that exist in the latest version plus the standard add-ons that your company uses. Based on the design review done by your senior developer you notice that you will not be using the standard add- on that you typically use since this feature now exists in Microsoft Navision . What should you do to prepare for any modifications that you will need to make to the customer's database?
Load the latest version of the untouched database from the latest product CD.
Load all improvements to the version of the database that your salesperson used for the demonstration.
Load the latest version of the untouched database from the latest product CD, along with all
improvements released by Microsoft Navision
Load the latest customized version of the database and all the improvements from Microsoft Navision including your standard add-on package.
Answer: C
QUESTION 118
Which of the following best describes Tab Controls?
Tab controls must contain a tab named General. Any additional names are specified using the
NewTabNameproperty.
Tab controls can contain multiple tabs, the names of which are specified using the MultipleTab
property.
Tab controls can contain multiple tabs, the names of which are specified using the PageNames
property.
Tab controls can only contain one tab, named General.
Answer: C
QUESTION 119
Which of the following statements is NOT true regarding a variable of the datatype BigText?
A BigText variable can be bound to a Textbox control.
The ADDTEXT method is used to add a text string to a BigText variable.
The WRITE method is used to stream BigText data to a BLOB field.
The maximum length of a BigText variable is 2GB.
Answer: A
QUESTION 120
Which of the following is NOT a true statement regarding the Documentation trigger in C/AL?
The Documentation trigger is the first trigger within the object.
The Documentation trigger is never executed.
The Documentation trigger is executed after all event triggers.
Comments are entered in the Documentation trigger.
Answer: C
QUESTION 121
Which statement best describes how MenuSuite object changes are stored?
MenuSuite changes are not stored.
Each change is stored as a complete list of MenuSuite menus and items and replaces the previous
level.
Only one MenuSuite level is stored which consists of all menu items.
Changes are stored as the difference between the previous MenuSuite level and the current one.
Answer: D
QUESTION 122
Which of the following form controls would be best to show table records that are subsidiary to the table bound to the main form?
Tablebox
Textbox
Picturebox
Subform
Answer: D
QUESTION 123
For a video rental project, you have analyzed a customer's needs concerning new journal entry procedures. For every transaction, the user will enter the posting date, the entry type, the document number (used for tracking), the customer number (from the customer table), the video number (from a video table), the video bar code (from a video bar code table), a description, and an amount. This information will be entered into a Rental Journal Line table and posted by batch into a Rental Ledger Entry table. When opening the Rental Journal from the Video Rental Menu,
which rental journal batch will be opened automatically for the user?
The form will load the first batch that is listed in the journal batch table for the template that is loaded.
If this is not the first time into the journal, the form will load the last batch that the user had open from the
ZUP file. The first time the user opens the journal form, the Default batch is loaded.
The form will load the default batch that is associated with the template for the form.
Every time the journal is opened from the menu form, it loads the batch called Default. If a batch does
not exist with the name Default, one is created.
Answer: B
QUESTION 124
When using the number series for a new sales order, what information do you need to retreive from the No. Series Line table?
Series Code
Ending No.
Last No. Used
Line No.
Answer: C
QUESTION 125
Which of the following is NOT a characteristic of a journal table?
Journal line numbers are usually incremented automatically.
Journal records cannot be directly inserted into the table.
A journal is a temporary work area for a user.
Journal records can be inserted, modified, and deleted.
Answer: B
QUESTION 126
Which of the following would NOT be a valid reason to apply Grouping in a Microsoft?Navision?report?
To print a subtotal of the Balance field for each Salesperson when printing a list of Customers.
Two cause two or more Customer reports to print simultaneously for each Salesperson.
To cause the report to print a sub-heading each time the Salesperson code changes when printing a
list of Customers.
D. To cause the report to print a new page for each Salesperson when printing a list of Customers.
Answer: B
QUESTION 127
If a table is explicitly locked using the LOCKTABLE command, which of the following commands would cause the table to be unlocked?
UNLOCKTABLE
COMMIT
CLEAR
LOCKTABLE(FALSE)
Answer: B