Programming Microsoft Dynamics NAV 2009 — Save 50%
Using this Microsoft Dynamics NAV book and eBook - develop and maintain high performance applications to meet changing business needs with improved agility and enhanced flexibility.
In this three-part article by David Studebaker, we will take a short tour through NAV 2009. Our path will be along the following trail:
- NAV 2009 from a functional point of view as an ERP system
- What's new in NAV 2009
- Definitions of terms as used in NAV
- The C/SIDE development environment and tools
- A development introduction to the various NAV object types
- Other useful NAV development information
Your goal in this article is to gain a reasonably complete, "big picture" understanding of NAV. When you complete this article, you should be able to communicate to a business manager or owner about the capabilities NAV can provide to help them manage their firm.
A product as complex and flexible as NAV can be considered from several points of view. One can study the NAV application software package as a set of application functions designed to help a business manage information about operations and finances. One can also look at NAV as a stack of building blocks from which to extend or build applications—and the tools with which to do the construction.
In NAV 2009, which has two quite different user interface options available, one must consider how the user interface affects both the application design and the presentation to the user. This requirement overlaps both the application viewpoint and the construction viewpoint.
You should know the different object types that make up a NAV system and the purposes of each. You should also have at least a basic idea of the tools that are available to you, in order to enhance (small changes) or extend (big changes) an NAV system. In the case of NAV, the Integrated Development Environment (IDE) includes essentially all of the tools needed for NAV application development.
Prior versions of NAV were two-tier systems. One of the tiers was the database server, the other tier was the client. As the traditional two-tier NAV Client (now referred to as the Classic Client) is still an integral part of the system, we will cover the aspects of where it must be used for development and support. All development and much of the system administration uses the Classic Client. So, even though our focus is on developing for the Role Tailored Client (aka "the RTC"), many of the images in this article will be of Classic Client displays. In brief, the RTC is for users, and as a developer, you will generally use the Classic Client for your work.
NAV 2009: An ERP system
If you look at NAV 2009 from the point of view of a firm using NAV to help run its business, you will see it as an integrated set of business applications software.
Microsoft Dynamics NAV is generally characterized as an ERP System. ERP stands for Enterprise Resource Planning. An ERP system is a set of integrated application software components designed to track and coordinate a wide variety of business activities, especially those involving products, orders, production and finances. An ERP system will typically include the following:
- 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, and so on)
- Planning (for example MRP, sales forecasting, production forecasting)
- Other critical business areas (for example, manufacturing, warehouse management, fixed assets)
The integration of an ERP system is supported by a common database, by an "enter once, use everywhere" data philosophy, by a modular software design, and with data extraction and analysis tools. The following image is a view of an ERP system from the highest level:
The design of Microsoft Dynamics NAV addresses all the points in the above description and more. The NAV ERP system includes integrated modules covering the breadth of business functions for a wide range of business types. These modules share a common database and, where appropriate, share common data.
In the NAV system, there is a considerable overlap of components across application areas, with individual functions showing up in multiple different "modules". For example, in NAV, Inventory is identified as part of Financial management, but it is also, obviously, an integral part of Manufacturing, Supply Chain, and others.
The particular grouping of individual functions into modules that follows is based on Microsoft marketing materials. Some of these assignments are a bit arbitrary. What's important is for you to obtain a reasonable understanding of the overall set of application components that make up the NAV ERP system. In several of the following groupings, menu screenshots are included as examples. These are from the Role Tailored Client Departments menu screen.
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 included in NAV's Financial Management module. These include all or part of the following application functions:
- General Ledger—managing the overall finances of the firm
- Accounts receivable—tracking the incoming revenue
- Accounts payable—tracking the outgoing funds
- Analytical accounting—analyzing the various flows of funds
- Cash management and banking—managing the inventory of money
- Inventory and fixed assets—managing the inventories of goods and equipment
- Multi-Currency and Multi-Language—supporting international business activities
NAV Manufacturing is general purpose enough to be appropriate for Make to Stock (MTS), Make to Order (MTO), and variations such as Assemble to Order, and so on. While off-the-shelf NAV is not particularly suitable for most process manufacturing and high-volume assembly line operations, there are third party add-on and add-in enhancements available for these. As with most of the NAV application functions, manufacturing can be installed in parts or as a whole, and can be used in a simplistic fashion or in a more sophisticated manner. NAV Manufacturing includes the following functions
- Product design (BOMs and Routings)—managing the structure of product components and the flow of manufacturing processes
- Capacity and supply requirements planning—tracking the intangible and tangible manufacturing resources
- Production scheduling (infinite and finite),execution, and tracking—tracking the planned use manufacturing resources, both on an unconstrained and constrained basis
Supply Chain Management (SCM)
Obviously, some of the functions categorized as part of NAV Supply Chain Management (for example sales, purchasing, and so on) are actively used in almost every NAV implementation. As a whole, these constitute the base components of a system appropriate for a distribution operation. The Supply Chain applications in NAV include parts of the following applications:
- Sales order processing and pricing—supporting the heart of every business—entering, pricing, and processing sales orders
- Purchasing (including Requisitions)—planning, entering, pricing, and processing purchase orders
- Inventory management—managing inventories of goods and materials
- Warehouse management including receiving and shipping—managing the receipt, storage, retrieval, and shipment of material and goods in warehouses
eBook Price: $41.99
Book Price: $69.99
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 that are 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 Business Intelligence strategy include the following:
- Standard Reports—distributed ready-to-use by end users
- Report wizards—tools to create simple reports or foundations for complex reports
- Account schedules and analysis reports—a very specialized report writer for General Ledger data
- Analysis by dimensions—a capability embedded in many of the other tools
- Interfaces into Microsoft Office including Excel—communications of data either into NAV or out of NAV
- SQL server reporting services compatible report viewer—provides the ability to present NAV data in a variety of textual and graphic formats, includes user interactive capabilities
- Interface capabilities such as Automation Controllers and web services—technologies to support interfaces between NAV 2009 and external software products
- NAV Business Analytics—an OLAP cube based data analysis tool option
Relationship Management (RM)
NAV's Relationship Management (RM) functionality is definitely the "little brother" (or, if you prefer, "little sister") to the fully featured standalone Microsoft CRM system. The big advantage of RM is its tight integration with NAV customer and sales data.
Also falling under the heading of Customer Relationship module 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.
- (RM) Marketing campaigns—plan and manage promotions
- (RM) Customer activity tracking—analyze Customer orders
- (RM) To do lists—manage what's to be done and track what's been done
- (SM) Service contracts—support service business operationsM
- (SM) Labor and part consumption tracking—track the resources consumed by the service business
- (SM) Planning and dispatching—managing service calls
Human Resource management
NAV Human Resources (HR) is a small module, but relates to a critical component of the business, the people. Basic employee data can be stored and reported via the master table (in fact, one could use HR to manage data about individual contractors in addition to employees). A wide variety of individual employee attributes can be tracked by use of dimensions fields.
- Employee tracking—maintain basic employee description data
- Skills inventory—inventory of the capabilities of employees
- Absence tracking—maintain basic attendance information
- EEOC statistics—tracking government required employee attribute data
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 (that is billable) or internal. This module is often used by third parties as the base for vertical market add-ons (for example, for construction or job oriented manufacturing). This application area includes parts or all of the following functions:
- Budgeting and cost tracking—managing project finances
- Scheduling—planning project activities
- Resource requirements and usage tracking—managing people and equipment
- Project accounting—tracking the results
Significant changes in NAV 2009
Even though the NAV 2009 release doesn't contain any significant changes in the business application functionality, the changes in the infrastructure are major.
Two-tier versus three-tier
The two-tier (Classic Client) system has all the business logic in the client (first tier) and the database management in the database (second tier). The database can either be the Classic C/SIDE database or a SQL Server database. This is the mode of all NAV releases until Version 2009. The three-tier system, new with NAV 2009, has the Role Tailored Client as the first tier (minimal logic), the NAV Service Tier as the second tier (where all the business logic now resides), and the SQL Server database as the third tier.
Both the two-tier and the three-tier configurations are shown in the following image. In both cases, the database is SQL Server (a stand-alone two-tier configuration could have a Classic NAV database server). The server tier performs the same role in both instances. For the two-tier configuration, the Classic Clients handle authentication, object management, presentation/rending, and the processing of all code, triggers, and validation.
For the three-tier configuration, the Role Tailored Clients are limited to some state tracking, simple data type validation and, of course, all the presentation and rendering for the new user interface. The NAV Service tier (NAV Servers) handles authentication, object management, the processing of all code, triggers and validation, plus offers web services support.
The following image illustrates a possible configuration of the NAV 2009 system. It has both the two-tier and three-tier options running in parallel. The three-tier option has multiple NAV Servers installed for capacity reasons (one NAV Server is projected to handle 40 to 60 users). Finally, the NAV Service tier is providing web services to support Internet-based access to the system from mobile devices.
Role Tailored Client
The new Role Tailored Client (RTC) is quite different in look and feel from the Classic Client. The RTC brings with it a completely new approach to designing and coding for the user interface. As the name implies, the orientation of the new client is to present a user interface that focuses on the specific role of the individual user. We will spend quite a bit of time studying the design and development for the new client.
SSRS-compatible report viewer
The new RTC supports reporting through the use of Visual Studio report designer and a Report Renderer/Viewer that replicates much of the functionality of SQL Server Reporting Services. RTC reports provide a host of new capabilities. RTC reports can be dynamically sorted in review (on-screen) mode, include graphics and expand (detail)/collapse (summary) displays, have drill-down and drill-through capabilities, and generate PDF or .xls (that is, Excel) files.
Web services is a new major feature of the NAV 2009 three-tier implementation. There isn't much to learn within NAV about web services because the implementation design is incredibly simple. Publishing a page or codeunit as a web service only requires a single record entry in the appropriate table.
Web services is very powerful, because it allows us to take advantage of the NAV Service Tier and expose NAV business logic, user authentication, and data access/validation to external processes. It is the new API for any application that has the ability to consume web services provided by another application.
If you have read this article you may be interested to view :
eBook Price: $41.99
Book Price: $69.99
About the Author :
David Studebaker is Chief Technical Officer and a founder of Liberty Grove Software with his partner Karen Studebaker. Liberty Grove Software, a Microsoft Partner, provides development, consulting, training, and upgrade services internationally for Microsoft Dynamics NAV resellers and end user customers.
David has been recognized by Microsoft as a Certified Professional for NAV in all three areas: Development, Applications, and Installation & Configuration. He has been honored by Microsoft as a Lead Certified Microsoft Trainer for NAV.
David just celebrated his first half century of programming, having started programming in 1962. He has been developing in C/AL since 1996. David has been an active participant in each step of computing technology from the first solid state mainframes to today's technology, from binary assembly language coding to today's C/AL and C#.
David's special achievements include his role as co-developer of the first production multi-programmed SPOOLing system in 1967. David has worked on a diverse set of software applications including manufacturing, distribution, retail, engineering, general accounting, association management, professional services billing, distribution/inventory management, freight carriage, data collection and production management, among others. Prior to co-authoring this book, David was the author of Programming Microsoft Dynamics NAV (for the Classic Client) and Programming Microsoft Dynamics NAV 2009 (for the Role Tailored Client).
David has had a wide range of development, consulting, sales and management roles throughout his career. He has been partner or owner and manager of several software development businesses, while always maintaining a hands-on role as a business applications developer.
David has a BS in Mechanical Engineering from Purdue University and an MBA from the University of Chicago. He has been writing for publication since he was an undergraduate. David has been a member of the Association for Computing Machinery since 1963 and was a founding officer of two local chapters of the ACM.