Datensatzänderung per SQL

10. Juni 2013 16:13

Hallo,

ich habe eine Frage bzgl. Datenmanipulation per SQL.
Leider haben wir ein Szenario in welchem es nicht möglich ist, die NAV Logik zu nutzen.
Wir müssen per SQL in einer Nr.-Serie, die letzte, verwendete Nr. auslesen, hochzählen und zurück schreiben.

Meine Frage jetzt:
Es würde ja theoretisch bei einer Änderungstransaktion der Datensatz in SQL gesperrt werden, oder?
Wenn dieser gesperrt ist, wie reagiert NAV darauf, wenn gerade innerhalb von NAV die nächste Nr. dieser Nummernserie gezogen werden soll?

Wäre super, wenn Ihr mir weiterhelfen könntet.
Danke im Voraus.

Enulien

Re: Datensatzänderung per SQL

10. Juni 2013 16:37

Was verhindert, dass Ihr NAV das erledigen lasst?

Volker

Re: Datensatzänderung per SQL

10. Juni 2013 23:39

Unsere Schnittstelle zum DMS.
In der SQL-"Verarbeitung" brauchen wir bereits die Nr. die NAV als nächstes ziehen würde. Diese Datensätze werden dann per SQL in eine Puffertabelle in NAV geschrieben und daraus in die Prod.-Tabelle übernommen.
Wir brauchen aber aus technischen Gründen von Anfang an die "richtige" Nr.

Re: Datensatzänderung per SQL

11. Juni 2013 08:29

Sorry, mag sein, dass ich begriffsstutzig bin.

Sagen wir mal Ihr erstellt eine Rechnung. Diese bekommt eine Rechnungsnummer. Nun wollt Ihr die folgende Rechnungsnummer irgendwie irgendwohin speichern?

Welche Rechnungsnummer meint Ihr dann? Die Nummer aus der Serie Rechnung oder die Nummer aus der Serie gebuchte Rechnung?

Enulien hat geschrieben:Diese Datensätze werden dann per SQL in eine Puffertabelle in NAV geschrieben und daraus in die Prod.-Tabelle übernommen

Bedeutet das, Ihr habt die Vergabe der Nummer schon nicht mehr im Standard?

Ganz ehrlich, ich trau mich in vieles auch per SQL einzugreifen, aber Nummernserien und Buchungsroutinen bleiben in der Hand und unter Kontrolle von NAV. Es gibt bestimmte eine andere Lösung (z. B. OnInsert-Trigger der Tabelle Item um die aktuelle Nummer mit der nächsten Nummer aus No.-Series zu vergleichen und dann irgendwohin zu speichern.)

Evtl. wäre auch ein Upgrade auf NAV2009 ff sinnvoll um die Webservices zur Anbindung des DMS zu nutzen.

Volker

Re: Datensatzänderung per SQL

11. Juni 2013 09:42

vsnase hat geschrieben:Bedeutet das, Ihr habt die Vergabe der Nummer schon nicht mehr im Standard?


Nein, ist komplett Standard.
Da wir aber von außen die NAV Logik nicht ansprechen können, bringt uns das nichts. WebServices würde natürlich gehen, aber wie Du schon sagst, erst ab der 2009er.

Wir brauchen eine sichere Möglichkeit, dass SQL "von außen" die nächste Nummer der Serie lesen und verändern kann, ohne das ein Benutzer über den NAV-Client, dieselbe Nr. zieht.

Re: Datensatzänderung per SQL

11. Juni 2013 09:48

Ich bin immer noch dagegen, aber vielleicht ist das eine saubere Lösung für euch.

http://blogs.msdn.com/b/nav/archive/2008/04/15/using-web-services-to-access-microsoft-dynamics-nav-5-0.aspx

Re: Datensatzänderung per SQL

11. Juni 2013 10:02

Danke für die Info. Ich werde mir das einmal anschauen.

vsnase hat geschrieben:Ich bin immer noch dagegen,...


Für uns ist das auch absolut keine Traumlösung. Aber wir müssen diesen Weg erst einmal versuchen zu gehen, bis wir auf 2009/13 sind.

Re: Datensatzänderung per SQL

19. Juni 2013 13:43

Technisches Upgrade auf NAV 2009 müsste doch reichen?
Ihr könnte ja den Classic Client etc behalten.
Ihr müstet nur gucken wie z.B. die custom case-anweisungen geschrieben sind, da die nun case-sensitive sind.