M02C08 - Technology Overview
M02C08 - Technology Overview
Introduction
Microsoft Dynamics® NAV 2009 is designed from a two- to three-tier
architecture and offers numerous programming features that provide for effective
customization of code and execution of functions.
The architectural basics of Microsoft Dynamics NAV 2009 and the structure of
the programming code are important concepts for all users. It is particularly
useful when one is involved in the configuration and maintenance of Microsoft
Dynamics NAV 2009.
8-1
Introduction to Microsoft Dynamics® NAV 2009
The architecture has also been extended to support a three-tier model, with:
If you are running the Database Server for Microsoft Dynamics NAV Classic,
move your system to the SQL Server Option to migrate to the three-tier
architecture with the RoleTailored client and Microsoft Dynamics NAV Server.
8-2
Chapter 8: Technology Overview
To support this user interface, Microsoft Dynamics NAV displays data in the
RoleTailored client in a model-driven way and relies on metadata to display this
data. Also, business logic code is no longer run on the client. Instead, requests to
run C/AL code are sent to the middle tier.
The new RoleTailored client now displays data in pages, and you design these
pages in Page Designer. Page Designer allows you to transform your existing
forms into pages and then adjust them further. Additionally, the page elements
are listed in their relative display order, and the properties that are associated
with each element are used to specify special presentation features but without
any size or position specifications. This will allow a page to be consumed by
different types of clients without being constrained by layout limitations and each
client can render the page in a different way.
Pages provide a flexible foundation for building many different types of display
objects. The Classic client contains card forms and list forms. In the RoleTailored
client, there are equivalent page types and several new ones that help you build
pages with special layouts. Pages also contain new types of controls that enable
advanced representation of system data and shortcuts to system features.
In the RoleTailored client, the navigation layer displays lists of work areas, called
list places. Examples of list places include customers and orders. By default, one
list replaces another list in the same window. You can also launch a list or card
page in its own window. In addition to list places, the navigation layer shows the
Role Center and Departments place.
You then open an entity, such as a specific customer or sales order, in a separate
window to view or edit it. These windows are called task pages, which also fall
into subcategories with different layouts, such as cards, documents, and journals.
8-3
Introduction to Microsoft Dynamics® NAV 2009
The RoleTailored client also has a small category of dialog boxes that are
different from task pages. These dialog boxes differ in layout and do not
represent an entity. Instead, they prompt the user for parameters for further
processing.
A key difference between the two-tier architecture with the Classic client and
three-tier architecture with the RoleTailored client is that business logic runs on
Microsoft Dynamics NAV Server instead of the client in the three-tier
architecture. A simple example is the FILE.CREATE function. In previous
versions of Microsoft Dynamics NAV and in the Classic client, when code such
as this code is run, files are created on the client. With the RoleTailored client
and Microsoft Dynamics NAV Server, the files are created on the service itself.
If the file is meant for a user, then you must take advantage of new C/AL file
functions that enable the file to download to the client computer.
The new architecture provides greater scalability. You can install multiple
machines that are running Microsoft Dynamics NAV Server to provide access
the same database and enable you to balance your system by dedicating different
services to particular application areas or to different clients.
8-4
Chapter 8: Technology Overview
Web services facilitate the highly dynamic data interchange that is required in
business transactions. Standardized integration technologies, such as Web
services, bring value to businesses by breaking down data silos that are created
by proprietary integration options. These proprietary integration technologies
make it difficult to get information in and out of the different systems.
Microsoft Dynamics NAV Web services can be used by customers and partners
who want to use business logic or use a standard interface to access data from
outside Microsoft Dynamics NAV. You can use most major software
development environments, such as Microsoft® Visual Studio® 2005, to build
applications that use Web services. Furthermore, because Web services are XML
based, you can also build Web services across platforms and programming
languages.
8-5
Introduction to Microsoft Dynamics® NAV 2009
• The simplest Web service types are developed using the page object.
Microsoft Dynamics NAV constructs a default Web service with a
fixed set of methods. In general, it corresponds to general data
access, such as get and set individual values or retrieve and update
lists of values.
• Another Web service type involves including codeunits and the
functions from those codeunits in the Web service.
• The last type of Web service includes the ability to pass complex
data types by using an XMLport object as a parameter in a codeunit
function.
The way in which Microsoft Dynamics NAV integrates Web services saves you
from the complexity of manually setting up Web service frameworks, such as
managing the WSDL descriptions. To publish any type of Microsoft Dynamics
NAV Web service (page or codeunit), add it to the Web Service table.
Pages and codeunits that are added to the Web Service table in Microsoft
Dynamics NAV and are published are immediately available for Web service
requests over the network. Consumers of these Web services, which are systems
integrating with Microsoft Dynamics NAV, only need to know the network name
(or address) of the computer that is running Microsoft Dynamics NAV Server
and the names given to the individual pages and codeunits. For example, if a
computer that is running Microsoft Dynamics NAV Server is named
NAV_Server1, the MyCustomer Web service is available at the following URL:
http://NAV_Server1/NavisionServer/CRONUS_International_Ltd/Page/MyCusto
mer.navws
Microsoft Dynamics NAV manages Web service requests in the same way as it
handles requests from end users. Additionally, it manages the following in the
same way as requests from a Microsoft Dynamics NAV Client:
This ensures that the integrity of the Microsoft Dynamics NAV data is not
compromised through the use of Web services. It also means that you do not
have to replicate code that validates data or invokes business logic when you
build systems that use the Web services provided by Microsoft Dynamics NAV.
8-6
Chapter 8: Technology Overview
Note that when writing code for Web services, one must avoid using any end-
user confirmation dialog boxes or message boxes. The code for Web services
cannot interact with the client that called the code, so it cannot respond to dialog
box or other client interaction requests. Running this code causes an exception to
be thrown. The exception can be caught and handled, but the Web service task
will not complete.
Development Enhancements
In Microsoft Dynamics NAV 2009, the development environment is the same as
in earlier versions. As a result, you do not need to spend time learning a new tool
set and you can continue to use Object Designer to develop your solutions. Even
new development environment features, such as Page Designer, are still accessed
from Object Designer in the Classic client.
Know how objects work in the Classic client and the Role Tailored client.
8-7
Introduction to Microsoft Dynamics® NAV 2009
Page Designer
The RoleTailored client displays data in pages that you design with Page
Designer. Microsoft Dynamics NAV 2009 comes with the following common
types:
• Type 1
• Type 2
• Type 3
• Type 4
8-8
Chapter 8: Technology Overview
• List – this page type is the equivalent to the list form in the Classic
client. A list page also includes an Action Pane at the top for
promoted frequent commands, a filter pane in the top section of the
page, and a FactBox pane to the right.
• Departments – this is a system-generated page type. Define the
content of the application with the MenuSuite, and the system
generates department pages based on that.
8-9
Introduction to Microsoft Dynamics® NAV 2009
• Confirmation dialog boxes – pages that ask users for input for
further processing by posing a question. Generally, the page includes
a details section with information relevant to the decision.
• Request forms – pages with one or more FastTabs, each containing
a filter pane to filter a specific type of entity. In addition, the page
can contain a FastTab at the top with user options and preferences
for how the processing must be done. These pages are auto generated
based on the definitions in the reports and batch jobs.
Reports
Reports for the RoleTailored client are based on the SQL Server Reporting
Services format and introduce improvements over the existing reporting engine
in C/SIDE. Features of the new reports include:
The extra information that the RoleTailored client needs is stored in the report
definition language (RDL) format and in extra properties in the report object.
RDL is an SQL Server Reporting standard format for reports. There are a number
of available report editors, such as Microsoft Visual Web Developer™ Express
Edition, which is available as a free download.
To create a report for the RoleTailored client, define the data items for the report
and then export the report to an SQL Server Reporting Services project in Visual
Studio. Use SQL Server Reporting Services to design the layout of the report and
any post processing, such as grouping and totaling. Additionally, you can migrate
existing reports from previous versions of Microsoft Dynamics NAV or from the
Classic client and design new reports in the same way.
Some properties from Classic reports are not supported in the new architecture.
In general, these properties deal with report layout, totaling, grouping, and printer
specifications. When you open Visual Studio, the system ignores these properties
and you need to apply them from the layout designer. This only needs to be done
once, and any changes made to reports in Visual Studio are saved when you save
your report.
8-10
Chapter 8: Technology Overview
The biggest benefit of being able to deploy different clients in one system is that
specific solutions that are not immediately migrated to support the three-tier
architecture can still be used in an organization. Also, any integration solutions
that run on the Microsoft Dynamics NAV application server continue to work.
Object Designer
The Object Designer enables users to develop applications in C/SIDE. From the
Object Designer, they can run an application object or start an application object
designer (for example, the Form Designer).
8-11
Introduction to Microsoft Dynamics® NAV 2009
• Tables
• Forms
• Reports
• Dataports
• XMLports
• Codeunits
• MenuSuite
• Pages
Limiting developers to using these eight objects tends to make their work faster
and more efficient. The biggest benefit from this limitation is stability; it is fairly
difficult to create a severe bug in C/SIDE.
NOTE: For more information about the Object Designer, refer to the "C/SIDE
Introduction in Microsoft Dynamics® NAV 2009" course.
To open the Object Designer, click Tools > Object Designer; the Object
Designer window appears.
8-12
Chapter 8: Technology Overview
Application Objects
An object is a self-contained module of data and its associated processing.
All objects in C/SIDE are assigned a number for identification purposes. Note the
following object descriptions:
Tables
All information in the database is stored in tables. Each table contains one kind
of information, such as journal lines, posted entries, or basic information.
• Normal
• System
• Temporary
• Virtual
Normal tables display information that the user can work with. The Customer
table is an example of a normal table. System tables are tables that the system
creates automatically. The DBMS uses the system tables to manage, among other
things, system security and permissions. The User table is an example of a
system table.
Temporary tables act as buffers for table data in your C/AL programs.
Temporary tables are similar to normal database tables, except a temporary table
is not stored in the database but is held in the workstation memory until the table
is closed.
Virtual tables contain information that the system provides. The information that
these tables contain cannot be changed. The system computes virtual tables at
runtime. The Date and Session tables are examples of virtual tables.
Forms
Forms are used to enter and display data. For example, you can use a form to
enter information about new customers or to update and review information
about existing customers. The Sales Order window is an example of a typical
form.
8-13
Introduction to Microsoft Dynamics® NAV 2009
Reports
Reports are used to print information from a database, structure and summarize
information, and print documents, such as invoices. You can also use reports to
process data without printing anything.
You can use the Report Designer to customize and modify existing reports. To do
so, click Report > New in the Object Designer; the New Report window
appears.
FIGURE 8.3 THE NEW REPORT WINDOW IS THE FIRST STEP OF THE
REPORT DESIGNER WIZARD.
The report wizard guides you through the design of the report.
Dataports
A dataport is an object type that is used to import data from and export data to
external text files, such as comma-separated files.
XMLports
Codeunits
MenuSuite
The MenuSuite object contains the menus that are displayed in the Navigation
Pane and in the Navigation Pane Designer. Each menu contains content for a
specific departmental area, such as Finance or Manufacturing.
8-14
Chapter 8: Technology Overview
A dataport is an object type used to import data from and export data to external
text files, such as comma-separated files.
XMLports
Codeunits
MenuSuite
The MenuSuite object contains the menus that are displayed in the Navigation
Pane and in the Navigation Pane Designer. Each menu contains content for a
specific departmental area, such as Finance or Manufacturing.
Special Features
Microsoft Dynamics NAV fulfills the requirements of a business management
solution by supplying tools for entering and managing information and always
satisfying the current accounting laws. Microsoft Dynamics NAV also contains
some special facilities that help you develop business applications.
8-15
Introduction to Microsoft Dynamics® NAV 2009
Database Features
Microsoft Dynamics NAV has two database server options:
The two server options offer the features shown in the following table.
Version Management
Version management builds on a principle that ensures that a user always starts a
task with the latest updated complete version of the data. The user can work with
this version of the data, change it, and add new data. After this, the new data
becomes part of a new version of the database.
8-16
Chapter 8: Technology Overview
Optimistic Concurrency
Microsoft Dynamics NAV uses a technique called optimistic concurrency to
allow multiple users access to the same records at the same time.
• Fields
• Records
• Tables
• Companies
Fields
A field is the smallest logical structure used in the C/SIDE database. A field is
used to hold a single piece of information, such as a name like John or an amount
like 2,352.00. Any particular field can only contain information of one specific
data type. The C/SIDE database system distinguishes among 17 different types of
data.
Records
Tables
8-17
Introduction to Microsoft Dynamics® NAV 2009
Companies
Multilanguage Functionality
The multilanguage functionality in Microsoft Dynamics NAV helps your
employees work more efficiently. You can switch to virtually any language at
any time. Every employee can work in the language of his or her choice,
allowing your organization to respond quickly and efficiently to international
business opportunities.
Microsoft Dynamics NAV users can work in the language of their choice. For
example, a Swiss user can run his or her version of Microsoft Dynamics NAV in
German, French, or Italian. However, the local functionality is still Swiss. If a
user prefers French, but wants to send a report to an Italian colleague, he or she
can do so in Italian. This means that, for example, French and Italian colleagues
can work side by side on the same database or even share a workstation.
You can also change languages simply and quickly; you do not have to close
down the application and log on again just to switch languages.
With Microsoft Dynamics NAV, your customer service improves because you
can do business in your customer's preferred language. For example, if a Polish
customer wants invoices in his or her native language, you can print the invoices
in Polish from your Microsoft Dynamics NAV application. Therefore,
communication becomes more efficient with both existing and potential
customers and partners around the globe.
Language Layers
A language must be present as a granule in the license file for a user to select it
from the Tools menu. The application must also be translated to that language so
that you can import it into the database as a text file or a language module in
either of the following ways:
• Export all text strings and translate them in a translation tool, such as
the Microsoft Localization Studio.
• Enter the translation of the text strings directly in the multilanguage
editor
8-18
Chapter 8: Technology Overview
Follow these steps to translate the (company) Name field into Danish.
In an installation with the Danish language layer imported, this particular Name
field now includes the new translation.
8-19
Introduction to Microsoft Dynamics® NAV 2009
In Microsoft Dynamics NAV, the code base is English (United States). This
means that the Name property of, for example, an object must always be English
(United States).
• Object names
• Field names
• Function and variable names
• Comments
• Option strings
• Control names
8-20
Chapter 8: Technology Overview
Summary
The most important technology aspects of Microsoft Dynamics NAV 2009 in
relation to the previous versions have been introduced with the purpose of
providing new partner roles or users with basic knowledge of what is behind the
UI and architecture .
8-21
Introduction to Microsoft Dynamics® NAV 2009
4. Which of the following are types of tables in C/SIDE? (Select all that apply)
( ) Virtual
( ) Data
( ) Temporary
( ) System
5. What is a codeunit?
8-22
Chapter 8: Technology Overview
8-23
Introduction to Microsoft Dynamics® NAV 2009
1.
2.
3.
8-24
Chapter 8: Technology Overview
Solutions
Test Your Knowledge
1. Which server provides the business logic layer?
( ) SQL Server
(•) Microsoft Dynamics NAV Server
MODEL ANSWER:
4. Which of the following are types of tables in C/SIDE? (Select all that apply)
(√) Virtual
( ) Data
(√) Temporary
(√) System
5. What is a codeunit?
8-25
Introduction to Microsoft Dynamics® NAV 2009
8-26