Programming Microsoft Dynamics NAV - Fifth Edition

Book description

Customize your NAV applications

Key Features

  • Gain from the insights and methods of industry-leading experts and tailor your applications to best suit the needs of your business
  • Learn through the detailed explanations and useful examples that are presented in a logical, step-by-step manner
  • This comprehensive guide is written with the goals of being used as a classroom text, a self-study text, and as a handy in-depth reference guide

Book Description

Microsoft Dynamics NAV is a full business solution suite, and a complete ERP solution that contains a robust set of development tools to support customization and enhancement. These tools provide greater control over financials and can simplify supply chain, manufacturing, and operations.

This book will take you from an introduction to Dynamics NAV and its integrated development tools to being a productive developer in the Dynamics NAV Development Environment. You will find this book very useful if you want to evaluate the product's development capabilities or need to manage Dynamics NAV based projects. It will teach you about the NAV application structure, the C/SIDE development environment, the C/AL language paired with the improved editor, the construction and uses of each object type, and how it all fits together to build universal applications. With this new edition, you will be able to understand how to design and develop using Patterns and new features such as Extensions and Events.

What you will learn

  • Productively and effectively use the development tools that are built into Dynamics NAV
  • Understand the strengths of NAV s development tools and how they can be applied to address functional business requirements
  • Learn how to do programming using the C/AL language in the C/SIDE Development Environment
  • Explore functional design and development using C/AL
  • Leverage advanced Dynamics NAV development features and tools
  • Get to know the best practices to design and develop modifications of new functionality integrated with the standard Dynamics NAV software

Who this book is for

This book will appeal to all those who want to learn about NAV's powerful and extensive built-in development capabilities. It assumes that you understand programming and are familiar with business application software, although you aren’t expected to have worked with NAV before. ERP consultants and managers of NAV development will also find the book helpful.

Table of contents

  1. Preface
    1. A brief history of NAV
    2. The beginning
    3. Single user PC Plus
    4. Multi-user Navigator
    5. Navision Financials for Windows
    6. Growth and Mergers
    7. Continuous enhancement
    8. C/AL's Roots
    9. What you should know
    10. What this book covers
    11. What you need for this book
    12. Who this book is for
    13. Conventions
    14. Reader feedback
    15. Customer support
      1. Downloading the example code
      2. Errata
      3. Piracy
      4. Questions
  2. Introduction to NAV 2017
    1. NAV 2017 - An ERP system
      1. Financial management
      2. Manufacturing
      3. Supply chain management
      4. Business Intelligence and reporting
      5. Artificial Intelligence
      6. Relationship Management
      7. Human resource management
      8. Project management
    2. A developer's overview of NAV 2017
      1. NAV object types
      2. The C/SIDE Integrated Development Environment
      3. Object Designer tool icons
      4. C/AL programming language
      5. NAV object and system elements
      6. NAV functional terminology
      7. User Interface
    3. Hands-on development in NAV 2017
      1. NAV 2017 development exercise scenario
      2. Getting started with application design
      3. Application tables
        1. Designing a simple table
        2. Creating a simple table
      4. Pages
        1. Standard elements of pages
        2. List pages
        3. Card pages
        4. Document pages
        5. Journal/Worksheet pages
      5. Creating a List page
      6. Creating a Card page
      7. Creating some sample data
      8. Creating a list report
    4. Other NAV object types
      1. Codeunits
      2. Queries
      3. MenuSuites
      4. XMLports
    5. Development backups and documentation
    6. Review questions
    7. Summary
  3. Tables
    1. An overview of tables
      1. Components of a table
      2. Naming tables
      3. Table numbering
      4. Table properties
      5. Table triggers
      6. Keys
      7. SumIndexFields
      8. Field Groups
        1. Bricks
    2. Enhancing our sample application
      1. Creating and modifying tables
      2. Assigning a table relation property
      3. Assigning an InitValue property
      4. Adding a few activity-tracking tables
      5. New tables for our WDTU project
      6. New list pages for our WDTU project
      7. Keys, SumIndexFields, and TableRelations in our examples
        1. Secondary keys and SumIndexFields
        2. Table Relations
      8. Modifying an original NAV table
      9. Version List documentation
    3. Types of table
      1. Fully Modifiable tables
        1. Master Data
        2. Journal
        3. Template
        4. Entry tables
        5. Subsidiary (Supplementary) tables
        6. Register
        7. Posted Document
        8. Singleton
        9. Temporary
      2. Content Modifiable tables
        1. System table
      3. Read-Only tables
        1. Virtual
    4. Review questions
    5. Summary
  4. Data Types and Fields
    1. Basic definitions used in NAV
    2. Fields
      1. Field properties
      2. Field triggers
      3. Field events
      4. Data structure examples
      5. Field numbering
      6. Field and variable naming
    3. Data types
      1. Fundamental data types
        1. Numeric data
        2. String data
        3. Date/Time data
      2. Complex data types
        1. Data structure
        2. Objects
        3. Automation
        4. Input/Output
        5. DateFormula
        6. References and other data types
      3. Data type usage
    4. FieldClass property options
      1. FieldClass - Normal
      2. FieldClass - FlowField
      3. FieldClass - FlowFilter
      4. FlowFields and a FlowFilter for our application
    5. Filtering
      1. Experimenting with filters
      2. Accessing filter controls
        1. Development Environment filter access
          1. Role Tailored Client filter access
    6. Review questions
      1. Summary
  5. Pages - the Interactive Interface
    1. Page Design and Structure Overview
      1. Page Design guidelines
      2. NAV 2017 Page structure
    2. Types of pages
      1. Role Center page
      2. List page
      3. Card page
      4. Document page
        1. FastTabs
      5. ListPlus page
      6. Worksheet (Journal) page
      7. Confirmation Dialog page
      8. Standard Dialog page
      9. Navigate page
        1. Navigate function
      10. Special pages
        1. Request page
        2. Departments page
      11. Page parts
        1. FactBox Area
          1. CardParts and ListParts
      12. Charts
        1. Chart Part
        2. Chart Control Add-In
      13. Page names
    3. Page Designer
      1. New Page wizard
    4. Page Components
      1. Page Triggers
      2. Page properties
      3. Page Preview Tool
      4. Inheritance
    5. WDTU Page Enhancement - part 1
    6. Page Controls
      1. Control types
        1. Container controls
        2. Group controls
        3. Field controls
        4. Page Part controls
        5. Page Control triggers
      2. Bound and Unbound Pages
    7. WDTU Page Enhancement - part 2
    8. Page Actions
      1. Page Action types and subtypes
      2. Action Groups
        1. Navigation Pane Button actions
        2. Actions Summary
    9. Learning more
      1. Patterns and creative plagiarism
      2. Experimenting on your own
      3. Experimentation
    10. Review questions
    11. Summary
  6. Queries and Reports
    1. Queries
      1. Building a simple Query
      2. Query and Query Component properties
        1. Query properties
        2. DataItem properties
        3. Column properties
    2. Reports
      1. What is a report?
      2. Four NAV report designers
      3. NAV report types
        1. Report types summarized
        2. Report naming
    3. Report components - overview
      1. Report Structure
        1. Report Data overview
        2. Report Layout overview
    4. Report data flow
      1. Report components - detail
      2. C/SIDE Report Properties
      3. Visual Studio - Report Properties
      4. Report triggers
      5. Request Page Properties
      6. Request Page Triggers
      7. DataItem properties
      8. DataItem triggers
    5. Creating a Report in NAV 2017
      1. Learn by experimentation
      2. Report building - Phase 1
      3. Report building - Phase 2
      4. Report building - Phase 3
        1. Modifying an existing report with Report Designer or Word
        2. Runtime rendering
        3. Inheritance
      5. Interactive report capabilities
        1. Interactive sorting
        2. Interactive Visible / Not Visible
      6. Request Page
        1. Add a Request Page option
      7. Processing-Only reports
      8. Creative report plagiarism and Patterns
    6. Review questions
    7. Summary
  7. Introduction to C/SIDE and C/AL
    1. Understanding C/SIDE
      1. Object Designer
        1. Starting a new object
          1. Accessing the Table Designer screen
          2. Accessing the Page Designer
          3. Accessing the Report Dataset Designer
          4. Accessing the Codeunit Designer
        2. Query Designer
        3. XMLport Designer
        4. MenuSuite Designer
        5. Object Designer Navigation
          1. Exporting objects
        6. Importing objects
          1. Import Table object changes
      2. Text objects
      3. Shipping changes as an extension
        1. Some useful practices
          1. Changing data definitions
          2. Saving and compiling
        2. Some C/AL naming conventions
        3. Variables
          1. C/AL Globals
          2. C/AL Locals
          3. Special working storage variables
      4. C/SIDE programming
        1. Non-modifiable functions
        2. Modifiable functions
        3. Custom functions
          1. Creating a function
    2. C/AL syntax
      1. Assignment and punctuation
      2. Expressions
        1. Operators
          1. Arithmetic operators and functions
          2. Boolean operators
          3. Relational operators and functions
          4. Precedence of operators
      3. Frequently used C/AL functions
        1. MESSAGE function
        2. ERROR function
        3. CONFIRM function
        4. STRMENU function
        5. Record functions
          1. SETCURRENTKEY function
          2. SETRANGE function
          3. SETFILTER function
          4. GET function
        6. FIND Functions
          1. FIND ([Which]) options and the SQL Server alternates
      4. Conditional statements
        1. BEGIN-END compound statement
        2. IF-THEN-ELSE statement
      5. Indenting code
    3. Some simple coding modifications
      1. Adding field validation to a table
      2. Adding code to a report
        1. Lay out the new Report Heading
        2. Saving and testing
        3. Lookup related table data
        4. Laying out the new report Body
        5. Saving and testing
      3. Handling user entered report options
      4. Defining the Request Page
        1. Finishing the processing code
      5. Testing the completed report
      6. Output to Excel
    4. Review questions
    5. Summary
  8. Intermediate C/AL
    1. C/AL Symbol Menu
    2. Internal documentation
    3. Source code management
    4. Validation functions
      1. TESTFIELD
      2. FIELDERROR
      3. INIT
      4. VALIDATE
    5. Date and Time functions
      1. TODAY, TIME, and CURRENTDATETIME
      2. WORKDATE
      3. DATE2DMY function
      4. DATE2DWY function
      5. DMY2DATE and DWY2DATE functions
      6. CALCDATE
    6. Data conversion and formatting functions
      1. ROUND function
      2. FORMAT function
      3. EVALUATE function
    7. FlowField and SumIndexField functions
      1. CALCFIELDS function
      2. SETAUTOCALCFIELDS function
      3. CALCSUMS function
        1. CALCFIELDS and CALCSUMS comparison
    8. Flow control
      1. REPEAT-UNTIL
      2. WHILE-DO
      3. FOR-TO or FOR-DOWNTO
      4. CASE-ELSE statement
      5. WITH-DO statement
      6. QUIT, BREAK, EXIT, and SKIP
        1. QUIT function
        2. BREAK function
        3. EXIT function
        4. SKIP function
    9. Input and Output functions
      1. NEXT function with FIND or FINDSET
      2. INSERT function
      3. MODIFY function
        1. Rec and xRec
      4. DELETE function
      5. MODIFYALL function
      6. DELETEALL function
    10. Filtering
      1. SETFILTER function
      2. COPYFILTER and COPYFILTERS functions
      3. GETFILTER and GETFILTERS functions
      4. FILTERGROUP function
      5. MARK function
      6. CLEARMARKS function
      7. MARKEDONLY function
      8. RESET function
    11. InterObject communication
      1. Communication through data
      2. Communication through function parameters
      3. Communication via object calls
    12. Enhancing the WDTU application
      1. Modify table fields
      2. Adding validation logic
        1. Playlist Header validations
      3. Creating the Playlist Subpage
        1. Playlist Line validations
      4. Creating a function for our Factbox
      5. Creating a Factbox Page
    13. Review questions
    14. Summary
  9. Advanced NAV Development Tools
    1. NAV process flow
      1. Initial Setup and Data Preparation
      2. Transaction entry
      3. Testing and Posting the Journal batch
      4. Utilizing and maintaining the data
      5. Data maintenance
    2. Role Center pages
      1. Role Center structure
        1. Role Center activities page
        2. Cue Groups and Cues
        3. Cue source table
        4. Cue Group Actions
      2. System Part
      3. Page Parts
        1. Page Parts Not Visible
        2. Page Part Charts
        3. Page Parts for User Data
      4. Navigation Pane and Action Menus
        1. Action Designer
        2. Creating a WDTU Role Center Ribbon
          1. Action Groups / Ribbon Categories
          2. Configuration/Personalization
        3. Navigation Pane
          1. Navigation Home Button
          2. Navigation Departments Button
          3. Other Navigation Buttons
    3. XMLports
      1. XMLport components
        1. XMLport properties
        2. XMLport triggers
        3. XMLport data lines
        4. The XMLport line properties
          1. SourceType as Text
          2. SourceType as Table
          3. SourceType as Field
        5. Element or Attribute
          1. NodeType of Element
          2. NodeType of Attribute
        6. XMLport line triggers
          1. DataType as Text
          2. DataType as Table
          3. DataType as Field
        7. XMLport Request Page
    4. Web services
      1. Exposing a web service
      2. Publishing a web service
      3. Enabling web services
      4. Determining what was published
      5. XMLport - Web Services Integration example for WDTU
    5. Review questions
    6. Summary
  10. Successful Conclusions
    1. Creating new C/AL routines
      1. Callable functions
        1. Codeunit 358 - DateFilterCalc
        2. Codeunit 359 - Period Form Management
          1. FindDate function
          2. NextDate function
          3. CreatePeriodFormat function
        3. Codeunit 365 - Format Address
        4. Codeunit 396 - NoSeriesManagement
        5. Function models to review and use
      2. Management codeunits
    2. Multi-language system
    3. Multi-currency system
    4. Navigate
      1. Modifying for Navigate
    5. Debugging in NAV 2017
      1. Text Exports of Objects
      2. Dialog function debugging techniques
        1. Debugging with MESSAGE and CONFIRM
        2. Debugging with DIALOG
        3. Debugging with text output
        4. Debugging with ERROR
      3. The NAV 2017 Debugger
        1. Activating the Debugger
        2. Attaching the Debugger to a Session
        3. Creating Break Events
        4. The Debugger window
          1. Ribbon Actions:
        5. Changing code while debugging
    6. C/SIDE Test-Driven Development
    7. Other interfaces
      1. Automation Controller
      2. Linked Data Sources
    8. NAV Application Server
    9. Client Add-ins
      1. Client Add-in construction
      2. WDTU Client Add-in
      3. Client Add-in comments
    10. Creating an Extension
      1. Table Changes
      2. Page Changes
      3. Events
      4. Creating a WDTU extension
        1. Step 1 - Load PowerShell
        2. Step 2 - Create Delta files
        3. Step 3 - Manifest XML file
        4. Remembering the App ID
        5. Step 4 - Create the NAVx package
      5. Installing the Extension
        1. Publishing an Extension
        2. Verification
        3. Extension installation and setup
    11. Customizing Help
    12. NAV development projects - general guidance
      1. Knowledge is key
      2. Data-focused design
        1. Defining the required data views
        2. Designing the data tables
        3. Designing the user data access interface
        4. Designing the data validation
        5. Data design review and revision
      3. Designing the Posting processes
      4. Designing the supporting processes
      5. Double-check everything
    13. Design for efficiency
      1. Disk I/O
      2. Locking
    14. Updating and Upgrading
      1. Design for updating
        1. Customization project recommendations
          1. One change at a time
        2. Testing
          1. Database testing approaches
          2. Testing in production
          3. Using a testing database
          4. Testing techniques
        3. Deliverables
        4. Finishing the project
      2. Plan for upgrading
        1. Benefits of upgrading
        2. Coding considerations
        3. Good documentation
        4. Low-impact coding
    15. Supporting material
    16. Review questions
    17. Summary

Product information

  • Title: Programming Microsoft Dynamics NAV - Fifth Edition
  • Author(s): Marije Brummel, David Studebaker, Christopher D. Studebaker
  • Release date: April 2017
  • Publisher(s): Packt Publishing
  • ISBN: 9781786468192