17. Juli 2009 12:34
Hallo,
ich bin dabei mich mit C/FRONT zu beschäftigen, wir wollen darüber eine Schnittstelle zu unseren Systemen erstellen. Wir bieten die Daten bei uns als Webservice an und wollen diese in NAV importieren, dazu müssen die Daten aufgewertet werden. Deswegen wollen wir keine Dataports oder so einsetzen.
Ich bin nun auf der Suche nach ein paar Tutorial oder Howtos zu diesem Thema, die Docu von der CD hab ich schon da. Ich wäre interessiert an Infos zum Thema C/FRONT unter .NET
Hat irgendjemand nen Tipp für mich, wie ich da am besten einsteige?
Gruß
René
Zuletzt geändert von kockiren am 30. Juli 2009 15:08, insgesamt 2-mal geändert.
17. Juli 2009 12:53
Hallo René,
ich habe noch nicht ganz verstanden, was du mit C/FRONT machen willst.
Möchtest du einen Webservice anbieten, der über C/FRONT auf NAV zugreift. Falls ja, kann ich dir nur empfehlen, technisch auf NAV2009 umzustellen, da sind schon WEB-Sevices drin.
Willst du allerdings ein Programm schreiben, das Webservices nutzt, um die Daten dann in NAV zu verarbeiten, kann man darüber nachdenken. Als ganz wichtigen Punkt, den du bei C/FRONT beachten musst, ist dass keine Bussiness-Logik in NAV ausgeführt wird, wenn du Datensätze einfügst, änderst oder löscht. Deshalb solltest du es tunlichst vermeiden, Daten in Tabellen zu bearbeiten, die Onvalidate-, Oninsert-, OnModify-, OnDelete- Trigger nutzen.
Hast du allerdings etwas in der Art vor kann ich dir nur empfehlen, über den NAS mit Socket- Schnittstelle und XML-Daten, einen Weg zu begehen, der dir alle Möglichkeiten offen lässt.
Desweiteren ist bei C/FRONT zu beachten, das es nicht reentrant ist, d.h. nur ein Thread eines Programms darf gleichzeitig die Funktionen des C/FRONT nutzen. Ansonsten entsprechen die Funktionen des C/Front weitgehend denen des C/AL. Für den Anfang solltest du dir mal das Beispiel anschauen, was beim SDK dabei ist.
Gruß, Fiddi
17. Juli 2009 14:16
Hey Fiddi,
also ich habe vor Daten die von einem unserer Portale kommt in Navision zu importieren, es geht im Prinzip darum das ich im ersten Schritt eine Artikelliste importiere mit allen Artikeln aus unserem Portal. Dann soll die Kundenliste abgeglichen werden und veränderungen ins Navision geschrieben werden und aus dem Navision gelesen werden, der erzeugte diff soll dann in beide Systeme zurück geschrieben werden.
Im nächsten Step sollen die Preise zu jedem Artikel geschrieben werden.
Ich versuche das nun mit C/FRONT zu lösen, aber ich scheitere schon an den einfachsten Sachen
Folgendes Beispiel hab ich probiert:
http://blogs.msdn.com/german_nav_developer/archive/2008/05/23/zugriff-auf-nav-mit-einem-net-c-projekt-mit-hilfe-von-c-front.aspxAber ich bekomme die Meldung das ich den Usernamen und passwort prüfen soll oder die Datenbank nicht richtig ist. Es wurde festgestellt das irgendwas mit dem geschützen speicher ist. Wie kann ich mich denn diesem Problem nähern.
Gruß
René
17. Juli 2009 15:04
Hallo,
ich komm einfach nicht mit der DB Anmeldung klar. SDK, C/SIDE CLient und SQL Server sind auf dem selben rechner installiert. Ich kann mich bei Navision auch anmelden. Wenn ich nun alle Programme schließe und nur mein C# Programm öffne bekomme ich den Fehler das die Datenbank nicht geöffnet werden kann. Folgenden Code hab ich in meiner App.
- Code:
NavisionNetType NetType;
NavisionDriverType DriverType;
NavisionValue Data;
DriverType = NavisionDriverType.Sql;
NetType = NavisionNetType.SqlDefault;
CFrontDotNet.DriverType = DriverType;
CFrontDotNet.NavisionPath = "C:\\Programme\\Microsoft Dynamics NAV\\CSIDE Client";
CFrontDotNet.Instance.ConnectServerAndOpenDatabase("MATAR", NetType, "Demo Database NAV (5-0)", 2000, true, false, "dbuser", "password");
...
Also müsste doch richtig sein, ich kann mich mit dem SQL studio an dem Server MATAR mit dbuser und password anmelden und sehe dann auch die Datenbank und kann drauf zugreifen. Was stimmt da nicht?
Gruß
René
17. Juli 2009 21:14
also ich habe vor Daten die von einem unserer Portale kommt in Navision zu importieren
ich würde mir den Weg über C/Front ersparen und den Import direkt in NAV auslösen. Dann hast Du auch kein Problem mit nicht ausgeführten Triggern und Deine Daten sind in allen betroffenen Tabellen vorhanden und richtig.
Ich mach das noch nicht so lange, aber eines habe ich schnell gelernt: Mach so vieles wie möglich in NAV direkt!
Volker
17. Juli 2009 21:48
Danke für deine Antwort, also bietet sich der Import direkt über die Dataports an? Gibt es dazu Dokus? Auf der DVD konnte ich dazu bisher nix finden.
Ich würde dennoch gern das SDK zum laufen bekommen, die Imports mach ich dann über die Dataports aber irgendwie wurmt es mich das ich das nicht zum laufen bekomme.
Ich habe in nem englischen Forum gelesen das es evtl. an den Lizenzen liegt. Ich habe mal nachgeschaut und auf dem Client war noch das Cronus File drin, hab jetzt im native und sql Client unter Info unsere Lizenz drin. Wie kann ich denn testen ob das SDK auch auf das richtige zugreift, was ja eigentlich überflüssig ist da er ja auf die Clientdateien zugreift. Aber ich habe gesehen das es eine Methode checkLicenceFile, hab da mal 1800 eigegeben aber da kam nen Fehler raus. Es müsste ja 1,800 heißen aber die Methode erwartet int. mit 800 hab ich es auch schon probiert. Irgendwie muss sich doch das Problem lokalisieren lassen.
Ich habe schon versucht die native Treiber zu nehmen und mich mir der native DB zu verbinden, aber das klappte auch nicht. HAt irgendwer ne Idee wie ich mich da weiter näheren kann?
Gruß
René
21. Juli 2009 12:32
Problem hat sich erledigt, der Fehler lag mal wieder zwischen den Ohren. Ich habe den Pfad aus dem Explorer genommen, das Problem ist nur das dieser "Program Files" nach "Programme" umschreibt. Deshalb war der falsche Pfad drin.
Nun ja blöder Fehler.
Gruß
René
21. Juli 2009 13:20
Du weißt, dass du das Problem umgehen kannst? Auf einem anderen PC kann das wieder anders sein. Deshalb den Pfad zu "C:\Programme" am besten mit
- Code:
Private mstrProgramFilesPath As String= System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
oder ähnlich auslesen.
Volker
21. Juli 2009 13:22
Oh danke für den Tipp, das gefällt mir schon besser.
Gruß
René