Programming Microsoft Dynamics® NAV 2013

Programming Microsoft Dynamics® NAV 2013
eBook: $38.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $103.98    Print cover: $64.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • A comprehensive reference for development in Microsoft Dynamics NAV 2013, with C/SIDE and C/AL
  • Brimming with detailed documentation that is additionally supplemented by fantastic examples
  • The perfect companion for experienced programmers, managers and consultants

Book Details

Language : English
Paperback : 630 pages [ 235mm x 191mm ]
Release Date : February 2013
ISBN : 1849686483
ISBN 13 : 9781849686488
Author(s) : David A. Studebaker, Christopher D. Studebaker
Topics and Technologies : All Books, Enterprise Products and Platforms, Microsoft Dynamics, Enterprise

Table of Contents

Chapter 1: An Introduction to NAV 2013
Chapter 2: Tables
Chapter 3: Data Types and Fields
Chapter 4: Pages – the User's 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: Develop, Debug, Deliver
Appendix A: Answers to Review Questions
  • Chapter 1: An Introduction to NAV 2013
    • NAV 2013 – an ERP system
      • Financial Management
      • Manufacturing
      • Supply Chain Management (SCM)
      • Business Intelligence and reporting (BI)
      • Relationship Management (RM)
      • Human Resource management (HR)
      • Project Management
    • Significant changes for NAV 2013
      • Application changes
      • Client enhancements
      • Development tools
      • Other areas
    • A developer's overview of NAV 2013
      • NAV object types
      • C/SIDE
      • Object Designer tool icons
      • C/AL programming language
      • NAV object and system elements
      • NAV functional terminology
      • User Interface
    • Developing in NAV 2013 – hands-on
      • Our scenario for development exercises
      • Getting started with the application design
      • Application tables
        • Designing a simple table
        • Creating a simple table
      • 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
        • Much more to come
      • Other NAV object types
        • Codeunits
        • Queries
        • MenuSuites
        • XMLports
      • Backups and documentation
    • Summary
    • Review questions
    • Chapter 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
      • Chapter 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
        • Chapter 4: Pages – the User's Interactive Interface
          • Page Design and Structure Overview
            • Page Design Guidelines
            • NAV 2013 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
            • Special pages
              • Request page
              • Departments page
            • Page parts
              • FactBox Area
              • Charts
            • 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
          • Experimenting on your own
          • Experimentation
        • Summary
        • Review questions
          • Chapter 5: Queries and Reports
            • Queries
              • Building a simple Query
              • Query and Query component properties
                • Query properties
                • The DataItem properties
                • Column properties
                • Filter properties
            • Reports
              • What is a report?
              • Two 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
              • Visual Studio Report properties
              • Report triggers
              • Request Page properties
              • Request Page triggers
              • Data item properties
              • Data Item triggers
            • Creating a Report in NAV 2013
              • Learn by experimentation
              • Report building – phase 1
              • Report building – phase 2
              • Report building – phase 3
                • Modifying an existing report
                • 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
            • Summary
            • Review questions
            • Chapter 6: Introduction to C/SIDE and C/AL
              • Understanding C/SIDE
                • Object Designer
                  • Starting a new object
                  • Query Designer
                  • XMLport Designer
                  • MenuSuite Designer
                  • Object Designer navigation
                • Text objects
                  • Some useful practices
                  • Some C/AL naming conventions
                  • Variables
                • C/SIDE programming
                  • Modifiable functions
                  • Custom functions
              • C/AL syntax
                • Assignment and punctuation
                • Expressions
                  • Operators
                • Frequently used C/AL functions
                  • The MESSAGE function
                  • The ERROR function
                  • The CONFIRM function
                  • The STRMENU function
                  • Record functions
                  • The SETFILTER function
                  • The GET function
                  • FIND functions
                • 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
                • Layout the new report heading
                • Save and test
                • Lookup Related table data
                • Layout the new report body
                  • Save and test
                  • Handling user-entered selection criteria
                  • Defining the Request Page
              • Finishing the processing code
                • Test the completed report
                • Output to Excel
              • Summary
              • Review questions
              • Chapter 7: Intermediate C/AL
                • Some C/AL development tools
                  • 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 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
                  • Adding validation logic
                  • Creating the Playlist Subform page
                  • Creating a function
                  • Creating a FactBox page
              • Summary
              • Review questions
                • Chapter 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
                    • Role Center structure
                      • 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
                    • Navigation Pane and Action Menus
                      • Action Designer
                      • Creating a WDTU Role Center Ribbon
                      • Navigation Pane
                  • XMLports
                    • XMLport components
                      • XMLport properties
                      • XMLport triggers
                      • XMLport data lines
                      • XMLport line properties
                      • Element or attribute
                      • XMLport line triggers
                      • XMLport Request Page
                  • Web services
                    • Exposing a web service
                    • Publishing a web service
                    • Determining what was published
                    • XMLport – web services integration example
                  • Summary
                  • Review questions
                  • Chapter 9: Develop, Debug, Deliver
                    • Creating new C/AL routines
                      • Callable functions
                        • Codeunit 358 – Date Filter-Calc
                        • 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
                    • Debugging in NAV 2013
                      • Text Exports of Objects
                      • Dialog function debugging techniques
                        • Debugging with MESSAGE and CONFIRM
                        • Debugging with DIALOG
                        • Debugging with text output
                        • Debugging with ERROR
                      • The new NAV 2013 Debugger
                        • Activating the Debugger
                        • Attaching the Debugger to a Session
                        • Creating break events
                        • The Debugger window
                        • Changing the 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 – some general guidance
                      • Knowledge is 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
                        • Testing
                        • Deliverables
                        • Finishing the project
                      • Plan for upgrading
                        • Benefits of upgrading
                      • Coding considerations
                        • Good documentation
                        • Low-impact coding
                    • Supporting material
                    • Summary
                    • Review questions
                    • Appendix A: Answers to Review Questions
                      • Chapter 1, An Introduction to NAV 2013
                      • Chapter 2, Tables
                      • Chapter 3, Data Types and Fields
                      • Chapter 4, Pages – the User's 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, Develop, Debug, Deliver

                      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.

                      Christopher D. Studebaker

                      Christopher Studebaker, a NAV Developer/Implementer, has 12 years' experience designing, developing, implementing and selling the NAV and SQL Server environments. He has specialized in retail, manufacturing, job shop, and distribution implementations, most in high user-count, high data volume applications. Chris has worked on many NAV implementations with integrations to external databases and third party add-on products. Some special applications have included high volume order entry, pick-to-light systems, procurement analysis and Web frontends. Chris acts in a consulting and training role for customers and for peer NAV professionals. He provides training both in informal and classroom situations, often developing custom course material to support courses tailored to specific student group needs. Courses have included various NAV functional and development areas. Before becoming a certified NAV developer, Chris was a certified environmental consultant working with manufacturing facilities to meet national and state regulations. His duties included regulatory reporting, data analysis, project management and subcontractor oversight. Accomplishments included obtaining several safety certifications and managing projects for hazardous material management and abatement. Chris is a Microsoft Certified IT Professional, SQL Database Developer, as well as a Microsoft Certified Business Solutions Professional in NAV Development and NAV Installation and Configuration. He has a Bachelor of Science degree from Northern Illinois University and has done graduate work at Denmark Technical University.
                      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.


                      - 2 submitted: last submission 07 Jul 2014

                      Errata type: Technical | Page No: 237 - 239

                      The illustration in the book should have been replaced with the following image and the text should have included a mention of the use of the “Entry No.” field.

                      Errata type: Technical | Page No: 295

                      Chapter number 05

                      Review questions

                      Q10. Which of the following are NAV 2013 Report Types? Choose three.
                              a.  List
                              b.  Document
                              c.  Invoice
                              d.  Posting

                      Correct answer is: a, b, d  

                      Report Types are: List, Document, and Posting.

                      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 2013 +    Oracle SOA Suite Developer's Guide =
                      50% Off
                      the second eBook
                      Price for both: £38.00

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

                      What you will learn from this book

                      • Get to grips with fundamental programming and design concepts
                      • Learn the C/AL programming language, alongside many useful built-in functions
                      • Discover how to successfully deliver interactive user data presentation
                      • Learn convenient methods for extracting NAV data
                      • Sharpen your skills and increase your productivity with Microsoft Dynamics NAV 2013

                      In Detail

                      Microsoft Dynamics NAV 2013 is a complete and robust ERP system that is accompanied by a comprehensive set of development tools. You will learn how to master these tools and tailor Microsoft Dynamics NAV 2013 to meet your customer’s specific business needs.

                      "Programming Microsoft Dynamics® NAV 2013" will lead you from start to finish, teaching you how to use this incredible ERP software whilst simultaneously making you a more productive developer. You’ll learn how to implement your solutions, as well as evaluating, managing and appraising Dynamics NAV 2013 productions and projects.

                      You will be empowered with the skills and knowledge that you need to get the job done and exceed your client’s expectations. Step by step, you will learn how to use NAV, master the C/AL programming language, as well as the construction and uses of each object type. Ultimately, you will be able to bring your NAV 2013 solution together with fantastic efficiency.

                      Hands-on development examples and additional material teach you by example and uncover the insider knowledge that only years of experience can provide, truly unleashing your productivity and potential.


                      Written as a practical guide, this book will show you how to utilize Dynamics NAV 2013 to its full potential. Designed to be a comprehensive reference, it should be the perfect companion for any NAV developer, manager or consultant.

                      Who this book is for

                      This book is for experienced programmers who are either new to Microsoft Dynamics NAV or for experienced developers that want to utilize the fantastic new features of NAV 2013. Managers and consultants will also benefit from understanding NAV environments in order to build on their skills and experience during development projects.

                      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