Rechnungen in eine fremde Finanzbuchführung übertragen

1                     Themenübersicht

Das Finanzcockpit ist die zentrale Anwendung im Framework Rechnungswesen, um aus erfassten Eingangs- und Ausgangsrechnungen Buchungssätze zu erzeugen und dann in eine Finanzbuchführung zu übertragen.

In diesem Dokument erfahren Sie, in welchem Format die Buchungssätze erzeugt und zur Verfügung gestellt werden, wenn Sie eine fremde Finanzbuchführung benutzen.

2                     Funktionsbeschreibung

Benutzen Sie eine fremde Finanzbuchführung, können Sie nur Ausgangsrechnungen, Eingangsrechnungen und Zusatzkostenrechnungen bzw. Gutschriften in die Finanzbuchführung übertragen. Semiramis überträgt keine Informationen zu den Debitoren- und Kreditorenkonten.

Grundsätzlich werden nur jene Rechnungen und Gutschriften verarbeitet, die noch nicht übertragen wurden und die der getroffenen Auswahl im Finanzcockpit entsprechen. Ein erneuter Übertrag bereits übertragener Rechnungen ist nicht möglich.

Aus jeder Rechnung werden eine Führungsbuchung und mindestens eine Teilbuchung erzeugt.

Führungsbuchung

Die Führungsbuchung besteht aus einem Buchungssatz für das angesprochene Personenkonto. Bei Debitoren wird das Debitorenkonto über den Rechnungsempfänger ermittelt; bei Kreditoren über den Rechnungssteller. Jeder Führungsbuchung ist ein Datensatz mit den Steuerbeträgen zugeordnet.

Teilbuchungen

Innerhalb einer Ausgangsrechnung bestehen die Teilbuchungen aus einem Buchungssatz pro Kombination aus

  • Erlöskonto und
  • Steuer-Schlüssel.

Innerhalb einer Eingangsrechnung bestehen die Teilbuchungen aus einem Buchungssatz pro Kombination aus:

  • Aufwands- oder Bestandskonto,
  • Steuer-Schlüssel.

Die Teilbuchungen sind immer einer Führungsbuchung zugeordnet.

Jeder Teilbuchung können Datensätze mit Kostenträger- bzw. Kostenstelleninformationen zugeordnet sein.

Bei der Übertragung werden aus den Rechnungen Buchungssätze erzeugt und in folgende Business Objects kopiert:

com.cisag.app.financials.batch.obj.BatchInvoice

Abhängige Objekte:

com.cisag.app.financials.batch.obj.BatchInvoiceTaxData

com.cisag.app.financials.batch.obj.BatchInvoiceCostingData

Von dort können Sie zum Beispiel über Berichte aufbereitet und ausgegeben werden.

Semiramis bietet in der Standard-Version keine weitere Funktionalität, um die Buchungssätze in eine externe Finanzbuchführung zu übertragen.

3                     Technischer Aufbau der Schnittstelle

Dieses Kapitel beschreibt die folgenden Business Objects und deren Attribute. Jedes Attribut wird anhand seines Datentyps und möglicher Werte dargestellt.

com.cisag.app.financials.batch.obj.BatchInvoice

com.cisag.app.financials.batch.obj.BatchInvoiceTaxData

com.cisag.app.financials.batch.obj.BatchInvoiceCostingData

3.1               com.cisag.app.financials.batch.obj.BatchInvoice

Buchungskennzeichen

Das Buchungskennzeichen gibt an, ob es sich bei dem Datensatz um eine Führungsbuchung oder eine Teilbuchung handelt.

  • Name: entryType
  • Datentyp: Valueset
  • 1 – PRIMARY_ENTRY (Führungsbuchung)
  • 2 – OFFSET_ENTRY (Teilbuchung)
Belegtyp

Der Belegtyp gibt an, ob es sich bei dem Datensatz um einen debitorischen oder kreditorischen Beleg handelt.

  • Name: documentType
  • Datentyp: Valueset
  • 1 – CUSTOMER_INVOICE (Ausgangsrechnung)
  • 2 – SUPPLIER_INVOICE (Eingangsrechnung)
Soll/Haben-Kennzeichen

Das Soll/Haben-Kennzeichen gibt an, ob der Buchungsbetrag im Soll oder im Haben gebucht werden soll. Bei Ausgangsrechnungen wird die Führungsbuchung normalerweise im Soll und die Teilbuchungen im Haben gebucht. Bei Eingangsrechnungen ergibt sich die umkehrte Situation.

  • Name: debitCredit
  • Datentyp: Valueset
  • 1 – DEBIT (Soll)
  • 2 – CREDIT (Haben)
Kontoart

Die Kontoart gibt die Art der Buchung an. Bei Ausgangsrechnungen ist die Führungsbuchung normalerweise eine Debitorenbuchung. Bei Eingangsrechnungen dagegen eine Kreditorenbuchung. Teilbuchungen sind Sachbuchungen.

  • Name: accountType
  • Datentyp: Valueset
  • 1 – ACCOUNTS_RECEIVABLE (Debitorenbuchung)
  • 2 – ACCOUNTS_PAYABLE (Kreditorenbuchung)
  • 3 – IMPERSONAL (Sachbuchung)
Kontonummer

Die Kontonummer gibt das Konto an, auf welches der Buchungsbetrag gebucht werden soll. Bei Führungsbuchungen von Ausgangsrechnungen stellt die Kontonummer das Debitorenkonto des Rechnungswesens dar, bei Führungsbuchungen von Eingangsrechnungen dagegen das Kreditorenkonto. Bei Teilbuchungen stellt die Kontonummer ein Erlös-, Aufwands- bzw. ein Bestandskonto dar. Debitoren- und Kreditorenkonten sind Personenkonten.

  • Name: account
  • Datentyp: String (15)
Gegenkontoart

Die Gegenkontoart gibt die Art der Gegenbuchung an. Bei Ausgangsrechnungen sind die Teilbuchungen normalerweise Debitorenbuchungen. Bei Eingangsrechnungen sind die Teilbuchungen dagegen Kreditorenbuchungen. Die Gegenbuchung von einer Führungsbuchung ist normalerweise eine Sachbuchung.

  • Bei Führungsbuchung = Sachkonto
  • Bei Eingangsrechnung, Teilbuchung = Kreditorenkonto
  • Bei Ausgangsrechnung, Teilbuchung = Debitorenkonto
  • Name: offsetAccountType
  • Datentyp: Valueset
  • 1 – ACCOUNTS_RECEIVABLE (Debitorenbuchung)
  • 2 – ACCOUNTS_PAYABLE (Kreditorenbuchung)
  • 3 – IMPERSONAL (Sachbuchung)
Gegenkontonummer

Die Gegenkontonummer gibt das Konto an, auf welches der Betrag der Gegenbuchung gebucht werden soll. Bei den Teilbuchungen von Ausgangsrechnungen stellt die Gegenkontonummer normalerweise das Debitorenkonto dar. Bei Eingangsrechnungen dagegen das Kreditorenkonto.

  • Name: offsetAccount
  • Datentyp: String (15)
Rechnungsart

Dieses Feld enthält die Rechnungsart der übertragenen Rechnung.

  • Name: invoiceType
  • Datentyp: String (5)
Rechnungsnummer

Dieses Feld enthält die Rechnungsnummer der übertragenen Rechnung.

  • Name: invoiceNumber
  • Datentyp: String (10)
Rechnungsdatum

Dieses Feld enthält das Rechnungsdatum der übertragenen Rechnung.

  • Name: invoiceDate
  • Datentyp: Timestamp
Buchungsdatum

Dieses Feld enthält das Buchungsdatum der übertragenen Rechnung. Das Buchungsdatum kann bei der Übertragung der Rechnung vom Benutzer angegeben werden.

  • Name: postingDate
  • Datentyp: Timestamp
Externe Rechnungsnummer

Dieses Feld enthält die Rechnungsnummer der übertragenen Rechnung. Eine externe Rechnungsnummer wird nur bei Eingangsrechnungen übertragen.

  • Name: externalInvoiceNumber
  • Datentyp: String (25)
Externes Rechnungsdatum

Dieses Feld enthält das Rechnungsdatum der übertragenen Rechnung. Ein externes Rechnungsdatum wird nur bei Eingangsrechnungen übertragen.

  • Name: externalInvoiceDate
  • Datentyp: Timestamp
Valutadatum

Das Valutadatum legt das Anfangsdatum für die Zahlungsbedingungen und eventuelle Skontovereinbarungen fest.

  • Name: valuationDate
  • Datentyp: Timestamp
Buchungsbetrag in Leitwährung

Der Buchungsbetrag wird als komplexer Datentyp dargestellt. Der erste Teil enthält den Betrag, der zweite Teil die Leitwährung. Bei Führungsbuchungen ist der Buchungsbetrag gleich der Bruttobetrag der Rechnung inklusive eventueller Steuern. Bei Teilbuchungen ist der Buchungsbetrag der Nettobetrag für die jeweilige Kombination aus Steuer-Schlüssel und Konto.

  • Name: amountDomestic.amount
  • Datentyp: Decimal (21, 6)
  • Name: amountDomestic.currency
  • Datentyp: String (3)
Buchungsbetrag in Belegwährung

Der Buchungsbetrag wird als komplexer Datentyp dargestellt. Der erste Teil enthält den Betrag, der zweite Teil die Belegwährung. Bei Führungsbuchungen ist der Buchungsbetrag gleich dem Bruttobetrag der Rechnung inklusive eventueller Steuern. Bei Teilbuchungen ist der Buchungsbetrag der Nettobetrag für die jeweilige Kombination aus Steuer-Schlüssel und Konto.

  • Name: amountForeign.amount
  • Datentyp: Decimal (21, 6)
  • Name: amountForeign.currency
  • Datentyp: String (3)
Steuer-Schlüssel

Der Steuer-Schlüssel gibt den Typ des Geschäfts wieder und den zu berechnenden Steuersatz. In Semiramis können Steuer-Schlüssel folgender Typen definiert werden:

  • Mehrwertsteuer,
  • innergemeinschaftliche Lieferung,
  • Vorsteuer oder
  • innergemeinschaftlicher Erwerb.

Ein Steuer-Schlüssel wird nur bei Teilbuchungen übertragen.

  • Name: taxCode
  • Datentyp: String (3)
Steuerbetrag in Leitwährung

Der Steuerbetrag wird als komplexer Datentyp dargestellt. Der erste Teil enthält den Betrag, der zweite Teil die Leitwährung. Ein Steuerbetrag wird nur bei Teilbuchungen übertragen. Dieses Feld ist nur noch aus Kompatibilitätsgründen vorhanden. Verwenden Sie die Daten aus BatchInvoiceTaxData.

  • Name: taxAmountDomestic.amount
  • Datentyp: Decimal (21, 6)
  • Name: taxAmountDomestic.currency
  • Datentyp: String (3)
Steuerbetrag in Belegwährung

Der Steuerbetrag wird als komplexer Datentyp dargestellt. Der erste Teil enthält den Betrag, der zweite Teil die Belegwährung. Ein Steuerbetrag wird nur bei Teilbuchungen übertragen. Dieses Feld ist nur noch aus Kompatibilitätsgründen vorhanden. Verwenden Sie die Daten aus BatchInvoiceTaxData.

  • Name: taxAmountForeign.amount
  • Datentyp: Decimal (21, 6)
  • Name: taxAmountForeign.currency
  • Datentyp: String (3)
Zahlungsbedingung

Die Zahlungsbedingung beschreibt Bedingungen, die für die Bezahlung der Rechnung gelten sollen.

  • Name: paymentTerms
  • Datentyp: String (3)
Skonto-Tage 1

Bei den Zahlungsbedingungen können Fristen in Tagen und Prozentsätze für die Gewährung von Skonto hinterlegt werden. Hält sich der Rechnungsempfänger bei der Bezahlung an eine der festgelegten Fristen, so kann er den für dieses Intervall hinterlegten Skontoprozentsatz vom Rechnungsbetrag abziehen. Die für die Gewährung von Skonto relevanten Fristen und Prozentsätze werden aus der Definition der Zahlungsbedingung in Semiramis genommen.

  • Name: cashDiscountDays1
  • Datentyp: Small Integer
Skonto-Prozentsatz 1

Bei den Zahlungsbedingungen können Fristen in Tagen und Prozentsätze für die Gewährung vom Skonto hinterlegt werden. Hält sich der Rechnungsempfänger bei der Bezahlung an eine der festgelegten Fristen, so kann er den für dieses Intervall hinterlegten Skontoprozentsatz vom Rechnungsbetrag abziehen. Die für die Gewährung vom Skonto relevanten Fristen und Prozentsätze werden aus der Definition der Zahlungsbedingung in Semiramis genommen.

  • Name: cashDiscountPercent1
  • Datentyp: Decimal (7, 4)
Skonto-Tage 2
  • Name: cashDiscountDays2
  • Datentyp: Small Integer
Skonto-Prozentsatz 2
  • Name: cashDiscountPercent2
  • Datentyp: Decimal (7, 4)
Skonto-Tage 3
  • Name: cashDiscountDays3
  • Datentyp: Small Integer
Skonto-Prozentsatz 3
  • Name: cashDiscountPercent3
  • Datentyp: Decimal (7, 4)
Nettotage

Bei den Zahlungsbedingungen muss eine Frist in Tagen hinterlegt werden, bei dessen Ablauf der Rechnungsempfänger spätestens die Rechnung bezahlen muss. Die Nettotage werden aus der Definition der Zahlungsbedingung in Semiramis genommen.

  • Name: netDays
  • Datentyp: Small Integer
Zahlsperre

Die Zahlsperre wird aus der Eingangsrechnung übernommen. Bei Ausgangsrechnungen hat die Zahlsperre immer den Wert „Falsch“.

  • Name: paymentHold
  • Datentyp: Boolean
Zahlungsart

Die Zahlungsart bezeichnet die Art und Weise, wie die Rechnung bezahlt werden soll, z. B. per Bankeinzug oder per Nachnahme.

  • Name: paymentMethod
  • Datentyp: String (3)
Zahlungspartner

Das Feld wird in Semiramis 4 nicht verwendet.

  • Name: payee
  • Datentyp: String (10)
Straße
  • Name: street
  • Datentyp: String (256)
Ort
  • Name: city
  • Datentyp: String (256)
Postleitzahl
  • Name: postalCode
  • Datentyp: String (16)
Postfach
  • Name: poBox
  • Datentyp: String (64)
Ort des Postfachs
  • Name: poBoxCity
  • Datentyp: String (256)
Postleitzahl des Postfachs
  • Name: poBoxPostalCode
  • Datentyp: String (16)
Bezirk/Kreis

Dieses Feld wird in Semiramis 4 nicht verwendet.

  • Name: district
  • Datentyp: String (256)
Region

Dieses Feld enthält die Identifikation der Region.

  • Name: region
  • Datentyp: String (3)
Land

Dieses Feld enthält das Land des Rechnungsempfängers oder Rechnungsstellers laut Partner-Stammdaten. Das Land wird als ISO-Code dargestellt.

  • Name: country
  • Datentyp: String (2)
Name 1

Dieses Feld enthält die erste Namenszeile des Rechnungsempfängers oder Rechnungsstellers laut Partner-Stammdaten. Das Feld wird für alle Partner übertragen, nicht nur für Pseudokunden und Pseudolieferanten.

  • Name: name1
  • Datentyp: String (65)
Name 2

Dieses Feld enthält die zweite Namenszeile des Rechnungsempfängers oder Rechnungsstellers aus den Partner-Stammdaten. Das Feld wird für alle Partner übertragen, nicht nur für Pseudokunden und Pseudolieferanten.

  • Name: name2
  • Datentyp: String (65)
Name 3

Dieses Feld enthält die dritte Namenszeile des Rechnungsempfängers oder Rechnungsstellers aus den Partner-Stammdaten. Das Feld wird für alle Partner übertragen, nicht nur für Pseudokunden und Pseudolieferanten.

  • Name: name3
  • Datentyp: String (65)
Auftragstyp

Kann zu der übertragenen Ausgangsrechnung ein eindeutiger Bezug zu einem Vertriebsauftrag ermittelt werden, dann wird der Auftragstyp in dieses Feld übertragen. Der Auftragstyp wird nur bei Ausgangsrechnungen ermittelt.

  • Name: orderType
  • Datentyp: String (3)
Auftragsnummer

Kann zu der übertragenen Ausgangsrechnung ein eindeutiger Bezug zu einem Vertriebsauftrag ermittelt werden, wird die Auftragsnummer in diesem Feld übertragen. Die Auftragsnummer wird nur bei Ausgangsrechnungen ermittelt.

  • Name: orderNumber
  • Datentyp: String (10)
ESR-Code

Dieses Feld enthält den Code des Einzahlungsscheins mit Referenznummer.

  • Name: esrCode
  • Datentyp: String (59)
Analyse-Codes

Wird in Semiramis 4 nicht verwendet. Die Strings werden mit ’*’ vorgeschlagen.

  • Name: analysisCode
  • Datentyp: Array von 10 Elementen vom Typ String(40)
Firma

Dieses Feld enthält die Identifikation der Firma.

  • Name: financialsOrganization
  • Datentyp: String (10)
Partner

Dieses Feld enthält die Identifikation des Kunden oder Lieferanten.

  • Name: partner
  • Datentyp: String (10)
Steuer-Register

Dieses Feld enthält die Identifikation des Steuer-Registers.

  • Name: taxRegister
  • Datentyp: String (5)

 

Text

Handelt es sich bei der Buchung um eine Ausgangsrechnung bleibt dieses Feld leer. Bei Eingangsrechnungen ohne Auftragsbezug wird der Hinweistext übernommen, bei anderen Eingangsrechnungen die Fremdbelegnummer und das Fremdbelegdatum.

  • Name: text
  • Datentyp: String (80)

 

3.2               com.cisag.app.financials.batch.obj.
BatchInvoiceTaxData

BatchInvoice

In diesem Feld wird der eindeutige Bezug zum BatchInvoice-Datensatz (Führungsbuchung) abgelegt.

  • Name: guid
  • Datentyp: Guid
Steuerbeträge

Die Steuerbeträge werden in einem Array von 10 Elementen als komplexer Datentyp dargestellt. Sind in einer Rechnung zu einem Steuer-Schlüssel sowohl Gutschrifts- als auch Rechnungspositionen enthalten, so existieren zu einem Steuer-Schlüssel zwei Einträge in dem Array. Einen Eintrag mit den kumulierten Steuerbeträgen der Gutschriftspositionen und einen Eintrag mit den kumulierten Steuerbeträgen der Rechnungspositionen.

Der komplexe Datentyp enthält einen weiteren komplexen Datentypen, der Folgendes darstellt:

  • den Nettobetrag der Rechnung, bzw. einen Teil davon, ,
  • den Steuer-Schlüssel und
  • einen komplexen Datentypen, der den Steuerbetrag darstellt.

Nettobetrag und Steuerbetrag werden jeweils in Beleg- und Leitwährung abgelegt.

  • Name: taxData[0..9].netAmount.amount
  • Datentyp: Decimal (21, 6)
  • Name: taxData[0..9].netAmount.currency
  • Datentyp: String (3)
  • Name: taxData[0..9].netAmountDomestic.amount
  • Datentyp: Decimal (21, 6)
  • Name: taxData[0..9].netAmountDomestic.currency
  • Datentyp: String (3)
  • Name: taxData[0..9].taxCode
  • Datentyp: String (3)
  • Name: taxData[0..9].taxAmount.amount
  • Datentyp: Decimal (21, 6)
  • Name: taxData[0..9].taxAmount.currency
  • Datentyp: String (3)
  • Name: taxData[0..9].taxAmountDomestic.amount
  • Datentyp: Decimal (21, 6)
  • Name: taxData[0..9].taxAmountDomestic.currency
  • Datentyp: String (3)

3.3               com.cisag.app.financials.batch.obj.
BatchInvoiceCostingData

Zu einer Teilbuchung können beliebig viele Kostenrechnungsdaten existieren. Diese sind in folgendem Business Object abgelegt: com.cisag.app.financials.batch.obj.BatchInvoiceCostingData.

BatchInvoice

In diesem Feld wird der eindeutige Bezug zum BatchInvoice-Datensatz (Teilbuchung) abgelegt.

  • Name: batchInvoice
  • Datentyp: Guid
Kostenstelle

Dieses Feld enthält die Kostenstelle.

  • Name: costCentre
  • Datentyp: String (8)
Kostenträger

Dieses Feld enthält den Kostenträger.

  • Name: costObjective
  • Datentyp: String (25)
Kostenstelle/Kostenträger-Kennzeichen

Das Kennzeichen gibt an, ob der Datensatz sich auf eine Kostenstelle oder einen Kostenträger bezieht. Dieses Feld wird nicht mehr verwendet und enthält den Wert 0.

  • Name: type
  • Datentyp: Valueset
  • 1 – COST_CENTRE (Kostenstelle)
  • 2 – COST_OBJECTIVE (Kostenträger)
Buchungsbetrag in Leitwährung

Der Buchungsbetrag wird als komplexer Datentyp dargestellt. Der erste Teil enthält den Betrag, der zweite Teil die Leitwährung.

  • Name: costAmountDomestic.amount
  • Datentyp: Decimal (21, 6)
  • Name: costAmountDomestic.currency
  • Datentyp: String (3)
Buchungsbetrag in Belegwährung

Der Buchungsbetrag wird als komplexer Datentyp dargestellt. Der erste Teil enthält den Betrag, der zweite Teil die Belegwährung.

  • Name: costAmount.amount
  • Datentyp: Decimal (21, 6)
  • Name: costAmount.currency
  • Datentyp: String (3)
Gebuchte Menge

Die Menge wird als komplexer Datentyp dargestellt. Der erste Teil enthält die Menge, der zweite Teil die Mengeneinheit.

  • Name: costQuantity.amount
  • Datentyp: Decimal (21, 6)
  • Name: costQuantity.uom
  • Datentyp: String (3)

Czy ten artykuł był pomocny?