Download presentation
Presentation is loading. Please wait.
Published byNickolas Ball Modified over 9 years ago
1
Microsoft ® Business Solutions–Navision ® 4.0 Development II – C/SIDE Solution Development Day 1
2
Introductions Instructor Name Company/Position Qualifications/Experience Hobbies
3
Things you need to know Class Information –Monday 8:30am, Tuesday – Friday 8:00am –5:00pm –Breaks –Lunch Facilities –Restrooms –Telephones
4
4 of 64 Introduction About the Course –Target Audience –Training Objectives –Course Structure –Course Content –Training Prerequisites –Certification –Further Information
5
5 of 64 Introduction Target Audience –Microsoft Certified Business Solutions Partner employees who develop custom Microsoft Navision applications
6
6 of 64 Introduction Training Objectives –Develop the basic skills needed to develop solutions in Microsoft Navision –Begin preparation for Development II Certification Exam
7
7 of 64 Introduction Course Structure –Foundation Tools Programming Language Development Environment –Business Case Diagnosis Analysis Design Development & Testing –Deployment
8
8 of 64 Introduction Course Content –Internal Documentation –Debugging Tools –Performance Issues –Complex Data variables and their member functions –Multilanguage functionality –Analysis of objects –Posting routines –Interfaces to Microsoft Navision –Some Microsoft SQL issues
9
9 of 64 Introduction Training Prerequisites –Microsoft Navision Development I
10
10 of 64 Introduction Certification –You must pass both the Microsoft Navision Development I exam and the Microsoft Navision Development II exam for certification –For Microsoft Navision Master Development Designation you need the previous two exams plus the following exams: Microsoft Navision Installation and Configuration MS 70-229 1 of Microsoft Navision Financial, Whse Mgmt, Manufacturing, or Trade
11
11 of 64 Introduction Further Information –C/SIDE online Help (C/SIDE Reference Guide) –Application Designer’s Guide
12
12 of 64 Development Concepts Rules –C/SIDE Reference Guide –Application Designer’s Guide Methodology –Phases Diagnostic Phase Analysis Phase Design Phase Development & Testing Phase Deployment Phase On-Going Support Phase
13
13 of 64 Business Case Diagnosis & Analysis Introduction Diagnosis Analysis – Functional Requirements –Seminars –Instructors –Participants –Registration –Invoicing –Reporting & Statistics –Interfaces Other Requirements Data Model Project Plan
14
14 of 64 Business Case Diagnosis & Analysis Introduction –Business Case or Diagnosis and Analysis Phase of project –Diagnosis provides the “Executive Summary” of the Business Case Client Profile High-Level Needs Description –Analysis describes specific requirements in more detail. Data Models Project Plan
15
15 of 64 Diagnosis – Executive Summary Cronus International Training Academy –Software Training Center –Customized Seminar Management module
16
16 of 64 Diagnosis – Executive Summary Customized Seminar Management module –Store and integrate data Seminar Instructor Customer Financial Information –Processes Track master data Register participants Create invoices Overview of statistics
17
17 of 64 Analysis – Functional Requirements Functional Requirements –Seminars –Instructors –Participants –Registration –Invoicing –Reporting & Statistics –Interfaces –Dimensions
18
18 of 64 Analysis – Functional Requirements Seminars –Fixed duration –Minimum & maximum participants –Fixed price –Related to Job in Microsoft Navision –Posted –Seminar room –In-house or outsourced –Assign in-house room –Customer statistics
19
19 of 64 Analysis – Functional Requirements Instructors –Employee –Setup as Resource in Microsoft Navision
20
20 of 64 Analysis – Functional Requirements Participants –Related to Customers –Must have customer association –Every Customer can have several participants
21
21 of 64 Analysis – Functional Requirements Registration –Form –Job No. –Additional expenses –Invoicing information –Comments
22
22 of 64 Analysis – Functional Requirements Invoicing –Invoice customers at completion of seminar
23
23 of 64 Analysis – Functional Requirements Reporting & Statistics –List of Registered Seminar Participants –Seminar Certificate –View statistical information
24
24 of 64 Analysis – Functional Requirements Interfaces –Send email notification –Export XML participant list
25
25 of 64 Analysis – Functional Requirements Dimensions –Standard dimensions functionality for master files, registrations, posting, and invoicing
26
26 of 64 Analysis – Functional Requirements Other Requirements –Easy to learn Consistent with Microsoft Navision standards –Efficient Both mouse and keyboard –Clarity Intuitive interfaces –Easy error correction Error messages with suggestions –Guidelines Application Designer’s Guide
27
27 of 64 Instructor Seminar Seminar Room Seminar Registration Seminar Charge Job Contact (Participant) Customer Blue objects must be created. Master Files Data Model
28
28 of 64 Data Model Sales Invoice Seminar Registration Seminar Ledger Entry Job Ledger Entry Seminar Invoicing Seminar Posting Job Posting Blue objects must be created. Posting
29
29 of 64 Business Case Diagnosis & Analysis Project Plan –Business case broken down into tasks –End result will be a deliverable –Tasks (By Chapter) 2.Managing Master Files 3.Managing Registrations 4.Managing Posting 5.Managing Integration 6.Managing Reporting 7.Managing Statistics 8.Managing Dimensions 9.Managing Interfaces
30
C/AL Triggers
31
31 of 64 C/AL Trigger Documentation trigger –Used for documentation purposes within object. Event trigger –Name always begins with ‘On’. –Code is executed when named event occurs. Function trigger –Function within an object. –Code is executed when function is called.
32
Table Triggers
33
33 of 64 Table Triggers Properties Triggers Properties Triggers Fields Global Var. Properties SumIndexFields Keys Table Description
34
34 of 64 Table Triggers Table triggers are processed after Form triggers. OnInsert() OnModify() OnDelete() OnRename() Record.MODIFY(True), Record.MODIFYALL(True) Record.DELETE(True), Record.DELETEALL(TRUE) Record.RENAME(True) Record.INSERT(True)
35
35 of 64 Table Triggers Fires after field input (Return). Fires before form control trigger. Can be run from C/AL with Record.VALIDATE(Field [NewValue]). OnValidate() OnLookup() Fired by F6 or LookUp button If C/AL code is inserted in this trigger, the standard lookup function is deactivated Fires only if no C/AL code is available in the corresponding form control trigger Field Triggers
36
Form Triggers
37
37 of 64 Form Triggers Properties Triggers Properties Triggers Controls Global Var. Form Description
38
38 of 64 Form Triggers OnInit OnOpenForm OnFindRecord Record not available, no access to controls Access to controls OnAfterGetRecord Record available, but not displayed in controls OnAfterGetCurrRec Fired by the current record OnFormat Fired by each visible control OnNextRecord OnAfterGetRecord OnFormat First Record Next Record Record pointer is set Record available but not displayed in controls Fired by each visible control Record pointer is moved to the next record Form Trigger – Open Form
39
39 of 64 Form Triggers OnBeforePutRecord OnQueryCloseForm OnCloseForm OnBeforePutRecord OnQueryCloseForm OnCloseForm OnModifyRecord Record not modified Record modified Table trigger Record is not saved yet Form trigger Exit with parameter ‘true’ OnModify Form Trigger – Close Form
40
40 of 64 Form Triggers OnInsertRecord OnModifyRecord OnDeleteRecord Form Trigger OnInsert OnModify OnDelete Table Trigger Form Trigger and Table Trigger Forms triggers are executed first!
41
41 of 64 Form Triggers OnBeforeInput OnActivate OnFormat Input OnInputChange yes Input next character yes OnAfterInput OnValidate(Table) OnValidate OnAfterValidate OnFormat OnDeactivate no Control Trigger – Text Box Input
42
42 of 64 Form Triggers Each trigger is processed! Table Field Trigger System Validation Only one trigger is processed! Table Field Lookup System Lookup Form Control Lookup Form Control Trigger OnValidate() OnLookup() Control / Field Trigger
43
Codeunit Triggers
44
44 of 64 Codeunit Triggers Properties Parameters Properties Return Value Triggers Global Var. Local Variables Codeunit Object Description
45
45 of 64 Codeunit Triggers OnRun() Codeunit.RUN
46
Record Commands
47
47 of 64 Record Commands Record.GET Record.SETCURRENTKEY Record.SETRANGE Record.SETFILTER Record.FIND Record.NEXT
48
48 of 64 Record Commands No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door RECORD.GET(‘70002’) Always primary key No filter Very fast Record.GET([Value],…)
49
49 of 64 Record Commands No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door Record pointerRecord.FIND('-') Record pointer Record.NEXT Record.FIND([Which]) / Record.NEXT([Steps]) Record.FIND('-') Record.NEXT
50
50 of 64 Record Commands No.Name 70001Base 70011Glass Door 70003Rear Panel 70000Side Panel 70002Top Panel 70010Wooden Door No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door Record.SETCURRENTKEY(Name ) Record.SETCURRENTKEY(Field1[,Field2],…)
51
51 of 64 Record Commands No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door Record.SETRANGE(Field[, FromValue][, ToValue]) Record.SETRANGE(“No.”,’70002’,’70010’)
52
52 of 64 Record Commands No.Name 70001Base 70011Glass Door 70003Rear Panel 70000Side Panel 70002Top Panel 70010Wooden Door No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door Record.SETFILTER(Field, String [, Value],…) Record.SETFILTER(Name,’@*PANEL*’)
53
53 of 64 Record Commands No.Name 70000Side Panel 70001Base 70002Top Panel 70003Rear Panel 70010Wooden Door 70011Glass Door Record pointerRecord.FIND('-') Record pointer Record.NEXT Record.NEXT = 0 Record pointer Using SETRANGE, FIND and Next Record.SETRANGE(“No.”,’70002’,’70010’) Record.FIND('-') Record.NEXT
54
54 of 64 Record Commands Additional Commands –INSERT –MODIFY –MODIFYALL –DELETE –DELETEALL –RENAME –INIT –CALCFIELDS –COPY –COUNT –VALIDATE
55
Multilanguage – Tables/Forms
56
56 of 64 Multilanguage – Tables/Forms Application Texts System Texts Online Help Company Notes Use Tools, Language from the menu bar to change the application language
57
57 of 64 Multilanguage – Tables/Forms Internal name of elements, like Objects, Fields, Controls, Functions and Variables Must be in English (United States) Name Caption Displays the caption of an element in the selected language Current value is copied from CaptionML CaptionML Contains the caption of an element for each language code Mandatory for all elements that might be visible to the user Think Caption – Not Name!
58
Data Caption Fields
59
59 of 64 Data Caption Fields –Primary key and description field (For example: ‘No.’ and ‘Name’) Tables Forms DataCaptionFields –Most used filter field (For example: ‘Customer No.’) DataCaptionExpr –Expression to show different captions in a form (For example: FORMAT("Contract Type") + ' ' + "Contract No.“) –Overwrites DataCaptionFields property Data Caption Properties
60
60 of 64 Data Caption Fields DataCaptionExpr from the form or the value of DataCaptionFields Value of DataCaptionFields from the parent form’s source table Tabular Form Card Form DataCaptionExpr from the form or the value of DataCaptionFields from the source table Primary key fields are used if no data caption is defined Data Caption Display
61
61 of 64 Managing Participants – Code Walkthrough Contact Card – Form 5050 Contact List – Form 5052 Contact Table – Table 5050
62
Managing Master Files Lab
63
63 of 64 Conclusion We have now created our master files and user interfaces Now that we can store our master data, we can develop the forms and code necessary to carry out transactions
64
64 of 64 Review C/AL Triggers Complex Datatypes MultiLanguage Master Files
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.