Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Christopher Studebaker, David Studebaker
Programming Microsoft Dynamics™ NAV 2015
Programming Microsoft Dynamics™ NAV 2015
Table of Contents
Programming Microsoft Dynamics™ NAV 2015
Credits
Foreword
About the Authors
Acknowledgments
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Instant updates on new Packt books
Preface
A brief history of NAV
The beginning
Single user PC Plus
The multi-user Navigator
Navision Financials for Windows
Growth and mergers
Continuous enhancement
C/AL's Roots
What you should know
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. An Introduction to NAV 2015
NAV 2015 – an ERP system
Financial Management
Manufacturing
Supply Chain Management
Business Intelligence and reporting
Relationship Management
Human Resource management
Project Management
Significant changes in NAV 2015
Application changes
Client enhancements
Development tools
Other areas
A developer's overview of NAV 2015
NAV object types
The C/SIDE integrated development environment
Object Designer tool icons
The C/AL programming language
NAV object and system elements
NAV functional terminology
User interface
Hands-on development in NAV 2015
The NAV 2015 development exercise scenario
Getting started with application design
Application tables
Designing a simple table
Creating a simple table
Pages
Standard elements of pages
List pages
Card pages
Document pages
Journal/Worksheet pages
Creating a List page
Creating a Card page
Creating some sample data
Creating a List Report
Other NAV object types
Codeunits
Queries
MenuSuites
XMLports
Development backups and documentation
Summary
Review questions
2. Tables
An overview of tables
Components of a table
Naming a table
Table numbering
Table properties
Table triggers
Keys
SumIndexFields
Field Groups
Enhancing our sample application
Creating and modifying tables
Assigning a Table Relation property
Assigning an InitValue property
Adding a few activity-tracking tables
New tables for our WDTU project
New list pages for our WDTU project
Keys, SumIndexFields, and table relations in our examples
Secondary keys and SumIndexFields
Table relations
Modifying a standard table
Version list documentation
Types of tables
Fully Modifiable tables
Master
Journal
Template
Ledger
Reference tables
Register
Posted Document
Setup
Temporary
Content modifiable tables
System
Read-only tables
Virtual
Summary
Review questions
3. Data Types and Fields
Basic definitions
Fields
Field properties
Field triggers
Data structure examples
Field numbering
Field and Variable naming
Data types
Fundamental data types
Numeric data
String data
Date/Time data
Complex data types
Data structure
Objects
Automation
Input/Output
DateFormula
References and other data types
Data type usage
FieldClass property options
FieldClass – Normal
FieldClass – FlowField
FieldClass – FlowFilter
FlowFields and a FlowFilter for our application
Filtering
Experimenting with filters
Accessing filter controls
Development Environment filter access
Role Tailored Client filter access
Summary
Review questions
4. Pages – The Interactive Interface
Page design and structure overview
Page design guidelines
The NAV 2015 page structure
Types of pages
Role Center page
List page
Card page
Document page
FastTab
ListPlus page
Worksheet (Journal) page
ConfirmationDialog page
StandardDialog page
NavigatePage
Navigate page 344
Special pages
Request page
Departments page
Page parts
FactBox Area
CardParts and ListParts
Charts
Chart part
Chart Control Add-in
Page names
Page Designer
New Page Wizard
Page components
Page Triggers
Page properties
Page Preview tool
Inheritance
WDTU Page Enhancement – part 1
Page controls
Control types
Container controls
Group controls
Field controls
Page Part controls
Page control triggers
Bound and Unbound Pages
WDTU Page Enhancement – part 2
Page Actions
Page Action Types and Subtypes
Action Groups
Action properties
Navigation Pane Button actions
Actions Summary
Learning more
UX (User Experience) Guidelines
Creative plagiarism and patterns
Experimenting on our own
Experimentation
Summary
Review questions
5. Queries and Reports
Queries
Building a simple Query object
Query and Query component properties
Query properties
The DataItem properties
Column properties
Reports
What is a report?
Four NAV report designers
NAV report types
Report types summarized
Report naming
Report components – overview
Report structure
Report data overview
Report Layout overview
Report data flow
Report components – detail
C/SIDE Report properties
SQL Server Report Builder – Report properties
Report triggers
Request Page Properties
Request page triggers
DataItem properties
DataItem triggers
Creating a Report in NAV 2015
Learn by experimentation
Report building – phase 1
Report building – phase 2
Report building – phase 3
Modifying an existing report with Report Designer or Word
Runtime rendering
Inheritance
Interactive report capabilities
Interactive sorting
Interactive visible/not visible
Request page
Add a Request Page option
Processing-Only reports
Creative report plagiarism and patterns
Summary
Review questions
6. Introduction to C/SIDE and C/AL
Understanding C/SIDE
Object Designer
Starting a new object
Accessing the Table Designer
Accessing the Page Designer
Accessing the Report Dataset Designer
Accessing the Codeunit Designer
Query Designer
XMLport Designer
MenuSuite Designer
Object Designer Navigation
Exporting objects
Importing objects
Import Table object changes
Text objects
Some useful practices
Changing data definitions
Saving and compiling
Some C/AL naming conventions
Variables
C/AL Globals
C/AL Locals
Function local identifiers
Other local identifiers
Special working storage variables
Temporary tables
Arrays
Initialization
System-defined variables
C/SIDE programming
Non-modifiable functions
Modifiable functions
Custom functions
Create a function
C/AL syntax
Assignment and punctuation
Expressions
Operators
Arithmetic operators and functions
Boolean operators
Relational operators and functions
Precedence of operators
Frequently used C/AL functions
The MESSAGE function
The ERROR function
The CONFIRM function
The STRMENU function
Record functions
The SETCURRENTKEY function
The SETRANGE function
The SETFILTER function
GET function
FIND functions
FIND ([Which]) options and the SQL Server alternates
Conditional statements
The BEGIN–END compound statement
The IF–THEN–ELSE statement
Indenting code
Some simple coding modifications
Adding field validation to a table
Adding code to a report
Lay out the new Report Heading
Save and test
Lookup Related table data
Layout the new report body
Save and test
Handling User-entered report options
Defining the Request Page
Finishing the processing code
Test the completed report
Output to Excel
Summary
Review questions
7. Intermediate C/AL
C/AL Symbol Menu
Internal documentation
Validation functions
TESTFIELD
FIELDERROR
INIT
VALIDATE
Date and Time functions
TODAY, TIME, and CURRENTDATETIME functions
WORKDATE function
DATE2DMY function
DATE2DWY function
DMY2DATE and DWY2DATE functions
CALCDATE function
Data conversion and formatting functions
ROUND
FORMAT function
EVALUATE function
FlowField and SumIndexField functions
CALCFIELDS function
SETAUTOCALCFIELDS function
CALCSUMS function
CALCFIELDS and CALCSUMS comparison
Flow control
REPEAT-UNTIL
WHILE-DO
FOR-TO or FOR-DOWNTO
CASE-ELSE statement
WITH-DO statement
QUIT, BREAK, EXIT, and SKIP functions
QUIT function
BREAK function
EXIT function
SKIP function
Input and Output functions
NEXT function with FIND or FINDSET
INSERT function
MODIFY function
Rec and xRec
DELETE function
MODIFYALL function
DELETEALL function
Filtering
SETFILTER function
COPYFILTER and COPYFILTERS functions
GETFILTER and GETFILTERS functions
FILTERGROUP function
MARK function
CLEARMARKS function
MARKEDONLY function
RESET function
InterObject communication
Communication via data
Communication through function parameters
Communication via object calls
Enhancing the WDTU application
Modifying Table Fields
Add Validation logic
Playlist Header Validations
Creating the Playlist Subform page
Playlist Line Validations
Creating a function for our Factbox
Creating a Factbox page
Summary
Review questions
8. Advanced NAV Development Tools
NAV process flow
Initial setup and data preparation
Transaction entry
Testing and posting the Journal batch
Utilizing and maintaining the data
Data maintenance
Role Center pages
The Role Center structure
The Role Center activities page
Cue Groups and Cues
Cue source table
Cue Group Actions
System Part
Page Parts
Page Parts not visible
Page Part Charts
Page Parts for user data
The Navigation Pane and Action menus
Action Designer
Create a WDTU Role Center Ribbon
Promoted Actions Categories
Action Groups
Configuration/Personalization
The Navigation Pane
The Navigation Home Button
The Navigation Departments Button
Other Navigation Buttons
XMLports
XMLport components
XMLport properties
XMLport triggers
XMLport data lines
XMLport line properties
SourceType as Text
SourceType as Table
SourceType as Field
The Element or Attribute
NodeType of Element
NodeType of Attribute
XMLport line triggers
DataType as Text
DataType as Table
DataType as Field
XMLport Request Page
Web services
Exposing a web service
Publishing a web service
Enabling web services
Determining what was published
XMLport – a web services integration example for WDTU
Summary
Review questions
9. Successful Conclusions
Creating new C/AL routines
Callable functions
Codeunit 358 – Date FilterCalc
Codeunit 359 – Period Form Management
Codeunit 365 – Format Address
Codeunit 396 – NoSeriesManagement
Function models to review and use
Management codeunits
Multi-language system
Multi-currency system
Navigate
Modifying for Navigate
Debugging in NAV 2015
Text Exports of Objects
Dialog function debugging techniques
Debugging with MESSAGE and CONFIRM
Debugging with DIALOG
Debugging with text output
Debugging with ERROR
The NAV 2015 Debugger
Activating the Debugger
Attaching the Debugger to a Session
Creating Break Events
The Debugger window
Changing code while debugging
C/SIDE Test-driven development
Other Interfaces
Automation Controller
Linked Data Sources
NAV Application Server (NAS)
Client Add-ins
Client Add-in construction
WDTU Client Add-in
Client Add-in comments
Customizing Help
NAV development projects – general guidance
Knowledge is the key
Data-focused design
Defining the needed data views
Designing the data tables
Designing the user data access interface
Designing the data validation
Data design review and revision
Designing the posting processes
Designing the supporting processes
Double-check everything
Design for efficiency
Disk I/O
Locking
Updating and upgrading
Design for updating
Customization project recommendations
One change at a time
Testing
Database testing approaches
Testing in production
Using a testing database
Testing techniques
Deliverables
Finishing the project
Plan for upgrading
Benefits of upgrading
Coding considerations
Good documentation
Low-impact coding
Supporting material
Summary
Review questions
A. Review Answers
Chapter 1, An Introduction to NAV 2015
Chapter 2, Tables
Chapter 3, Data Types and Fields
Chapter 4, Pages – The Interactive Interface
Chapter 5, Queries and Reports
Chapter 6, Introduction to C/SIDE and C/AL
Chapter 7, Intermediate C/AL
Chapter 8, Advanced NAV Development Tools
Chapter 9, Successful Conclusions
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Table of Contents
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset