Dienstag, 15. April 2014

AvERP 2014.04

Verlautbarung von SYNERPY am 15.04.14:

"Heute wird im Laufe des Tages AvERP 2014.04 im Downloadbereich unserer Webseite online gehen.
Im August ist wieder das neue Release geplant. Darin werden dann aktuelle Entwicklungen, wie zum Beispiel die Kasse für den Fachhandel mit Filialunterstützung und Datenbankreplikation enthalten sein.
Vom 8.-10.10.2014 sind wir wieder auf der IT & Business in Stuttgart und werden dort das neue Release präsentieren.

AvERP-Notizen:
AvERP ist grundsätzlich fit für SEPA. IBAN und BIC werden nach der allgemein gültigen Regel generiert. Leider gibt es einige Banken, die eigene (sehr unterschiedliche) Wege gehen. Diese Ausnahmen müssen grundsätzlich manuell abgeändert werden. Wir versuchen jedoch bei den wichtigsten Banken noch eine programmierbare Regel zu finden. Deutsche Bank, Dresdner Bank und Commerzbank beispielsweise sind solche Ausnahmen, die aber bereits mit einer eigenen Regel integriert werden konnten.
Wir haben einen öffentlichen Demozugang für WebAvERP angelegt. Die Zugangsdaten werden beim Aufruf bereits vorgeben. Sehen Sie es aber bitte immer noch als öffentliche Beta-Version, nicht als Release."

Mittwoch, 2. April 2014

Errcode: -902 : Panik !!! internal Firebird consistency check

Zum Umgang mit einer korrupten Firebird-Datenbank

Errcode: -902 (KEINE???) PANIK
Unable to complete network reguest

internal Firebird consistency check (can't continue after bugcheck)
DANN ist wirklich PANIK angesagt!

 

Folgendes Szenario:
Beim Verlassen von AvERP erscheint;

Meldung von der AvERP-Datenbank
Errcode: -902

Error Message:
internal Firebird consistency check (can't continue after bugcheck)
Component: TIB_Query (q_V_BFIRMA)
SQL.Text: SELECT * FROM V_BFIRMA

Bei nächsten Startversuch:

Meldung von der AvERP-Datenbank
Errcode: -902

Error Message:
Unable to complete network reguest to host "localhost"
Failed to establish a connection.
Component: TIBCConnection


Ähnliche Effekte beim GUI-"Experten" 

Anmerkung:
Errcode -902 kommt grundsätzlich, wenn die Datenbankverbindung zwischen AvERP-Client (dem AvERP-EXE-Programm) und dem Firebird-Server unterbrochen worde. Ursache kann eine harmlose Unterbrechung der Netzwerk-Verbindung sein. Erst wenn ein Beenden der defekten Session mit Neustart der AvERP-exe nicht fruchtet - dann ist
PANIK angesagt!

Im Panik-FALL:

Hilft  nur noch Firebird Guardian / Server über die Verwaltung des glücklicherweise(local)  Hosts zu stoppen und erneut zu starten.

Nun mutig per GUI "Database Validation" aufgerufen, arbeite ja glücklich mit einer lokalen Kopie einer produktiven Datenbank.

Nächster Schock:
Connection error.
bad parameters on attach or create databse.
secondary server attachments connot validate databases.



Kurze Internet-Recherche zeigt:

gfix möchte gerne die Datenbank für sich haben.

Es dürfen keine anderen attachments / DB-Verbindungen aktiv sein!


Weder als AvERP,  JobSERVER noch mit dem GUI-Experten, wo man ja gerne nachsieht, ob man überhaupt noch an die Datenbank herankommt.

Danach zeigt gfix Database Validation full das ganze Drama:




Lösung: Backup und Restore

Doch gleich droht die nächste Panik:
Das Backup bricht ab, wenn die Garbage Collection durchgeführt wird.



 Auch das kann gelöst werden, wenn man weiß worauf es ankommt :)

Die Garbage-Collection ist sinnvoll um die gerade gesicherte Datenbank aufzuräumen. Da ich aber plane die korrupte Datenbank über ein RESTORE des gerade zu machenden BACKUPs zu ersetzen, ist die per Default beim Backup aktivierte Garbage-Collection einfach überflüssig!

Wieder stürzt hier der Firebird-Server ab! Und auch der GUI-Experte schmeißt so viele
internal Firebird consistency check (can't continue after bugcheck), das nur der WIN-Taskmanager Abhilfe schaffen kann!

Mit der Strategie BACKUP 
-G inhibit garbage collection
-IG ignore checksum errors
-L ignor transactions in limbo

war ich auf dem produktiven Server erfolgreich.

Beim nachvollziehen auf einem lokalen WIN7 Firebird nicht!!!

Erst nach einer Validierung mit MEND-Option lief auch anschließend das BACKUP durch.

Vor Validation mit gfix -MEND sein jedoch gewarnt!

Freundlich wird zwar versprochen:
        -mend           prepare corrupt database for backup
Allerdings weiß man nicht, welche Daten dem -mend zum Opfer fallen.

Besser ist es ein automatisches BackUp zu verwenden, so daß sich ein definierter Datenverlust auf die in der Zeitspanne zwischen letzten erfolgreichem BACKUP und Entdeckung des Problems beschränkt. 

Warum war die Firebird-Datenbank korrupt?

Spekulation: Auf den Datenbank-Server fand ich 10 AvERP-JOBSERVER vor, die alle mit LOCK im Job BBVO Disposition Bestellvorschläge stehen geblieben waren. Sollten diese das Chaos angerichtet haben??

Etwas stütz diese Hypothese die ca. 800.000 Total Dup Einträge zum Index BARTLH_BBVO_DATETIME








Montag, 3. Februar 2014

SEPA-Lauf: Druck Kontrollzettel von FR2 nach FR4 umstellen

Neue Folge aus der beliebten Serie

"AvERP-Designer für Fortgeschrittene".

Im Zusammenhang der allgegenwärtigen SEPA-Umstellung, bin ich auf folgende Aufgabe gestossen:

SEPA-Datei erzeugen

Umsetzung "DTAUS-Lauf erstellen" nach "SEPA-Lauf erstellen"
AvERP-Anwender, die aktuell Ihre Eingangsrechnungen per DTAUS-Lauf an ihr Zahlungsprogramm übergeben müssen im Rahmen der SEPA-Umstellung auch dieses Verfahren ändern.
AvERP bietet in der Version 2014 ein Utiliity „SEPA-Export“ aufzurufen aus dem Zahlungsbuch.
Bisherige Nutzer des DTAUS-Laufs vermissen die Funktionalität
  • Auswahl der Lieferanten-Rechnungen, die zur Zahlung anstehen
  • Summe Zahlungenbeträge, zur Kontrolle von Limits ermitteln
  • Druck Kontrollblatt zur Genehmigung der Zahlung durch den dafür Verantwortlichen
Der DTAUS-Lauf wird als Druck aus der Tabellenübersicht aufgerufen. Mit Mehrfach-Selektion werden die an den DTAUS-Lauf zu übergebenden Zahlungen markiert und später auf dem Kontrollzettel gedruckt.

Genau diese Funktionalität sollte auch für den SEPA LAUF zur Verfügung stehen.

Der Kontrollzettel DTAUS ist im „alten“ FastReport2 aufgebaut.
Druck von solchen Reports aus der Tabellenübersicht wird von der AvERP-XE-Version nicht mehr unterstützt.
Deswegen  die kleine Zusatzaufgabe den Druck Kontrollzettel mit FastReport4 – dem Neuen AvERP-Designer aufbauen.
 
Hier werden die Eingangsrechnungen im Einkauf betrachtet. Aufruf erfolgt aus dem Zahlungsbuch. 

Datensätze für SEPA-Export in der Tabellenübersicht markieren und Drucken "SEPA-Export" auswählen.
Im Vorschalt-Dialog zum Drucken, wird der Dateipfad für die zu erzeugende XML-Datei erstellt.
Die aktuelle SEPA-Lauf-Nr, bestimmt.
Falle mehrere Firmenkonten mit IBAN und BIC versehen sind, das Firmenkonto auswählen.
Und die Summe der markierten Zahlunsgbeträge ausgegeben.





Auf Druck "OK" wird im die SEPA-XML-Datei auf das Zielverzeichnis geschrieben und eine Kontroll-Liste gedruckt.



Übernommen aus dem DTAUS-Lauf, nur wenn tatsächlich auf einen Drucker ausgegeben erfolgt die
Frage: Können die markierten Daten als gezahlt markiert werden ?

Nach diesem Vorlauf einige Kleinigkeiten zum AvERP-Designer, die ich hier festhalte, weil ich sie mir sonst immer wieder mühseelig erarbeiten muß.

Beispiel manuelles Umsetzen FR2 nach FR4-Report:

Quelle Zahlungsausgang - DTAUS erstellen FRDBZAHL_DTAUS
Ziel: Zahlausgang SEPA-Datei erstellen mit nahezu ähnlicher Logik.
Deswegen die Maske-Logik in OnFormShow, AfterPrint erhalten, aber Report auf Fast-Report4 umstellen.
Folgender Trick funktioniert um den FR4-Designer zu aktivieren:

FR4 aktivieren über
  • Maske kopieren
  • als FRDBZAHL_SEPA umbebenennen
  • Editieren:
    FRDBZAHL_SEPA die Eigenschaft
    bNewFastRep = True geben.
  • Geänderte Ressource einlesen.
So sollte dann FRDBZAHL.res anfangen:
inherited FRDBZAHL_SEPA: TDBasisForm // DTAUS=>SEPA umbenennen
Left = 0
Top = 400
Width = 471
Height = 280
Caption = 'FRDBZAHL_SEPA' // DTAUS=>SEPA umbenennen
OldCreateOrder = True
bFormShow = True
bNewFastRep = True // Zeile im Editor hinzufügen


Nächster Schritt mit AvERP-Designer ObjectInspector
aus DTA-Dateiname mach SEPA-Nummer:

Umbennen im DTA nach SEPA: im  DM1-Modus anklicken,
Direkt Caption ändern.


Vorlage Seite 2 aus den DTAUS-Lauf:

 
Umsetzen zu 

Stattwie in FR2 Datenquelle fr_rep1 und Feldaliase q_rep1 zu exportieren

reicht es Dataset frx_rep01 auszuwählen.

Korrespondierende Bänder:

Seite 1 Begleitzettel entfällt
Seitenkopf PageHeader
Hauptdaten Masterdaten
(DataSet frx_rep01
Anzahl Datensätze 0)
Hauptfuß Footer

 
Variablen DTAUSNR, FIRMA_BANKNAME und FIRMA_KTO exportieren




Variablen-Gruppe hinzufügen
Hier sReport benannt – Benennung kann beliebig sein.

 












Export Report Variablen im ButtonOkOnClick-Script:
festen Namen sReportVariablen verwenden.
Zussammenhängenden in „Doppelte Hoch-Komma“ geklammerten String
im Stil VARIABLE=<Wert>, Komma als Trenner in Variablen ,<Wert> Liste

ReportVariablen := '"FIRMA_KTO=' + sFIRMA_KTO + '",' +
'"FIRMA_BANKNAME=' + sFIRMA_BANKNAME + '",' +
'"DTAUSNR=' + LB_DTAUSNR.Caption + '"';

Hier werden die Variablen FIRMAT_KTO, FIRMA_BAMKNAME, DTAUSNR on den Report übergebenn.

Verwendung im FR4-Designer:

MemoFeld mit Inhalt [DTAUSNR] (in eckigen [] Klammern druckt den Inhalt der Reportvariablen DTAUSNR.


meBetrag Zusammengesetztes Memofeld im Code zum OnBeforePrint-Ereignis MeBetragOnBeforePrint definieren.

procedure meBetragOnBeforePrint(Sender: TfrxComponent);
var s1,s2 : String;
begin
  meBetrag.memo.Clear;
  s2 := '';
  s1 := FormatFloat('###,###,##0.00',<frx_rep01."ENDBETRAG">);
  if (trim(<frx_rep01."ZDATUM">) <> '') then
   s2 := FormatDateTime('dd.mm.yyyy',<frx_rep01."ZDATUM">);
  meBetrag.memo.add(s1);
  meBetrag.memo.add(' ');
  meBetrag.memo.add(s2);
end;

begin {hier der gesamte Code-zum Report FRDBZAHL_SEPA
       mehr braucht es Nicht!}
end.

Zubeachten in FR4
Variablen vereinbaren !
Auf Objekt qualifiziert zugreifen
mit z.B. meBetrag.memo
Alternativ Block with <Objekt>, Engine do
with meBetrag, Engine do
begin
memo.Clear;

memo.add(s1);
'
end;


statt eckigen [] spitze <>Klammern verwenden.
Statt [q_rep1.“ENDBETRAG“] <frx_rep01."ENDBETRAG"> verwenden.

Str([q_rep1.“ZDATUM“) <> '' führt zu Syntax-Fehler

(trim(<frx_rep01."ZDATUM">) <> '' hat die gleiche Wirkung.

Hier zum Vergleich das Script in FR2-Syntax:

 




Samstag, 4. Januar 2014

Alle Jahre wieder: Firmenstamm Geschäftsjahr unstellen.

Ein Neues Jahr hat begonnen und die AvERP-Anwender werden aufgefordert, das Geschäftsjahr zu wechseln. Die Meldung

"Firmenstamm: Geschäftsjahr umstellen!"

Eigentlich sollte es reichen anzuzeigen "Mandantenstamm: Geschäftsjahr umstellen!"

Anmerkung: Unverändert auch für die Version 2016 und 2017 erforderlich.

ist etwas irritierend.
Es reicht nicht aus im Firmenstamm die 3 Parameter

Geschäftsjahr:   "14" wie verwendet in Nummernkreisen @GJ
Beginn G.Jahr: "01.01.2014"
Ende G.Jahr:     "31.12,2014"

anzupassen - auch für jeden Mandanten sind die 3 Parameter zu setzen.

Firmenstamm / Mandantenstamm


Auch wenn man mit AvERP wie wohl in 95% aller Anwendungen nur mit einem Mandanten arbeitet und die Einstellungen für Firma und Mandant gleich sind, der Mandant hat Vorrangm die Eintragungen im Firmenstamm sind eher historisch.

Nummernkreise 

Nummernkreise werden zwar als Unterprogramm zum Firmenstamm definiert, das Kürzel @GJ wie im Nummernkreis BAUF.A = AN-@GJ@000000 für Angebote in der Default-Einstellung des Auslieferungsstand der AvERP-Version 2014.02, wird aber aus dem Mandatenstamm gezogen.

Nähere Erläuterungen zu Nummernkreisen unter Hilfe "Eigene Hilfe" in der Maske BNUM Nummernkreise.

Erläuterung:
Nummernkreise eindeutig

Nummernkreis für Rechnungen sei.
RG@MA@GJ-@00000
Letzte Rechnung im Geschäftsjahr 2015 RG115-07921
dann bei Lfd.Nr.eindeitig = 'J'A
erste Rechnung im Geschäftsjahr 2016 RG116-07922
d.h. die laufende Nummer wird fortlaufend von @00000  07921 nach 07922 hoch gezählt.



Sonntag, 22. Dezember 2013

Aktualisierung Release Candidaten 6.1.0.44 am 09.05.2014 ( - 4.2.5.126)

Aktualisierung: AvERP DELPHIXE ReleaseCandidat:

Version 6.1.0.44
Datum 09.05.2014

Version: >= 6.1.0.29
Datum: 14. Januar 2014


 
Zur AvERP DELPHIXE Version gibt es seit 06.12.2013 einen weitere veröffentliche Version als  ReleaseCandidat:

Download auch über http://schmidt-schwarz.de/averp/
  • Die neuste Beta-Version zum DelphiXE-Client-Programm 6.1.0.35 Stand 04.03.2014
  • Wenn auch diese Version nicht stabil genug läuft.
  • Nehmen Sie die letzte Version AvERP.exe 4.2.5.126
Der unter beschriebene Fehler tritt ab Version 6.1.0.39 nicht mehr auf!!
Habe die Version 6.1.0.25 getestet - beim Versuch eine komplexe Excel-Tabelle über die "Universelle Schnittstelle" von AvERP einzulesen, weigerte sich nach Excel mit der Meldung
"Microsoft Excel kann diesen Vorgang mit den verfügbaren Ressourcen nicht ausführen. Bitte wählen Sie weniger Daten aus oder schliessen Sie andere Programme."

Mit der aktuellen 4.2.5er Version arbeitete Excel klaglos zusammen - sollte die AvERP DelphXE-Version wesentlich Resourcen-hungriger sein??
 

 
Was mir noch zur "älteren" AvERP-Version 4.2.5 aufgefallen ist:
Offensichtlich wird von SYNERPY auch diese Version noch weiter gepflegt. Bisher hatte ich eine 4.2.5.106 als höchsten Versionsstand zur Verfügung - mittlerweile sind sind 20 Änderungen zum Stand 4.2.5.126 hinzugekommen.

Donnerstag, 19. Dezember 2013

Lagerverwaltung in AvERP

Lagerverwaltung in AvERP

Eine umfassende Lagerverwaltung, jederzeit ein bekannter Lagerbestand, ist ein Kernpunkt in Warenwirtschaft und ERP. 
AvERP führt Bestände auf Lagerplatzebene. Die Summe der Lagerplatzbestände innerhalb eines Lagers bildet den Lagerbestand. Im Mandantenstamm werden die Standard Lager eingestellt.

Zitat AvERpedia: „Die in den Feldern Standardeingangslager und Standardausgangslager hinterlegten Lager werden beim Anlegen eines Artikels automatisch als Artikeleinzellager angelegt, wobei das Eingangslager in allen Prozessen für geplante Eingänge, und das Ausgangslager für alle geplanten Lagerausgänge automatisch vorbelegt wird. Das Just in Time Lager wird für die Lagerhierarchie bei den Kostenstellen benötigt. Artikel, die in den Artikelmerkmalen als Dienstleistungsartikel gekennzeichnet sind, werden automatisch einem Dienstleistungslager zugeordnet, das in der Mandantenverwaltung hinterlegt ist. Obwohl für die Artikel keine Buchungen erfolgen, benötigt AvERP für die Prozessabwicklung ein Dummy Lager. Das Sperrlager und der Umschlagplatz werden für die Wareneingangskontrolle benötigt. Diese Lager werden bei den entsprechenden Artikeln automatisch angelegt, wenn ein Wareneingangsworkflow stattfindet. Die Wareneingangsmenge wird bei einer Wareneingangskontrolle zuerst auf den Umschlagplatz gebucht und von dort aus verteilt. Findet eine Reklamation statt bzw. ist die Wareneingangsprüfung in einem bestimmten Abschnitt nicht korrekt, wird die zu reklamierende Menge auf das Sperrlager gebucht. Ein Kundensperrlager wird für die Kundenreklamation, das Kommissionslager für das Kommissionswesen benötigt. „


Auf das Eingangslager wird im Einkauf bestellt und der Wareneingang gebucht.
Wenn Wareneingangskontrolle über den WE-Workflow erfolgt, wird zunächst auf das Umschlagplatz gebucht und nur die „gute“ Ware auf das Eingangslager umgebucht – Reklamationen werden auf das Lieferanten -Sperrlager umgebucht.
Vom Ausgangslager wird im Verkauf geliefert. Üblicherweise wird vom Ausgangslager abgebucht – Buchungen auf Konsignationslager beim Kunden führen zu Umbuchungen.
Auch Bestände von Beistellteilen werden über spezielle Lager abgebildet. Beistellteile an Lieferanten zur Abbildung von Fremdfertigung und Auswärtsarbeitsgängen können per Lieferschein auf das Lieferanten-Lager umgebucht werden – Entlastung erfolgt als Wareneingang.
Die Anforderung und Lieferung von Kunden – Beistellteile kann über Umbuchungen von und gegebenenfalls auch wieder zurück auf Kundenlager abgebildet werden.
Schließlich können zur Abbildung des innerbetrieblichen Materialflußes weitere Lager zwischen Eingangs- und Ausgangslager geschaltet werden. Über die Zuordnung eines Lagers zum Stammarbeitsplan wird festgelegt, von welchem Lager das Einsatzmaterial abgebucht wird und auf welches Lager die gefertigten Artikel zugebucht werden.

Standard – Lagerplätze

Bei Anlage Artikel wird auch das Artikelstamm – Einzellager für die Standard – Lager mit jeweils einem STANDARD Lagerplatz angelegt. Aufruf Einzellager als Unterprogramm zum Artikel
Um die Zuordnung von Lagerplätzen in AvERP muß man sich nicht kümmern, wenn es zur Abbildung des Prozesses nicht notwendig ist. Zu jedem Lager legt AvERP automatisch einen Standard-Lagerplatz an. Alle Bestände eines Artikels bezogen auf ein Lager können so auf dem Standard-Lagerplatz zusammen gefasst werden. Die exakte Position im Lager kann so nicht bestimmt werden.

Übersicht über Lager über F4-Taste (Kontext zur Artikelnummer) A. Lager
zeigt Bestand über alle Lager des Artikels.
 
Unter dem Artikel -Einzellager liegen die Einzellager-Lagerplätze.
Ohne Weiteres jeweils nur der STANDARD Lagerplatz. 
 

Einfachste Inventur

Die einfachste Form einer Inventur mit AvERP besteht aus dem Druck der Inventur-Aufnahmeliste aus Stammdaten/Artikel. Die Liste wird sortiert nach Lagerfach, Artikel-Nr.. Eine Zuordnung von Lagerfächern ist also hilfreich um mit der Inventurliste nach einen sinnvollen Weg zur Bestandsaufnahme durchs Lager zu gehen.

Druck Inventur Aufnahmeliste aus Artikelstamm.
Auswahl einer Teilmenge der Artikel z.B. nach WarenGruppe Einkauf = „HALB“ oder WrGrp. Sonst = 'HBL' oder auch Artikelnummer beginnt mit „HBL*“ um die Ergebnismenge einzuschränken.
Aus der Listen-Darstellung Drucken „Inventur – Aufnahmeliste“ aufrufen.
Auswahl kann auf ein „Bestimmtes Lager oder LEER für alle“ getroffen werden.


Inventurliste wird nach Lagerfach sortiert 
(leider für Artikel OHNE Lagerfach vor denen mit gesetztem Lagerfach)

so ist es sinnvoll Lagerfächer zu definieren!

1. Lagerfach für Einzellager zuordenen

(Einfachster Fall

1 fester (Standard) Lagerplatz als Lagerfach dem Einzel-Lager zuordnen)

 
Die Eingabe Lagerfach dient rein als Sortier-Kriterium, wird NICHT nach bestimmter Logik wie Nummernkreis oder Lager-Koordinate nach dem Schema Regal-Stellplatz-Ebene-Fach vorgegeben. Eingabe Lagerfach wird nicht validiert und liegt voll in der Verantwortung des Erfassers.

Im Lager-Kontext zum Artikel über die F4-Taste

wird das Lagerfach zum Lager angezeigt

 


2. Anlage eine Lagerplatzes

Aufwendiger als die Zuordnung eines Lagerfachs zu Lager und Artikel  ist die Anlage von Lagerplätzen unabhängig von den automatisch angelegten Standard-Lagerplätzen.

Hier  
Anlage eines Lagerplatzes BL03-06 zugehörig zum Hauptlager
Zusatzdaten wie Regal, Spalte, Reihe, Fach sowie Abmessungen sind in der betrachteten Datenbank-Version 2012.A02 ohne erkennbare Funktion.
Regal / Spalte / Reihe werden in aktueller Version zwar über 3-Punkte Tasten als Unterprogramm vorkonfiguriert, ist beim 1.Test aber ohne Funktion.(die intuitiv erkennbar wäre)

Zunächst Anlager eines Lagerplatzes im Lagerstamm - Lagerplätze.
 Dann Zuordnung des Lagerplatzes als Stammplatz zum Artikel.
Wareneingänge für diesen Artikel "HBL-00050000302" werden nun auf den Stammlagerplatz "BL03-06" gebucht.


Komplizierter wird es, wenn der Bestand für einen Artikel innerhalb eines Lagers auf unterschiedlichen Lagerplätzen geführt wird und Buchungen auf einen Nicht-Standard Lagerplatz durchgeführt werden sollen. Dann muß das Lagermodul "Lagerreservierungen" genutzt werden.

Lagerplatz-Reservierung

Übersteuerung des Standard-Lagerplatzes beim Ein- und auch beim Auslagern erfolgt über das Lagermodul, wie auch für die Reservierungen von Warenträgern, Chargen und Seriennummern nötig. Aufruf durch "Shift-Klick auf die 6-Punkte Taste zur Lagernr.
Anwahl des Lagerplatzes über Maus-Drag und Drop
Ziehen des Lagerplatzes von "verfügbare Objekte" nach "zugewiesene Objekte"











Sonntag, 27. Oktober 2013

Release Notes AvERP2014 sortiert nach Kategorie und Menü

Fast 300 Einträge in der AvERP 2014 Release Notes.
Da fällt der Überblick schwer.
Ich habe mir die Mühe gemacht, die einzelnen Änderungen nach Möglichkeit
nach Bereich1 Menü Bereich2 Maskenname zu ordnen.

Änderungliste Averp2014 nach Kategorien sortiert
Link Öffnet die Tabelle auf Google-Drive