Home
Products
Articles
Resources
Contact Us
Site Map
Add URL

 

 

 

 

 

 

Navision Database access via CODBC WebServiceASP.NET Application


 

hard drive data recovery software


Bring your dead PC back to life!

Try The Hard Drive Mechanic TODAY! The Hard Drive Mechanic is the best hard drive data recovery software which has been making people like you an expert just long enough to fix your crashed PC.
Corrupted Partition 
Damaged FAT
Boot Sector not Found
Invalid Drive Specification
Disk Boot Failure
Windows 95, 98, Me, NT, XP and 2000
FAT32 and NTFS

CLICK HERE for more information...


Navision Database access via CODBC WebServiceASP.NET Application
Boris Makushkin

Navision (former Navision Attain) together with Microsoft Great Plains, Axapta, Solomon, Microsoft CRM and Microsoft RMS are now supported by Microsoft Business Solutions. Navision has various customization options. Today we will describe simple case of using C/ODBC driver. This driver and technology allows you to work with Native or C/SIDE Navision database. Navision is also available on Microsoft SQL Server – in this case you use traditional Microsoft technologies, such as OLEDB or MS SQL Server driver to open ADO.NET connection. Our goal is to help IT departments to support and tune Navision with in-house expertise and skills.

The topic of this article is Navision Attain database access through Webservice, connected to Navision via C/ODBC based Linked Server – the mechanism available in MS SQL Server 2000 and transfer the results to ASP.NET application. Our goal will be ASPX page accessing Navision Customers.

Let’s begin

1. In our case we will use Navision Attain 3.6 with Navision Database Server, Navision Application Server and Navision Client. These components are installed on Windows XP. You also need to install C/ODBC component form Navision Attain CD.

2. Let’s create ODBC DSN for Navision data access. Select Control Panel -> Administrative Tools -> Data Sources (ODBC). Then select System DSN tab and press Add button. We’ll use C/ODBC 32-bit data access driver. We’ll name Data Source Name Navision, Connection leave Local. As the database (Database button) select \Program Files\Navision Attain\Client\database.fdb (demo database). Then click Company button – we’ll use CRONUS demo company. It is important for C/SIDE correct database access to setup proper options for C/ODBC connection. Press Options button and look at the options available – we’ll need Identifiers parameter – it defines identifiers types, which will be transferred to the client application. In order to work correct with MS SQL Server 2000 with C/ODBC source we need to use these type: “a-z,A-Z,0-9,_”. Now DNS is done. Let’s create Linked Server.

3. Open MS SQL Server Enterprise Manager. Open server tree for the server, which you plan to use, for this server open Security folder and Lined Servers. With right click select New Linked Server in context menu. In the dialog box opened in the Provider Name select Microsoft OLE DB Provider for ODBC Drivers. Let’s name our Linked Server NAVISION. In Data Source string enter ODBC DSN name - NAVISION in our case. Linked Server is ready! Let’s select tables list and look at the data from Navision Attain database.

4. Next we need to create small stored procedure for sales data selection. Here is the text of the procedure:

SET ANSI_NULLS ONSET ANSI_WARNINGS ON GO CREATE PROCEDURE NavisionCustomers AS DBCC TRACEON(8765)SELECT No_, Name, Address, City, Contact FROM OPENQUERY(NAVISION, 'SELECT * FROM Customer') RETURN

Let’s clarify some points here. TRACEON(8765) directive allows us to work with the data of variable length, returned by C/ODBC driver. Without it we can not select Navision tables fields – we will have these errors:

OLE DB error trace [Non-interface error: Unexpected data length returned for the column: ProviderName='MSDASQL', TableName='[MSDASQL]', ColumnName='Ship_to_Filter', ExpectedLength='250', ReturnedLength='1'].

Server: Msg 7347, Level 16, State 1, Line 1

OLE DB provider 'MSDASQL' returned an unexpected data length for the fixed-length column '[MSDASQL].Ship_to_Filter'. The expected data length is 250, while the returned data length is 1.

OPENQUERY command opens linked server and gives it execution request, and returns record set selected. Directives ANSI_NULLS and ANSI_WARNINGS are required – they provide the possibility of the execution for heterogeneous requests. To test the procedure you can give its name in MS SQL Query Analyzer – EXEC NavisionCustomers

5. Now we need to create ASP.NET application. Let’s use free RAD environment ASP.NET WebMatrix. You can get infor and download it at http://asp.net/webmatrix . You need .NET SDK 1.1 installed, before WebMatrix installation.

6. Launch WebMatrix, select XML Web Service creation in the Wizard window. Leave all the parameters default, just change the file name to NavisionItems, class name to NavisionItems, and Namespace as NavDemo. Midify the WebService code as below (change connection string to actual names):

 Imports SystemImports System.Web.ServicesImports System.Xml.Serialization Public Class NavisionItems Function GetNavisionItems() As System.Data.DataSetDim connectionString As String = "server='(local)'; trusted_connection=true; database='Alba'"Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString) Dim queryString As String = "EXEC NavisionItems"Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommanddbCommand.CommandText = queryStringdbCommand.Connection = dbConnection Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapterdataAdapter.SelectCommand = dbCommand Dim dataSet As System.Data.DataSet = New System.Data.DataSetdataAdapter.Fill(dataSet) Return dataSetEnd FunctionEnd Class

7. Now let’s create ASP.NET application which will show the result set, returned by WebService. Create empty ASP.NET page with the wizard WebMatrix. Name it TestNavisionItems.aspx . Place these controls on the page: DataGrid and Button. Then switch to the Code mode and from the menu Tools launch WebService Proxy Generator. In the showing dialog screen specify http://localhost/NavisionItems.asmx as WSDL URL (if you launch webservice on the different host or web server works through different port – change the parameters accordingly). Note – in this time, if you are deploying webservice on the local machine, using WebMatrix web server Cassini, then it must be already running to this moment. Define Namespace as NavDemo and execute code generation. Next define Button handler:

Sub Button1_Click(sender As Object, e As EventArgs)			 ' Insert page code here			 '			 Dim wsProxy As New NavDemo.NavisionItems()			 DataGrid1.DataSource = wsProxy.GetNavisionItems()			 DataGrid1.DataBind()End Sub

8. Next launch our page, press the button on the for and we are getting Navision Items Navision Items!

Happy customizing, implementing and modifying! If you want us to do the job - give us a call 1-866-528-0577 or 1-630-961-5918! help@albaspectrum.com


Boris Makushkin is Lead Software Developer in Alba Spectrum Technologies – USA nationwide Microsoft CRM, Microsoft Great Plains customization company, serving Chicago, California, Arizona, Colorado, Texas, Georgia, Florida, Canada, Australia, UK, Russia, Europe and internationally ( http://www.albaspectrum.com ), he is Microsoft CRM SDK, Navision, C#, VB.Net, SQL, Oracle, Unix developer.

BorisM@albaspectrum.com

 

 

Learn How to Upgrade, Repair, Speed Up or Build a Computer Step by Step Today!

Find out how to-

  • Solve Common Hardware and Software Problems
  • Add Memory, DVD and Other Computer Parts
  • Make Your PC Run Faster
  • Protect Your Computer from Viruses & Pop-ups
  • Tips and Tricks for Internet Surfing
  • ... and much more!

Read the testimonies below:

"As a small business owner, this video made a world of difference to me. I used to call a computer technician at least once a week to the office for different computer problems. Now, after watching this video, I rarely have to call him, and this saves me time and money. Thank You." Robert Smith

 

"I got this video for my son who is 14 years old son. You guys did a great job explaining the most complicated sounding things in a way that everyone could understand! The next day, my son replaced a faulty motherboard, cleaned up my hard drive, and fixed a serious Spyware issue my computer had!" Lisa Morgan

 

For More Details, CLICK HERE NOW!


  Additional Resources


 

Home  |   Products  |   Articles  |   Resources
Contact Us  |   Site Map  |   Add URL
Website designed and promoted by   VM Power Hosting