Import - Mapping Engine


Allgemeines

Die Mapping Engine ist verfügbar für ...

    • RFC-Schnittstellen
    • Excel-Uploads
    • REST-Webservice

Ein Import in STB ist ebenfalls möglich.

Anwendungsbeispiele

  • Organkreislogik: gewerbesteuerliche Hinzurechnung/Kürzung
  • Anteilseigner: Mapping in korrekte Spalte des Dialogs Einkünfte
  • Bewegungsarten (Anfangsbestand/Endbestand/Konsolidierung): Mapping in Bilanz, Sonstige, u.a.
  • GuV Konten: Mapping aller Konten in das Ergebnis
  • Berechnung mit Steuersätzen
  • Gruppenwechselkonten: per Zwischenspeicherung als "Alias"
  • Segmente/zus. Buchungskreise/Betriebsstätten

Technische Anleitung

Definition der Schnittstelle

  • Richtung: Import (erweitert)

Mapping: Formulieren von Bedingungen

  • Beim Mapping wird jede Zeile der Import-Datei mit jeder Zeile der Mapping-Datei abgeglichen (Ausnahme: „interne“ Berechnungen).
  • Anzahl und Reihenfolge der Spalten in der Mapping-Datei entsprechen 1:1 der Import-Datei.
  • Jede Zeile Mapping-Datei formuliert Bedingungen bzgl. der einzelnen Spaltenwerte der Import-Datei. Mit $ wird der Wert der aktuellen Zeile der Import-Datei in der jeweiligen Spalte bezeichnet.
  • Beispiel: Wenn die Importzeile unter Position den Wert „123“ hat, soll der jeweilige Importwert (gemäß Schnittstellen-Struktur in Spalte 3) als IFRS-Wert in die Bilanzvergleichsposition „1110000000“ übernommen werden.

  • Für informative Zwecke kann zu jeder Mapping-Regel ein Name (hier: „Regel 123“) hinterlegt werden, der auf den eigentlichen Mapping-Vorgang aber keine Auswirkungen hat.
  • Bitte beachten: Zwischen „Spalte (Ziel)“ und „Alias“ gibt es evtl. noch weitere Spalten. Die werden hier im folgenden zunächst ignoriert und ab Folie 18 beschrieben!


  • Beispiel: Wenn die Importzeile
    • unter Position den Wert „123“,
    • in Spalte 4 den Wert „ABC“ hat und
    • der Import-Wert größer als 100.000 ist, soll der Importwert als HGB-Wert in die Bilanzvergleichsposition „1110000000“ übernommen werden.


  • Wie in dem Beispiel zu sehen, werden textuelle Werte mit doppelten Anführungszeichen versehen.


  • Für Zielpositionen im Bilanzvergleich können folgende Dialoge und Spalten verwendet werden:
    • Dialoge: HGB, HGBCORR, IFRS
    • Spalten: IMPORT, MANUAL, OCITEMP, GUVTEMP, OCIPERM, GUVPERM sowie Mapping-IDs von Differenzspalten (im u.a. Beispiel: 4)


  • Für die Formulierung von Bedingungen in den einzelnen Zellen der Mapping-Datei können die Vergleichsoperatoren <, <=, ==, !=, >=, >verwendet werden („Java-Notation“).
  • Beispiele:
  • Klammerungen und logische Verknüpfungen mit UND (&&) und ODER (||) können ebenfalls genutzt werden.

Mapping: Zielangaben

  • Für Zielpositionen im Bilanzvergleich können folgende Dialoge und Spalten verwendet werden:
    • Dialoge: HGB, HGBCORR, IFRS, STB
    • Spalten: IMPORT, MANUAL, die Standard-Differenzspalten OCITEMP, GUVTEMP, OCIPERM, GUVPERM sowie Mapping-IDs von Differenzspalten (im u.a. Beispiel: 4) können verwendet werden.


  • Für Zielpositionen in Steuerdialogen bis einschl. Steuerformular 2017 werden die IDs der Dialoge (gemäß CompanyDialogs im Java Source Code), die Formular-Zeilen und die bekannten Spaltenangaben verwendet:
    • Dialoge z.B.: STEUERN_DE, ANLAGEGK, ANLAGEZVE, …
    • Zeilen z.B.: 2_1_1
    • Spalten: OWN, TOTAL, …

Wie gesagt, bezeichnet $ den Importwert der jeweiligen Spalte. Mit $1, $2, $3, … wird der Wert der ersten, zweiten, dritten, …. Spalte auch an anderen Stellen referenziert. Auf diese Weise kann beispielsweise der Wert der vierten Spalte als Partner-ID in der Zielangabe verwendet werden.


  • Für Zielpositionen in Steuerdialogen ab Steuerformular 2018 werden Field-IDs verwendet. Die Angabe des Dialogs (hier: ANLAGEGK) ist optional. Wenn die Field_ID nicht zum Dialog passt, wird eine entsprechende Meldung ausgegeben:
    • Field-ID z.B.: 2018.000009

In manchen speziellen Dialogen orientiert sich das Mapping an der Datenbank-Zieltabelle TCURTAX2011. Die "Aufsichtsratsvergütungen" der "Anlage WA" beispielsweise bestehen aus mehreren Zeilen. Die Zeilennummern werden in der Datenbank-Zieltabelle in der Spalte "COLUMNID" gespeichert. Das Mapping muss deshalb angeben, wo in den Quelldaten diese Angabe zu finden ist (hier: Spalte 4 bzw. "$4").

An diesem Beispiel ist außerdem zu sehen, dass auch Memo-Werte (Name, Straße) importiert werden können. Bei Dropdownlisten muss zugehörige Schlüssel der Auswahloption im Import stehen.


  • Die TRR kann als Dialog mit „TRR“ oder auch „TRRSingle“ benannt werden.


  • Sonstige
  • Toolbox / Tatsächliche Steuern (Ausland):
  • Verlustvortrag / Entwicklung Verlustvortrag(siehe Import - technische IDs): Beispiel: Das Element TAX.TLOSSCARRFOR.100_0#REALIZESHORT wird wie folgt adressiert:
  • Veränderung Steuerpositionen (Zeilen und Spalten analog zu den technischen Import-IDs: Import - technische IDs)
  • Sollen Werte in die Tabelle TIMPORT geschrieben werden, lautet der Dialog „TIMPORT“ und die Zielzeile ist die KEYID, mit der der Wert in die Tabelle geschrieben wird (Zielspalte bleibt leer).

In Planungsperioden und in die "Verteilung" der Anlage AESt bei Personengesellschaften kann nicht importiert werden.

Mapping: "Komfort-Regeln"

  • Für die vermutlich meistgenutzten Fälle kann die Formulierung des Mappings vereinfacht werden.
    • Bei Gleichheitsbedingungen kann einfach der zu vergleichende Wert in das Feld geschrieben werden.
    • Bei textuellen Werten können in diesem Fall die Anführungsstriche entfallen.
    • Bei einfachen Vergleichen kann das $-Zeichen weggelassen werden.

Mapping: Reguläre Ausdrücke

  • Mit dem folgenden Beispiel werden alle Zeilen der Import-Datei erfasst, deren Wert unter der vierten Spalte dem regulären Ausdruck „a*b“ entspricht (z.B.: „aaab“).
  • Auch die matches-Funktion kann mit anderen Bedingungen verknüpft werden:

Mapping: Spalte Bedingung

  • In der Spalte „Bedingung“ können weitere Bedingungen hinterlegt werden. Mit $1, $2, $3, … wird der Wert der ersten, zweiten, dritten, … Spalte referenziert. Auf diese Weise können spaltenübergreifende Bedingungen formuliert werden, die sich mit den oben angesprochenen Mitteln nicht formulieren lassen (z.B.: ODER über mehrere Spalten).

Mapping: Spalte Berechnung

  • In den bisherigen Beispielen wird der Wert der Spalte „Importwert“ unverändert in die Zielposition geschrieben. Wenn dieser Wert umgerechnet werden soll, so steht hierfür die Spalte „Berechnung“ zur Verfügung.
  • Beispiel: Vorzeichenumkehr
  • Beispiel: Multiplikation mit Faktor

Verwendung von Steuersätzen

  • Die aus dem Family Office bekannten Steuersätze sind vordefiniert und können mit folgenden Bezeichnungen referenziert werden:
    • $SOLZ
    • $GEWSTDT
    • $KSS
    • $KSSKAP,
    • $AVCT,
    • $AVDT;
  • Beispiel:

Sonderfunktionen

  • Im folgenden Beispiel werden zunächst alle Zeilen der Import-Datei erfasst, die die Position „123“ haben. Desweiteren wird mit der Funktion "sameTaxPayer()" geprüft, ob der importierte Wert unter Spalte 4 denselben Organträger hat wie die aktuelle Gesellschaft (für die der Import durchgeführt wird). Sinnvoll ist das in den Fällen, in denen unter Spalte 4 eine Gesellschafts-ID (z.B.: ein Partner) steht.

  • Es gibt mehrere solcher Sonderfunktionen. Sie alle prüfen jeweils den importierten Wert der entsprechenden Spalte, d.h.: eine Gesellschafts-ID darauf, ob die Gesellschaft die entsprechende Eigenschaft besitzt.

Sonderfunktion

Prüfung

sameTaxPayer()

gleicher Organkreis

sameGroup()

gleicher Konzern

isPartnership()

ist Personengesellschaft

isCorporation()

ist Kapitalgesellschaft

isSA()

ist Standalone-Gesellschaft

isTGMember()

ist Organgesellschaft

isTGParent()

ist Zwischenorganträger

isTGTaxPayer()

ist Organträger

isMaterialityA(), isMaterialityB(), isMaterialityC()

hat Wesentlichkeit A, B bzw. C

  • Sonderfunktionen können über die üblichen logischen Operatoren zu komplexeren Bedingungen verknüpft werden. Das folgende Beispiel prüft, ob es sich bei der Gesellschafts-ID in Spalte 4 um eine Personengesellschaft handelt, die gleichzeitig Organträger ist.
  • Sonderfunktionen in der Spalte „Bedingung“ werden mit Bezug auf diejenige Gesellschaft ausgewertet, für die der Import durchgeführt wird.

Spalte Alias

  • Der zu importierende Wert einer Importzeile (evtl. unter Berücksichtigung der Spalte „Berechnung“) kann unter „Alias“ einer Variablen zugewiesen werden, die dann wieder in anderen Berechnungen verwendet werden kann. Hierbei ist der zeitliche Ablauf zu beachten: Die Mapping-Datei wird einmal durchlaufen; jede Zeile der Mapping-Datei wird gegen jede Zeile der Import-Datei gematcht.
  • Beispiel:
    • Die Bedingung der ersten Mapping-Zeile wird von jeder Importzeile mit der Position „123“ erfüllt. Von jeder dieser Zeilen wird das Vorzeichen des Importwerts umgekehrt. Die Ergebniswerte werden aufsummiert in den Bilanzvergleich geschrieben. Nun wird außerdem diese Summe in der Variablen „$a“ hinterlegt.
    • Im weiteren Verlauf des Importvorgangs hat somit die Variable $a einen Wert und kann in Berechnungen verwendet werden. Im Beispiel wird $a für jede Importzeile mit Position „456“ auf den Importwert addiert. Diese Importwerte wiederum werden in die Tabelle TIMPORT mit „KEY-1“ gespeichert.
  • Wenn eine Mappingzeile eine Variable unter der Spalte „Alias“ hat, können die Zielangaben (Dialog, Zeile, Spalte) leer bleiben. In diesem Fall wird der Wert nur in der Variablen hinterlegt und nicht direkt in den Bilanzvergleich oder einen Steuerdialog geschrieben.

  • Analog ist es auch möglich, dass eine Mappingzeile gar nicht gegen eine Importzeile gematcht wird, sondern eine „interne“ Berechnung umsetzt. Solche „internen“ Berechnungen werden in der Typ-Spalte mit „---“ markiert.
  • Beispiel Wechselgruppenkonten: Es wird zunächst der Wert der Variablen $a über die Importdatei ermittelt. Am Ende wird dieser Wert abhängig davon, ob er kleiner/gleich oder größer null ist, unterschiedlichen Zielen zugewiesen.

Weitere Funktionen

  • Wenn Text-Werte zusammengeführt werden sollen (z.B.: für eine Partnerangabe), so wird hierfür der Operator „+=“ verwendet:

Import von Detailinformation ("vertikal")

  • Detailinformationen zu einem Feld eines Steuerformulars bestehen wiederum selbst aus mehreren Zeilen und feldspezifischen Spalten (z.B.: Zeile 69 der Anlage GK in VZ 2020).
  • Die Importdatei kann diese Daten in unterschiedlichen Formaten liefern. Beim "vertikalen" Format steht in jeder Zeile der Importdatei ein Schlüssel-Wert-Paar für eine Zeile der Detailinformationen. Der Schlüssel wird im Mapping auf eine Spalte abgebildet. In folgendem Beispiel werden zwei Zeilen von Detailinformationen importiert. Im letzten Feld der csv-Datei steht die Zeilennummer. Im zweiten Feld der csv-Datei stehen die Schlüssel ("detailname", ..., "detailexpend"). Die Werte für den jeweiligen Schlüssel stehen in der Spalte, die in der Schnittstellenstruktur unter "Importwert (Spalte)" angegeben ist - unabhängig davon, ob es sich um einen numerischen (z.B.: "detailexpend") oder einen Memo-Wert (z.B.: "detailname") handelt.
  • Wie gesagt wird im Mapping nun jeder Schlüssel mit einem Feld der Detailinformationen assoziiert.
  • Für Detailinformationen muss im Mapping unter „Dialog (Ziel)“ die Angabe ROWDETAIL gemacht werden – evtl. mit optionaler Angabe des Steuerformulars z.B.: ANLAGEGK|ROWDETAIL.
  • Im Mapping stehen unter „Unterspalte (Ziel)“ die Zeilennummer und die Spaltenbezeichnung der Detailinformation, getrennt durch "#".

Import von Detailinformation ("horizontal")

  • Beim "horizontalen" Format stehen in jeder Zeile der Importdatei alle Angaben für eine Zeile der Detailinformationen. Die Schnittstellenstruktur und die Importdatei (hier: Excel) könnten in diesem Fall beispielhaft wie folgt aussehen: 


  • Im Mapping müssen für eine Position (hier: "detail") mehrere Spalten der Importdatei mit Spalten der Detailinformationen assoziiert werden. Hierfür kann die Spalte „Berechnung“ verwendet werden. Im hier vorliegenden Beispiel liegt der Wert für „NAME“ in der 6. Spalte der Importdatei, der Wert für „LABEL“ in der 7. Spalte.

Import von Detailinformation (MU-Spalten)

  • Bei Detailinformationen in Mitunternehmerspalten von Personengesellschaften wird im Mapping unter "Spalte (Ziel)" angegeben, wo in der Importdatei diese Spalte zu finden ist. Wenn der Mitunternehmer beispielsweise in Spalte 4 steht, ergibt sich folgendes Mapping:

Import von Sachverhalten

  • Sachverhalte (IFRS – HGB und HGB - StB) inkl. Differenzspalten können ebenfalls importiert werden.
  • Bitte beachten: Beim Import von Sachverhalten zu einer Bilanzposition werden zunächst alle Sachverhalte der Gesellschaft gelöscht.
  • Mit dem folgenden Mapping wird im IFRS-Block wie auch im HGB-Block jeweils ein Sachverhalt mit dem Schlüssel (Bezeichnung) SV_0b und der Beschreibung „Test B“ angelegt. Im IFRS-Block wird der IFRS-Wert importiert, im HGB-Block der HGB- und der Abweichungs-Wert.
  • Differenzwerte können in den IFRS-Block wie auch in den HGB-Block mit den Spaltenbezeichnungen OCITEMP, GUVTEMP, OCIPERM, GUVPERM und Mapping-IDs von Differenzspalten importiert werden.
  • Zulässige Ziel-Dialoge und Ziel-Spalten:
    • Standard:
      • IFRSDETAIL + IFRS
      • IFRSDETAIL + Differenzspalten
      • HGBDETAIL + HGB
      • HGBDETAIL + HGBCORR
      • HGBDETAIL + Differenzspalten
    • Flag: EDIT_STB_VALUE_BALANCEPOS
      • IFRSDETAIL + IFRS
      • HGBDETAIL + HGB
      • HGBDETAIL + TAX
      • HGBDETAIL + Differenzspalten
    • Flag: EDIT_STB_VALUE_BALANCEPOS; keine lokale Bilanz in den Gesellschafts-Stammdaten
      • IFRSDETAIL + IFRS
      • IFRSDETAIL + TAX
      • IFRSDETAIL + Differenzspalten

Import und Mapping für SmartTaxBalance

  • Der Import von HGB-Werten und Sachverhalten kann in Form eines REST Service auch aus SmartTaxBalance (STB) heraus angestoßen werden.


  • In diesem Fall sind die folgenden Ziel-Dialoge und Ziel-Spalten zu verwenden:
    • STB-HGB + HGB
    • STB-HGBDETAIL + HGB
    • STB-HGBDETAIL + HGBCORR
  • Bitte beachten: Beim Import der Daten aus STB ins GTC werden Mappings in die Steuerdialoge, die beim Aufruf des REST Service vorgenommen wurden, mit den STB-Daten zusammen importiert.


Import im Einzelgesellschaftsdialog "Validierung"

  • Der Import in die Validierung kann in Form eines REST Service angestoßen werden.
  • Der Import ist nur möglich, wenn das Flag: SHOW_VALIDATION = 4 aktiviert ist.
  • In diesem Fall ist ausschließlich der Ziel-Dialog TVALIDATION zusammen mit einer Ziel-Spalte zu verwenden: