Zugang zum Navision Database über C/ODBC WebSevice/ASP.NET – Aplikation

 

von Igor Kudryashov

Alba Spectrum Technologies

Deutschland (0177) 8349 806, Moskau (095) 918 3314, USA 1-866-528-0577

help@albaspectrum.com  

Navision (frühe Navision Attain)ist von Microsoft in Rahmen von Microsoft Business Solutions unterstützt, genau so wie MS Great Plains, Axapta, Solomon, MS CRM und MS RMS. Navision hat viele Möglichkeiten für Kundenorientierte Einstellungen.

 

 

Hier beschreiben wir ganz einfaches Vorfall der C/ODBC-Treiber-Nutzung. Der Treiber erlaubt Arbeit mit Native oder C/SIDE Navision – Datenbank. Navision ist  ebenfalls im MS SQL Server zugänglich und dann um ABO.NET Connection zu zuöffnen, nutzen wir traditionelle Microsoft Technologien, z.B. OLEDB, MS SQL Server Treiber.

 

Unsere Ziel ist Hilfe an IT-Abteilungen um Navision zu unterstützen und einstellen ohne externe Experten. Heute sprechen wir über Zugang zum Navision Attain mit Hilfe von WebService und die Darstellung der Datei in ASP.NET Applikation. WebService kriegt die Dateien aus MS SQL Server 2000 in Verbindung mit Attain Database (Interface C/ODBC). Unseres Ziel ist Bildung Navision Items Seite. Fangen wir an:

  1. Für unsere Arbeit nutzen wir Navision Attain 3.6, es basiert sich auf Navision Database Server, Navision Application Server und Navision Client. Die Komponenten sind auf Windows XP installiert. Um die Arbeit mit der Anwendung von C/ODBC – Interface zu ermöglichen, soll die Komponente von distributive Disk Navision Attain installiert werden.
  2. Jetzt bilden wir ODBC DSN um Zugang an unsere Navision Daten zu ermöglichen. Dafür wählen wir  Start -> Control Panel -> Administrative Tools -> Data Sources (ODBC)  aus. Dann wählen wir Einlage „System DSN“ aus und drucken auf „Add“-Knopf.  Um Zugang an die Datei zu kriegen, nutzen wir C/ODBC 32-bit - Treiber. Geben wir Data Source Name wie Navision auf und Connection lassen wir Local.  Als Datenbank ( Database Knopf ) wählen wir \Program Files\Navision Attain\Client\database.fdb (Demo-Datenbank) aus. Jetzt werden wir mit  CRONUS arbeiten („Company“–Knopf), die ist die einzige zugängliche Firma aus DemodatenbankDer werden wir benutzen. Wichtige Voraussetzung für korrekte Arbeit mit C/SIDE Datenbank ist korrekte Einsetzung von Optionen für C/ODBC Verbindung.  Drucken Sie auf „Options“-Knopf und gucken Sie zugängliche Optionen – uns interessiert Identifiers Parameter. Der Parameter bestimmt Kenntypen, welche werden an Kunden Programm überreichen.  Für korrekte Arbeit zwischen MS SQL Server 2000 und C/ODBC-Quelle nutzen wir Typ „a-z,A-Z,0-9,_“. Auf dem Punkt ist die Erschaffung von Datenquelle beendet. Jetzt regeln wir Linked Server.
  3. Machen wir SQL Server Enterprise Manager auf. Offen Sie Server-Body, der Sie nutzen wollen, finden Sie da Punkt Security und Unterpunkt Linked Servers. Mit rechte Knopf der Maus wählen Sie New Linked Servers im Menü aus. Im Dialogfenster bei Provider Name wählen Sie Microsoft OLE DB Provider for ODBC Drivers .  Nehmen an, Linked Server heißt NAVISION. In Zeile Data Source führen wir ODBS-Quelle Name ein, es war NAVISION. Linked Server ist fertig! Aus dem wählen wir Tabelleliste und sehen Datei aus Navision Attain- Datenbank.
  4. Ferner bilden wir kleine Prozedur für die Verwahrung von ausgesuchte Verkaufdatei. Text von Prozedur ist unter:

SET ANSI_NULLS ON

SET ANSI_WARNINGS ON

GO

 

CREATE PROCEDURE NavisionItems AS

 

DBCC TRACEON(8765)

SELECT * FROM OPENQUERY(NAVISION, 'SELECT * FROM Item')

 

RETURN

 

 

Kleine Erklärung. Die Direktive TRACEON(8765) ermöglicht Korrekturen in der Arbeit mit der Dateien von variable Länge (aus C/ODBC-Treiber). Ohne das können wir nicht mit der Felde von Tabelle Navision arbeiten – wir werden ständig Fehlermeldungen kriegen. Z.B.

 

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.

 

Direktive OPENQUERY eröffnet verbundener Server und übertragt  die Anfrage und zeigt ausgesuchte Daten. Notwendige Voraussetzung für diese Prozedurbildung ist Eingabe von ANSI_NULLS- und ANSI_WARNINGS- Direktiven. Diese Direktiven ermöglichen Arbeit mit heterogen Anfragen. Um Arbeit von Prozedur zu kontrolliere, reich es EXEC NavisionItems – Befehl bei MS SQL Query Analizer zu geben.

  1. Jetzt bilden wir ASP:NET-Applikation. Dafür nutzen wir kostenlose RAD (ASP.NET-Bereich). Das können Sie unter http://asp.net/webmatrix runterladen. Bevor das installiert wird, soll man .NET SDK 1.1 – Installationsdisk haben.
  2. Starten wir WebMatrix, wählen wir XML Web Service-Bildung in Installationsfenster. Lassen wir da alle Parameter so wie die sind, geben wir nur Dateiname als NavisionItems, Klassenname als NavisionItems und Namespace als NavDemo. Jetzt modifizieren wir WebService- Kode so wie es unter gezeigt ist:

 

<%@ WebService language="VB" class="NavisionItems" %>

 

Imports System

Imports System.Web.Services

Imports System.Xml.Serialization

 

Public Class NavisionItems

 

<WebMethod> Function GetNavisionItems() As System.Data.DataSet

Dim 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.SqlCommand

dbCommand.CommandText = queryString

dbCommand.Connection = dbConnection

 

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter

dataAdapter.SelectCommand = dbCommand

 

Dim dataSet As System.Data.DataSet = New System.Data.DataSet

dataAdapter.Fill(dataSet)

 

Return dataSet

End Function

End Class

 

  1. Jetzt bilden wir ASP.NET – Applikation um Auggesuchresultaten von WebService zu sehen. Bilden wir leere ASP.NET- Seite mit Hilfe von WebMatrix - Wizard. Die nennen wir TestNavisionItems.aspx. Da bilden wir Steuerungsinstrumenten DataGrid und Buton. Nachdem gehen wir in Regime Code und aus Tools starten wir WebService Proxy Generator. In geöffneten Dialogfenster geben wir in WSDL URL folgendes ein: http://localhost/NavisionItema.asmx . (Falls haben Sie WebService mit anderem Host oder Port benutzt – geben Sie Ihre Dateneingabe). Bemerkung: Falls Sie WebService auf lokalen Rechner mit Hilfe von WebMatrix und Webserver Cassini nutzen, dann soll der vor gestartet werden. Jetzt geben wir Namespace als NavDemo und machen Kode-Generation. Für unseren Steuerungselement „Button“ bilden mir folgende Prozedur:

 

         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

 

  1.  Jetzt starten wir unsere Seite, drucken auf  Knopf und kriegen wir Navision Items Liste!

 

Wir wünschen Ihnen viel Erfolg bei der Softwareimplementierung und Berichterstellung. Falls sich Ihrerseits Fragen bzw. Problemstellungen ergeben sollten, stehen wir Ihnen jederzeit unter der Rufnummer in Deutschland (0177) 8349 806, in Moskau (095) 918 3314, in USA 1-866-528-0577  oder unter help@albaspectrum.com zur Verfügung.

 

Igor Kudryashov ist ein zertifizierter Navision Spezialist von Ronix Systems ( www.ronix.ru ) eines Microsoft Business Solution Partners und die Europäische Abteilung von Alba Spectrum Technologies, USA (www.albaspectrum.com ). Wir sind in Deutschland (in Köln, Bonn, Düsseldorf und Dortmund), in Russland, USA und Brasil tätig. Diese weltweit autorisierte Unternehmung spezialisierte sich auf Navision, Great Plains und den Microsoft CRM Kundenservice.