You are previewing Programming Microsoft Dynamics® NAV 2013.
O'Reilly logo
Programming Microsoft Dynamics® NAV 2013

Book Description

A comprehensive guide to NAV 2013 development and design

  • 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

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.

Table of Contents

  1. Programming Microsoft Dynamics® NAV 2013
    1. Table of Contents
    2. Programming Microsoft Dynamics® NAV 2013
    3. Credits
    4. Foreword
    5. About the Authors
    6. Acknowledgements
    7. About the Reviewers
    8. www.PacktPub.com
      1. Support files, eBooks, discount offers and more
        1. Why Subscribe?
        2. Free Access for Packt account holders
        3. Instant Updates on New Packt Books
    9. Preface
      1. A Business history timeline
        1. The beginning
        2. Single user PC Plus
        3. Multiuser Navigator
        4. Navision financials for Windows
        5. Growth and mergers
        6. Continuous enhancement
        7. C/AL's roots
      2. What you should know
      3. What this book covers
      4. What you need for this book
      5. Who this book is for
      6. Conventions
      7. Reader feedback
      8. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    10. 1. An Introduction to NAV 2013
      1. NAV 2013 – an ERP system
        1. Financial Management
        2. Manufacturing
        3. Supply Chain Management (SCM)
        4. Business Intelligence and reporting (BI)
        5. Relationship Management (RM)
        6. Human Resource management (HR)
        7. Project Management
      2. Significant changes for NAV 2013
        1. Application changes
        2. Client enhancements
        3. Development tools
        4. Other areas
      3. A developer's overview of NAV 2013
        1. NAV object types
        2. C/SIDE
        3. Object Designer tool icons
        4. C/AL programming language
        5. NAV object and system elements
        6. NAV functional terminology
        7. User Interface
      4. Developing in NAV 2013 – hands-on
        1. Our scenario for development exercises
        2. Getting started with the application design
        3. Application tables
          1. Designing a simple table
          2. Creating a simple table
        4. Pages
          1. List pages
          2. Card pages
          3. Document pages
          4. Journal/Worksheet pages
            1. Standard elements of pages
        5. Creating a List page
        6. Creating a Card page
        7. Creating some sample data
        8. Creating a List Report
          1. Much more to come
        9. Other NAV object types
          1. Codeunits
          2. Queries
          3. MenuSuites
          4. XMLports
        10. Backups and documentation
      5. Summary
      6. Review questions
    11. 2. Tables
      1. An overview of tables
        1. Components of a table
        2. Naming a table
        3. Table numbering
        4. Table properties
        5. Table triggers
        6. Keys
        7. SumIndexFields
        8. Field Groups
      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 table relations in our examples
          1. Secondary keys and SumIndexFields
          2. Table relations
        8. Modifying a standard table
        9. Version list documentation
      3. Types of tables
        1. Fully Modifiable tables
          1. Master
          2. Journal
          3. Template
          4. Ledger
          5. Reference tables
          6. Register
          7. Posted Document
          8. Setup
          9. Temporary
        2. Content Modifiable tables
          1. System
        3. Read-only tables
          1. Virtual
      4. Summary
      5. Review questions
    12. 3. Data Types and Fields
      1. Basic definitions
      2. Fields
        1. Field properties
        2. Field triggers
        3. Data structure examples
        4. Field numbering
        5. 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
          2. Role Tailored Client filter access
      6. Summary
      7. Review questions
    13. 4. Pages – the User's Interactive Interface
      1. Page Design and Structure Overview
        1. Page Design Guidelines
        2. NAV 2013 Page structure
      2. Types of pages
        1. Role Center page
        2. List page
        3. Card page
        4. Document page
          1. FastTab
        5. ListPlus page
        6. Worksheet (Journal) page
        7. ConfirmationDialog page
        8. StandardDialog page
        9. NavigatePage
        10. Special pages
          1. Request page
          2. Departments page
        11. Page parts
          1. FactBox Area
            1. CardParts and ListParts
          2. Charts
            1. Chart part
            2. Chart Control Add-in
        12. 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
        2. Page Part controls
          1. Page Control triggers
        3. Bound and Unbound Pages
      7. WDTU Page Enhancement – part 2
      8. Page Actions
        1. Page Action Types and Subtypes
        2. Action Groups
        3. Action Properties
        4. Navigation Pane Button actions
        5. Actions Summary
      9. Learning more
        1. UX (User Experience) Guidelines
        2. Creative plagiarism
        3. Experimenting on your own
        4. Experimentation
      10. Summary
      11. Review questions
    14. 5. Queries and Reports
      1. Queries
        1. Building a simple Query
        2. Query and Query component properties
          1. Query properties
          2. The DataItem properties
          3. Column properties
          4. Filter properties
      2. Reports
        1. What is a report?
        2. Two 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
      5. Report components – detail
        1. C/SIDE Report properties
        2. Visual Studio Report properties
        3. Report triggers
        4. Request Page properties
        5. Request Page triggers
        6. Data item properties
        7. Data Item triggers
      6. Creating a Report in NAV 2013
        1. Learn by experimentation
        2. Report building – phase 1
        3. Report building – phase 2
        4. Report building – phase 3
          1. Modifying an existing report
          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
      7. Summary
      8. Review questions
    15. 6. Introduction to C/SIDE and C/AL
      1. Understanding C/SIDE
        1. Object Designer
          1. Starting a new object
            1. Accessing the Table Designer
            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
            2. Importing objects
        2. Text objects
          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
              1. Function local identifiers
              2. Other local identifiers
            3. Special working storage variables
              1. Temporary tables
              2. Arrays
              3. Initialization
              4. System-defined variables
        3. 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. The MESSAGE function
          2. The ERROR function
          3. The CONFIRM function
          4. The STRMENU function
          5. Record functions
            1. The SETCURRENTKEY function
            2. The SETRANGE function
          6. The SETFILTER function
          7. The GET function
          8. FIND functions
            1. FIND ([Which]) options and the SQL Server alternates
        4. Conditional statements
          1. The BEGIN–END compound statement
          2. The 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
        3. Layout the new report heading
        4. Save and test
        5. Lookup Related table data
        6. Layout the new report body
          1. Save and test
          2. Handling user-entered selection criteria
          3. Defining the Request Page
      4. Finishing the processing code
        1. Test the completed report
        2. Output to Excel
      5. Summary
      6. Review questions
    16. 7. Intermediate C/AL
      1. Some C/AL development tools
        1. C/AL Symbol Menu
        2. Internal documentation
      2. Validation functions
        1. TESTFIELD
        2. FIELDERROR
        3. INIT
        4. VALIDATE
      3. Date and Time functions
        1. TODAY, TIME, and CURRENTDATETIME functions
        2. WORKDATE function
        3. DATE2DMY function
        4. DATE2DWY function
        5. DMY2DATE and DWY2DATE functions
        6. CALCDATE function
      4. Data conversion and formatting functions
        1. ROUND
        2. FORMAT function
        3. EVALUATE function
      5. FlowField SumIndexField functions
        1. CALCFIELDS function
        2. SETAUTOCALCFIELDS function
        3. CALCSUMS function
          1. CALCFIELDS and CALCSUMS comparison
      6. 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 functions
          1. QUIT function
          2. BREAK function
          3. EXIT function
          4. SKIP function
      7. 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
      8. 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
      9. InterObject communication
        1. Communication via data
        2. Communication through function parameters
        3. Communication via object calls
      10. Enhancing the WDTU application
        1. Modifying table fields
        2. Adding validation logic
          1. Playlist Header Validations
        3. Creating the Playlist Subform page
          1. Playlist Line validations
        4. Creating a function
        5. Creating a FactBox page
      11. Summary
      12. Review questions
    17. 8. 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. Promoted Actions Categories
            2. Action Groups
            3. 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. 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. Determining what was published
        4. XMLport – web services integration example
      5. Summary
      6. Review questions
    18. 9. Develop, Debug, Deliver
      1. Creating new C/AL routines
        1. Callable functions
          1. Codeunit 358 – Date Filter-Calc
          2. Codeunit 359 – Period Form Management
          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 2013
        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 new NAV 2013 Debugger
          1. Activating the Debugger
          2. Attaching the Debugger to a Session
          3. Creating break events
          4. The Debugger window
          5. Changing the code while debugging
      6. C/SIDE Test-driven development
      7. Other Interfaces
        1. Automation Controller
        2. Linked data sources
      8. NAV Application Server (NAS)
      9. Client Add-ins
        1. Client Add-in construction
        2. WDTU Client Add-in
        3. Client Add-in comments
      10. Customizing Help
      11. NAV development projects – some general guidance
        1. Knowledge is key
        2. Data-focused design
          1. Defining the needed 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
      12. Design for efficiency
        1. Disk I/O
        2. Locking
      13. 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
        3. Coding considerations
          1. Good documentation
          2. Low-impact coding
      14. Supporting material
      15. Summary
      16. Review questions
    19. A. Answers to Review Questions
      1. Chapter 1, An Introduction to NAV 2013
      2. Chapter 2, Tables
      3. Chapter 3, Data Types and Fields
      4. Chapter 4, Pages – the User's Interactive Interface
      5. Chapter 5, Queries and Reports
      6. Chapter 6, Introduction to C/SIDE and C/AL
      7. Chapter 7, Intermediate C/AL
      8. Chapter 8, Advanced NAV Development Tools
      9. Chapter 9, Develop, Debug, Deliver
    20. Index