Rash thoughts about .NET, C#, F# and Dynamics NAV.


"Every solution will only lead to new problems."

Category Navision

In dieser Kategorie geht es um Microsoft Dynamics .NAV (ehemals Microsoft Navision) einem ERP-System, das besonders für kleine und mittelständische Unternehmen von Microsoft-Partnern (wie der msu solutions GmbH) im Bereich Business Solutions vertrieben wird.

Monday, 14. May 2007


Grundlagen der Finanzbuchhaltung

Filed under: msu solutions GmbH,Navision — Jens Hesse at 9:21 Uhr

Lehrmaterial zu Grundlagen der Finanzbuchhaltung in drei Teilen kann man hier finden. Besonders interessant sind der erste Teil ab Kapitel 5 – da geht’s um Grundlagen einer Bilanz, und der komplette zweite Teil. Im zweiten Teil sind sehr anschaulich die gängisten Geschäftsvorfälle aufgeführt und erläutert, was zu buchen ist. Von Ein- und Verkaufsbuchungen bis hin zur Aktivierung von Eigenleistung bei der Herstellung von Anlagen werden anhand von Beispielen dargebracht. Ist sicher für den einen oder anderen interessant.

Tags: , , ,

Sunday, 13. May 2007


DynamicsCareers.com – Die große Navision-Jobbörse

Filed under: Firmen,Navision — Steffen Forkmann at 12:20 Uhr

Unter DynamicsCareers.com findet man eine große Jobbörse mit vielen Stellenangeboten im Dynamics-Umfeld und auch einigen Jobs im Bereich Microsoft Dynamics Nav. Die meisten Navision-Angebote sind jedoch in den USA. Man kann dort übrigens auch sein eigenes Profil angegeben und sich dann für einschlägige Unternehmen listen lassen.

Tags: ,

Friday, 11. May 2007


Navision-Vortrag auf der BASTA! 2007

Filed under: msu solutions GmbH,Navision,Visual Studio — Steffen Forkmann at 10:07 Uhr

Vom 18. bis 21. September findet im Congress Centrum Mainz die BASTA! 2007 statt und ich bin als Speaker dabei. Ich werde im neu eingeführten “Business Solutions”-Track einen Vortrag über die Programmierung mit Microsoft Dynamics Nav halten.

Demnächst dazu mehr.


Warning: Creating default object from empty value in /www/htdocs/w007928a/blog/wp-content/plugins/wp-referencesmap/GoogleMapsWrapper.php on line 55

Tags: , ,

Saturday, 5. May 2007


Dynamics Nav Vortrag in Berlin bei Microsoft

Filed under: msu solutions GmbH,Navision,Privates,Veranstaltungen — Steffen Forkmann at 9:16 Uhr

Im Rahmen des Microsoft Student Program habe ich am 03.05.2007 in der Berliner Niederlassung von Microsoft einen dreistündigen Vortrag zu Microsoft Dynamics Nav (Navision) gehalten.

In ersten 90 min. des Vortrags habe ich eine Einführung in Navision gegeben und einige grundlegende Konzepte erklärt. Die Vortragsfolien dazu kann man nun herunter laden. 

Im zweiten Teil bin ich dann etwas tiefer in die Programmierung gegangen und habe gezeigt wie man als Kundenanpassung ein Gruppierungskriterium in die Verkaufsbuchungsroutinen einbauen kann.

Insgesamt hat mir die Veranstaltung sehr viel Spaß gemacht und ich möchte mich an dieser Stelle nochmal bei Christoph Lesser für die Einladung und bei den Zuhörern für die rege Diskussion bedanken.

Microsoft Berlin

Tags: , , ,

Monday, 30. April 2007


Navision SQL Tuning

Filed under: Blogs,Navision — Steffen Forkmann at 9:41 Uhr

Der “Microsoft Dynamics NAV”-MVP und Certified SQL Perform Consultant Mark Brummel hat in seinem Blog seinen interessanten Artikel über NAV SQL Tuning und “Covering Indexes” geschrieben.

Tags: ,

Monday, 16. April 2007


Navision Vortrag für Microsoft Student Partner in Berlin

Filed under: Navision,Veranstaltungen — Steffen Forkmann at 13:12 Uhr

Im Rahmen des Microsoft Student Program werde ich am 03.05.2007 in der Berliner Niederlassung von Microsoft einen Vortrag zu Microsoft Dynamics Nav halten.

Im ersten Teil des Vortrags werde ich eine Einführung in Navision geben und einige grundlegende Konzepte erklären. Im zweiten Teil werde ich dann tiefer in die Programmierung tauchen und ein Gruppierungskriterium in die Standard Verkaufsbuchungsroutinen einbauen.

Die Vortrags-Slides wird es dann hier natürlich zum Download geben.


Warning: Creating default object from empty value in /www/htdocs/w007928a/blog/wp-content/plugins/wp-referencesmap/GoogleMapsWrapper.php on line 55

Tags: ,

Friday, 30. March 2007


Microsoft Dynamics Nav 5.0 released – Download für Gruppe 1 Länder verfügbar

Filed under: msu solutions GmbH,Navision — Steffen Forkmann at 7:59 Uhr

Gestern, also einen Tag vor dem offiziellen Termin, wurde die 5.0er Version von Microsoft Navision released. Für die “Gruppe 1”-Länder (inkl. Deutschland) ist das Programm auf der PartnerSource zum Download freigegeben.

Nachtrag: Jetzt sind auch die Language-Layer der meisten Sprachen verfügbar.

Tags: , , , ,

Tuesday, 13. March 2007


Betrag in Worten angeben (z.B. für einen Verrechnungsscheck)

Filed under: Navision — Steffen Forkmann at 10:02 Uhr

Will man beispielsweise einen Scheck bedrucken, so steht man vor der Problem einen Geldbetrag (z.b. 123,-) in Worten (also “Einhundertdreiundzwanzig”) angeben zu müssen. Der folgende Quellcode tut dies für Zahlen bis zu 100 Milliarden.
Die Idee dahinter ist die Ziffern der Zahl immer in Dreierblöcke zu zerlegen und dann diese Dreierblöcke als einzelne Gruppen zwischen 0 und 999 zu behandeln. Im Anschluss wird dann eine “Nachsilbe” (z.b. “tausend”) an den Block angefügt. So lassen sich auch sehr große Zahlen (die leider nur selten auf meinen Schecks stehen) leicht in Text umwandeln.

PROCEDURE GetAmountInWords @1105400001(p_Amount@1105400000 : Integer) r_Result : Text[1024]; VAR l_TempAmount@1105400001 : Text[1024]; BEGIN IF p_Amount = 0 THEN EXIT('Null'); l_TempAmount := FORMAT(p_Amount); r_Result := GetGroup(l_TempAmount,0); IF STRLEN(l_TempAmount) >= 1 THEN r_Result := GetGroup(l_TempAmount,1) + r_Result; IF STRLEN(l_TempAmount) >= 1 THEN r_Result := GetGroup(l_TempAmount,2) + r_Result; IF STRLEN(l_TempAmount) >= 1 THEN r_Result := GetGroup(l_TempAmount,3) + r_Result; IF STRLEN(l_TempAmount) >=1 THEN ERROR('Betrag wird nicht untersttzt.'); r_Result := UPPERCASE(COPYSTR(r_Result,1,1)) + COPYSTR(r_Result,2,STRLEN(r_Result)); END; PROCEDURE GetGroup @1105400003(VAR v_Text@1105400003 : Text[1024]; p_Group@1105400006 : Integer) r_Result : Text[1024]; VAR l_H@1105400000 : Text[250]; l_T@1105400001 : Text[250]; l_O@1105400002 : Text[250]; l_Value@1105400004 : Integer; l_Group@1105400005 : Text[3]; BEGIN FillGroup(v_Text); l_Group := COPYSTR(v_Text, STRLEN(v_Text)-2,STRLEN(v_Text)); EVALUATE(l_Value,COPYSTR(l_Group,1,1)); IF l_Value > 0 THEN IF l_Value = 1 THEN l_H := 'einhundert' ELSE l_H := GetDigit(l_Value) + 'hundert'; EVALUATE(l_Value,COPYSTR(l_Group,2,2)); IF (l_Value >= 10) AND (l_Value < 20) THEN l_O := GetTenToTwenty(l_Value) ELSE BEGIN EVALUATE(l_Value,COPYSTR(l_Group,2,1)); IF l_Value > 1 THEN l_T := GetTens(l_Value); EVALUATE(l_Value,COPYSTR(l_Group,3,1)); IF l_Value > 0 THEN BEGIN IF l_T = '' THEN l_O := GetDigit(l_Value) ELSE BEGIN IF l_Value = 1 THEN l_O := 'einund' ELSE l_O := GetDigit(l_Value) + 'und'; END; END; END; RemoveGroup(v_Text); r_Result := l_H + l_O + l_T; IF p_Group = 1 THEN BEGIN IF r_Result = 'eins' THEN r_Result := 'eintausend' ELSE r_Result := r_Result + 'tausend'; END; IF p_Group = 2 THEN BEGIN IF r_Result = 'eins' THEN r_Result := 'einemillion' ELSE r_Result := r_Result + 'millionen'; END; IF p_Group = 3 THEN BEGIN IF r_Result = 'eins' THEN r_Result := 'einemilliarde' ELSE r_Result := r_Result + 'milliarden'; END; END; PROCEDURE GetDigit @1105400004(p_Value@1105400000 : Integer) : Text[30]; BEGIN CASE p_Value OF 0: EXIT('null'); 1: EXIT('eins'); 2: EXIT('zwei'); 3: EXIT('drei'); 4: EXIT('vier'); 5: EXIT('fnf'); 6: EXIT('sechs'); 7: EXIT('sieben'); 8: EXIT('acht'); 9: EXIT('neun'); ELSE ERROR('%1 ist kein Einer',p_Value); END; END; PROCEDURE GetTenToTwenty @1105400005(p_Value@1105400000 : Integer) : Text[30]; BEGIN CASE p_Value OF 10: EXIT('zehn'); 11: EXIT('elf'); 12: EXIT('zwölf'); 13: EXIT('dreizehn'); 14: EXIT('vierzehn'); 15: EXIT('fünfzehn'); 16: EXIT('sechzehn'); 17: EXIT('siebzehn'); 18: EXIT('achtzehn'); 19: EXIT('neunzehn'); ELSE ERROR('%1 ist nicht zwischen 10 und 20',p_Value); END; END; PROCEDURE GetTens @1105400006(p_Value@1105400000 : Integer) : Text[30]; BEGIN CASE p_Value OF 2: EXIT('zwanzig'); 3: EXIT('dreizig'); 4: EXIT('vierzig'); 5: EXIT('fünfzig'); 6: EXIT('sechzig'); 7: EXIT('siebzig'); 8: EXIT('achtzig'); 9: EXIT('neunzig'); ELSE ERROR('%1 ist keine Zehner',p_Value); END; END; PROCEDURE FillGroup @1105400007(VAR v_String@1105400000 : Text[30]); BEGIN WHILE STRLEN(v_String) < 3 DO v_String := '0' + v_String; END; PROCEDURE RemoveGroup @1105400000(VAR v_String@1105400000 : Text[1024]); BEGIN v_String := COPYSTR(v_String,1,STRLEN(v_String) - 3); END;
Tags:

Wednesday, 7. March 2007


Microsoft Dynamics NAV 5.0 – Launch Roadshow

Filed under: msu solutions GmbH,Navision,Veranstaltungen — Steffen Forkmann at 14:34 Uhr

Ende April / Anfang Mai bietet Microsoft eine Launch Roadshow zu Navision 5.0:

Desweiteren präsentiert Microsoft die neue Navision-Version auch vom 15. – 21.03.2007 auf der CeBIT (Vortragsprogramm).

Tags: , , , , , , , , ,

Wednesday, 28. February 2007


Filter überprüfen

Filed under: Navision — Steffen Forkmann at 8:06 Uhr

Wenn man überprüfen will, ob der aktuelle Datensatz den man bearbeitet eigentlich im Filterausdruck liegt, kann man das mit folgendem Ausdruck:

IF l_Record.Find('=') THEN // ist drin

Man kann das zum Beispiel bei komplexeren Dataports benutzen und überprüfen, ob der Benutzer bestimmte Sachen aus dem Import ausgeschlossen hat. In dieser Art wird das zum Beispiel beim Bankschnittstellen-Import benutzt.

Tags: