Business-Object der ABACUS Debitorenbuchhaltung 1. Installation Die Business-Objects befinden sich im Verzeichnis \abac\df". Sie werden durch den ABACUS-Setup normalerweise automatisch registriert. Mit der folgenden Funktion regsvr32 \abac\df\filename.ocx" können sie im Spezialfall auch manuell registriert werden. Auf das Verzeichnis \abac\df" ist pro Workstation ein Pfad zu legen. 2. Funktionsstrukturen Die Business-Objects der ABACUS-Debitorenbuchhaltung stellen der externen Applikation pro Object n zur Verfügung. Für alle OLE-Objects der Debitoren wird eine Type-Library zur Verfügung gestellt. Alle n enthalten im nnamen den Präfix Abo" (ABACUS business objects), um Konflikte mit der Syntax der aufrufenden Applikation und der importierten OLE Type-Library zu vermeiden. Für gewisse Objects wie bspw. die zentralen Debitorenstamm- oder Belegerfassungs-Objekte mussten aufgrund von Einschränkungen der OLE-Struktur zwei nsätze zur Verfügung gestellt werden, nämlich einen nsatz für die Hauptstruktur (bei Beleg bspw. der Belegkopf mit Belegnummer usw.) und einen nsatz für die sog. Substruktur (bei Belegen bspw. die Belegpositionen). Die n der Substrukturen sind jeweils gleich bezeichnet wie die n der Hauptstruktur, ausser dass sie jeweils durch ein R" (für Related") im nnamen speziell gekennzeichnet sind. Bei Fehler geben die n in der Regel immer einen Fehlercode zurück, welcher abgefragt werden kann. 3. Datentypen Für nummerische Felder mit Kommastellen aber auch ohne Kommastellen wurde, sofern sie die Länge eines 32 Bit s übersteigen, wurden aufgrund der allgemeinen Kompatibilität gegenüber verschiedenen Programmiersprachen der BCD-Datentyp currency" gewählt. Die sonst verwendeten Datentypen sind Strings, Dates und 32 Bit s. Beat Völke Seite 1 24.02.2005
ABACUS-Business-Object Debitoren-Belege Diese Beschreibung gilt für die Version 1.8 des ABO- Debitoren-Belege ab der DEBITOREN- Version 2005.0 Bezeichnungen In der Beschreibung sind folgende Begriffe verwendet: Objekt: Eigenschaften: n: beschreibt die ganze Belegschnittstelle an sich (dabobel.ocx ist ein Objekt) alle aufgeführten Werte in der Beschreibung Alle Funktionen, die eine Interaktion auf den Daten bewirken Eigenschaften Globale Eigenschaften Folgende Eigenschaften werden in jedem ABACUS Business-Object zur Verfügung gestellt. Eigenschaft C Beschreibung Datentyp Grösse User Benutzernummer 4.0 alogoid Interne Programm-Identifikation 2.0 Mandant Mandantennummer 4.0 Sprache Sprache 2.0 0 = Deutsch 1 = Französisch Silent Fehlermeldungsart 2.0 0 = ausgeschaltet 1 = eingeschaltet LastErrorNr Fehlermeldungsnummer 4.0 LastErrorText Fehlermeldungstext String 80 AbaVersion N Abacus - "Jahresversion" (z.b. 2002) 4.0 AboVersion N Aktuelle Version des Business-Objects Number 2.2 N = Neu ab OLE - Version 1.2 Spezielle Eigenschaften des Belegobjekts Eigenschaft C Beschreibung Datentyp Grösse DBLModus Bearbeitungsmodus 2.0 0 = FindModus / 1 = SaveModus DBLSavArt Speicherart 2.0 0 = Speichern, MWST rechnen 1 = Speichern, MWST nicht rechnen DBLVesrCd Code für VESR-Zeile gemäss Stammdaten-Definition 2.0 CalcMode Berechnungsmodus 2.0 0 = Normal 1 = Spezial (Vergleiche Anhang) OneTimeNoVAT N 0 = MWST- aufgrund der Einstellungen 2.0 1 = MWST einmalig ausschalten (dieser Flag muss VOR DEM AUFRUF der n "AboNew" oder "InitSpezial" gesetzt sein und muss für jeden Beleg wieder neu gesettzt werden) N = Neu ab OLE - Version 1.6 Eigenschaften des Belegs (DBL) Eigenschaft C Beschreibung R / W Datentyp Grösse DblDB Logische Ebene R 2.0 0 = Belege 5 = Sammelzahlungen 7 = Vorauszahlungen DblBelNr Eindeutige Belegnummer R / W Number 10.0 DblDNr Kunden-Nummer R / W Number 11.0 Beat Völke Seite 2 24.02.2005
Eigenschaft C Beschreibung R / W Datentyp Grösse DblFBelDat Fibu-Belegdatum, Statistik- und Verbuchugnsdatum R / W Date 6/8/10 DblDBelDat Debi-Belegdatum, Debitoren Such- und Ablagedatum R / W Date 6/8/10 DblDispDat Dispo-Datum, Basisdatum für Fälligkeitsberechnung R / W Date 6/8/10 DblGB Geschäftsbereich R / W 6.0 DblIso Belegwährung R / W String 3 DblGF Geschäftsfall R / W 8.0 DblGFRFolge Geschäftsfall-Reihenfolge R 4.0 DblBelArt Belegart R / W String 4 DblBelDef Beleg-Definitionstyp R 2.0 DblStatus Beleg-Status R 2.0 DblSamD 2 Beleg zu Sammeldebitor (Zusatzadresse notwendig) R 2.0 DblErfKurs Erfassungskurs R / W Number 6.8 DblMahnVF Mahnverfahren R / W String 4 DblMahnInr Adressnummer der Mahnadresse R / W Number 10.0 DblMwstMeth Mehrwertsteuermethode R 2.0 DblBwBtr Betrag in Belegwährung (BW) R / W Number 12.2 DblLwBtr Betrag in Leitwährung (LW) R / W Number 12.2 DblBwOp OP-Betrag in BW R Number 12.2 DblLwOp OP-Betrag in LW R Number 12.2 DblZlgWeg Belastungsweg R / W 2.0 DblVNr Verantwortlicher R / W 4.0 DblBelGrpNr1 Freie Beleggruppen-Nummer 1 R / W Number 10.0 DblBelGrpNr2 Freie Beleggruppen-Nummer 2 R / W Number 10.0 DblBelGrpNr3 Freie Beleggruppen-Nummer 3 R / W Number 10.0 DblBelGrpCd1 Freier Beleggruppen-Code 1 R / W String 10 DblBelGrpCd2 Freier Beleggruppen-Code 2 R / W String 10 DblBelGrpCd3 Freier Beleggruppen-Code 3 R / W String 10 DblBem Beleg-Bemerkung R / W String 60 DblVesrNr VESR-Nr R / W String 35 DblBelRef Beleg-REferenz R / W String 60 DblZlgKond Nummer Zahlungskondition R / W 6.0 DblSamKto Sammel-Konto R / W Number 11.0 DblSamKst1 Sammel-Kostenstelle 1 R / W Number 11.0 DblSamKst2 Sammel-Kostenstelle 2 R / W Number 11.0 DblMahnAKP Kontaktperson zu Mahnadresse R / W 8.0 DblKstGrp Kostengruppe R / W 8.0 DblMahnBr Mahnbereich R / W 6.0 DblFAdrInr Adressnummer der Faktura-Adresse R / W Number 10.0 DblGesperrt Sperr-Flag für Beleg-Mutationen R 2.0 DblErfKoef Fixkurs zu Erfassungskurs R Number 6.8 DblBelNrExtern Externe Belegnummer R / W Number 12.0 DblVesrVf Vesr-Verfahren R / W Number 4.0 DblCMGrp 4 Cash-Management-Gruppe R / W Number 8.0 DblEzVf 5 Einzahlungsschein-Verfahren (0=ESR / 1=IPI) R / W 2.0 DblLetzteZlg 8 Datum der letzten Zahlung R Date 6/8/10 2 = Neu ab OLE - Version 1.2 4 = Neu ab OLE - Version 1.4 5 = Neu ab OLE - Version 1.5 8 = Neu ab OLE - Version 1.8 Eigenschaften der Belegpositionen (DPS) Eigenschaft C Beschreibung R / W Datentyp Grösse DpsDB Logische Ebene => entspricht DblDB R 2.0 DpsBelNr Eindeutige Belegnummer => entspricht DblBelNr R Number 10.0 DpsPosNr Positionsnummer innerhalb des Belegs R / W 6.0 DpsGB Geschäftsbereich auf Position R / W 6.0 DpsFCode freier Fibu-Verbuchungscode R / W String 1 DpsMwstCode Mehrwertsteuercode R / W String 3 DpsMengeCd Mengencode R / W String 4 DpsMenge Menge R / W Number 8.4 DpsText Positions-Text R / W String 30 DpsBwBtr Positionsbetrag in BW (inkl. MWST) R / W Number 12.2 DpsLwBtr Positionsbetrag in LW (inkl. MWST) R / W Number 12.2 DpsHKto Ertrags-Konto R / W Number 11.0 DpsHKst1 Ertrags-Kostenstelle 1 R / W Number 11.0 DpsHKst2 Ertrags-Kostenstelle 2 R / W Number 11.0 DpsDMwstBw * Mehrwertsteuerbetrag in BW R / W Number 12.2 DpsDMwstLw * Mehrwertsteuerbetrag in LW R / W Number 12.2 DpsMwsGSw Flag "verschobene MWST-Gültigkeit" R 2.0 DpsMwsGDat Mehrwersteuersatz gültig per... R / W Date 6/8/10 DpsExRef N Externe Referenz auf Positionsebene R / W String 20 Beat Völke Seite 3 24.02.2005
Eigenschaft C Beschreibung R / W Datentyp Grösse DpsExOrder N Externe Auftragsnummer R / W Number 12.0 DpsExPos N Externe Positionsnummer R / W 6.0 DpsKonsCode N Konsolidierungscode R / W Date 8 * = ACHTUNG: falls nicht durch ABACUS gerechnet: "umgekehrtes" Vorzeichen im Vergleich zum Positionsbetrag verwenden N = Neu ab OLE-Version 1.2 Eigenschaften der Beleg-Zusatzadressen (DEA) Eigenschaft C Beschreibung R / W Datentyp Grösse DeaBelDB Logische Ebene => entspricht DblDB R 2.0 DeaBelNr Eindeutige Belegnummer => entspricht DblDB R Number 10.0 DeaINr Adressnummer der Einzeladresse (sofern vorhanden) R / W Number 10.0 DeaKBez Kurzbezeichnung R / W String 16 DeaName Name R / W String 50 DeaVorname Vorname R / W String 30 DeaZusatz Zusatz R / W String 50 DeaAdresse Adresszeile 1 R / W String 50 DeaLand Land R / W String 4 DeaPLZ Postleitzahl R / W String 10 DeaOrt Ort R / W String 50 DeaAdresse2 Adresszeile 2 R / W String 50 DeaSprachCode Sprach-Code R / W String 6 DeaAdresse3 N Adresszeile 3 R / W String 50 DeaAdresse4 N Adresszeile 4 R / W String 50 N = Neu ab OLE - Version 1.3 / AbaVersion 2003 Eigenschaften der Beleg-Konditionen (DMF) Eigenschaft C Beschreibung R / W Datentyp Grösse DmfDB D Logische Ebene (hier immer fix 0) R 2.0 DmfDat D Datum R Date 6/8/10 DmfNr D Laufnummer innerhalb Datum R 6.0 DmfSam D Sammelnummer R 2.0 DmfBelNr Eindeutige Belegnummer => entspricht DblBelNr R Number 10.0 DmfTz Teilzahlungsnummer R 2.0 DmfFrist Netto - Frist in Tagen R 4.0 DmfSkonto1T Skonto 1 in Tagen R 4.0 DmfSkonto1P Skonto 1 in Prozent R Number 2.2 DmfSkonto2T Skonto 2 in Tagen R 4.0 DmfSkonto2P Skonto 2 in Prozent R Number 2.2 DmfSkonto3T Skonto 3 in Tagen R 4.0 DmfSkonto3P Skonto 4 in Prozent R Number 2.2 DmfBwBtr Fälligkeitsbetrag in BW R Number 12.2 DmfLwBtr N Fälligkeitsbetrag in LW R Number 12.2 DmfVesrNr VESR-Nummer R / W String 27 DmfBelDB N für eindeutige Referenz zu DBL => entspricht DblDB R 2.0 DmfEzVf 5 Einzahlungsschein-Verfahren (0=ESR / 1=IPI) R 2.0 N = Neu ab OLE - Version 1.1 D = Entfernt ab OLE-Version 1.3 / AbaVersion 2003 5 = Neu ab OLE - Version 1.5 Beat Völke Seite 4 24.02.2005
n Generelle n Login Einloggen in ABACUS-Programme User Username in ABACUS String Password Password in ABACUS String Logoff Ausloggen aus ABACUS-Programmen Spezielle n InitSpezial Wenn einer der mitgegebenen nicht mit den aktuellen Werten der entsprechenden Eigenschaften übereinstimmt so werden alle Eigenschaften aufgrund der mitgegebenen Werte neu mit den hinterlegten Vorschlagswerten initialisiert. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. Man beachte die Ausführungen zu der speziellen Eigenschaft "OneTimeNoVAT" des Belegs. DblBelArt BelegArt String DblDNr Kundennummer Number DblFBelDat Fibu-Belegdatum Date DblIso Währung String DblGB Geschäftsbereich IntGutschr Diese erstellt eine Interne Gutschrift für die mitzugebende Belegnummer. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. OrigBelNr Original-Belegnummer Number IGutBelNr Belegnummer der Internen Gutschrift Number ErsaBelNr Belegnummer des Ersatzbelegs Number KopfMind Spezialflag zur Uebertragung von Entgeltsminderungen auf den Ersatzbeleg StorDat Fibu-Belegdatum der Internen Gutschrift Date Beat Völke Seite 5 24.02.2005
BelStorno Diese storniert einen bereits erfassten Beleg. Es dürfen noch keine Gegenleistungen für den Beleg erfasst worden sein. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. StorBelNr Belegnummer des zu stornierenden Belegs Number BelErled Flag zur direkten erledigung des Belegs CalcLw (ab ABO-Version 1.3) Diese rechnet einen Betrag in Belegwährung in einen Betrag in Leitwährung um. Dabei wird der Kurs aufgrund der Kurstabelle benutzt. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. BtrBw Betrag in Belewgwährung Number BwIso Belegwährung String Per Datum für Kurssuche Date Round Resultat aufgrund ISO-Tabelle runden (0=Nein, 1=Ja) Kto Fibu-Konto für Kurspriorisierung (nicht zwingend) number Number Betrag in Leitwährung falls 0 = eventueller Fehler, Fehlercode kann über LastErrorNr und LastErrorText abgeholt werden. Beat Völke Seite 6 24.02.2005
n auf Hauptstruktur (Hauptrecord = DBL) AboFind Findet die Haupt- und Subrecords und lädt falls ein Beleg gefunden wurde alle via OLE sichtbaren Eigenschaften des Hauptrecords und alle ersten Subrecords (sofern vorhanden). Diese kann nur bei DblModus = 0 (Find) ausgeführt werden. FindOp AboPrev AboPrevEq AboEqual AboNext AboNextEq AboFirst AboLast DblIndex Die Beschreibung der Segmente der einzelnen Indices ist im Anhang: IxDblDBBelNr IxDblDBStatusDNr IxDblDBGf IxDblDBBelDef IxDblDBBelGrpNr1 lxdbldbbelrefdnrbelnr neu ab Version 1.7: Index lxdbldbbelrefdnrbelnr AboClear Leer alle Eigenschaften einschliesslich derjenigen allfälliger Substrukturen Diese kann nur bei DblModus = 0 (Find) ausgeführt werden. AboNew Leer alle Eigenschaften einschliesslich derjenigen allfälliger Substrukturen und initialisiert einen neuen Beleg mit allen notwendigen Vorschlagswerten aufgrund der mitgegebenen gemäss der Belegarten-Definition der DEBITOREN- Buchhaltung. Alle via OLE sichtbaren Eigenschaften des Hauptrecords werden danach geladen. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. Man beachte die Ausführungen zu der speziellen Eigenschaft "OneTimeNoVAT" des Belegs. DblBelArt BelegArt String DblDNr Kundennummer Number DblBelNr Belegnummer Number DblDBelDat Debi-Belegdatum Date DblFBelDat Fibu-Belegdatum Date DblIso Währung String DblGB Geschäftsbereich DblZlgKond ZahlungskonditionsNummer Beat Völke Seite 7 24.02.2005
AboValidate Validiert die Eingaben aller Strukturen und rapportiert die Fehler Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. AboSave Speichert die Belegangaben inklusive den Subrecords definitiv in den Datenbanken. Nach erfolgtem (erfolgreichem) Save werden alle Eigenschaften des Hauptrecords mit den aktualisierten Daten nochmals geladen (z.b. für die Rückgabe der effektiv gespeicherten Belegnummer notwendig). Die Eigenschaften DblModus und CalcMode werden nach jedem Aufruf dieser wieder auf "FindModus" bzw. "Normal" zurückgestellt. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. AboMutSave (ab ABO-Version 1.3) Speichert Mutationen auf den im Anhang abschliessend aufgelisteten Belegkopf- Feldern definitiv in der Datenbank. Diese Belegkopf-Felder gemäss Anhang können jederzeit mutiert werden. Die zu ändernden Werte müssen vor dem Aufruf der "AboMutSave" in die entsprechenden Eigenschaften des Hauptrecords geladen worden sein. Nach erfolgtem (erfolgreichem) Save werden alle Eigenschaften des Hauptrecords mit den aktualisierten Daten nochmals geladen. Die Eigenschaften DblModus und CalcMode werden nach jedem Aufruf dieser wieder auf "FindModus" bzw. "Normal" zurückgestellt. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. AboDelete Steht im Beleg-Objekt nicht zur Verfügung Beat Völke Seite 8 24.02.2005
n auf SubStrukturen (DPS, DEA und DMF) AboRFind Findet einen Datensatz in der gewählten Substruktur und lädt falls gefunden alle via OLE sichtbaren Eigenschaften der Subrecords. FindOp AboPrev AboPrevEq AboEqual AboNext AboNextEq AboFirst AboLast dsdmf = Belegkonditionen (DMF) AboRClear Leer alle Eigenschaften der gewählten Substruktur AboRNew Leer alle Eigenschaften und initialisiert einen neuen Record der gewählten Substruktur. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. PosNr Positionsummer AboRValidate Validiert die Eingaben der gewählten Substrukturen und rapportiert die Fehler Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. Beat Völke Seite 9 24.02.2005
AboRSave Speichert die Angaben der jeweiligen Substruktur in einem Inmemory-File. Der definitive Save kann nur durch die AboSave auf der Hauptstruktur ausgelöst werden. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. dsdmf = Belegkonditionen (DMF) AboRDelete Steht nur für die Substruktur "Positionen (DPS) zur Verfügung. Das Löschen bezieht sich auf den Record des Inmemory-Files. Eine eventuell bestehende Position wird erst beim definitiven Save des Belegs gelöscht werden. Diese kann nur bei DblModus = 1 (Save) ausgeführt werden. Beat Völke Seite 10 24.02.2005
Anhang Indexsegmente: IxDblDBBelNr DB, BelNr IxDblDBStatusDNr DB, Status, DNr, FBelDat, BelNr IxDblDBGf DB, Gf, GfRFolge, FBelDat, BelNr IxDblDBBelDef DB, BelDef, BelArt, BelNr IxDblDBBelGrpNr1 DB, BelGrpNr1, FBelDat, BelNr IxDblDBBelGrpNr1Status BelGrpNr1, Status, DB, BelDef, DBelDat, BelNr lxdbldbbelrefdnrbelnr DB, BelRef, DNr, BelNr CalcMode "Spezial" Im "Spezial"-Modus wird der Belegwährungsbetrag aus dem Leitwährungsbetrag aufgrund des Kurses aus der aktuellen ABACUS-Kurstabelle errechnet und abgespeichert. Es müsssen folgende Voraussetzungen erfüllt sein: - DblLwBtr, DblIso und DblFBelDat müssen mindestens gesetzt sein. - DpsLwBtr muss gesetzt sein und die Summe aller Positions-LW-Beträge muss DblLwBtr entsprechen. - Weder DblBwBtr, DpsBwBtr noch DpsDMwstBw dürfen einen Wert <> 0 enthalten. - Die Berechnung findet in der AboValidate statt. Bei einem eventuell aufgetretenen Fehler ist der OLE-Anwender selber dafür verantwortlich, dass die aufgeführten Voraussetzungen für eine erneute Berechnung wiederhergestellt werden. (Hinweis: In der AboSave wird die AboValidate automatisch aufgerufen!) AboMutSave: mutierbare Belegkopf-Felder DblBelGrpNr1 freie Beleggruppe 1 Number 10.0 DblBelGrpNr2 freie Beleggruppe 1 Number 10.0 DblBelGrpNr3 freie Beleggruppe 1 Number 10.0 DblBelGrpCd1 freier Belegcode 1 String 10 DblBelGrpCd2 freier Belegcode 1 String 10 DblBelGrpCd3 freier Belegcode 1 String 10 DblBem Bemerkung String 60 DblVesrNr ESR-Referenzzeile String 27 DblBelRef Belegreferenz String 60 DblVesrVf VESR-Verfahren 4 DblEzVf Einzahlungsschein-Verfahren (0=ESR / 1=IPI) 2.0 DblMahnVf Mahnverfahren String 4 DblBelNrExtern Externe Belegnummer Number 12.0 DblCMGrp Cash-Management-Gruppe Number 8.0 Beat Völke Seite 11 24.02.2005