Session D-BUSI

Große Projekte mit entsprechendem Framework gewinnen

Vincent Bloem
AccountView


Schedule

  • Accounting for Developers
  • Enterprise Modeler
  • Linking through COM
  • SDK/Business API
  • Using the Integrated Test Facility
  • Loose Ends

A Bit of Background

  • AV Windows result of more than 3 years of work
  • Built on experience gained with 4,500 DOS installations in 20 countries
  • More than 100 Add-ins built
  • Huge custom projects delivered by VARs
  • 8 Developers
  • 2 Documentation Engineers
  • 26 Total Staff

Accounting for Developers

  • Basic User Interface
    • Debitoren exercise
  • Posting transactions
    • Handeling corrections
    • Posting payments
  • Analysing data
  • VAT Report
  • Invoicing
  • Layouts
  • Audit Trail
  • Data Structure
  • Data-Integrity
  • Self-Diagnosis
  • Error Log

Enterprise: Adventure Travel

  • Adding fields to an existing entity
  • Adding a new entity
  • Adding user menu options

3-Tier Client server

AV Object Model

VB Code Example

Microsoft Excel 97

Sub Main()
   
   Set oExcel = CreateObject(Excel.Application)
   oExcel.WorkBooks.Add (c:\documents\sales98.xls)
   oExcel.WorkBooks(Sales March).Activate
 End Sub

Visual AccountView

Sub Main()
 Set oAV = CreateObject(AVWin.Application)
   ltesting = oAV.Login(demo, demo)
   Set oAdm = oAV.open_admin(TRV_Work)
   Set oGL1 = oAdm.create_object(gl1)
 End Sub

COM Examples

  • Code samples
  • AutoManager

Integration Issues

  • Synchronising setup data
    • Do it yourself
    • Use AV tools
  • Timing
    • Startup/hourly/monthly
  • Integration Entry Points
    • Daily Journals
    • Sales/Purchases/Projects

COM Details

  • Requesting ADO recordsets
  • Error handling
  • AccountView Script Server
  • Using the COM interface from FoxPro

AV BAPI

  • Tracing API Events
  • A look at the API Registry
    • API types
  • Common API methods
    • ADDon.VCX
    • Template code classes
  • Using the API to validate user input

SDK Details

  • Modifying existing reports
  • Distributing your work
  • Adding menus in code

Integrated Test Facility

  • Testing Overview
  • Testing Types
  • Regression, Stress, Boundary, Network
  • Sample Tests

Kopplung mit AccountView

Integration ohne Änderung

Dieses Kapitel richtet sich an Software-Entwickler, die eine branchen- oder unternehmensspezifische Anwendung an AccountView koppeln möchten. Hier werden Lösungen besprochen, bei denen AccountView nicht erweitert oder geändert wird: die externe Anwendung kommuniziert über eine Kopplung mit AccountView. Es geht dabei oft um die Verarbeitung von Umsatzdaten aus dem primären Unternehmensprozess in der Finanzbuchhaltung von AccountView. Es können jedoch alle Arten von Daten ausgetauscht werden, auch die, die zum Beispiel zu Bestandsbuchungen oder Bestellungen in AccountView führen.

Obwohl der Nachdruck bei der Kopplung meistens auf Buchungen gelegt wird (Sie möchten nur die Umsatzdaten buchen), müssen häufig auch Stammdaten ausgetauscht werden. Alle Buchungen in AccountView verweisen nämlich auf Stammdaten in anderen Tabellen. In diesem Kapitel werden die Techniken zum Austausch beider Datenarten erläutert. Mit dem Modul Stammdatenimport können Sie mehrere Tabellen gleichzeitig importieren, so dass Sie das lästige Huhn-Ei-Problem umgehen.

In diesem Kapitel stehen Strategien und Techniken im Vordergrund, mit denen Sie eine ständige Kopplung zwischen Ihrer branchen- oder unternehmensspezifische Anwendung und AccountView erzielen können. Dabei geht es vor allem um die Beziehung zwischen Stammdaten und Buchungen in der externen Anwendung und denselben Daten in AccountView. Sie können mit den folgenden Modulen Kopplungen erstellen:

  • Buchungsimport
  • Stammdatenimport
  • AccountView COM Server (oder die VFP-Schnittstelle)
  • AccountView Backoffice Server

Die Vielzahl von branchen- und unternehmensspezifischen Kopplungen erfordert die Diskussion mehrerer Ansätze. Die offene Struktur und Dienstprogramme von AccountView bietet zahlreiche Möglichkeiten zur Entwicklung der Kopplung mit einem branchen- oder unternehmensspezifischen Programm. Dennoch hängt die Wahl des idealen Ansatzes von Ihrer Situation ab.

In diesem Kapitel finden Sie nicht nur Informationen über konkrete Techniken, sondern auch die Vor- und Nachteile der unterschiedlichen Kopplungsstrategien. Diese Informationen beruhen auf der Erfahrung von Hunderten von Unternehmen, die bereits eine Kopplung erstellt haben. Dies ermöglicht Ihnen, die Strategie zu wählen, die am besten zu Ihrer Situation passt. Ihre Wahl hängt unter anderem von den folgenden Punkten ab:

  • die Möglichkeit, das Exportformat der branchen- oder unternehmensspezifischen Anwendung an das Dateiformat von AccountView anzupassen
  • die Anzahl Benutzer der Kopplung. Bei vielen Benutzern lohnt es sich eher, die Kopplung mit AccountView COM Server zu entwickeln. Dann brauchen die Module Buchungsimport und Stammdatenimport nicht für jeden Kunden angeschafft zu werden.
  • die Programmiersprache und Plattform der Branchenanwendung. Ist dies zum Beispiel AS/400, dann ist AccountView Backoffice Server die beste Wahl. Ist es Delphi unter Windows NT, kann AccountView COM Server eine gute Wahl sein.
  • Ihre Erfahrung mit Visual FoxPro und Ihre Bereitschaft, einen AccountView Certified Engineer einzusetzen.

Alle Module führen zahlreiche Prüfungen der externen Daten durch. Dies gewährleistet die Datei- und Datenintegrität Ihrer Finanzbuchhaltung. Am besten kommt dies in der 3-Schichten Client/Server-Architektur zum Ausdruck, die AccountView verwendet. Diese Architektur sorgt dafür, dass die Geschäftsregeln von AccountView immer eingehalten werden.

--> 3-Schichten Client/Server-Architektur

Kopplungsbeispiele

In diesem Abschnitt finden Sie Beispiele einiger Import- und Exportkopplungen zwischen branchen- oder unternehmensspezifischen Anwendungen und AccountView, so dass Sie einen Eindruck der Möglichkeiten für Ihre Lösung bekommen.

Umsatzbuchungen monatlich in AccountView importieren

Die Primärprozesse Ihres Unternehmens werden mit einer branchen- oder unternehmensspezifischen Anwendung verwaltet. Diese Anwendung verwaltet die Lieferung von Waren oder Dienstleistungen und sorgt für die Fakturierung. Sie möchten einmal monatlich die Rechnungsdaten automatisch in die Finanzbuchhaltung von AccountView importieren, um die doppelte Erfassung zu vermeiden.

Sie erstellen eine Exportdatei in Ihrer Anwendung. Mit Buchungsimport können Sie die Buchungsdaten als Grundbuchzeilen in AccountView importieren, danach werden die Buchungen sofort in der Finanzbuchhaltung verarbeitet. Zur Synchronisierung von Stammdaten (beispielsweise der neuen Debitoren) zwischen Unternehmensanwendung und AccountView verwenden Sie Stammdatenimport.

Für die Durchführung des Imports können Sie zwischen dem manuellen Aufrufen der Optionen von Buchungsimport und Stammdatenimport in AccountView oder der Kombination der einzelnen Schritte in einer neuen Importprozedur wählen, die von einer zusätzlichen Menüoption gestartet wird. Sie können die Umsatzdaten auch beim Starten von AccountView automatisch verarbeiten lassen. Für welche dieser Möglichkeiten Sie sich entscheiden, hängt von der Frequenz der Importe, der Fertigkeiten der Buchhaltungsmitarbeiter und Ihrer Kopplungserfahrungen ab.

Abbildung 0.1. Die Branchenanwendung liefert AccountView Buchungen und Stammdaten. AccountView sorgt für die Verarbeitung und liefert das Ergebnis an die Branchenanwendung.

Eine mögliche Erweiterung einer derartigen Kopplung ist der Export der offenen Posten aus AccountView zur Unternehmensanwendung. Dann können Sie den Kreditlimit und das Zahlungsverhalten in der Unternehmensanwendung überprüfen und verhindern, dass Sie Waren an Kunden liefern, die nicht (rechtzeitig) zahlen. Dies kann einfach durch die regelmäßige Erstellung einer Exportdatei der offenen Posten in AccountView realisiert werden. Standardmäßig stehen 13 Exportformate zur Verfügung.

Umsatzbuchungen mehrmals täglich in AccountView importieren

Eine Variante des vorigen Beispiels ist die Situation, bei der Sie eine engere Kopplung zwischen Ihrer branchen- oder unternehmensspezifischen Anwendung und AccountView erreichen möchten. Sie können dann Buchungen und Stammdaten von der Anwendung aus mit AccountView COM Server (oder der VFP-Schnittstelle) an AccountView weitergeben. Auf die AccountView-Daten (die offenen Posten) können Sie zum Beispiel mit einer ADO-Datensatzgruppe zugreifen.

Rechnungen in AccountView importieren

Sie haben eine Anwendung für die Luftfrachtbranche entwickelt. Der Schwerpunkt Ihrer Anwendung liegt bei der schnellen und präzisen Abholung und Lieferung von Waren und der Verfolgung des Weges, den die Waren beim Transport ablegen. Alle unternehmensspezifischen Eigenschaften, die bei der Fakturierung eine Rolle spielen, können im Standardmodul Fakturierung von AccountView realisiert werden. Daher beschließen Sie, die Rechnungen von AccountView generieren zu lassen. Auf diese Weise brauchen Sie selbst kein Fakturierungssystem zu entwickeln und zu warten und sorgt AccountView für die Erstellung von Rechnungslayouts, das Drucken und die Verarbeitung von Rechnungen in der Finanzbuchhaltung sowie die Aktualisierung von umfassenden Umsatzstatistiken.

Der Export in das Modul Fakturierung von AccountView anstelle in die Grundbücher hat den zusätzlichen Vorteil, dass Sie in Ihrer eigenen Anwendung fast keine Buchhaltungsdaten verwalten müssen. Die Steuersätze, Wechselkurse, Ertragskonten, Skonti und Staffelrabatte werden automatisch von AccountView berechnet oder während der Verarbeitung angewandt. Sie brauchen lediglich die Debitorennummer, den Artikelcode und die Artikelmenge von Ihrer Anwendung aus weiterzugeben, um eine gültige Rechnung zu erstellen. Alle sonstigen Daten, wie die zu verwendenden Steuersätze, werden von AccountView automatisch anhand der in den Artikel- und Debitorenstammdaten erfassten Standardwerte ermittelt.

Sie haben Erfahrung mit Visual Basic, daher wählen Sie die Kopplung mit dem BusinessModeller von AccountView. Sie bringen den Import der Umsatzdaten in einer neuen Menüoption im Fenster Mandanten unter. Daher kann der Buchhalter die Umsatzdaten in einem Schritt einmal täglich importieren, und anschließend sofort Rechnungen drucken und versenden.

Obwohl Sie natürlich auch Stammdaten mit AccountView COM Server importieren können, entscheiden Sie sich doch für Stammdatenimport. Auf diese Weise brauchen Sie nicht zu bestimmen, welche Debitorendaten in Ihrer Betriebsanwendung seit dem letzten Export nach AccountView hinzugefügt oder geändert worden sind. Sie bieten alle Debitorenstammdaten an, und Stammdatenimport bestimmt, welche Debitorendaten neu oder geändert sind. Die Buchhalter legen auch Wert darauf, dass alle Änderungen automatisch im Audit Trail dokumentiert werden, wodurch sie einfach überprüft werden können. Da es sich nur um 5000 Debitoren handelt, dauert die Synchronisierung nur wenige Minuten.

Kassenbons in Echtzeit verarbeiten

Da AccountView Backoffice Server mit AVS-Skripts arbeitet, die von fast jeder Anwendung aus generiert werden können, überbrückt AccountView Backoffice Server die Schwelle zwischen Systemen, die in den verschiedensten Programmiersprachen für unterschiedliche Betriebssysteme geschrieben wurden. In einem AVS-Skript legen Sie Buchungen in einer versions- und plattformunabhängiger Weise fest. Die Skripts können auf einfache Weise erstellt werden, unabhängig von der verwendeten Programmiersprache, der Anwendung oder dem Betriebssystem. Die Skripts beschreiben die durchzuführenden Buchungen für AccountView auf einer abstrakten, versionsunabhängigen Ebene.

Ein Baumarkt hat zum Beispiel zehn Kassen, die an das Betriebsnetzwerk gekoppelt sind. Die Kassen (mit einem eigenen Betriebssystem) sind so programmiert, dass sie bei Abschluss eines Geschäftsvorfalles ein AVS-Skript generieren. Diese Skripts werden in ein freigegebenen Verzeichnis auf dem Windows NT Dateiserver gestellt. Auf einem der PCs im Büro ist AccountView Backoffice Server immer aktiv.

Durch die geschickte Einrichtung der Buchführung und die gute Struktur der AVS-Skriptdateien kann die Geschäftsleitung:

  • den aktuellen Umsatz jeder Kassen minütlich überprüfen
  • die genaue Bargeldmenge jeder Kasse einsehen und durch eine ergänzende Anwendung ein hörbares Signal erzeugen lassen, wenn sich in einer Kasse zuviel Bargeld befindet und geleert werden muss
  • die aktuellen Bestandsdaten aller Artikel im Geschäft überprüfen.

Entwicklung von aufgabengerichteten Schnittstellen

Um schneller über aktuelle Bestandsdaten verfügen zu können, möchten Sie es den Lagerverwaltern ermöglichen, Bestandseingänge oder -bewegungen im Lager einzugeben. Dies setzt eine stark vereinfachte Benutzeroberfläche voraus, mit denen nur aufgabengerichtete Informationen aufgerufen und geändert werden können. Eine Möglichkeit wäre, den Zugriff auf das Modul Lagerbestand von AccountView freizugeben, aber das Modul bietet zu viele Möglichkeiten und ist zu umfassend für diese Gruppe aufgabengerichteter Mitarbeiter.

Sie entscheiden, eine stark vereinfachte Benutzeroberfläche zu entwickeln, die zum Beispiel auf einem Webbrowser wie dem Microsoft Internet Explorer oder dem Netscape Navigator beruht. Auf diese Weise können Sie auf einem Netzwerkarbeitsplatzrechner oder einem einfachen PC ohne Diskettenlaufwerk nur die erforderlichen Daten bereithalten. Die Wartung dieser aufgabengerichteter Arbeitsplätze wird wesentlich billiger, da die Benutzer keine Software installieren und den Windows-Desktop nicht ändern können.

Zur Entwicklung der Oberfläche des Webbrowser stehen Ihnen mehrere Möglichkeiten zur Verfügung. Fast jede Programmiersprache bietet die entsprechenden Werkzeuge. Sie wählen die Sprache und Werkzeuge, mit denen Sie vertraut sind. Der Zugriff auf die Bestandsmengen in AccountView wird einfach mit AccountView COM Server realisiert. Zur Änderung der Bestandsdaten entwerfen Sie ein einfaches Formular, in das der Lagermitarbeiter zum Beispiel die Artikelnummer, Art der Änderung (Eingang, Verlegung, Ausgabe), Menge, den Lagercode und -ort eingeben. Nach Versenden des Formulars an den Internet-Server (submit) legen Sie mit AccountView COM Server von Ihren Active Server

Pages eine Verbindung zum entsprechenden AccountView-Objekt. Zahlungsdaten aus AccountView

exportieren

Sie haben eine eigene Anwendung zum Factoring der Außenstände und möchte dazu die Daten aus AccountView verwenden. Sie können die Daten selbst über ODBC einlesen, Sie können aber auch eine Exportdatei in AccountView aufgrund der Dateien OPEN.DBF (offene Posten) und CONTACT.DBF (Debitoren und Kreditoren) erstellen. Zum Import der AccountView-Daten in Ihr eigenes Dateiformat können Sie den Befehl SQL SELECT verwenden. Diese Datenbankdatei können Sie anschließend erforderlichenfalls mit dem Kommando COPY TO <Datei> TYPE <Dateityp> in eine ASCII-Datei konvertieren. Danach importieren und verarbeiten Sie die Datei in Ihrer eigenen Anwendung.

Finanzdaten aus AccountView analysieren

Sie haben eine Anwendung, in der Sie Finanzdaten analysieren möchten. Der Export solcher Daten gehört zur Standardfunktionalität von AccountView: Sie benötigen kein einziges Zusatzmodul. Zum Exportieren Ihrer Journalzeilen rufen Sie das Fenster Journal auf, in dem Sie Optionen/Exportieren wählen. Sie können unter mehreren Exportformaten wählen. Diese Option ist in vielen Fenstern verfügbar. Die Exportdatei können Sie anschließend in Ihrer Anwendung einlesen und weiterverwenden.

Verfügen Sie über BusinessViews, können Sie eine Standardansicht im Fenster Journal anlegen und die Daten in der Ansicht über OLE Drag & Drop in Ihre Anwendung kopieren.

Übersicht über die Kopplungsmöglichkeiten

Zum Datenaustausch stehen Ihnen mit AccountView die folgenden Module zur Verfügung:

  • Buchungsimport
  • Stammdatenimport
  • AccountView COM Server (oder die VFP-Schnittstelle)
  • AccountView Backoffice Server

Die offene Struktur von AccountView kann dazu verführen, die Daten von Visual FoxPro aus direkt in die AccountView-Dateien zu schreiben. Die direkte Änderung der AccountView-Dateien (ohne AccountView) ist jedoch fast unmöglich und nicht empfehlenswert. Der Vorteil dieser vier Module ist, dass alle Buchungen mit Audit Trail dokumentiert werden und eine automatische Gültigkeitsprüfung aller Daten stattfindet. Importieren Sie Buchungen auf eine andere Weise, ist dies nicht der Fall. Es kann dann passieren, dass erst in einem viel späteren Stadium, bei der Verarbeitung der Buchungen, Fehlermeldungen auftreten. Nur bei Verwendung der AccountView-Module kann die Einhaltung der Geschäftsregeln garantiert werden. Im folgenden finden Sie eine Erläuterung der einzelnen Methoden und ihrer Vor- und Nachteile.

Die folgende Übersicht zeigt, dass die Kopplung über die Importmodule und AccountView COM Server große Übereinstimmungen aufweist. Verwenden Sie AccountView Backoffice Server, werden alle Schritte von Skripts durchgeführt: Sie brauchen keine Datei zu importieren oder zu konvertieren, auch die Verarbeitung geht automatisch vor sich.

Kopplung über die Importmodule

Sie erstellen Importdateien, die mit Buchungsimport und Stammdatenimport eingelesen werden können. Der eigentliche Import der Buchungen kann anschließend aus AccountView oder über eine eigene Menüoptionen geschehen.

Vorteile Nachteile Einsatz
Einfache und billige Lösung Benutzer muss über die Module verfügen Wenn Sie Importdaten beim Import der vollständigen Gültigkeitsprüfung unterwerfen möchten, mit einer robusten Fehlerbehandlung
Vollständige Prüfung der Daten   Wenn Sie die Synchronisierung der Stammdaten AccountView überlassen möchten
Über AccountView-Menü oder programmierte Benutzeroberfläche aufzurufen    
Automatische Registrierung im Audit Trail    

Tabelle 0.1. Kopplung über die Importmodule

Kopplung über AccountView COM Server

Bei dieser Möglichkeit verwenden Sie den AccountView COM Server (oder die VFP-Schnittstelle) zum Import der Buchungen in AccountView. Diese Lösung setzt Programmierkenntnisse voraus.

Vorteile Nachteile Einsatz
Alle Vorteile des Component Object Model Nur für Entwickler mit Kenntnis über AccountView und Sprachen wie Visual Basic, Visual FoxPro oder Delphi Wenn die Kopplung bei einer größeren Benutzergruppe verwendet wird
Keine Laufzeitkosten für Benutzer Höhere Entwicklungskosten Wenn Sie Erfahrung mit Sprachen wie Visual Basic, Visual FoxPro oder Delphi haben
Versions- und plattformunabhängige Lösung, Portabilität Synchronisierung der Stammdaten muss von der Lösung erledigt werden Wenn Ihre Anwendung geändert werden kann
Einfache Verwaltung   Wenn Sie eine automatische versionsunabhängige Kopplung erstellen möchten
Import in alle Module möglich (z. B. Fakturierung, Lagerbestand, Projekte)    
Automatische Registrierung im Audit Trail    

Tabelle 0.2. Kopplung mit AccountView COM Server

Mit Blick auf die Synchronisierung der Stammdaten können die Importtools kombiniert werden, wobei Sie AccountView COM Server für die Buchungen und Stammdatenimport für die Stammdaten verwenden.

Dies ist auch möglich mit AccountView Backoffice Server. Dieses Modul kommt in Frage, wenn Ihre Anwendung den COM-Normen nicht entspricht. Ihre Anwendung erstellt dann ein AVS-Skript. Dies ist eine ASCII-Datei, in der sowohl die Kommandos als auch die dazugehörenden Daten enthalten sind. Ein Skript kann zum Beispiel durch Konvertierung einer Exportdatei generiert werden. Sie entwickeln dann ein Programm, das eine Standard-Exportdatei Ihrer Anwendung (zum Beispiel im SDF-Format) in ein AVS-Skript umsetzt. Dieses Skript kann anschließend in AccountView mit dem Modul AccountView Backoffice Server verarbeitet werden.

Ein Vorteil des AccountView Backoffice Server gegenüber dem AccountView COM Server ist, dass das Modul sich für jede Anwendung eignet, die ASCII-Dateien exportieren kann. Dadurch eignet sich das Modul gut für Multi-Plattformumgebungen. Ein Nachteil ist, dass der Benutzer über den AccountView Backoffice Server verfügen muss.

Ein Kopplungsmodul wählen

Welche Module benötigt werden, hängt stark von den Anwendungen ab, die Sie erstellen. Im folgenden werden einige Beispiele genannt.
Vorgang Einsatz
Import von Rechnungsdaten aus eine branchen- oder unternehmensspezifischen Anwendung oder Import von Lohnbuchungen aus einer Lohnbuchhaltung Buchungsimport bzw. Stammdatenimport. (oder eventuell AccountView Backoffice Server) ist auch möglich, wenn die Kopplung unter einer großen Benutzergruppe vertrieben wird und Sie über ausreichend Programmiererfahrung verfügen.
Externe Rechnungen in AccountView verarbeiten AccountView COM Server  (oder eventuell AccountView Backoffice Server)
Kassenbons in Echtzeit verarbeiten AccountView COM Server  (oder eventuell AccountView Backoffice Server)
Aufträge eines Internet-Ladens erledigen AccountView COM Server  (oder eventuell AccountView Backoffice Server)

Tabelle 0.3. Welche Module kommen für welche Anwendung zum Einsatz?

Übersicht über Kopplungsstellen

Nicht nur zur Durchführung der Kopplung stehen Ihnen verschiedene Möglichkeiten zur Verfügung, Sie können die Daten auch an verschiedenen Stellen austauschen. Stammdaten importieren Sie in die entsprechenden Dateien, bei Buchungen bieten sich mehrere Möglichkeiten. So können Sie mit verschiedenen Methoden Buchungen in Grundbücher, Einkauf oder Fakturierung importieren.

Möchten Sie zum Beispiel Umsatzdaten in AccountView importieren, können Sie die Daten direkt in die Grundbücher, aber auch in Fakturierung importieren. Importieren Sie in Fakturierung, erledigt AccountView automatisch die Verbuchung in die Grundbücher.

Buchungen in Grundbücher importieren

Der Import in Grundbücher kann mit allen Methoden (Buchungsimport, AccountView Backoffice Server und AccountView COM Server) durchgeführt werden.

Vorteile Nachteile

Einfache und billige Lösung

 

Für jede Modulzusammensetzung geeignet

Die Importdatei benötigt mehr Buchungsdaten, die also auch aus der branchen- oder unternehmensspezifischen Anwendung exportiert werden müssen

Tabelle 0.4. Vorteile und Nachteile des Buchungsimports in Grundbücher

Buchungen in Memorialgrundbuch importieren

Für den Import in das Memorial gelten andere Bedingungen als für den Import in andere Grundbücher, da sowohl Haben- als auch Soll-Buchung angegeben werden müssen. Der Import in das Memorial kann mit allen Methoden (Buchungsimport, AccountView Backoffice Server und AccountView COM Server) durchgeführt werden.
Vorteile Nachteile

Import fast aller Buchungsarten möglich

 

Für jede Modulzusammensetzung geeignet

Importdatei muss mehr Buchungsdaten (Gegenkonten) enthalten

Zu importierende Buchungen müssen ausgewogen sein

Tabelle 0.5. Vorteile und Nachteile des Buchungsimports in das Memorialgrundbuch

Buchungen in Fakturierung importieren

Importe in Fakturierung können mit AccountView Backoffice Server und AccountView COM Server erstellt werden, jedoch nicht mit dem Modul Buchungsimport.
Vorteile Nachteile
Export kann weniger Buchungsdaten enthalten, Fakturierung erledigt den Rest Benutzer muss über Fakturierung verfügen
Zusätzliche Details, wie USt.-Beträge, Skonto, Währungsumrechnung und Preisvereinbarungen werden automatisch bestimmt

Umfassende Bestandsdaten und Auswertungen in AccountView verfügbar

 

Tabelle 0.6. Vorteile und Nachteile des Buchungsimports in Fakturierung

Übersicht über die Kopplungszeitpunkte

Außer der Kopplungsstelle, an der Sie Daten mit AccountView austauschen, können Sie auch den idealen Zeitpunkt zum Datenaustausch bestimmen. Werden die Daten ab und zu ausgetauscht, haben Sie die Möglichkeit, dies von der Buchhaltungsabteilung mit den Standard-AccountView-Optionen Stammdaten- und Buchungsimport durchführen zu lassen. Werden die Daten täglich ausgetauscht oder soll eine Standardkopplung zwischen der Branchenanwendung und AccountView erstellt werden, lohnt es sich, den Datenaustausch zu automatisieren, zum Beispiel während des Startens von AccountView durchführen zu lassen.

Hinsichtlich des Zeitpunkts des Datenaustausches können Sie unter den folgenden Möglichkeiten wählen:

  • Manuell, über die vorhandenen Standardoptionen

Dazu muss AccountView nicht geändert werden.

  • Manuell, über eine neue Option im Menü

Sie fügen mit dem BusinessModeller eine neue Menüoption hinzu. Diese Option kombiniert die einzelnen Schritte, und der Benutzer kann den Zeitpunkt des Datenaustausches selbst bestimmen.

  • Automatisch, sobald AccountView gestartet wird

Sie verwenden zum Beispiel das System Development Kit zum Aufrufen Ihres Importverfahrens nach dem Anmelden. Auf diese Weise sind die Daten in AccountView immer auf dem neuesten Stand.

  • Echtzeit

Sie verwenden AccountView Backoffice Server zur sofortigen Verarbeitung der Buchungen nach der Lieferung.

Importmodule

Abbildung 0.1. Zum Stammdatenimport stehen zahlreiche Dateitypen zur Verfügung.

Abbildung 0.2. Wählen Sie die zu importierende Datei und die AccountView-Datei, in die Sie die Stammdaten importieren möchten.

Abbildung 0.3. Sie können bestimmen, wie mit ungültigen Verweisungen und doppelten Datensätzen verfahren werden soll.

Abbildung 0.4. Auch die Fehlerbehandlung während des Imports können Sie selbst einstellen.

Component Object Model (COM)

Das Component Object Model (COM) ist eine Software-Architektur, die die Entwicklung von Anwendungen aufgrund von binären Software-Komponenten ermöglicht. Dieser Standard ermöglicht, dass Software-Komponenten mehrerer Lieferanten strukturiert miteinander kommunizieren können. COM hat die folgenden Eigenschaften:

  • Ein binärer Standard für die Interaktion zwischen Komponenten
  • Unabhängig von der verwendeten Programmiersprache
  • Für mehrere Plattformen verfügbar (Windows 95 und NT, Macintosh und verschiedene Unix-Varianten)
  • Ermöglicht komponentenbasierte Entwicklung von robusten Anwendungen und Systemen
  • Auf konsistente Weise von Entwicklern erweiterbar
  • Beruht auf einem Kommunikationsmodell für die Komponenten, nicht nur innerhalb eines Prozesses, sondern auch über Prozess- und Netzwerkgrenzen hin
  • Gemeinsame Speicherverwaltung zwischen Komponenten
  • Umfassende Fehler- und Statusmeldungen
  • Dynamische Laden und Löschen von Komponenten

COM ist eine allgemeine Software-Komponenten-Architektur. Obwohl Microsoft COM für verschiedene Ziele verwendet (u. a. Steuerelemente, Verbunddokumente, Automatisierung, Datenaustausch, Speicherung und Benennung), kann jeder Entwickler die Struktur und Basis, die COM bietet, hervorragend für sich nutzen.

Abbildung 0.5. Nimmt der Datenverkehr zu, können Sie zusätzliche COM-Server einsetzen.

Die Lösung für Software-Komponenten

Das fundamentalste Problem, das mit COM gelöst werden kann, ist die Möglichkeit, ein System zu erstellen, in dem binäre ausführbare Dateien unterschiedlicher Lieferanten miteinander zusammenarbeiten, obwohl sie zu unterschiedlichen Zeitpunkten an unterschiedlichen Stellen der Welt entwickelt wurden. COM ermöglicht diese Interoperatibilität in einem brauchbaren und allgemeinen Modell, das vier wichtige Probleme löst:

  • Allgemeine Interoperatibilität. Die Programmierer können einmalige binäre Komponenten entwickeln, die mit binären Komponenten anderer Programmierer kooperieren.
  • Versionsunabhängigkeit. Eine Systemkomponente kann aktualisiert werden, ohne dass alle anderen aktualisiert werden müssten.
  • Sprachunabhängigkeit. Die Komponenten können kooperieren, auch wenn sie in verschiedenen Programmiersprachen entwickelt wurden.
  • Transparente Kooperation zwischen Prozessen. Die Entwickler können auf einem einfachen Modell beruhend ihre Komponenten zum Betrieb innerhalb oder neben bestimmten Prozessen oder sogar über ein Netzwerk hinweg entwickeln.

Die Grundprinzipien von COM

Das Component Object Model beruht auf mehreren Konzepten, die die Struktur des Modells festlegen:

  • Ein binärer Standard für die Funktionsaufrufe zwischen Komponenten.
  • Die Möglichkeit, stark typisierte Funktionen in der Schnittstelle zu gruppieren.
  • Eine grundlegende Schnittstelle, mit der die Komponenten:
    • die Schnittstelle anderer Komponenten dynamisch aufrufen können
    • ihre Lebensdauer anhand der Anzahl, wie oft sie aufgerufen werden, ermitteln und sich nötigenfalls löschen
  • Ein Mechanismus zur eindeutigen und weltweiten Identifikation von Komponenten und ihrer Schnittstellen.
  • Ein Komponentenlader, mit dem die Interaktion zwischen Komponenten eingestellt und zusätzlich die Verwaltung der Interaktion zwischen Komponenten (bei Aufruf mit anderen Prozessen oder über ein Netzwerk hinweg) unterstützt wird.

AccountView verwendet ein Objektmodell mit mehreren Ebenen: die Anwendung, der Mandant, das Geschäftsobjekt, die Datengruppe und die Datensatzgruppen.

Abbildung 0.6. Die konsistent durchgeführte Objekthierarchie ermöglicht die Kopplung auf einer bestimmten Ebene.

3-Schichten Client/Server-Architektur

Nicht nur die Objekte sind eindeutig Ebenen zugeteilt. Auch die Programmstruktur weist mehrere Ebenen auf. Diese Strukturierung ermöglicht es, AccountView mit einer anderen Datenbank zu versehen oder AccountView über eine andere Schnittstelle aufzurufen.

Abbildung 0.7. Deutliche Unterscheidung zwischen Interface, Geschäftsregeln und Datenbank.

Ein Beispiel

Es folgt ein einfaches Beispiel einer Anwendung, die AccountView über COM von Visual FoxPro aus aufruft.

* Start AccountView
   oAv = CREATEOBJECT('AvWin.Application')
   
   * logon to AccountView with DEMO user
   llTesting = oAv.login('DEMO', 'DEMO')
   
   * Select company TRV_BV
   IF llTesting
   oAdm = oAv.open_admin('TRV_BV')
   llTesting = NOT (oAdm.name $ 'Error')
   ENDIF
   
   * Go to the General Ledger object GL1
   IF llTesting
   oGl = oAdm.create_object('GL1')
   ENDIF
   
   * Locate the accountnumber
   IF llTesting
   llTesting = oGl.locate('acct_nr = [' + xacct_nr + ']')
   ENDIF
   
   * Did we find it?
   IF NOT llTesting
   * No, not found, ask if user wants to add the account to the AccountView database
   xanswer = MESSAGEBOX('Sachkonto ' + ALLTRIM(xacct_nr) + ' nicht gefunden. Anlegen?',    4)
   * Does the user want to add the account number?
   IF xanswer = 6 && User pressed Yes, so add it to AccountView
   * Set values to insert
   xacct_type = 2
   xnorm_stat = 2
   xacct_name = thisform.verk_oms1.edit1.value
   * Use default value if no account name
   xacct_name = IIF(EMPTY(xacct_name), 'Umsatz externe Anwendung', xacct_name)
   
   * Add a new record
   oGl.record_insert
   
   * Set the fields in the record
   oGl.set_field('acct_nr' , xacct_nr)
   oGl.set_field('acct_name' , xacct_name)
   oGl.set_field('acct_type' , xacct_type)
   oGl.set_field('norm_stat' , xnorm_stat)
   
   * Update the table
   llTesting = oGl.table_update
   
   IF NOT llTesting
   =MESSAGEBOX(oGl.msg_last)
   ELSE
   =MESSAGEBOX('Sachkonto angelegt.')
   ENDIF
   
   ELSE
   * No, the user doesn't want to add it
   =MESSAGEBOX('Sachkonto nicht angelegt.')
   
   ENDIF
   ELSE 
   * Yes, we found it 
   =MESSAGEBOX('Sachkonto ' + ALLTRIM(xacct_nr) + ' gefunden.')
   ENDIF

Dieses Beispiel startet AccountView, meldet sich als Benutzer DEMO an, geht zum Hauptbuch und sucht dort eine Sachkontennummer (xacct_nr) heraus. Auf diese Weise kann AccountView zum Beispiel von einem Branchen-Fakturierungsprogramm aus aufgerufen werden. Die Rechnungen werden dann zwar in dem Programm erfasst, die Verarbeitung wird jedoch über COM von AccountView durchgeführt.

Aus diesem Beispiel geht auch deutlich das Abstraktionsniveau hervor, das die 3-Schichten-Architektur ermöglicht. Welche Datenbank zugrundeliegt, ist unwichtig, und das Beispiel hätte auch in Visual Basic geschrieben werden können. Die Buchhaltungsengine von AccountView wird über COM aufgerufen, alle Geschäftsregeln werden angewandt. Wenn anschließend z. B. ein Sachkonto zugefügt werden sollte, wird überprüft, ob die Sachkontenart (Bilanz oder Gewinn und Verlust) erfasst ist. Wenn nicht, wird dies dem Programm über COM gemeldet.

Mit AccountView Backoffice Server (und AccountView COM Server) können die erfassten Daten natürlich auch sofort verarbeitet werden: Sie senden Ihre Umsatzdaten z. B. weiter an AccountView, hier werden nicht nur die Daten gebucht, sondern auch die entsprechenden Rechnungen gedruckt.

AccountView Backoffice Server (AVS)

Abbildung 0.8. Ein Beispiel zur Verwendung des AccountView Backoffice Server. Die Verkaufsabteilung setzt Unternehmenssoftware zur Fakturierung ein. Die Aufträge werden in AVS-Skripts umgesetzt, die von AccountView Backoffice Server in Buchungen in AccountView verarbeitet werden.

Abbildung 0.9. Verwenden Sie AccountView im Server-Modus, erscheint ein Statusfenster, in dem Sie den Vorgang verfolgen können.

Abbildung 0.10. Im Fenster System-Einstellungen definieren Sie die Einstellungen für AccountView Backoffice Server.

Abbildung 0.11. Das AVS-Skript kann automatisch erstellt werden, so dass Sie nur noch die nötigen Änderungen vorzunehmen brauchen.