Chapter 2: Technology Page 43 CHAPTER 2: TECHNOLOGY ˇ Overview ˇ C/SIDE Development Environment ˇ Server Options ˇ Navision Application Server ˇ Multilanguage Functionality Overview This chapter covers the more technical aspects of using Microsoft Business Solutions-Navision These aspects, the Development Environment; Server Options; Application Server; and Multilanguage functionality; are covered in more depth in the Navision Installation and Configuration manual. Microsoft Navision Introduction Page 44 C/SIDE Development Environment The development environment in Microsoft Navision is called C/SIDE (Client/Server Integrated Development Environment). The major benefits of C/SIDE are: ˇ All application areas for Microsoft Navision are developed in C/SIDE. ˇ It contains all the tools to build on and customize the application. ˇ It includes the executables in the program subdirectory on the hard disk. ˇ It contains the code needed to interpret the application objects, development system tools (editors, debugger, and so on), the database management system (DBMS) and the operating system interface. C/SIDE consists of three central systems: ˇ Fourth-generation language (4GL) development system ˇ Database management system ˇ Special database functions Object Designer The Object Designer enables you to develop applications in C/SIDE. From the Object Designer, you can run an application object or start an application object designer, for example, the Form Designer. You use the application object designers to modify the design of an existing application object or to create a new application object. Note that special permission is required to use this tool. There are seven types of application objects: ˇ Tables ˇ Forms ˇ Reports ˇ Dataports ˇ XMLports ˇ Codeunits ˇ MenuSuite Chapter 2: Technology Page 45 To open the Object Designer, click TOOLSOBJECT DESIGNER. The Object Designer window appears: Application Objects C/SIDE uses object-oriented programming technology. 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. ˇ Objects 0-9,999 have been developed by Microsoft Navision. ˇ Objects 10,000-49,999 have been developed by Microsoft Navision Territory Representatives (NTRs). ˇ Objects 50,000-99,999 are available for Microsoft Navision Solution Centers (NSCs). ˇ Objects 1,000,000- 98,999,999 are available for add-on products. Tables All information in the database is stored in tables. Each table contains one kind of information, such as journal lines, posted entries and basic information. There are four different kinds of tables: ˇ 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. Microsoft Navision Introduction Page 46 ˇ Temporary tables act as buffers for table data in your C/AL programs. You can do almost anything with a temporary table that you can do with a normal database table. A temporary table is not stored in the database but is held in memory on your workstation until you close the table. ˇ Virtual tables contain information that the system provides. You cannot change the information that these tables contain. The system computes virtual tables at runtime. The Date and Session tables are examples of such 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. Reports Reports are used to print information from a database. They can be used to structure and summarize information, and they can be used to print documents, such as invoices. They can also be used to process data without printing anything. You can use the Report Designer to customize and modify existing reports. To create a new report, you must open the New Report window from the Object Designer. To do so, click REPORTNEW. The New Report window appears: 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, for example, comma-separated files. Chapter 2: Technology Page 47 XMLports The XMLport object is conceptually related to a dataport; you also use XMLports to import and export data, but in XML format. XMLports make the process of exchanging data in XML between systems more simple and streamlined. Codeunits A codeunit is an object type that contains functions written in C/AL code. 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, for example, Finance or Manufacturing. For more information about the Object Designer, see the manual Application Designer's Guide. C/AL - The Programming Language C/AL is a fourth-generation programming language (4GL) that: ˇ Is used to create functions. ˇ Controls how individual database objects interact. ˇ Includes standard functions for reading, writing and modifying table data. When you program in C/AL, you use statements. There are the following different types of statements: compound statements, conditional statements, repetitive statements, EXIT statements and WITH statements. For more information about C/AL, see the manual C/AL Programming Guide or the Microsoft Navision Programming training material. The Graphical User Interface (GUI) The user interface is designed so that it is easy to use if you are already familiar with Microsoft products. The user interface has many benefits including the facts that many windows can be open at the same time and that the GUI follows the same design principles throughout Microsoft Navision. Special Facilities in Microsoft Navision Microsoft Navision fulfills the requirements of a business management solution by supplying tools for entering and managing information and always satisfying the current accounting laws. Microsoft Navision also contains some very special facilities, which are listed below. Becoming familiar with these facilities will help you to fully utilize the program in your daily work. Microsoft Navision Introduction Page 48 Microsoft Navision provides: ˇ Direct access from one table to another ˇ Easy data entry ˇ Information in multiple dimensions ˇ Automatic calculation of amounts and quantities ˇ Information on what is included in a calculated amount ˇ Filtering of information ˇ Sorting with one or more keys ˇ Pictures of items or a company logo on the screen together with the associated information ˇ Connections to mail merge, spreadsheet applications and presentation graphics programs Server Options Microsoft Navision has two database options: ˇ Navision Database Server (scalable up to 128 GB) ˇ The Microsoft SQL Server Option for Navision based on Microsoft SQL Server (scalable beyond 128 GB) Database Features Here are some of the features of the two database server options for Microsoft Navision: Navision Database Server Microsoft SQL Server Option Relational Relational Version Management Version Management Commit Rollback Commit Rollback SIFT Technology SIFT Technology Client Server Client Server Optimistic Concurrency Transaction Logs Database Level Security Record Level Security Chapter 2: Technology Page 49 Some of these features are described briefly below. For more information about the database features, see the manual Application Designer's Guide. Sum-Indexed Flow Technology - SIFT SIFT is the basis of FlowFields. It is a feature in the database that allows you to have sums calculated very quickly by maintaining SumIndexes. There are columns in which the figures in SumIndexFields are constantly being summed. When you want a sum calculated, the program does not have to calculate the sum by going through a large number of entries in the database. The sum is calculated quickly when the program subtracts one figure in a SumIndex from another. The updated sum can be seen in a FlowField every time you open a window that contains a FlowField, or when you set a filter on a Balance field. 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 will become part of a new version of the database. Optimistic Concurrency Microsoft Navision uses a technique called optimistic concurrency. With optimistic concurrency, you always have access to the record you want to work with. Thus, if two or more users try to access the same data in the database at the same time, they will all be allowed to do so. Database Level Security This means the access that the users have to the data in the database can be defined in terms of the tables that they have access to. Record Level Security This means the access that the users have to the data in the database can be defined in terms of the records that they have access to. The Logical Structures in Your Database The database is organized in units of fields, records, tables and companies. This section describes the basic principles of these structures. 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 between 17 different types of data. Microsoft Navision Introduction Page 50 Fields are assembled into a structure called a record. On its own, a field is not very useful, as it can hold only a limited amount of information. By assembling these small pieces of information into records, we get a much more flexible "information-holder" that is better organized, keeping fields together that belong together. Records A record is a logical structure assembled from an arbitrary number of fields. It is used to store a single entry in the database. The fields in a record are used to store information about important properties of the entry. Records are organized in tables. An example of a record is a number of fields with information about a single customer. Tables A table can be thought of as an N by M matrix. Each of the N rows describes a record and each of the M columns describes a field in the record. An example of a table is the Customer table, which contains a record for each customer. Each company in a database contains a number of tables. Companies A company is the largest logical structure used in a C/SIDE database. A company may be considered to be a subdatabase; its primary use is to separate and group large portions of data in a database. A company can contain private tables as well as tables shared with other companies. Navision Application Server Navision Application Server is a middle-tier server, which executes business logic without user intervention. With Navision Application Server, it is possible to communicate with external services. Navision Application Server acts as a client towards a database server and can act as a server for other services. When you start Navision Application Server, it opens a predefined database and executes C/AL code in a predefined codeunit. To understand more about how Navision Application Server communicates with external services, see the online Help project "Development Guide for Communication Components." No User Interface Navision Application Server runs without displaying anything on a screen and therefore requires no user interaction. This means that error messages cannot be displayed to the user. Instead, error messages are logged in the NT event log. The user can, however, interact with Navision Application Server through the Navision Application Server Manager. Chapter 2: Technology Page 51 Navision Application Server Manager You can install Navision Application Server as a service and manage it through the Navision Application Server Manager, which is a Microsoft Management Console snap-in. With the Navision Application Server Manager, you can see which Navision Application Server properties you have set. You can also add and reconfigure Navision Application Server. Navision Application Server Versus Navision Server It is important to distinguish between Navision Application Server and Navision Server, the latter being a database server. For more information about Navision Server, see the "Navision Installation and Configuration" manual. Running More Than One Application Server It is possible to run more than one Navision Application Server with the same database or with different databases, but Windows Installer can only install one Navision Application Server on each computer. This is because Windows Installer checks for existing Navision Application Server installations. To install more than one Navision Application Server, you must copy all files that belong to the previously installed Navision Application Server to another target folder. Which files to copy depends on whether you are using Navision Database Server or Microsoft SQL Server. For more information about Navision Application Server, see the "Navision Installation and Configuration" manual. Multilanguage Functionality The multilanguage functionality in Microsoft Navision helps your employees work more efficiently. You can switch to virtually any language on the fly. Every employee can work in the language of his or her choice, allowing your organization to respond quickly and efficiently to international business opportunities. Speak Your Employees' Language Microsoft Navision helps employees become more efficient by eliminating language barriers among your multilingual workforce. Users of Microsoft Navision can work in the language of their choice. For example, a Swiss user can run their version of Microsoft Navision in German, French or Italian. The local functionality is, however, still Swiss. If the user prefers French, but wants to send a report to an Italian colleague, he 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. Microsoft Navision Introduction Page 52 You can also change languages on the fly; you do not have to close down the application and log on again just to switch languages. The real-time functionality saves you time. It gives you fast access to the information you need to work more efficiently - in your own language. Speak Your Customer's Language With Microsoft Navision, your customer service improves because you can do business in the language preferred by your customer. For example, if a Polish customer wants invoices in his native language, you can easily print the invoices in Polish from your Microsoft Navision application. You can therefore communicate more efficiently with both existing and potential customers and partners around the globe. Adding a Language Layer In order to let the user select a certain language from the Tools menu, that language must be present as a granule in the license file. The application must also be translated to that language, so that you can import it into the database either as a text file or as a language module. Either you can export all text strings and translate them in a translation tool, such as the Microsoft Navision Localization Workbench, or you can enter the translation of the text strings directly in the Multilanguage Editor. Multilanguage Editor You access the Multilanguage Editor window by selecting an object from the Object Designer, clicking on Design and then clicking VIEWPROPERTIES to open the Properties window and clicking the AssistButton in the CaptionML property. In the Multilanguage Editor window, you can click the AssistButton in the Language field and select your language from the list that appears, or you may simply enter the three-letter abbreviation and move the cursor to the Value field. The system then replaces the abbreviation with the full language description. In the Value field, enter the correct term for this object in this language. To save your entry, you must click OK before exiting the window. Developing Multilanguage-Enabled Applications When you develop in a multilanguage-enabled environment, it is important to remember the following three rules of thumb: ˇ Everything has a Name property in (United States) English ˇ Text constants replace text strings, such as error messages ˇ Everything that the user will see must have a Caption property Chapter 2: Technology Page 53 Before you start working in a multilanguage-enabled database, you should set the application language to (United States) English. You do this by clicking TOOLSLANGUAGE and selecting English (United States): In Microsoft Navision, the code base is English (United States). This means that the Name property of, for example, an object must always be English (United States). The code base in English (United States) includes, among other things, the following: ˇ Object names ˇ Field names ˇ Function and variable names ˇ Comments ˇ Option strings ˇ Control names For more information about how to develop multilanguage-enabled applications, see the "Application Designer's Guide" manual. Microsoft Navision Introduction Page 54 Test Your Knowledge - Technology 1. Name the seven types of objects in C/SIDE. 2. Name the four types of tables in C/SIDE. 3. What is a codeunit? 4. Explain C/AL. 5. What are the special facilities in Microsoft Navision? 6. Microsoft Navision can be installed on which database servers? 7. Explain SIFT. 8. Define/describe the following and the relationship between them: a record, a field, a table, a company. 9. Describe the features of Navision Application Server. 10. Describe the multilanguage features in Microsoft Navision. Chapter 2: Technology Page 55 Quick Interaction: Lessons Learned Take a moment to write down three Key Points you have learned from this chapter: 1. 2. 3. Microsoft Navision Introduction Page 56