Programming Microsoft Dynamics??? NAV 2015 - David Studebaker - E-Book

Programming Microsoft Dynamics??? NAV 2015 E-Book

David Studebaker

0,0
29,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

This book is targeted at those who want to learn NAV's powerful and extensive built-in development capabilities. It assumes that you understand programming and are familiar with business application software.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 752

Veröffentlichungsjahr: 2015

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



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

Programming Microsoft Dynamics™ NAV 2015

Programming Microsoft Dynamics™ NAV 2015

Copyright © 2015 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: July 2015

Production reference: 1240715

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78439-420-2

www.packtpub.com

Credits

Authors

David Studebaker

Christopher Studebaker

Reviewers

Mark Brummel

Danilo Capuano

Stefano Demiliani

Commissioning Editor

Taron Pereira

Acquisition Editors

Purav Motiwalla

Sam Wood

Content Development Editor

Neeshma Ramakrishnan

Technical Editors

Utkarsha S. Kadam

Mohita Vyas

Copy Editors

Tani Kothari

Kausambhi Majumdar

Alpha Singh

Project Coordinator

Shweta H Birwatkar

Proofreader

Safis Editing

Indexer

Rekha Nair

Graphics

Abhinash Sahu

Production Coordinator

Melwyn Dsa

Cover Work

Melwyn Dsa

Foreword

Like many other enthusiasts in the NAV community, David ran a family business with his wife, Karen. Their son, Christopher, got his start in NAV by working in the family business. This is the kind of business that made NAV more successful than any other product in the ERP mid-market.

For many years, David has been a key influencer on the new versions of Dynamics NAV and has helped us evolve our developer Help. Based on this work, David wrote his first book on Dynamics NAV in 2007 about how to develop in "classic" NAV.

In 2009, he wrote his second book to help close the gap between the Classic client and the new world of the RoleTailored client and RDLC reporting. Overnight, the book proved to be extremely helpful to the greater community to cross the chasm from the "old" world to the "new" world.

Since then, David and his coauthor and, son Chris, also a NAV expert, have twice rewritten and extended these books to include new versions of Dynamics NAV. Reading the latest book reminds me of how far Dynamics NAV has evolved, both as a product since the first version came out in 1987 and as a thriving community with Karen and David as pioneers and later Chris as a key contributor to books like these.

Michael Nielsen

Director of Engineering,

Dynamics NAV at Microsoft

About the Authors

David Studebaker is the Chief Technical Officer and a cofounder of Liberty Grove Software with his partner, Karen Studebaker. David has had a wide range of development, consulting, sales and management roles throughout his career. He has been a partner or owner and manager of several software development businesses while always maintaining a significant role as a business application developer.

David 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. David's special achievements include his role as co-developer of the first production multiprogrammed SPOOLing system in 1967. He has worked on a diverse set of software applications including manufacturing, distribution, retail, engineering, and others.

David has a BS in mechanical engineering from Purdue University and an MBA from the University of Chicago. He has been writing for publications since he was an undergraduate and has had numerous magazine and reference books published. Prior to coauthoring this book, David was the author of Programming Microsoft Dynamics NAV (for the Classic Client), Programming Microsoft Dynamics NAV 2009 (for the Role Tailored Client), and Programming Microsoft Dynamics NAV 2013. He has been a member of the Association for Computing Machinery since 1963 and was a founding officer of two local chapters of the ACM.

Acknowledgments

This book would not have been possible without my coauthor (and son), Christopher Studebaker. I'm very lucky to get to work with such a smart, knowledgeable son, who is also my good friend.

I especially want to thank my partner in life and at work, Karen Studebaker, for her unflagging support, patience, love, and encouragement in all ways. The first 50 years we have been together have been great; I'm looking forward to the next 50.

One of my life's principle treasures has been the enthusiastic support and love of my children, Christopher and Rebecca, of whom I am very proud. Both are successful, thoughtful, high quality professionals, and managers. More importantly, they each place the highest value to their roles as parents and spouses (here, I say "hi" to my special grandchildren, Cole, Alec, and CeCe, and my terrific in-law children, Elizabeth and Frederick).

Special thanks are due to Michael Nielsen of Microsoft for his wholehearted support of this and the previous three Programming NAV books. Many thanks to Mark Brummel, who knows more about NAV than almost anyone (except maybe Michael) and generously shares his knowledge. I also wish to thank all the people at Microsoft and Packt as well as our technical reviewers who assisted us a great deal with their contributions and advice.

Much of what I know about NAV was gained while working with excellent teams of associates at Studebaker Technology and Liberty Grove Software. All my life, I have benefitted from the help of many friends, mentors, and associates. Life would be very poor without all these kind and generous folks.

May you enjoy using this book even a fraction as much as I enjoyed working on it with Chris.

Christopher Studebaker is an NAV developer/implementer and has 15 years' experience in designing, developing, implementing, and selling in the NAV and SQL Server environments. He has specialized in retail, manufacturing, job shop, and distribution implementations, mostly in high user count and 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 include 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. His accomplishments include obtaining several safety certifications and managing projects for hazardous material management and abatement.

Chris is an expert at NAV installation, configuration, and development. He has been working with SQL in both NAV and other Microsoft applications for over a decade. He has a bachelor of science degree from Northern Illinois University and has done graduate work at Denmark Technical University. Chris was the coauthor of the Packt Publishing book Programming Microsoft Dynamics 2013.

First and foremost, I would like to thank my parents, David and Karen Studebaker, for giving me the opportunity to start in the NAV world and allowing me the room to grow on my own. Of course, I could not have participated in this book if it weren't for my wife, Beth. Having worked within the NAV community for the past decade, I have worked with many wonderful people, most notably, my parents (of course), Betty Cronin, Kathy Nohr, Tommy Madsen, Susanne Priess, David Podjasek, Joy Bensur , Diane Beck, Chris Pashby, and Anthony Fairclough. Without them, I would not have been the NAV professional I am today.

About the Reviewers

Mark Brummel is a freelance all-round Microsoft Dynamics NAV specialist focused on helping end users of the product.

His passion is evangelizing and documenting the "NAV way". This is a combination of architectural principles and design best practices formalized in a workshop called Master Class for Microsoft Dynamics NAV Application Architecture and Design Patterns. The methodology helps in creating solutions that are easy to upgrade, recognizable for users, and maintainable outside the ecosystem of their creators. All three elements apply to the original Navision product that shipped in 1995 and are extracted, updated, and documented in this methodology.

In 2015, his new book, Learning Dynamics NAV Patterns, will be published, which is a book about his methodology. He also organizes hands-on workshops together with a group of MVPs and MCTs all across the globe.

Before starting freelancing in 2006, he started in 1997 as an end user and worked 8 years for NAV partners after that. Designing and maintaining add-on systems was his specialization. Some of these add-on systems exceed the standard product when it comes to size and complexity. Coaching colleagues and troubleshooting complex problems are his passions and part of his day-to-day work.

Many end users of Microsoft Dynamics NAV struggle with questions about how to upgrade their two-tier solution to a three-tier solution. Mark can help you answer these questions and plot a roadmap to the future, retaining the investment in the solution.

When Microsoft introduced the three-tier architecture in 2009, it was meant to be a major shift for experienced NAV developers and consultants. Mark has trained most of them in the Netherlands and Belgium.

To be able to share knowledge in an efficient and global way, Mark wrote the book Dynamics NAV 2009 Application Design and Dynamics NAV 2013 Application Design, which is often referred to as the NAV Bible. Its content is applicable to newer and older versions of the product too.

In 2010, he started a think tank called Partner Ready Software together with four other Dynamics NAV experts. Partner Ready Software brings fresh ideas of designing applications in NAV and creates awareness about applying design patterns while creating repeatable solutions.

Mark is an associate in the Liberty Grove Software network, a member of the NAVUG advisory board, and a cofounder of the Dutch Dynamics Community.

A special project and performance tuning of the Dynamics NAV product on SQL Server. As a unique specialist, he has done groundbreaking research in improving the performance of Dynamics NAV on SQL Server.

On the site, http://nav-skills.com/, Mark maintains a blog. This blog contains a wide range of articles about both Microsoft Dynamics NAV and SQL Server products. He is also a frequent speaker at Microsoft events and publishes articles on Pulse for LinkedIn.

Since 2006, Mark has been rewarded by Microsoft with the Most Valuable Professional award for his contribution to online and offline communities. He has received the award 10 times.

Mark is a father of four, is married, and lives in a small town in the Netherlands.

Danilo Capuano is a senior software engineer with over 10 years of industry experience. He lives in Naples, Italy, where he earned a degree in computer science. He currently works as a consultant for Microsoft Dynamics NAV and Microsoft Dynamics CRM at a Microsoft Gold Partner company, where he also completed the MCTS certification.

He is already a reviewer of several books on Microsoft Dynamics NAV.

You can contact him on his home page at http://www.capuanodanilo.com/

You can also contact him via Twitter at @capuanodanilo.

Stefano Demiliani is a Microsoft Certified Solution Developer (MCSD), MCAD, MCTS on Microsoft Dynamics NAV, MCTS on Sharepoint, MCTS on SQL Server, and a long-time expert on other Microsoft-related technologies.

He has a master's degree in computer engineering from Politecnico of Turin.

He works as a senior project manager and solution developer for EID (http://www.eid.it/), a company of the Navlab group (http://www.navlab.it/), one of the biggest Microsoft Dynamics group in Italy (where he's also the Chief Technical Officer). His main activity is the architecture and development of enterprise solutions based on the entire stack of Microsoft technologies (Microsoft Dynamics NAV, Microsoft Sharepoint, and Azure and .NET applications in general), and he's often focused on engineering distributed service-based applications.

He works as a full-time NAV consultant (15+ years of international NAV projects), and he is available for architecture solutions based on Microsoft's ERP and for NAV database tuning and optimization (performance and locking management). He's the author of several different Microsoft Certified NAV add-ons.

He has written many articles and blogs on different Microsoft-related topics, and he's frequently involved in consulting and teaching. He has worked with Packt Publishing in the past for many Microsoft Dynamics NAV-related books.

You can get more details and keep in touch with him by reaching http://www.demiliani.com/ or via Twitter (@demiliani).

www.PacktPub.com

Support files, eBooks, discount offers, and more

For support files and downloads related to your book, please visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

https://www2.packtpub.com/books/subscription/packtlib

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.

Why subscribe?

Fully searchable across every book published by PacktCopy and paste, print, and bookmark contentOn demand and accessible via a web browser

Free access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.

Instant updates on new Packt books

Get notified! Find out when new books are published by following @PacktEnterprise on Twitter or the Packt Enterprise Facebook page.

Preface

Welcome to the worldwide community of Microsoft Dynamics NAV developers. This is a collegial environment populated by C/AL developers who readily and generously share their knowledge. There are formal and informal organizations of NAV-focused users, developers, and vendor firms scattered around the globe and active on the Web. Our community continues to grow and prosper, now including over 110,000 user companies worldwide.

The information in this book will help you to shorten your learning curve of how to program for the NAV 2015 ERP system using the C/AL language, the C/SIDE integrated development environment and their capabilities. We hope you enjoy working with NAV as much as we have.

A brief history of NAV

Each new version of Microsoft Dynamics NAV is the result of inspiration and hard work along with some good fortune and expert technical investment over the last thirty years.

The beginning

Three college friends, Jesper Balser, Torben Wind, and Peter Bang, from Denmark Technical University (DTU) founded their computer software business in 1984 when they were in their early twenties. This business was Personal Computing & Consulting (PC & C) and its first product was called PC Plus.

Single user PC Plus

PC Plus was released in 1985 with the primary goal of ease of use. An early employee said its functional design was inspired by the combination of a manual ledger journal, an Epson FX 80 printer, and a Canon calculator. Incidentally, Peter Bang is the grandson of one of the founders of Bang & Olufsen, the manufacturer of home entertainment systems par excellence.

PC Plus was a PC DOS-based single user system. PC Plus' design features included these:

An interface resembling the use of documents and calculatorsOnline helpGood exception handlingMinimal computer resources required

The PC Plus product was marketed through dealers in Denmark and Norway.

The multi-user Navigator

In 1987, PC & C released a new product, the multi-user Navigator and a new corporate name, Navision. Navigator was quite a technological leap forward. It included the following:

Client/Server technologyA relational databaseTransaction-based processingVersion managementHigh-speed OLAP capabilities (SIFT technology)A screen painter toolA programmable report writer

In 1990, Navision was expanding its marketing and dealer recruitment efforts in Germany, Spain, and the United Kingdom. Also in 1990, V3 of Navigator was released. Navigator V3 was still a character-based system, albeit a very sophisticated one. If you get an opportunity to study Navigator V3.x, you would instantly recognize the roots of today's NAV product. By V3, the product included these features:

A design based on object-oriented conceptsIntegrated 4GL Table, Form, and Report Design tools (the IDE)Structured exception handlingBuilt-in resource managementThe original programming language that became C/ALFunction librariesThe concept of regional or country-based localization

When Navigator V3.5 was released, it also included support for multiple platforms and databases. Navigator V3.5 would run on both Unix and Windows NT networks. It supported the Oracle and Informix databases, as well as the one developed in-house.

Around this time, several major strategic efforts were initiated. On the technical side, the decision was made to develop a GUI-based product. The first prototype of Navision Financials (for Windows) was shown in 1992. At about the same time, a relationship was established that would take Navision into distribution in the United States. The initial release in the US in 1995 was V3.5 of the character-based product, rechristened as Avista for the US distribution.

Navision Financials for Windows

In 1995, Navision Financials V1.0 for Microsoft Windows was released. This product had many (but not all) of the features of Navigator V3.5. It was designed for complete look-and-feel compatibility with Windows 95. There was an effort to provide the ease of use and flexibility of development of Microsoft Access. The new Navision Financials was very compatible with Microsoft Office and was thus sold as "being familiar to any Office user". Like any V1.0 product, it was quickly followed by a much improved V1.1.

In the next few years, Navision continued to be improved and enhanced. Major new functionalities were added, such as:

Contact Relation Management (CRM)Manufacturing (ERP)Advanced Distribution (including Warehouse Management)

Various Microsoft certifications were obtained, providing muscle to the marketing efforts. Geographic and dealer base expansion continued apace. By 2000, according to the Navision Annual Report of that year, the product was represented by nearly 1,000 dealers (Navision Solution Centers) in 24 countries and used by 41,000 customers located in 108 countries.

Growth and mergers

In 2000, Navision Software A/S and its primary Danish competitor, Damgaard A/S, merged. Product development and new releases continued for the primary products of both original firms (Navision and Axapta). In 2002, the now much larger Navision Software, with all its products (Navision, Axapta, and the smaller, older C5, and XAL) was purchased by Microsoft, becoming part of the Microsoft Business Systems division along with the previously purchased Great Plains Software business and its several product lines. All the Navision and Great Plains products received a common rebranding as the Dynamics product line. Navision was renamed Dynamics NAV.

Continuous enhancement

As early as 2003, research began with the Dynamics NAV development team planning moves to further enhance NAV and take advantage of various parts of the Microsoft product line. Goals were defined to increase integration with products such as Microsoft Office and Microsoft Outlook. Goals were also set to leverage the functional capabilities of Visual Studio and SQL Server, among others. All the while, there was a determination not to lose the strength and flexibility of the base product.

NAV 2009 was released in late 2008, NAV 2013 in late 2012, followed by NAV 2015 in late 2014. The biggest hurdles to the new technologies have been cleared. A new user interface, the Role Tailored Client, was created as part of this renewal. NAV was tightly integrated with Microsoft's SQL Server and other Microsoft products such as Office, Outlook, and SharePoint. Development is more integrated with Visual Studio and more .NET compliant. The product is becoming more open and, at the same time, more sophisticated supporting features such as Web Services access, Web and tablet clients, the integration of third-party controls, RDLC, and Word-based reporting, and so on.

Microsoft continues to invest in, enhance, and advance NAV. More new capabilities and features are yet to come, continuing to build on the successes of the past. We will all benefit.

C/AL's Roots

One of the first questions asked by people new to C/AL is often "what other programming language is it like?" The best response is "Pascal". If the questioner is not familiar with Pascal, the next best response would be "C" or "C#".

At the time the three founders of Navision were attending classes at Denmark Technical University (DTU), Pascal was in wide use as a preferred language not only in computer courses, but also in other courses where computers were tools and software had to be written for data analyses. Some of the strengths of Pascal as a tool in an educational environment also served to make it a good model for Navision's business applications development.

Perhaps coincidentally (perhaps not) at DTU in this same time period, a Pascal compiler called Blue Label Pascal was developed by Anders Hejlsberg. That compiler became the basis for what was Borland's Turbo Pascal, which was the "everyman's compiler" of the 1980s because of its low price. Anders went with his Pascal compiler to Borland. While he was there, Turbo Pascal morphed into the Delphi language and the IDE tool set under his guidance.

Anders later left Borland and joined Microsoft, where he led the C# design team. Much of the NAV-related development at Microsoft is now being done in C#. So the Pascal-C/AL-DTU connection has come full circle, only now it appears to be C#-C/AL. Keeping it in the family, Anders' brother, Thomas Hejlsberg also works at Microsoft on NAV as a Software Architect. Each in their own way, Anders and Thomas continue to make significant contributions to Dynamics NAV.

In a discussion about C/AL and C/SIDE, Michael Nielsen of Navision and Microsoft, who developed the original C/AL compiler, runtime, and IDE, said that the design criteria were to provide an environment that could be used without the following:

Dealing with memory and other resource handlingThinking about exception handling and stateThinking about database transactions and rollbacksKnowing about set operations (SQL)Knowing about OLAP (SIFT)

Paraphrasing some of Michael's additional comments, the goals of the language and IDE design were to do the following:

Allow the developer to focus on design, not coding, but still allow flexibilityProvide a syntax based on Pascal, stripped of complexities, especially relating to memory managementProvide a limited set of predefined object types, reduce the complexity and learning curveImplement database versioning for a consistent and reliable view of the databaseMake the developer and end user more at home by borrowing a large number of concepts from Office, Windows, Access, and other Microsoft products

Michael is still working as part of the Microsoft team in Denmark on new capabilities for NAV. This is another example of how, once part of the NAV community, most of us want to stay part of this community.

What you should know

To get the maximum out of this book as a developer, you should have the following attributes:

Be an experienced developerKnow more than one programming languageHave IDE experienceBe knowledgeable about business applicationsBe good at self-directed study

If you have these attributes, this book will help you become productive with C/AL and NAV much more rapidly.

Even though this book is targeted first at developers, it is also designed to be useful to executives, consultants, managers, business owners, and others who want to learn about the development technology and operational capabilities of Dynamics NAV. If you fit into one of these or similar categories, start by studying Chapter 1, An Introduction to NAV 2015, for a good overview of NAV and its tools. Then you should review sections of other chapters as the topics apply to your specific areas of interest.

This book's illustrations are from the W1 Cronus database Dynamics NAV V2015.

What this book covers

Chapter 1, An Introduction to NAV 2015, starts with an overview of NAV as a business application system. This is followed by an introduction to the seven types of NAV objects, and the basics of C/AL and C/SIDE. Then we will do some hands-on work and define Tables, multiple Page types, and a Report. We'll close with a brief discussion of how backups and documentation are handled in C/SIDE.

Chapter 2, Tables, focuses on the foundation level of NAV data structure: Tables and their structures. We will cover Properties, Triggers (where C/AL resides), Field Groups, Table Relations, and SumIndexFields. We'll work our way through the hands-on creation of several tables in support of our example application. We will also review the types of tables found in the NAV applications.

Chapter 3, Data Types and Fields, we will learn about fields, the basic building blocks of the NAV data structure. We review the different Data Types in NAV. We will cover all the field properties and triggers in detail. We'll also review the three different Field Classes. We'll conclude with a discussion about the concept of filtering and how it should be considered in the database structure design.

Chapter 4, Pages – The Interactive Interface, we will review the different types of pages, their structures (Triggers, Properties) and general usage. We'll build several pages for our example application using Page Wizard and Page Designer. We will also study the different types of controls that can be used in the pages. In addition, we'll review how and where actions are added to the pages.

Chapter 5, Queries and Reports, we will learn about both Queries and Reports, two methods of extracting data for presentation to users. For Queries, we will study how they are constructed and some of the ways they are utilized. For Reports, we will walk through report data flow and the variety of different report types. We will study the two Report Designers, the C/SIDE Report Designer and the Visual Studio Report Designer and how a NAV report is constructed using both of these. We'll learn what aspects of reports use one designer and what aspects use the other. As in the previous studied objects, we will discuss Properties and Triggers. We will review how reports can be made interactive and will do some hands-on report creation.

Chapter 6, Introduction to C/SIDE and C/AL, we will learn about general Object Designer Navigation as well as the individual Designers (Table, Page, Report). We'll study C/AL code construction, syntax, variable types, expressions, operators, and functions. We will then take a closer look at some of the more frequently used built-in functions. The chapter will wrap up with an exercise on adding some C/AL code to a report objects created in an earlier exercise.

Chapter 7, Intermediate C/AL, we will dig deeper into C/AL development tools and techniques. We will review some more advanced built-in functions including those relating to dates and decimal calculations, both critical business application tools. We'll study the C/AL functions that support process flow control functions, input/output, and filtering. Then we'll do a review of methods of communication between objects. Finally, we'll apply some of what we've learned to enhance our example application.

Chapter 8, Advanced NAV Development Tools, we will review some of the more important elements of the Role Tailored User Experience, in particular the Role Center Page construction. We will dig into the components of a Role Center Page and how to build one. We'll also cover XMLports and Web Services, two of the powerful ways of connecting NAV applications to the world outside of NAV. To better understand these, we will not only review their individual component parts, but also go through the hands-on effort of building an example of each one.

Chapter 9, Successful Conclusions, we will study in detail how NAV functions are constructed and learn how to construct your own functions. We will learn more about tools and features built into C/AL and C/SIDE. We will study the new debugger, review the support for Test-Driven Development, and take a look at the ability to integrate .NET Client Add-ins. We will integrate a .NET Add-in into our example applications. Finally, we will review tips to design efficiently, update and upgrade the system with the goal of helping us to become more productive and high quality NAV developers.

Appendix, Review Answers, provides you with the answers to the questions given in each chapter.

What you need for this book

You will need some basic tools including at least the following:

A license and database that you can use for development experimentation. The ideal license is a full Developer's license. If your license only contains the Page, Report, and Table Designer capabilities, you will still be able to do many of the exercises, but you will not have access to the inner workings of Pages and Tables and the C/AL code contained therein.A copy of the NAV Cronus demo/test database for your development testing and study. It would be ideal if you also had a copy of a production database at hand for examination as well. This book's illustrations are from the W1 Cronus database for V2015.

Access to other NAV manuals, training materials, websites, and experienced associates will obviously be of benefit, but they are not required for the time with this book to be a good investment.

Who this book is for

This book is for:

The business applications software designer/developer who:
Wants to become productive in NAV C/SIDE—C/AL development as quickly as possibleUnderstands business applications and the type of software required to support these applicationsHas significant programming experienceHas access to a copy of NAV 2015 including at least the Designer granules and a standard Cronus demo databaseIs willing to do the exercises to get hands-on experience
The Reseller manager or executive who wants a concise, in depth view of NAV's development environment and toolsetThe technically knowledgeable manager or executive of a firm using NAV that is about to embark on a significant NAV enhancement projectThe technically knowledgeable manager or executive of a firm considering the purchase of NAV as a highly customizable business applications platformThe experienced business analyst or consultant or advanced student of applications software development who wants to learn more about NAV because it is one of the most widely used flexible business application systems available

The reader of this book:

Does not need to be an expert in object-oriented programmingDoes not need previous experience with NAV, C/AL or C/SIDE

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "We can include other contexts through the use of the include directive."

A block of code is set as follows:

CalculateNewDate; "Date Result" := CALCDATE("Date Formula to Test","Reference Date for Calculation");

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "In the Description column, we will put notes for the fields that need properties set later."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.

To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.

Piracy

Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.

Questions

If you have a problem with any aspect of this book, you can contact us at <[email protected]>, and we will do our best to address the problem.

Chapter 1. An Introduction to NAV 2015

 

"All truths are easy to understand once they are discovered; the point is to discover them."

  --Galileo Galilei
 

"Everything really interesting that happens in software projects eventually comes down to people."

  --James Bach

Microsoft Dynamics NAV has one of the largest installed user bases of any enterprise resource planning (ERP) system serving over 100,000 companies and one million plus individual users. The community of supporting organizations, consultants, implementers, and developers continues to grow and prosper. The capabilities of the off-the-shelf product increase with every release. The selection of the add-on products and services expands both in variety and depth.

The release of Microsoft Dynamics NAV 2015 continues its 20 plus year history of continuous product improvement. It provides more user options for access and output formatting. For new installations, NAV 2015 includes tools for rapid implementation. For all installations, it provides enhanced business functionality and more support for ERP computing in the cloud, including integration with Office 365. In addition, a new approach to upgrading that comes with NAV 2015 promises to lower the cost of ownership in the future.

Our goal in this chapter is to gain a big picture understanding of NAV 2015. You will be able to envision how NAV can be used by the managers (or owners) of an organization to help manage activities and the resources, whether the organization is for-profit or not-for-profit. You will also be introduced to the technical side of NAV from a developer's point of view.

In this chapter, we will take a look at NAV 2015, including the following:

A general overview of NAV 2015A technical overview of NAV 2015A hands-on introduction to Client/Server Integrated Development Environment (C/SIDE) development in NAV 2015

NAV 2015 – an ERP system

NAV 2015 is an integrated set of business applications designed to service a wide variety of business operations. Microsoft Dynamics NAV 2015 is an ERP system. An ERP system integrates internal and external data across a variety of functional areas, including manufacturing, accounting, supply chain management, customer relationships, service operations, human resources management, as well as the management of other valued resources and activities. By having many related applications well integrated, a full featured ERP system provides an enter data once, use many ways information processing toolset.

NAV 2015 ERP addresses many functional areas. Some of them are listed as follows:

Basic accounting functions (for example, general ledger, accounts payable, accounts receivable)Order processing and inventory (for example, sales orders, purchase orders, shipping, inventory, receiving)Relationship management (for example, vendors, customers, prospects, employees, contractors)Planning (for example MRP, sales forecasting, production forecasting)Other critical business areas (for example, manufacturing, warehouse management, marketing, cash management, fixed assets)

A good ERP system such as NAV 2015 is modular in design, which simplifies implementation, upgrading, modification, integration with third-party products, and expansion for different types of clients. All the modules in the system share a common database and, where appropriate, common data.

The groupings of individual NAV 2015 functions based on the department's menu structure is shown in the following figure. It is supplemented by information from Microsoft marketing materials and some of the groupings are a bit arbitrary. The important thing is to understand the overall components that make up the NAV 2015 ERP system.

NAV 2015 has two quite different styles of user interface (UI). One UI, the Development Environment, targets developers. The other UI style, the RoleTailored Client, targets end users. In NAV 2015, there are three instances of the RoleTailored Client – for Windows, for Web interaction, and for tablet use. The example images in the following module descriptions are from the RoleTailored Client Departments menu in the Windows Client.

Financial Management

Financial Management is the foundation of any ERP system. No matter what the business is, the money must be kept flowing, and the flow of money must be tracked. The tools which help to manage the capital resources of the business are part of NAV 2015's Financial Management module. These include all or part of the following application functions:

General Ledger: Manages overall finances of the firmCash Management and Banking: Manages inventory of moneyAccounts Receivable: Tracks the incoming revenueAccounts Payable: Tracks the outgoing fundsAnalytical Accounting: Analyzes the various flows of fundsInventory and Fixed Assets: Manages the inventories of goods and equipmentMulti-Currency and Multi-Language: Supports international business activities

The Financial Management section of the Departments menu looks as follows:

Manufacturing

NAV 2015 Manufacturing is general purpose enough to be appropriate for Make to Stock (MTS), Make to Order (MTO), Assemble to Order (ATO), as well as various subsets and combinations of those. Although off-the-shelf NAV is not particularly suitable for most process manufacturing and some of the very high volume assembly line operations, there are third-party add-on and add-in enhancements available for these applications. As with most of the NAV application functions, Manufacturing can be implemented to be used in a basic mode or as a full featured system.

NAV Manufacturing includes the following functions:

Product Design (BOMs and Routings): Manages the structure of product components and the flow of manufacturing processesCapacity and supply requirements planning: Tracks the intangible and tangible manufacturing resourcesProduction scheduling (infinite and finite): Execution and tracking quantities and costs, plus tracking the planned use of manufacturing resources, both on an unconstrained and constrained basis

The Manufacturing section of the Departments menu looks as follows:

Supply Chain Management

Obviously, some of the functions categorized as part of NAV 2015 Supply Chain Management (SCM), for example sales and purchasing, are actively used in almost every NAV implementation. The supply chain applications in NAV include all or parts of the following applications:

Sales order processing and pricing: Supports the heart of every businessPurchasing (including requisitions): Includes planning, entering, pricing, and processing purchase ordersInventory Management: Manages inventories of goods and materialsWarehouse management including receiving and shipping: Manages the receipt, storage, retrieval, and shipment of material and goods in warehouses

Even though we might consider Assembly to be part of Manufacturing, the standard NAV 2015 Departments menu includes it in the Warehouse section. The Supply Chain Management section of the Departments menu looks as follows:

As a whole, these functions constitute the base components of a system appropriate for distribution operations, including those which operate on an Assemble to Order basis.

Business Intelligence and reporting

Although Microsoft marketing materials identify Business Intelligence (BI) and reporting as though it were a separate module within NAV, it's difficult to physically identify it as such. Most of the components used for BI and reporting purposes are appropriately scattered throughout various application areas. In the words of one Microsoft document, "Business Intelligence is a strategy, not a product." Functions within NAV that support a BI strategy include the following:

Standard Reports: These are distributed ready-to-use by end usersAccount schedules and analysis reports: These are a specialized report writer for General Ledger dataQuery, XMLport, and Report Designers: These are developer tools to support the creation of a wide variety of report formats, charts, XML, and CSV filesAnalysis by dimensions: This is a capability embedded in many of the other toolsInterfaces into Microsoft Office and Microsoft Office 365 including Excel: These support the communications of data either into NAV or out of NAVRDLC report viewer: This provides the ability to present NAV data in a variety of textual and graphic formats; includes user interactive capabilitiesInterface capabilities such as DotNet Interoperability and Web Services: These are the technologies to support interfaces between NAV 2015 and external software products

Relationship Management

NAV's Relationship Management (RM) functionality is definitely the little sister (or, if you prefer, little brother) of the fully featured standalone MicrosoftCustomer Relationship Management (CRM) system. The big advantage of the NAV RM is its tight integration with NAV customer and sales data. For those who need the full Microsoft CRM, prior versions of NAV have had a module connecting it to NAV. The same connector has been released for NAV 2015.

Also falling under the heading of CRM is the NAV Service Management (SM) functionality. While the RM component shows up in the menu as part of sales and marketing, the SM component is identified as an independent function in the menu structure.

NAV functions that support RM are as follows:
Marketing campaigns: Plans and manages promotionsCustomer activity tracking: Analyzes customer ordersTo do lists: Manages what is to be done and tracks what has been done
NAV functions that support SM are as follows:
Service contracts: Supports service operationsLabor and part consumption tracking: Tracks the resources consumed by the service businessPlanning and dispatching: Manages service calls

Human Resource management

NAV Human Resources (HR) is a very small module, but relates to a critical component of the business - employees. Basic employee data can be stored and reported via the master table (in fact, one can use HR to manage data about individual contractors in addition to employees). A wide variety of individual employee attributes can be tracked by the use of dimensions fields. NAV functions that support HR are as follows:

Employee tracking: Maintains basic employee description dataSkills inventory: Maintains an inventory of the capabilities of the employeesAbsence tracking: Maintains basic attendance informationEmployee statistics: Tracks government required employee attribute data such as age, gender, length of service, and so on

Project Management

The NAV project management module consists of the jobs functionality supported by the resources functionality. Projects can be short or long term. They can be external (in other words - billable) or internal. This module is often used by third-parties as the base for vertical market add-ons (such as construction or job-oriented manufacturing). This application area includes parts or all of the following functions:

Budgeting and cost tracking: Manages project financesScheduling: Plans project activitiesResource requirements and usage tracking: Manages people and equipmentProject accounting: Tracks the results

Significant changes in NAV 2015

NAV 2015 contains added capabilities in a variety of areas including business functionality, enhanced development tools, a tablet client, more Internet compatibility, and increased integration to other Microsoft products. For information on what was new in NAV 2013 R2, review the MSDN notes at:

http://msdn.microsoft.com/en-us/library/hh173994(v=nav.71).aspxhttp://msdn.microsoft.com/en-us/library/hh174007(v=nav.71).aspx

Some of the mentioned items include Manual Payment Processing, bank reconciliation enhancement, SEPA Debit and Credit handling, Web Client Enhancements, new Windows PowerShell capabilities, a new Help Server, and features to better implement and manage NAV on Windows Azure.

Information on the minimum hardware and software requirements to install and run Microsoft Dynamics NAV 2015 are found in the embedded Developer and IT Pro Help topic System Requirements for Microsoft Dynamics NAV 2015. Following are some of the specific areas where NAV 2015 contains significant changes (this list is representative, not comprehensive).

Application changes

Significant changes to applications include:

Mandatory indicator fields (required data elements)Auto-fill and hidden fieldsDocument emailingManage and create report layouts using Microsoft Word 2013, SQL Server Report Builder (RDLC), or Visual Studio Community EditionSimplified payment reconciliationEncryption functionsReport schedulingData exchange framework for easier implementation

Client enhancements

Significant client enhancements include:

Tablet client for multiple tablet types (iPad, Android, Windows)Enhanced web clientOffice 365 integrationUI elements removal capabilitySimplified user interface optionEnhanced Role Center Cues including color and image options

Development tools

Significant new development tools include:

Enhanced commenting capabilityNon-default property values display bold fontNew Client Application Language (C/AL) commands and functionsNew Development Environment commandsNew Report functions and status default to local statusNew Page field, action, and control propertiesNew Table schema data synchronization optionsWindows PowerShell cmdlets and scripts include comparing and merging objects, caption management, and upgrading SQL server data when NAV table schema is changed

Other areas

Other new areas include:

Major changes in Upgrade concepts and processesDeployment enhancements for Add-ins and .NET FrameworkPowerShell cmdlets for Exporting and Importing data selectivelyLicenses are now version specificRapidStart Services for implementation

A developer's overview of NAV 2015

From the point of view of a developer, NAV 2015 consists of about 4,000 potentially customizable off-the-shelf program objects plus the Integrated Development Environment (the C/SIDE development tools), which allow us to modify existing objects and create new ones.

The NAV 2015 system is an object-based system made up of the seven different object types available in NAV. Strictly speaking, NAV is not a full-featured object-oriented system. A full-featured object-oriented system would allow the definition and creation of new object types, while NAV only allows the creation and modification of instances of the seven predefined object types.

NAV object types

Let's start with basic definitions of the NAV 2015 object types:

Table: Tables define the data structure and also contain the data records.Page: Pages are the way the data is formatted and displayed appropriately for each of the client types and user roles.Report: Reports provide display of the data to the user in hardcopy format, either on screen (preview mode) or via a printing device. Report objects can also update data in processes with or without data display.Codeunit: Codeunits are containers for code utilized by other objects. They are always structured in code segments called functions.Query: Queries support extracting data from one or more tables, making calculations, and outputting in the form of a new data structure. They can output data directly to charts, Excel, XML, and OData.XMLport: XMLports allow the importing and exporting of data to/from external files. The external file structure can be in XML or other file formats.MenuSuite: MenuSuites contain menu entries which refer to other types of objects. MenuSuites are different from other objects. Menus cannot contain any code or logic. MenuSuite entries display in the Departments page in the Navigation Pane in the Windows Client only. In the Web and Tablet clients, these are used to support Search functions.

The C/SIDE integrated development environment

NAV 2015 includes an extensive set of software development tools. The NAV development tools are accessed through C/SIDE which runs within the Development Environment client. This environment and its complement of tools are usually collectively referred to as C/SIDE. C/SIDE includes the C/AL compiler. All NAV programming uses C/AL. No NAV development can be done without using C/SIDE, but other tools are used to complement C/AL code (such as Visual Studio, .NET, COM controls, and OCX controls among others).