Any Exam Qs to Share?

Hi Guys, I intend to take the exams for Development I & II Navision 4.0. Does anyone know whether any prepsration resources I can get aside of the official study guides, and most importantly is there any good simulation questions? Thank you guys.

Somq question from the Development exam. ************************************************************************************** ITEMID=W1-Q001988 TEMPLATE=Single4 TEXT=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? A#Set the KeepWithNext property of the group header sections to No. B#Add code to the OnPreSection trigger of each group header like the following (changing the fieldname appropriatly): CurrReport.SHOWOUTPUT(CurrReport.TOTALSCAUSEDBY = FIELDNO(“Customer No.”)); C#Sort the dataitem by setting the DataitemTableView property to a key that contains the two grouped fields. D#Add the following code to the OnPreDataitem trigger of the dataitem: CurrReport.CREATETOTALS(“Customer No.”, “Posting Date”); ************************************************************************************** ITEMID=W1-Q001992 TEMPLATE=Single4 TEXT=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? A#Simply call the codeunit using the syntax CODEUNIT.RUN(CodeunitID). Rec will be accessible in the codeunit just as it is on the form. B#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). C#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). D#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). ************************************************************************************** ITEMID=W1-Q001981 TEMPLATE=Single5 TEXT=You are writing code in the OnValidate trigger of the Search Name field in the Customer table. This field is filled in automatically whenever the Name field changes, but the user can also change the field manually. Your code should only run if the user has changed the field manually. How can you determine whether this is the case from within the trigger code? A#Compare the system variable currFieldNo to FIELDNO(“Search Name”). If they are NOT equal then the User did NOT change the field. B#Compare Rec.“Search Name” to xRec.“Search Name”. If they are the same the User did NOT change the field. C#You cannot determine this from within this trigger. D#Compare the system variable currFieldNo to FIELDNO(“Search Name”). If they are EQUAL then the User DID change the field. E#Compare Rec.“Search Name” to xRec.“Search Name”. If they are the same the User DID change the field. ************************************************************************************** CASE102 (Q00967) Jnlrec.LOCKTABLE; // Lock the journal table IF Jnlrec.FIND(’+’) THEN // Go to the last record LineNo := Jnlrec.“Line No.”; // Get the last line no EOF := GetLineFromFile(Jnlrec); WHILE NOT EOF DO BEGIN LineNo := LineNo + 10000; // Add 10000 IF CheckJnlrec(Jnlrec) = FALSE THEN ERROR(‘Something in the journal line is incorrect’) ELSE COMMIT; InsertJnlrec(LineNo, JnlRec); EOF := GetLineFromFile(Jnlrec); END; ITEMID=W1-Q001967 TEMPLATE=Multiple8 TEXT=You are performing a code review of the above C/AL code. Which of the following are problems in the above code? A#LOCKTABLE calls should not be used in this situation because it will lock out other users. B#If the FIND function fails, the process will stop with an error. C#Using functions to perform small pieces of code is discouraged in C/SIDE. The code for the functions should be put inline. This will speed up processing. D#EOF cannot be used as a boolean variable. It is a system variable. E#By using the COMMIT function inside the loop, you are unable to rollback any lines that were inserted before an error was reached. F#The ERROR function is not useful in defining the actual problem. It should probably be moved to the CheckJnlrec function where more detailed information can be given. G#The line that contains the ERROR statement needs a semi-colon (:wink: at the end. H#By using the COMMIT function inside the loop, you are unlocking the table before processing is done. (Select three answers.) ************************************************************************************** ITEMID=W1-Q001969 TEMPLATE=Single4 TEXT=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? A#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 before running the report and deactivated in code afterwards. B#No, keys cannot be enabled or disabled from code. They must exist at all times if they will ever be used. C#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. D#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. ********************************** which of th following properties u can change during runtime ? a) visible -CORRECT b) vertglue c) sourceExpr +++++++++++++++++++++++++++++++ u are make a data convertion from legacy system to new one using dataport but something accur there is description filed contain 80 char and the new description filed can take 50 char only. u told ur customer about this he told u its fine with first 50 char know what is true way to do this data convertion ? 1) Change the new description filed properties to take 80 char 2) write code in the table triger to reed the first 50 char 2) dataport will handle this situations u dont need to do any thing 4)u need to write code in data port to handle this situations - CORRECT 5) put the data in variable and then write code to read the first 50 char

I have the same intentions… Thanks for sharing! [:D]

Thanks for sharing fmanzella… appreciate that. I wonder if there’s some kind of exam simulation provider or downloadable exam prep questions.

I don’t remember much from the Dev II exam, but there were a couple of questions about the SKIP, BREAK and QUIT Functions.