Programming Microsoft Dynamics NAV 2009

Programming Microsoft Dynamics NAV 2009
eBook: $41.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $111.98    Print cover: $69.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create, modify, and maintain smart NAV applications to meet your client's business needs
  • Thoroughly covers the new features of NAV 2009, including Service Pack 1
  • Focused on development for the three-tier environment and the Role Tailored Client
  • For experienced programmers with little or no previous knowledge of NAV development
  • Contains detailed documentation and explanations – with useful examples – not readily available elsewhere

Book Details

Language : English
Paperback : 620 pages [ 235mm x 191mm ]
Release Date : November 2009
ISBN : 1847196527
ISBN 13 : 9781847196521
Author(s) : David A. Studebaker
Topics and Technologies : All Books, Enterprise Products and Platforms, Microsoft Dynamics, Enterprise, Microsoft


Table of Contents

Chapter 1: A Short Tour through NAV 2009
Chapter 2: Tables
Chapter 3: Data Types and Fields for Data Storage and Processing
Chapter 4: Pages—Tools for Data Display
Chapter 5: Reports
Chapter 6: Introduction to C/SIDE and C/AL
Chapter 7: Intermediate C/AL
Chapter 8: Advanced NAV Development Tools
Chapter 9: Extend, Integrate, and Design—into the Future
  • Chapter 1: A Short Tour through NAV 2009
    • NAV 2009: An ERP system
      • Financial Management
      • Manufacturing
      • Supply Chain Management (SCM)
      • Business intelligence and reporting
      • Relationship Management (RM)
      • Human Resource management
      • Project management
    • Significant changes in NAV 2009
      • Two-tier versus three-tier
      • Role Tailored Client
      • SSRS-compatible report viewer
      • Web services
    • NAV 2009: A set of building blocks and development tools
      • NAV object types
    • The C/SIDE Integrated Development Environment
      • Object Designer tool icons
      • NAV object and system elements
      • NAV functional terminology
    • User interfaces
    • An introduction to development
      • Our scenario for development exercises
      • Getting started with application design
        • Application tables
        • Designing a simple table
        • Creating a simple table
        • Field numbering
        • Pages/Forms
        • Keyboard shortcuts
        • Run a table
        • Reports
        • Creating a List format report
    • Codeunits
    • MenuSuites
    • Dataports
    • XMLports
    • Integration tools
    • Backups and documentation
    • Summary
    • Review questions
  • Chapter 2: Tables
    • Overview of tables
      • Components of a table
      • Table naming
      • Table numbering
      • Table properties
      • Table triggers
      • Keys
      • SumIndexFields
      • Field Groups
    • Expanding our sample application
      • Creating and modifying tables
        • Assigning a TableRelation property
        • Creating Forms for testing
      • Adding Secondary keys
      • Adding some activity-tracking tables
      • New tables
      • Keys and SumIndexFields in our examples
    • Types of tables
      • Wholly modifiable tables
        • Master
        • Journal
        • Template
        • Ledger
        • Reference
        • Register
        • Posted Document
        • Setup
        • Temporary
      • Content-modifiable tables
        • System
      • Read-Only tables
        • Virtual
    • Summary
    • Review questions
  • Chapter 3: Data Types and Fields for Data Storage and Processing
    • Basic definitions
    • Fields
      • Field properties
      • Field numbering
        • Changing the data type of a field
      • Field triggers
      • Data structure examples
      • 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 type usage
    • FieldClass property options
    • Filtering
      • Defining filter syntax and values
        • Filtering on equality and inequality
        • Filtering by ranges
        • Filtering with Boolean operators
        • Filtering with wildcards
        • Filtering with combinations
        • Experimenting with filters
        • Accessing filter controls
    • Summary
    • Review questions
  • Chapter 4: Pages—Tools for Data Display
    • What is a page?
      • Controls
      • Bound and unbound
    • Pages—a stroll through the gallery
      • A sample RoleTailored Client page
    • Types of pages
      • List page
      • Card page
      • Document page
        • FastTab
      • List+ page
      • Journal/Worksheet page
      • Confirmation (Dialog) page
      • Request page
      • Navigate page
      • Departments page
      • Role Center page
      • Page parts
        • FactBoxes
      • Page names
      • Accessing the Page Designer
      • What makes up a page?
        • Page properties
    • Types of page controls
      • Inheritance
      • Page control details
        • Container controls
        • Group controls
        • Field controls
      • Using page controls in a Card page
      • Page Part controls
        • Creating a Card Part FactBox
        • Page Control triggers
    • Adding more List pages to our ICAN application
      • Creating a simple list page
      • Creating related List and Card pages
    • Learning more about pages
      • UX (User Experience) Guidelines
      • Creative plagiarism
    • Experimenting with page controls and control properties
      • Help searching
      • Experimentation
      • Testing
      • Design
    • Summary
    • Review questions
  • Chapter 5: Reports
    • What is a report?
    • Two NAV report designers
      • A hybrid report designer
    • NAV report—look and feel
    • NAV report types
      • Report types summarized
    • Report naming
    • Report components overview
      • The components of a report description
    • Report Data Flow
    • The elements of a report
      • Report properties
      • Report triggers
      • Data Items
      • Data item properties
      • Data item triggers
      • Data item Sections
      • Creating RTC reports via the Classic Report Wizard
        • Learn by experimentation
        • Runtime formatting
        • Inheritance
      • Other ways to create RTC reports
      • Modify an existing RTC report
        • The Visual Studio Report Designer layout screen
        • Report Items
        • Make the report changes
      • Request Page
    • Processing-Only reports
      • Creating a report from scratch
    • Creative report plagiarism
  • Summary
  • Review questions
  • Chapter 6: Introduction to C/SIDE and C/AL
    • Essential navigation
      • Object Designer
        • Starting a new object
        • Some designer navigation pointers
        • Exporting objects
        • Importing objects
        • Text objects
      • Object number licensing
      • Some useful practices
      • Changing data definitions
      • Saving and compiling
      • Some C/AL naming conventions
      • Variables
        • Global identifiers
        • Local identifiers
        • Special working storage variables
      • A definition of programming in C/SIDE
      • Functions
      • Basic C/AL syntax
        • Assignment and punctuation
        • Wildcards
        • Expressions
        • Operators
    • Some basic C/AL
      • MESSAGE, ERROR, CONFIRM, and STRMENU functions
        • MESSAGE function
        • ERROR function
        • CONFIRM function
        • STRMENU function
      • SETCURRENTKEY function
      • SETRANGE function
      • GET function
      • FIND
        • FIND ([Which]) options and the SQL Server alternates
      • BEGIN–END compound statement
      • IF–THEN–ELSE statement
      • Indenting code
    • Some simple coding modifications
      • Adding a validation to a table
      • Adding code to enhance a report
    • Summary
    • Review questions
  • Chapter 7: Intermediate C/AL
    • Some C/AL development tools
      • C/AL Symbol Menu
      • Internal documentation
    • Computation and Validation utility functions
      • VALIDATE
      • ROUND
      • TODAY, TIME, and CURRENTDATETIME functions
      • WORKDATE function
    • Data conversion functions
      • FORMAT function
      • EVALUATE function
    • DATE functions
      • DATE2DMY function
      • DATE2DWY function
      • DMY2DATE and DWY2DATE functions
      • CALCDATE function
    • FlowField-SumIndexField functions
      • CALCFIELDS function
      • CALCSUMS function
    • CALCFIELDS and CALCSUMS comparison
    • Flow control
      • REPEAT–UNTIL control structure
      • WHILE–DO control structure
      • CASE–ELSE statement
      • WITH–DO statement
      • QUIT, BREAK, EXIT, SKIP, and SHOWOUTPUT functions
        • QUIT function
        • BREAK function
        • EXIT function
        • SKIP function
        • SHOWOUTPUT 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
      • SETRANGE function
      • SETFILTER function
      • COPYFILTER and COPYFILTERS functions
      • GETFILTER and GETFILTERS functions
      • MARK function
      • CLEARMARKS function
      • MARKEDONLY function
      • RESET function
        • Filter Groups
    • InterObject communication
      • Communication via data
      • Communication through function parameters
      • Communication via object calls
    • Using the new knowledge
      • A development challenge for you
        • Creating more ICAN test data
        • Developing the Donor Recognition Status report
    • Summary
    • Review questions
  • Chapter 8: Advanced NAV Development Tools
    • NAV process flow
      • Data preparation
      • Transactions entry
      • Testing and Posting the Journal batch
      • Accessing the data
      • Ongoing maintenance
    • Role Center pages
      • Role Center structure
        • Role Center activities page
        • Cue Groups and Cues
        • Cue source table
        • Cue Group Actions
      • System Part
      • Page Part
      • Navigation Pane and Action Menus
      • Departments
        • MenuSuite levels
      • MenuSuite structure
        • MenuSuite development
        • MenuSuite transformation
        • Configuration and personalization
    • Creating new C/AL routines
    • Callable functions
      • Codeunit 358 – Date Filter-Calc
      • Codeunit 359 – Period Form Management
      • Codeunit 365 – Format Address
      • Codeunit 396 – NoSeriesManagement
      • Codeunit 397 – Mail
      • Codeunit 408 – Dimension Management
      • Codeunit 412 – Common Dialog Management
    • Sampling of function models to review
      • Codeunit 228 – Test Report-Print
      • Codeunit 229 – print documents
      • Other objects to review
      • Management codeunits
    • Documenting modifications
    • Multi-language system
    • Multi-currency system
    • Code analysis and debugging tools
      • Developer's Toolkit
        • Relations to Tables
        • Relations from Objects
        • Source Access
        • Where Used
        • Trying it out
      • Working in exported text code
      • Using Navigate
        • Testing with Navigate
      • The C/SIDE Debugger
      • The C/SIDE Code Coverage tool
      • Client Monitor
      • Debugging NAV in Visual Studio
      • Dialog function debugging techniques
        • Debugging with MESSAGE
        • Debugging with CONFIRM
        • Debugging with DIALOG
        • Debugging with text output
        • Debugging with ERROR
      • C/SIDE test driven development
    • Summary
    • Review questions
  • Chapter 9: Extend, Integrate, and Design—into the Future
    • Interfaces
    • XMLports
      • XMLport components
        • XMLport properties
        • XMLport triggers
        • XMLport data lines
        • XMLport line properties
        • Element or attribute
        • XMLport line triggers
        • XMLport Request Page
    • Advanced interface tools
      • Automation Controller
      • NAV Communication Component
      • Linked Server Data Sources
      • C/OCX
      • C/FRONT
      • NAV Application Server (NAS)
    • Client Add-ins
      • Client Add-in definition
      • Client Add-in construction
      • Client Add-in comments
    • Web services
      • Exposing a web service
      • Publishing a web service
      • Determining what was published
    • Customizing Help
    • NAV development projects
      • Knowledge is key
      • Different approaches for different scopes
      • Advantages of designing new functionality
      • Modifying an existing functional area
      • NAV development time planning
    • Data-focused design
      • Determining the data needs
      • 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
    • Design for updating
      • Customization project recommendations
        • One change at a time
        • Testing thoroughly
    • Plan for upgrading
      • Benefits of upgrading
      • Coding considerations
        • Careful naming
        • Good documentation
        • Low-impact coding
      • The upgrade process
        • Upgrade executables only
        • Full upgrade
    • Supporting material
      • Sure Step
      • RIM
      • Other reference material
    • Into the future...
    • Summary
    • Review questions
  • Answers
    • Chapter 1
    • Chapter 2
    • Chapter 3
    • Chapter 4
    • Chapter 5
    • Chapter 6
    • Chapter 7
    • Chapter 8
    • Chapter 9

David A. Studebaker

David Studebaker is Chief Technical Officer and a founder of Liberty Grove Software with his partner Karen Studebaker. Liberty Grove Software, a Microsoft Partner, provides development, consulting, training, and upgrade services internationally for Microsoft Dynamics NAV resellers and end user customers.

David has been recognized by Microsoft as a Certified Professional for NAV in all three areas: Development, Applications, and Installation & Configuration. He has been honored by Microsoft as a Lead Certified Microsoft Trainer for NAV.

David just celebrated his first half century of programming, having started programming in 1962. He has been developing in C/AL since 1996. David has been an active participant in each step of computing technology from the first solid state mainframes to today's technology, from binary assembly language coding to today's C/AL and C#.

David's special achievements include his role as co-developer of the first production multi-programmed SPOOLing system in 1967. David has worked on a diverse set of software applications including manufacturing, distribution, retail, engineering, general accounting, association management, professional services billing, distribution/inventory management, freight carriage, data collection and production management, among others. Prior to co-authoring this book, David was the author of Programming Microsoft Dynamics NAV (for the Classic Client) and Programming Microsoft Dynamics NAV 2009 (for the Role Tailored Client).

David has had a wide range of development, consulting, sales and management roles throughout his career. He has been partner or owner and manager of several software development businesses, while always maintaining a hands-on role as a business applications developer.

David has a BS in Mechanical Engineering from Purdue University and an MBA from the University of Chicago. He has been writing for publication since he was an undergraduate. David has been a member of the Association for Computing Machinery since 1963 and was a founding officer of two local chapters of the ACM.

Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


- 1 submitted: last submission 14 Feb 2014

Errata type: Graphics | Page number: 197 |

The screenshot image on page 197 has an incorrect label in one of the callouts. The callout says "Filter Pane", it should say "Cue".


Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Programming Microsoft Dynamics NAV 2009 +    BMC Control-M 7: A Journey from Traditional Batch Scheduling to Workload Automation =
50% Off
the second eBook
Price for both: £35.90

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Get started and master NAV business management solutions concepts
  • Create tables to define your NAV data structure, review the types of tables found in the out-of-the-box NAV application and understand how to use these in new enhancements
  • Explore all NAV data types and learn how they help develop financially oriented business applications
  • Define filters to apply defined limits on data in any business process
  • Meet several data presentation tools and create pages to input data and output information for users
  • Create reports – using the Report Designer tools – which are intuitive to work with and easier to distribute
  • Dive into C/SIDE and C/AL – essential navigation, object construction, numbering, basic syntax, naming rules, SIFT technology, string operators and functions, numeric operators and functions, logical and relational operators and functions, and the whole range of input/output functions
  • Debug your NAV applications using the Debuggers and associated tools and techniques
  • Integrate data and business logic from NAV 2009 with other applications

In Detail

Microsoft Dynamics NAV is a well established Enterprise Resource Planning (ERP) application, part of the Microsoft Dynamics family. Dynamics NAV is installed worldwide, with well over one million users. Version 2009 contains many major new features and structures, requiring even experienced Dynamics NAV developers to refresh their NAV development knowledge.

Renowned for its challenging learning curve, Dynamics NAV is a complex piece of software with a unique design structure. For developers learning to modify or enhance Dynamics NAV for vital business purposes, the task can sometimes be intimidating.

This book is an in-depth step-by-step guide to programming NAV, designed to ease you through the complexities of NAV application development. You will learn the skills and develop the confidence to tackle your own critical NAV applications. This book will act as your experienced NAV programming mentor, helping you to become productive as a NAV developer much more quickly.

NAV development is quite complex, with a steep learning curve. This book makes it easy for you. From basic NAV terminology and concept definitions, through the essential building blocks of NAV data structure and objects, you will gain an understanding of the fundamental underlying concepts of NAV. You will learn practical details about NAV object construction and the tools available, including table, page, and report design. You will learn how to use NAV's tools to effectively navigate through the various features of objects, including properties, triggers, and C/AL code, and receive practical guidance on ways to develop and test in the unique NAV C/SIDE development environment.

Extensive guidance on software design for NAV is provided along with tips for efficient design of new NAV applications or enhancing existing applications. With its comprehensive collection of NAV information and distillation of years of NAV development experience, this book is not only designed to help you learn, but to act as a reference as well.

Explore NAV 2009 as an innovative business management solution that helps people work faster and smarter


This book takes you through the important topics of Microsoft Dynamics NAV with clear explanations and practical example code. There is also a substantial amount of reference material, which has been brought together in one place for you. This book takes care of what the working developer needs to know in order to become productive as quickly as possible.

Who this book is for

This book is for NAV consultants and developers, and developers or designers of business applications. Managers of NAV development or consultants will also find the book a helpful introduction to understanding NAV development capabilities.

Any previous experience with NAV is not expected. Some basic knowledge of object-oriented programming will be quite helpful.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software