Internship

29
GLOBAL UNIVERSITY Internship Report Microsoft Dynamics NAV Nizar Mneimneh 8/22/2014 All in all, the practical field was a great extension of the theory and skills acquired throughout my studies

Transcript of Internship

Global University

Internship Report

Microsoft Dynamics NAV

Nizar Mneimneh

8/22/2014

All in all, the practical field was a great extension of the theory and skills acquired throughout my studies

Mneimneh, 1

Outline

1. IntroductionThe following report presents a summary of my experience in dealing with an ERP system...2. Enterprise Resource Planning System (ERP)

i. What is an ERP systemii. Example ERP systems

3. Microsoft Dynamics NAVi. Definition of the system

ii. Layers 1. Client2. Server3. Database SQL Server

4. Main Componentsi. Tables

ii. Formsiii. Reportsiv. Codeunitsv. Dataports

5. Object Development 6. Preparation

i. System Trainerii. Business trainers

iii. Courses7. Microsoft Dynamics NAV 2013 Installation and configuration Exam8. Tasks

i. Site based Tasks (on site activities...)ii. System Based Tasks

iii. Object Developmentiv. Error Handlingv. User setup and configuration

vi. System monitoring (replication checkup)9. Conclusion

All in all, the practical field was a great extension of the theory and skills acquired throughout my studies.

Mneimneh, 2

Introduction

I would like to start by expressing my gratitude to the Head of Research Unit at Global

University for his assistance along the way, Dr. Ahmad Hammoud, second, as it is defined an

internship program exposes the students to real life scenario problems by finding them

placements in reputable firms in the field of study where they are supervised by the firm’s

staff, treated as regular employees and taught the work principles of the firm. The firm

assigns tasks to the students and evaluates their overall performance after at least 5 weeks of

work. Students are required to reflect on their training period by submitting a report on the

training program.

Based on the latter, the following report is a reflection on the training period that I spent

working as a Microsoft ERP system administrator and developer at Scope for IT Services

which includes my job description which was concerned with object development, system

administration and maintenance, providing user support, things I have learned, problems that

I faced or that the users ran into, in addition to reporting to my superior all the work

performed along the way. During that period I was able to learn the different aspects of an

ERP system, how it functions, and the different approaches that may affect its cycle; it is a

crucial element that the financial department of a firm fully depends on.

Mneimneh, 3

Enterprise Resource Planning software:

1. Definition

An Enterprise Resource Planning software, or ERP, is one that integrates all

departments and functions across a company into a single system by using a common

database, the value of which is to be able to have only one correct set of data. One of the

challenges that companies face is access to timely and correct information, which is critical in

making appropriate business decisions. In many cases, corporate information is located in

several databases. For example, records about inventory levels may be found in one database,

while customer information may be found in its own separate database. Furthermore, these

databases may be "island systems" (operating independently from each other and having no

integration with other databases).

2. Example

When it comes to an ERP system there are several examples, it’s a huge family that

Microsoft dynamics is a part of, another system serving the same purpose may be a program

called NET SUITE, Sage, or IQMS, in addition to several others each of which may excel in

something, and each comes at a price, a firm may choose one of these programs with respect

to its financial status, or keeping in mind security, or integrity, or availability of its data, and

will choose its financial software accordingly.

Mneimneh, 4

Mneimneh, 5

Microsoft Dynamics NAV

i. Definition

Microsoft dynamics is an enterprise resource planning software that is used to collect,

store, manage, and interpret data from business activities including: product planning, cost

and development, manufacturing or service delivery, marketing and sales, inventory

management, shipping and payment.

This software provides an integrated overview of core business processes, it tracks the

business resources: cash, raw materials, and the production capacity. The applications that

make up the system share data across the various departments (manufacturing, purchasing,

sales, accounting, etc...) that provide data. In general an ERP software system is multi-billion

dollar industry that produces components that support a variety of business functions. This

Microsoft product is a part of the Microsoft dynamics family (CRM, AX, GP, and SL) which

is intended to assist with the financial documentation and analysis of a firm, customer

relationship management, supply chains, analytics and electronic e-commerce for small and

medium-sized enterprises and local subsidiaries of large international Groups. Value-added

resellers (VAR)s can have full access to the business logic source code. The system is known

for being highly customizable and partners have developed a long list of industry specific

configurations to server various vertical markets.

Microsoft dynamics NAV deploys on the windows operating system and Microsoft

SQL server and is developed in the .NET framework, all of which are core Microsoft

platform technologies. This offers customers a tightly integrated stack from infrastructure to

application. The system is deployed on-site or hosted for an additional fee.

Mneimneh, 6

ii. Layers

Microsoft dynamics NAV 2009 is built on a three tiered architecture model that

improves security scalability, and flexibility of Microsoft dynamics NAV. Microsoft

dynamics NAV 2009 supports different client types and multiple configurations. The

Microsoft Dynamics NAV 2009 architecture is a three-tiered architecture that uses three core

components, for every deployment of Microsoft Dynamics NAV 2009 these three

components1 have to be installed once a firm decides to install Microsoft dynamics NAV

2009:

The client tier: a client user interface that provides the front end

(presentation logic layer).

The middle tier or server tier: a multithreaded middle-tier which is

based on the Web Services

The data tier: the SQL Server database Server that provides the data

layer. It is augmented by Microsoft Dynamics NAV 2009 database

components.

Microsoft dynamics NAV 2009 introduces a new layer in the architecture. This additional

layer, or tier, is designed to host and execute all the business logic, whereas in the 5.0 version

the business logic resides at the client layer.

a. The Client TierThe C/Side client is located on the client tier. It consists of an administration component

for administrators and Microsoft Dynamics NAV 4.0/5.0 super users and client access for the

C/Side client user.

Additionally, the client tier has specific connections for data transfer to the server tier

and the database management component. These connections consist of the client, security

approved access to the database components on the server tier, and administration access to

the database management.

The Client Tier Consists of the following components:

The Microsoft Business Framework (which is located at the client’s

end)

1 All role tailored components in an organization have to be of the same version and build of Microsoft dynamics NAV for the software to run properly, also it is noted that the existence of multiple instances of any of the core components in a production environment is allowed.

Mneimneh, 7

Microsoft Windows Forms (the set of classes in the .NET framework

that enables the rapid development of powerful client applications)

The User Interface (UI) (in order to allow the customers to customize

their user experience)

The Data Binder (the layer that transports data, data state, and

notifications about data from the underlying business logic to forms

and controls in the display target client)

The Form builder: requests reading metadata for a form and building a

logical form with data-binding, controls and behavior

UX Controls

b. The Service TierThe Service Tier consists of five main components:

o The Microsoft Dynamics NAV Service.

o The Application Code.

o The metadata provider

o Business Web services

o Navision Class Library (NCL)

The Microsoft Dynamics NAV Service functions as a hub that handles requests coming

from the new clients through the Web services. The Web service is hosted by Internet

Information Services (IIS). This is responsible for authentication (security) and thread

management (performance).

As soon as a request is received and validated, it is passed on to the relevant

component, metadata provider, application, or reporting service for execution. When

execution is complete, the executing component sends a response to the calling client.

Microsoft Dynamics NAV Service:

The Microsoft Dynamics NAV Service represents the started state of the system and

provides an interface between the application and the clients. The service exposes its

functionality as methods on a web service hosted by IIS. Within the Web Service framework,

IIS handles, authentication and thread management. Tracing and logging of starts is also

performed by the NAV Service.

The Business Web Services Components

Mneimneh, 8

The Business Web Services Components provide a platform by which developers can

use the existing NAV development environment to build and customize Web services based

on standard definitions such as SOAP and Windows Services Enhancements (WSE).

Business Web Services functionality includes making use of all related business logic that

accompanies such operations on such objects. This includes (but is not limited to) field

validation, and assignment of identification (ID’s) from number series and other code

associated with the entry and manipulation of data in Navision, such as data modify triggers

like OnModify, OnDelete, etc..

c. The Data TierThe Data Tier is composed of an SQL server hosting the database that the Microsoft

Dynamics NAV uses to store and manipulate its data. This server runs Microsoft Windows

Server 2003 or 2008 which the middle tier interacts with.

Mneimneh, 9

Main Components:

The data in Microsoft Dynamics can be retrieved from the system and manipulated

using objects with the extension .fob, these objects are what the program depends on to reveal

its data whether to the customer, to the CEO of the company, or to the accountant applying

business operations related to his/her work, on the other hand a programmer may be asked to

add a certain functionality to the system that doesn’t exist in the default version, to perform

his task he will need a hosting environment providing the ability to go beyond the currently

available objects of the program, another situation requiring the availability of a certain

feature in the program is when the company decides to export data from the system or the

exact opposite, when it decides to import new data to the system, all of the above situations

require the presence of the previously mentioned (.fob) objects, these objects are: tables,

forms, reports, codeunits, dataports, even though there is more objects these are the most

important ones.

i. Tables: The tables are the actual carriers of the data (g/l accounts, entries, customers,

suppliers, companies, etc ..) these objects should be protected and only authorized personal

should have access to them, the less people that have access there is the better.

ii. Forms: are the mediators that provide information present in the tables and allows

addition and manipulation of data to certain people, these forms are available in three

formats: cards, lists, and card lists which include both types in one form

iii. Reports: can be of two types: process only or data retrieval documents, the first type

acts like a codeunit, it only complies the code written in the report without retrieving any

result to the person running the report (unlike a codeunit a report already has a request form

which a developer could make use of to ask for information, and he doesn’t need to develop it

personally). The other type of reports which is data retrieval has only one objective, to return

information satisfying certain conditions, these conditions may be a filter on one of the fields

the table which the report is retrieving data from or data fields that the developer added to the

request form asking for information he needs for generating the valid output.

iv. Codeunits: are crucial elements that perform certain operations to the system, for

example if the firm opens a new Branch in a certain location and wants to add this branch to

Mneimneh, 10

the system it would probably backup an existing company and restore it to the system with

the new branch name, having that in mind we have to remember that the data will remain

after restoring, thus a certain codeunit would be called to clear the tables of the new company

restored to the system, that is only a tiny example of its functionality. A codeunit doesn’t

have an interface it is strictly composed of the run and preview button for the programmers to

modify its content, however a programmer may develop a certain interface asking for some

information before running the code (an example might be asking for a password to make

sure that the person running the codeunit is authorized to run it).

v. Dataports: are objects that allow importing data to certain tables or exporting them

from tables, this data port may import (or export) information for more than one table, and it

can import only certain fields to the table, an example that I faced was when we had to

change the name of certain G/L accounts (they were plenty), we wouldn’t perform this

change manually off course, because it would take days! Thus what we did was develop a

dataport that only imports the G/L account’s name if the number matches that of the ones

present in the file imported.

Figure 1.0 shows these previously mentioned objects are all present in the object designer which you can reach if you press Shift + F12 or press on Tools then Object designer.

Mneimneh, 11

Object Development:

When it comes to objects (table, form, reports, codeunits, dataports) anything can be

programmed to perform favorable operations, but only if you’re allowed to. To modify the

code of a certain object open the design view of the object then press F9 or the button that

looks like a sun in the toolbar.

if the case is a report there would exist several sections such as : onPreDataItem, On

AfterGet Record, and OnPostDataItem. A dataitem is the table the object depends on,

onpredataitem means before the table is retrieved, on after get record means after one record

from the dataitem is retrieved perform a certain operation, and finally the OnPostDataItem

means after all the records of the dataitem are processed. The language that the developer

uses is called C/AL (client application language) these are called triggers since they are only

run when an event occurs, as explained before, when it comes to dataports each dataitem has

separate triggers, and the same goes for reports. Through C/AL, you can apply business rules

to insure that the data stored in the tables are meaningful and consistent with the way your

customer does business. You can add new data or transfer data from one table to another (for

example, a journal to a ledger). If data from multiple tables need to be combined onto one

report or displayed on one form, the developer will probably need to program this. Another

purpose of C/AL is to control the execution of the various C/SIDE objects. With C/AL you

are able to coordinate them in a way that meets the business needs of your customer. A

developer can declare variables and functions to use within the triggers. Here’s a glance at the

triggers mentioned before:

Mneimneh, 12

Preparationa. System Trainer:

The System trainer was the Head of ERP System Development Department at Scope for

IT Services an Information Technology graduate who has 3 years of experience with the

entire system. The system environment training included the following:

Architecture of the system.

System’s daily cycle.

New user setup on the system.

Security matters concerned with providing users access to different

objects.

Assigning users menus in the navigation pane.

Replication process.

The Consolidation concept including the consolidation company and

the consolidation process of combining data from two separate

companies.

Z reports and statements of daily sales.

Object development.

Guidelines for solving certain user problems.

POS and Store setup including printer and drawer recognition using a

mediator software called OPOS

The Role of a ZUP file

Palm application (used for item transfer, item check price, warehouse

stocktaking)

POS self-ignition process.

b. Accounting Information system:The business trainer was an accountant graduate, with ten years of experience at

different firms, and not long ago she was hired by AICP. The training program was made up

of daily sessions concerning several matters:

The definition of an accounting information system.

The G/L accounts and role of each.

Debiting and crediting an account.

What are fiscal and calendar years.

Mneimneh, 13

Accrual basis accounting vs cash basis accounting.

What are revenues and what are expenses.

Correcting entries and adjusting entries.

Posting entries from journals to the general ledger.

Perpetual system and a periodic one.

Trial balance.

c. Courses:During my work period I attended Info sharing sessions which are related to time

management and understanding core business principles that lead to a profitable product in

the market (for example finding the value as a marketing plan).

d. Microsoft Installation and configuration ExamAs part of the training program I was asked to study for the MB 700 which is Microsoft

Dynamics NAV 2013 Installation and configuration, the exam included many topics

including the steps and operations applied when installing the three tiers and the best way to

optimize usage of the program after 2 weeks of preparation I applied for the exam, as a result

I passed with a score of 724.

Mneimneh, 14

Mneimneh, 15

Tasksa. Site Based Tasks

There were many situations when Remote desktop just wasn’t enough, we had to go on

site to solve the problem, or configure a POS being prepared for usage, or meet with certain

personal in order to gather requirements for developing software for certain departments.

These on-site visits were documented, some of which were:

i. One Site visit to Diwan Company because a POS’s drawer and printer

malfunctioned after changing the drawer and the printer of the computer to

a newer one without installing the driver and configuring it to the system.

The Solution was represented by adding the device to the program’s

hardware profiles and testing it to make sure that it worked properly,

during the maintenance time the POS was put in ‘Out Of Service’ state.

ii. Another visit was because the printer and the drawer were both not

working however this time on another POS, the problem turned out to be

that the program was referencing the wrong device (the one not currently

online). The Solution was to reconfigure the device on the system to

reference the valid and active printer.

iii. A request arrived in an email demanding a pricing setup that assists the

accountants in establishing new prices after receiving a new list of item

prices due to a purchase order, as a result a meeting was set up, me and my

system trainer went down and discussed the current problem they have

with their purchase orders, after 2 hours we reached a settlement and

established common ground regarding the needs to be fulfilled regardless

of the way they will be solved..

iv. A new company was opened in Bikaa region and a POS that is connected

to the financial network was requested, as a result we were asked to set up

the Microsoft Dynamics NAV 2009 on the new computer, after

configuring the system to host a new POS at the server level we went and

configured all the necessary requirements on the POS.

Mneimneh, 16

b. System Based TasksThe System Based tasks were several and they required most of my efforts, since some

were of high priority and at the same time of short timeline, these system based tasks were

made up of the following:

i. Object Development: (Including reports, dataports, Forms and manipulating table fields)

Object development regarding those objects was divided into two categories, either the

modification of an existing object to meet new requirements or establishing a new object to

meet requirements not already satisfied by existing objects. One report was called Cash flow

report, I was asked to modify this report to implement a new feature for exporting its data to

an excel document, the report setup required a week from me to completely finish since it

was my first time in dealing with C/SIDE development environment. Another time was when

a new report was requested that shows the trial balance in addition to that of every vendor

and customer who caused a net movement on the account’s balance. After receiving some

assistance with the main principles to apply when considering data retrieval from a table

called G/L entry table, I started working on the report and was able to finish the setup in 8

days, after that I reported to my superior the update and waited for approval to proceed with

adding the report to the live databases.

ii. Error Handling: As a system administrator one of my main tasks was to provide user support and

assistance in case they face a technical problem related to the program, in some cases the

problem was serious where for example the prices at the level of the head office wasn’t the

same as that at the point of sale, which means that if the prices weren’t modified there could

be loss of money, however, some problems were as simple as ‘Please turn the CAPS-LOCK

button off when write your PASSWORD!’. Here are some situations that I faced:

One Scenario was when I received a phone call telling me that there are

several invoices not present at the Head Office level, this problem was

due to a failure to Regenerate transactions to the Head Office table

(which is applied by a codeunit), after running the code unit manually,

the problem appeared to be that there was an Item present at the POS

level that was no longer available at the Head Office level thus the two

Mneimneh, 17

layers were not fully synchronized since a transaction was referencing a

null object.

Another scenario was when the transactions of a whole day were not

uploaded to the head office server, after locating the problem (manually

applying the replication process) it turned out that the middle server

replicating transactions had shut down and needed to restart the

replication service.

A problem with one employee was that when the employee clicked on a

form another was opened, this error was due to replacing the default

ZUP file which save the default environment of all forms and report

content in such a way that when the client runs the report more than

once he’ll find the required input already there when re-running the

report because of the ZUP file, this ZUP file should never be replaced on

exit, which was the case with this employee as he replaced the ZUP file

by mistake, the solution was to remove this ZUP file and reopen the

program (since the program will make a new ZUP file if there is none

present).

iii. User Setup and Configuration:Every user on the system has a different set of permissions beyond which he/she can

work normally, this permission set may vary from one user to another depending on his or

her work position, when a new user needs to be added to the system there is a special

procedure to be followed:

After receiving the exact information about the user’s access requirements, we are

able to determine the server hosting the database, which in turn is carrying the

company that this user will need to access, we would add a new user using the

SQL Server Management Studio on the target server.

The user now has access to the server but not the Microsoft Dynamics system, to

permit the latter we have to access the database logins and add a new user with the

adequate “Role”.

After adding the user to both Navision and SQL Server we have to assign this user

a menu in the Navigation Pane, to do that we have to first access the Navigation

Pane Designer using Tools then Navigation Pane Designer, when we’re done we

Mneimneh, 18

have to save the changes applied and synchronize the mentioned database user

login.

iv. System Monitoring

As a part of my job, I am responsible for detecting any miscellaneous activity on the

system which includes for example: replication server going offline, a POS unavailable on

the system, also we always check and make sure that the replication process is working well

and no jobs running returned any error, which is why every day I connect remotely to the

servers to make sure that they are connected and then I check on the jobs running on each

server to find any errors that might have occurred.

Conclusion

Finally, the period that I spent working gave me loads of experience and knowledge,

one of the most important one that I wasn’t very good at was dealing with people and having

enough patience to deliver the message that I want and at the same time finding the proper

way to communicate with them to understand the issue they’re dealing with, another one is

the experience that I’ve gained in the business field regarding the rules and regulations of

both the law and the program itself, in addition to the Client/Application language that is used

to develop objects for the program. All in all, the practical field was a great extension to the

theory and skills acquired throughout my studies; I would like to thank the administration at

the financial department at AICP and a special thank you to my system trainer for their

tolerance and assistance throughout my working hours; I hope that this experience and

knowledge will prosper in the near future to provide me with newer and greater opportunities.

Mneimneh, 19

Contents

Introduction..........................................................................................................................................2

Enterprise Resource Planning software:..............................................................................................3

1. Definition...................................................................................................................................3

2. Example.....................................................................................................................................3

Microsoft Dynamics NAV......................................................................................................................4

i. Definition...................................................................................................................................4

ii. Layers.........................................................................................................................................5

a. The Client Tier........................................................................................................................5

b. The Service Tier......................................................................................................................6

c. The Data Tier..........................................................................................................................7

Object Development:.....................................................................................................................10

Preparation.........................................................................................................................................11

a. System Trainer:........................................................................................................................11

b. Accounting Information system:..............................................................................................11

c. Courses:...................................................................................................................................12

d. Microsoft Installation and configuration Exam........................................................................12

Tasks....................................................................................................................................................14

a. Site Based Tasks.......................................................................................................................14

b. System Based Tasks................................................................................................................15

i. Object Development:...........................................................................................................15

ii. Error Handling:.....................................................................................................................15

iii. User Setup and Configuration:.............................................................................................16

iv. System Monitoring..............................................................................................................17

Conclusion...........................................................................................................................................17