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


"Every solution will only lead to new problems."

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:

Monday, 5. February 2007


Microsoft Dynamics 5.0 Beta zum Download verfügbar

Filed under: Navision — Steffen Forkmann at 7:40 Uhr

Wie der Microsoft Dynamics NAV UK Blog berichtet ist Navision 5 ab jetzt als Marketing Beta zum Download auf der Microsoft PartnerSource-Seite verfügbar. Es gibt einerseits ein mit 2007 Office und Windows XP fertig eingerichtetes VirtualPC-Image (2,8 GB) und zum anderen die normalen Setup-Files (418 MB). Offizieller Release-Termin ist nun doch wohl erst zum Ende des zweiten Quartals 2007.

Download unter: https://mbs.microsoft.com/partnersource/products/navision/50Beta

Tags:

Thursday, 1. February 2007


Screenshots mit HardCopy

Filed under: Diverses,Navision — Jens Hesse at 0:37 Uhr

Wenn man ein Bildschirmfoto schießen möchte, so muss man den Screenshot anschließend aufwendig aufbereiten. Mit dem Tool HardCopy kann man Bildschirmfotos auch von Fenstern per Knopfdruck in der Titelleiste auf den Drucker umleiten, oder als Bild speichern. Eine sinnvolle Anwendung sehe ich gerade im Supportbereich beispielsweise für Navision, wo man auf sinnvolle Fehlerbeschreibungen angewiesen ist. Eingabemasken und Fehlermeldungen lassen sich so per Knopfdruck drucken oder versenden. Praktisch: Datum/Uhrzeit, Nutzer- und Rechnername werden mitgespeichert.

Screen

Link:

Tags: ,

Friday, 26. January 2007


Microsoft Dynamics Nav 5.0 nur für Gruppe 1 Länder

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

Wie Kine heute in seinem Blog berichtet wird es Navision 5.0 wohl nur in den “Gruppe 1”-Ländern geben, zu dem aber auch Deutschland gehört. Die anderen Länder aus Gruppe 2 und 3 müssen sich noch 1 Jahr auf Nav 5.1 gedulden.

Und da angeblich nur noch 70 Tage bis zum Release von Microsoft Dynamics NAV 5.0 sind, hier der PartnerSource-Link zum Launch Portal. Dort gibt es auch den Partner ScreenSaver.

Tags: