Steffen Forkmann | msu solutions Halle Programmierung mit Microsoft Dynamics Nav Grundlegende Konzepte [email protected] http://www.msu-solutions.de Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Agenda • Was ist Dynamics NAV (Navision) eigentlich? – Ein paar Folien zum Einstieg – Grundlegende Konzepte • Implementation – Anpassung der Buchungsroutinen – Einbau eines neuen Auswertungskriteriums • Ausblick auf Version 5.1 2 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 3 Was ist Microsoft Dynamics NAV (Navision) • ERP-System für kleine und mittelständische Unternehmen (KMU) – – – – Ursprünglich von Navision Software A/S entwickelt 2000 Zusammenschluss Navision / Damgaard 2002 Übernahme durch Microsoft Integration in Dynamics Reihe Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Navision weltweit 276.000 4.500 30.000 3.800 über 20 32 in 102 Kunden Partner Vertriebsmitarbeiter Mitarbeiter Jahre Erfahrung Landesversionen Ländern installiert Hauptmarkt Deutschland und Dänemark 4 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Geteilte Entwicklung Dienstleistungen Spezial-/BranchenKnow-how Microsoft Partner (z.B. msu solutions GmbH) Standardfunktionalität Microsoft Business Solutions Basistechnologie 5 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Funktionsbereiche • • • • • • • • Finanzbuchhaltung Debitoren & Verkauf Service Kreditoren & Einkauf Marketing und CRM Artikel & Lager Logistik Produktion • • • • • • • • • Fertigung Kapazitätsplanung Ressourcen Projekte Kostenrechnung Anlagen Personalwesen Lohn Termine 6 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 7 Finanzbuchhaltung • • • • • • • • • DAS zentrale Modul Mit allen anderen Modulen vollständig verbunden Kontenpläne Gewinn- und Verlustrechnung Bilanzen Gegenüberstellung von Salden und Budgetzahlen Liquiditätsplanung Beliebig gestaltbare Geschäftsjahre Auffinden zusammengehöriger Buchungen (Navigate) Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 8 Tabellen im Verkauf Belegart: Tabelle Verkaufskopf / Verkaufszeile Buchen Liefern Buchen Fakturieren zusätzlich entstehen z. B. Angebot, Rahmenauftrag, Auftrag, Rechnung, Reklamation, Gutschrift Tabelle Verkaufslieferkopf/Verkaufslieferzeile Tabelle Rücksendungskopf/Rücksendungszeile Tabelle Verkaufsrechnungskopf/Verkaufsrechnungszeile Tabelle Verkaufsgutschriftskopf/Verkaufsgutschriftszeile Tabelle Artikelposten Tabelle Wertposten Tabelle Sachposten Tabelle Debitorenposten Tabelle MwSt.-Posten Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Demo Debitor Buchung 9 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 10 Grundbegriffe C/SIDE TM Client/Server Integrated Development Environment C/AL C/SIDE Application Language C/CAPS Configuration and Pricing System C/SHELL Die Währungseinheit für C/CAPS SIFT TM SumIndexField Technology FlowField Zur Laufzeit berechnete Felder FlowFilter Filter für FlowFields Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 11 C/SIDE vs. C/AL • C/SIDE – Entwicklungsumgebung + Datenbank – Integrierter Debugger • C/AL – Interne ereignisgesteuerte aber nicht objektorientierte Programmiersprache – Eng mit Turbo Pascal verwandt – Zugang zu C/AL muss in einer Entwickler-Lizenz erworben werden. – Einige Kunden lizenzieren den Formular-Designer oder den ReportDesigner Kein Visual Studio ! Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Client-Server-Architektur • Client: – Verarbeitung der Geschäftslogik – Präsentation – Anbindung an Office Produkte • Server: – Datenhaltung • Navision Native Server • SQL Server • Vollständige Dezentralisierung auf dem „Client“ – z.B. für Schulungs- oder Entwicklungszwecke 12 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Native Server vs. SQL Server • Native Server – – – – Hohe Stabilität, Transaktionssicherheit, Trigger Hohe Geschwindigkeit bei der Bildung von Summen (SIFT) Absolut wartungsarm Soll mittelfristig ersetzt werden • SQL Server – Hohe Stabilität, Transaktionssicherheit, Trigger, … – Viele weitere Features – ABER: Administrationsaufwand wesentlich größer 13 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 14 Navision Key-Concepts • Offener Quellcode – Alle Objekte werden mit anpassbaren Quellcode ausgeliefert • Durchgängiger Style-Guide – Bedienung (und Code) sieht in allen Modulen gleich aus • Lizensierung über Granules – Der Kunde lizensiert nur die für ihn interessanten Module (Beispiel: Anlagenbuchhaltung) • Mandanten – betriebswirtschaftliche Einheit (Firma, Niederlassung, ...) – mehrere Mandanten pro Datenbank möglich Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav SIFT-Technologie • • • • • Sum-Indexed Flow Technology Schnelle Berechnung von gefilterten Summen Beispiel: Bewegung vom 1.2. bis 12.12. Nur 2 Datenbankzugriffe 550 – 200 Geht pro Tabellenindex einzeln zu aktivieren Datum Kostenstelle Betrag SumIndex 01.01.2006 100 50 50 15.01.2006 100 150 200 01.02.2006 200 100 300 01.06.2006 100 50 350 12.12.2006 300 200 550 30.12.2006 200 40 590 15 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Navision Objekttypen • Nur 7 verschiedene Typen von Geschäftsobjekten: – – – – – – – – Table (Datenbanktabelle mit entsprechenden Triggern) Form (Editierbare Ansichten – Karte bzw. Liste) Codeunit (Zusammengefasste Codeblöcke) Report (Ausdruckbar oder „Processing Only“) Dataport (Im-/Export als CSV-File) XML-Port (Im-/Export als XML-File) MenuSuite (Menu-Objekt) [Pages] ab Dynamics NAV 5.1 16 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 17 Nummernbereiche Standardapplikation 1 - 9.999 Entwicklungsbereich der Standardapplikation Länderanpassungen 10.000 - 49.999 Entwicklungsbereich für Länderanpassungen Kundenanpassungen 50.000 - 99.999 Entwicklungsbereich für Kundenanpassungen Zusatzmodule 100.000 - 999.999.999 Entwicklungsbereich für Zusatzmodule Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Demo Geschäftsbereichsbuchung 18 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 19 Technische Neuerungen NAV 5.1 • Neuer rollenbasierter Client • Neuer Objekttyp: Pages – Neuer Page Designer in C/SIDE – Transformationstool für existierende Forms • Web Services – Web Service Designer in C/SIDE – Zugriff auf Daten und C/AL Code • Report Design – Integration von Visual Studio in vorhandenen Report Designer – Aufbauend auf Reporting Services C/SIDE BLEIBT! 19 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 20 Dynamics NAV 5.1 Architektur Service Tier SQL Server Microsoft Dynamics NAV SQL DB Server & Database Schicht Native Server SQL Server Server NAS Service & Application Schicht Client Gewohnter Client Business Logic C/SIDE Rollenbasierter Client UI Schicht ODER 21 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Client Tier Windows Client Rich Client Internet Information Server Browser Form Builder Data Binder Web Services Client Services SharePoint Display Target Render Application Meta data provider Data Binder Class Library Form Builder SharePoint Services Database Tier RolesTailored Client SharePoint Client Microsoft Dynamics NAV Service Tier 3-Tier Architektur ab Nav 5.1 Microsoft SQL Server Jesper Lachance Ræbild & Frank Fugl 2007 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 22 Service Tier • Läuft auf Internet Information Server (IIS) • Code wird weiterhin in C/AL geschrieben – Automatisch in eine Assembly kompiliert – Entwickler kommen jedoch nicht mit C# in Berührung • ABER: – Erstmals externer Zugriff auf Business Objekte – Webservices Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 23 Reporting • Basiert auf SQL Server 2005 Reporting Services • Aus Navision Report wird ein Dataset generiert – Report Definition Language (RDL) Layout wird aus bestehender Report Struktur extrahiert – RDL Tools: BI Development Studio oder Visual Studio – Danach kann der Report wieder in Navision importiert werden Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav Fazit • • • • • • • • Große Einheitlichkeit in Design und Code Komplette Integration aller Module Kunde kauft nur was er benötigt (Granules) Alle Buchungen müssen durch die selben Objekte Buch.-Blätter Postenkonzept Offener Quellcode (Kundenanpassungen direkt im Standard) 24 Steffen Forkmann | Programmierung mit Microsoft Dynamics Nav 25 Vielen Dank • Gibt es Fragen? • Gerne beantworte ich diese auch via Email an [email protected]! • Die Vortragsfolien können auf der Webseite http://www.navision-blog.de/ herunter geladen werden