Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung
Abschlussarbeiten im SAP S/4HANA Controlling (📖)

Für 29,95 € direkt bestellen

Oder bei Amazon ** Oder bei Autorenwelt



Sonntag, 11. Mai 2014
16:58 Uhr

Dynamisches Importieren von Daten aus Excel nach Access unter Abfrage Speicherpfad per Makro und VBA

Ausgangslage
Innerhalb einer Access-Datenbank sollen verschiedene Berichte zusammengefasst und durch Abfragen miteinander verbunden werden. Hierzu ist es jedoch erforderlich, dass die zugrunde liegenden Tabellen aktualisiert werden und dafür in die Datenbank importiert werden können. Da es sich um eine Vielzahl von Tabellen handelt ist die Importfunktion in Access etwas umständlich. Vergleichbar zum Artikel "Excel Umgang mit Makros und Visual Basic for Applications (VBA)" bietet aber auch Access die Möglichkeit Makros zur Arbeitserleichterung zu verwenden an.
 

Makro unter Access zum Import erstellen

Zur Erstellung eines Makros kann im Ribbon Erstellen in der Befehlsgruppe Andere die Funktion Makro ausgewählt werden.

Hierbei unterscheiden sich die Oberflächen zwischen Access 2007 und Access 2010 erheblich. Daher wird im Folgenden sowohl auf Access 2007 als auch Access 2010 eingegangen.

Makro unter Access 2007 erstellen

Damit alle Funktionen zur Erstellung eines Makros aktiviert sind sollten sowohl die Schaltfläche "Alle Aktionen anzeigen", "Bedingungen" als auch "Argumente" in der Symbolleiste Entwurf aktiviert sein.
Ribbon Entwurf zur Makroerstellungen - Alle Aktionen anzeigen inklusive Bedingungen
Insbesondere die Möglichkeit Bedingungen vor der Ausführung von Aktionen zu hinterlegen ermöglicht es für jede Aktion vorher eine Rückfrage einzuholen.

1. Vorhandene Tabellen löschen
Als ersten Schritt sollen die bestehenden importierten Tabellen in der Datenbank gelöscht werden. Hierzu wird über die Aktion "Löschen Objekt" der Objekttyp Tabelle und über das Feld Objektklasse die eigentliche Tabelle gelöscht. Im Beispiel ist dieses die Tabelle "Grunddaten".
1. Schritt Tabelle löschen über LöschenObjekt
Durch die Bedigung Meldung("Tabelle löschen";1)=1 wird diese Aktion nur bei Bestätigung ausgeführt.

2. Neue/Aktualisierte Tabellen einfügen
Über die Funktion "TransferArbeitsblatt" kann sowohl der Import als auch Export von Tabellen erfolgen. Im Beispiel soll eine Exceltabelle (ExcelWorkbook) als Tabelle "Grundtabelle" importiert werden. Dieses funktioniert über den Transfertyp Importieren, Dateiformat Excel Workbook und Angabe des Tabellennamen "Grundtabelle"
Altion TransferArbeitsblatt unter Access 2007
Hierbei können sowohl der Dateiname hinterlegt werden (im Beispiel B:import.xls) als auch über das Feld Bereich das zu importierende Tabellenblatt (im Beispiel Grunddaten!A-Z) angegeben werden. Hier zeigt sich auch schon der Nachteil von Makros, da sowohl der Dateiname als auch der Speicherort fix angegeben werden müssen.Über die Option Besitzt Feldnamen wird die erste Zeile der Tabelle als Datensatzbeschreibung verwendet. Durch die Bedingung kann wiederum abgesichert werden, dass nicht aus Versehen unbeabsichtigt eine Tabelle importiert wird.

3. Abfrage per Makro starten
Wenn alle Tabellen importiert sind kann über die Aktion "ÖffnenAbfrage" eine entsprechende Abfrage gestartet werden.
Access 2007 Aktion ÖffnenAbfrage
Durch die Ansicht Datenblatt erscheint die Abfrage auch direkt als Auswertung und kann exportiert oder weiter bearbeitet werden.

Makro unter Access 2010 erstellen

Ab Access 2010 hat sich die Darstellung zur Erstellung von Makros von einer Tabellenform und darunter liegenden Attributen zu einer Baumstruktur verändert. Ferner wurde die Aktion TransferArbeitsblatt in die Aktion ImportierenExportierenTabellenblatt umbenannt. Bestehende Makros werden direkt umgewandelt.
Das eingangs beschriebene Makro würde unter Access 2010 wie folgt geschrieben werden:
Darstellung Makro ab Access 2010

Makro zu Visual Basic konvertieren

Sicherlich sind solche Makros eine Arbeitserleichterung beim Import und auch der Verarbeitung von außerhalb der eigentlichen Access Datenbank liegenden Tabellen und sonstigen Daten.

Allerdings sind prinzipbedingt die einzelnen Abfragen auch relativ eingeschränkt in ihrer Funktionsweise. So war es in Access 2007 nur möglich für jede einzelne Aktion eine entsprechende Bedingung zu definieren. Ab Access 2010 können innerhalb der Bedingung auch mehrere Aktionen eingefügt werden. Allerdings ist auch unter Access der Import von Tabellenblättern nur über die Angabe des genauen Dateinamens inklusive Speicherort möglich. Hier gibt es unter VBA aber darüber hinaus gehende Möglichkeiten.  Im ersten Schritt muss hierfür das angelegte Makro in eine VBA Funktion umgewandelt werden

Unter Access 2007 kann über die Datenbanktools die Funktion "Makros zu Visual Basic konvertieren" aufgerufen werden.
Access 2007 Makro zu VBA konvertieren
Ab Access 2010 befindet sich diese Funktion in der Entwurfsansicht des jeweiligen Makros.
Access 2010 Makro zu VBA konvertieren
Unter beiden Funktionen wird das vorher entworfene Makro dann als VBA Code dargestellt und kann als Modul im VBA Editor betrachtet und bearbeitet werden.

Der VBA Code für das oben beschriebene Makro würde dabei wie folgt umgewandelt werden.
Access VBA Code aus Makro
Das beschriebene Makro ist nun als Function angelegt und steht als VBA Modul in der Access Datenbank zur Verfügung.

Per Makro VBA Funktion ausführen

Diese Funktion kann dann als Code über ein neues Makro aufgerufen werden.
Unter Access 2007 ist dieses über die Aktion "AusführenCode" möglich.
Access 2007 AusführenCode
Hier wird direkt die nun vorhandene Funktion Import ohne weitere Argumente ausgeführt.
Ab Access 2010 hat sich hier eigentlich nur die Darstellung verändert, so dass auch hier der Code ausgeführt werden kann.
Access 2010 Funktion ausführen

Erweiterung Makro um VBA Code

Der Vorteil bei der Umwandlung zu VBA besteht darin, dass nun die aus der Makrofunktion bekannten Funktionen erheblich erweitert werden können.

Dynamischer Speicherort zum Import von Daten verwenden

Wie beim Makro TransferArbeitsblatt beziehungsweise ImportierenExportierenTabellenblatt beschrieben muss zum Import einer Tabelle nach Access sowohl der Dateiname der Exceltabelle als auch der Speicherort (im Beispiel war dieses b:import.xls) angegeben werden. Sofern die Datenbank aber flexibel genutzt werden soll, oder aber sich der Speicherort der zu importierenden Daten auch ändern kann, kann folgende Ergänzung des VBA Codes sinnvoll sein.

    Dim Pfad As String
    Pfad = Application.CurrentProject.Path
    
    If MsgBox("Import aus " & Pfad & " ?", vbYesNo) = vbYes Then
       Pfad = InputBox("Pfadnamen ohne abschliessenden ")
    End If
    
    MsgBox "Import aus " & Pfad & " !", vbInformation, "Importquelle"


Über die Anweisung DIM Pfad As String wird eine Variable von Typ String definiert. Diese Variable bekommt als Wert den aktuellen Projektpfad der Accessdatenbank zugewiesen, so dass die Datenbank im Idealfall zu den zu importierenden Dateien kopiert werden kann.
Sofern die Importdaten jedoch in einen anderen Pfad liegen kann über die InputBox ein anderer Pfad angegeben werden. In Form einer Infobox wird danach noch einmal der Importpfad angegeben.

Die Anweisung zum Import der Tabelle import.xls kann nun wie folgt angepasst werden:

If (MsgBox("Tabelle importieren", 1) = 1) Then
        DoCmd.TransferSpreadsheet acImport, 10, "Grundtabelle", Pfad & "import.xls", True, "Grunddaten!A:Z"
End If

Hier wird nun ebenfalls das Tabellenblatt Grunddaten aus der Tabelle import.xls importiert. Jedoch kann der Speicherort vorher nochmals geändert werden. Sofern dieser Pfad nicht geändert wurde, wird der Pfad der Access-Datenbank verwendet.

Verschachtelte Bedingungen

Ein weiterer Vorteil innerhalb VBA ist, dass hier auch mehrere Bedingungen miteinander verschachtelt werden können oder auch mehrere Aktionen nach einer Bedingung gestartet werden können.

Sollen nach erfolgreichen Import der Tabellen auch mehrere Abfragen gestartet werden kann dieses über folgende Anweisung erfolgen.


    MsgBox "Daten wurden importiert", vbOKOnly, "Keine Panik"
    If (MsgBox("Auswertungen starten", 1) = 1) Then
        DoCmd.OpenQuery "110 Auswertung 1", acViewNormal, acReadOnly
        DoCmd.OpenQuery "120 Auswertung 2", acViewNormal, acReadOnly
        DoCmd.OpenQuery "130 Auswertung 3", acViewNormal, acReadOnly
    MsgBox "Speichern Sie die einzelnen Abfragen und kopieren die Daten über Inhalte Einfügen->Transponieren in die Zieltabelle", vbInformation, "Daten ausgewertet"
    End If


Hierdurch werden nach erfolgreichen Importiert der Tabellen drei Auswertungen gestartet und eine Anweisung ausgegeben, wie mit diesen weiter verfahren werden soll. Dieses erfolgt über die Anweisung DoCmd.OpenQuery verbunden mit der Darstellung Normal und Schreibgeschützt. Danach wird über die Anweisung MsgBox eine Anweisung zur weiteren Verarbeitung der Daten ausgegeben.

Insgesamt würde die angepasste Anweisung wie folgt lauten:
Access Beispiel dynamischer VBA Code zum Importieren von Exceltabellen
Entsprechend könnten auch weitere Anweisung innerhalb des VBA Codes angepasst werden und hierdurch eine wesentlich flexiblere Importfunktion gestaltet werden. Darüber hinaus können auch weitere Informationen und Anweisungen zur Handhabung der Datenbank hinterlegt werden.

Als Gesamtcode würde dieses dann in Access 2010 wie folgt aussehen:

Function Import()
 Dim Pfad As String
    Pfad = Application.CurrentProject.Path
    
    If MsgBox("Import aus " & Pfad & " ?", vbYesNo) = vbYes Then
       Pfad = InputBox("Pfadnamen ohne abschliessenden ")
    End If
    
    MsgBox "Import aus " & Pfad & " !", vbInformation, "Importquelle"

    If (MsgBox("Tabelle löschen?", 1) = 1) Then
        DoCmd.DeleteObject acTable, "Grunddaten"
    End If

If (MsgBox("Tabelle importieren", 1) = 1) Then
  DoCmd.TransferSpreadsheet acImport, 10, "Grundtabelle", Pfad & "import.xls", True, "Grunddaten!A:Z"
End If
MsgBox "Daten wurden importiert", vbOKOnly, "Keine Panik"
        If (MsgBox("Auswertungen starten", 1) = 1) Then
            DoCmd.OpenQuery "110 Auswertung 1", acViewNormal, acReadOnly
            DoCmd.OpenQuery "120 Auswertung 2", acViewNormal, acReadOnly
            DoCmd.OpenQuery "130 Auswertung 3", acViewNormal, acReadOnly
MsgBox "Daten über Inhalte Einfügen->Transponieren in die Zieltabelle", vbInformation, "Daten ausgewertet"
End If

Import_Exit:
    Exit Function

Import_Err:
    MsgBox Error$
    Resume Import_Exit

End Function



Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung
Unkelbach.expert - Ihr Experte für Controlling und Berichtswesen mit SAP
Aktuelle Termine zum Online-Training (Herbstkurse 2026) finden Sie hier unter:

"Grundlagen Datenmigration in SAP S/4HANA mit Migrationscockpit und Migrationsobjektmodellierer"
"Rechercheberichte mit SAP Report Painter"
Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Mittwoch, 30. April 2014
16:41 Uhr

Firefox Klassische Layout Einstellungen (Tabs, Suchfeld, ...)

Mozilla Firefox hat wieder einmal an der Designschraube gedreht, so dass die Einstellung innerhalb about:config mit "browser.tabs.onTop auf false" nicht mehr funtkioniert und die einzelnen Tabs mit abgerundeten Ecken und oberhalb der Addressleiste erschienen sind.

Firefox - Neues Design

Um das gewohnte Aussehen zu erhalten gibt es zwei Addons, die das gewohnte Verhalten wieder zurück bringen.

Addon "Tabs on Bottom"

Das Addon "Tabs On Bottom" fügt die Tabs direkt wieder unterhalb der Adressleiste. Hierbei ist noch nicht einmal ein Neustart von Firefox erforderlich. Das Addon selbst ist auf der Seite https://addons.mozilla.org/de/firefox/addon/tabs-on-bottom/ zu finden und kann hier direkt installiert werden. Allerdings bleiben dabei die runden Ecken und das "neue" Design erhalten. Um die quadratischen Tabs wieder herzustellen bedarf es einer etwas umfangreicheren Anpassung.

Addon Classic Theme Restore

Hier hilft allerdings das Addon Classic Theme Restore weiter. Dieses Addon ist auf der Seite https://addons.mozilla.org/de/firefox/addon/classicthemerestorer/  zu finden.
Dieses Addon benötigt jedoch einen Neustart von Firefox und einige Einstellungen. Dabei sind die Grundeinstellungen im Menü über Extras->Classic Theme Restorer zu finden. Sofern die Menüleiste ausgeblendet wurde kann diese über die Taste ALT aufgerufen werden.

Innerhalb der Grundeinstellungen kann verhältnismäßig schnell die gewohnte Darstellungsweise wieder reaktiviert werden.
Firefox Addon Classic Theme Restorer

Um das gewohnte Layout zu erhalten ist der Hacken bei "Tabs auf Titelleiste" zu entfernen und die Option Tabs unten setzen auszuwählen. Dieses entspricht der Einstellung tabsontop=false in der bisherigen Einstellung von Firefox. Ferner können die Tabs hier auch als quadratisch (klassisch) dargestellt werden, so dass diese nicht mit abgerundeten Ecken dargestellt werden. Daneben bietet das Addon auch noch einige andere Einstellungsmöglichkeiten, die gegebenenfalls ebenfalls interessant sind.

Fazit
Gerade beim Browser stören mich gravierende Designändeurngen sehr, so dass ich relativ froh bin, dass auf diese Weise das gewohnte Navigationsbild erhalten bleibt. Dennoch wäre es schön gewesen, wenn Mozilla eine Option zur klassischen Darstellung beibehalten hätte.

Nachtrag:

About:Config  Suchfeldanpassung (Anbieter untereinander)

Ein weiterer Einstellungspunkt ist sicherlich noch die Option browser.search.showOneOffButtons unter about:config auf false zu setzen. Hierdruch sind im Suchfeld die einzelnen Suchanbieter auch wieder unter einander und nicht nebeneinander gesetzt. Ergänzend dazu kann das im Artikel "Benutzerdefinierte Suche in Google" vorgestellte Addon Add to search bar  sehr hilfreich sein um eigene Suchanbieter mit zu integrieren.

 

Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung

Steuersoftware für das Steuerjahr 2025

Lexware TAXMAN 2026 (für das Steuerjahr 2025)

WISO Steuer 2026 (für Steuerjahr 2025)


* Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Sonntag, 27. April 2014
12:26 Uhr

Windows 7 vollständige Systemsicherung per Systemabbild erstellen und wiederherstellen

Ausgangslage
Die im Rechner eingebaute SSD mit der Systempartition unter Windows 7 meldete einige Sektorenfehler, so dass es Zeit war diese auszutauschen und gleichzeitig gegen eine größere Festplatte zu ersetzen.

Systemabbild erstellen

Um eine komplette Neuinstallation zu vermeiden bietet Windows ab Version 7 an ein komplettes Image (Systemabbild) des Betriebssystem inklusive aller Treiber, Systemeinstellungen und Dateien an. Sofern die benutzereigene Daten wie im Artikel "Userverzeichnis unter Windows 7 auf andere Platte verschieben" beschrieben auf eine andere Platte verschoben worden sind wird diese dann ebenfalls mit gesichert.

Diese Methode kann sinnvoll sein um nicht alle Benutzerdaten auf der Systemplatte zu haben bedingt aber dann auch ein größeres Speichermedium für das gewünschte Backup.

Hierbei ist jedoch zu beachten, dass diese Platte nicht für das Ablagen einer Datensicherung genutzt werden kann. Entsprechend bietet sich hier eine andere Festplatte an oder die Datensicherung auf DVD. Sinnvoller ist hier aber sicherlich die Verwendung einer Wechselfestplatte, da diese als Quelle der Datensicherung problemlos erkannt werden kann und weniger problematisch zu finden ist als ein Netzlaufwerk und definitiv mehr Speicherplatz als eine DVD hat, da zur Sicherung von Windows allein sicherlich mehr als eine DVD erforderlich ist.

Innerhalb der Systemsteuerung findet sich der Punkt "Sichern und Wiederhestellen".
Alternativ kann die Systemsicherung auch über den Befehl:

%SystemRoot%System32control.exe /name Microsoft.BackupAndRestore

aufgerufen werden.
Windows Systemabbild erstellen

Nach Auswahl des Speicherziel informiert Windows in Form eines Assistenten darüber, welche Daten gesichert werden und legt am Sicherungsort einen Ordner mit der Bezeichnung "WindowsImageBackup" an.
Hier wird ein Unterordner mit der Computerbezeichnung des Rechners angelegt und ein Image der Platte in einzelnen Containerdateien gespeichert. Hierzu verwendet Microsoft das VHD Format. Dieses Format hat den Vorteil, dass hier auch vorhandene Sicherungen erweitert werden können, sofern mehr Daten hinzukommen.

Ist die Datensicherung abgeschlossen kann entweder ein Systemreperaturdatenträger hergestellt werden oder nach Austausch der Systemplatte mit einer Windows7 Installations DVD der Rechner gestartet werden.

Hierzu sollte die neue Platte eingebaut werden und dann der Rechner von DVD gebootet werden.

Handelt es sich um einen Systemreperaturdatenträger kann direkt über die DVD die Systemwiederherstellungsoptionen
  gewählt werden. Beim Installationsmedium findet sich die Wiederherstellung unter den Reparaturoptionen.

Nach Ablauf der Systemwiederherstellung steht das System wieder inklusive aller Software, Registryeinträge, Registrierungen etc. zur Verfügung. Gegebenfalls muss (bedingt durch geänderte Hardware (die neue Festplatte)) MS Office erneut aktiviert werden, was beim ersten Start direkt angeboten wird.

Ferner ist zu beachten, dass die ursprüngliche Systempartition in gleicher Größe wiederhergestellt wird. Sofern eine größere Platte eingebaut worden ist sollte in der Systemsteuerung unter den Punkt "Computerverwaltung" aufgerufen werden.
Alternativ ist dieses auch über den Befehl

%windir%system32compmgmt.msc /s

möglich.

Hier kann unterhalb des Punktes Datenträgerverwaltung für die Platte C: mit der rechten Maustaste der Punkt "Volumen erweitern" aufgerufen werden. Hierdurch kann dann der am Datenträger noch nicht zugewiesene Datenbereich der Platte zugeordnet werden, so dass zum Beispiel statt der 50 GB SSD die vollen 250 GB SSD genutzt werden können.


Fazit
Insgesamt handelt es sich hierbei um eine sehr elegante Form des Backups insbesondere da sämtliche Programmeinstellungen erhalten bleiben und auch alle sonstigen Daten erhalten bleiben. Lediglich bei der angesprochenen Verschiebung des Userverzeichnis auf eine andere Platte ist darauf zu achten, dass im Falle einer Datenwiederherstellung sowohl diese als auch die Systemplatte formatiert und mit den alten Daten überschrieben wird. Dieses bedeutet, dass in regelmäßigen Abständen eine entsprechende Datensicherung erfolgen sollte oder aber wichtige Daten an anderer Stelle (zum Beispiel per Onlinedatensicherung über Dropbox in einen verschlüsselten TrueCrypt-Container oder vergleichbares) gesichert werden sollten.

Nach erfolgreicher Datensicherung plant Windows aber ohnehin eine regelmäßige Datensicherung ein. Dieser Zeitplan kann ebenfalls unter den Punkt "Sichern und Wiederherstellen" in der Systemsteuerung deaktiviert oder geändert werden.

Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung

Steuersoftware für das Steuerjahr 2025

Lexware TAXMAN 2026 (für das Steuerjahr 2025)

WISO Steuer 2026 (für Steuerjahr 2025)


* Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Sonntag, 20. April 2014
12:17 Uhr

Backup von FTP nach FTP ohne lokales Zwischenspeichern

Ausgangslage
Der Umzug von Webservern, Datensicherung oder auch das Kopieren eines NAS ist meistens eines sehr aufwändige Angelegenheit. Je nach Server gibt es hier unterschiedliche Synchronisationstools, die diese Arbeit abnehmen. Unter Linux Systemen ist zum Beispiel RSYNC sehr verbreitet. Der NAS Anbieter QNAP bietet mit RTRR einen vergleichbaren Dienst an, der ebenfalls am jeweiligen NAS als Dienst aktiviert sein sollte.

Eine ausführliche Beschreibung ist in der Onlinehilfe von QNAP im Artikel "Daten auf dem QNAP NAS per Real-time Remote Replication (RTRR; Echtzeit-Fernreplikation) schützen" zu finden.

Sofern dieser Dienst, zum Beispiel bei älteren NAS Systemen oder Systemen anderer Hersteller nicht zur Verfügung steht bietet sich auch die Datenübertragung per FTP an.

Hierzu muss auf beiden Systemen sowohl der FTP Dienst aktiviert werden als auch ein entsprechender User mit FTP Rechten eingerichtet werden. Nun ist der Zugriff mit einen FTP Client möglich.

Der Nachteil ist, dass bei einem normalen FTP Programm (beispielsweise Filezilla) die Daten erst herunter geladen werden und dann mühsam vom Client wieder hochgeladen werden müssen. Eine direkte Kopie von FTP auf FTP ist hier leider nicht vorgesehen.

Lösung
Hier bietet allerdings das Programm FTP Rush eine interessante Möglichkeit. Das Programm ist vergleichbar zu anderen FTP Clients ebenfalls in zwei Spalten aufgeteilt mit dem Unterschied, dass hier nicht nur vom "lokalen Fenster" (den Client) übertragen werden kann sondern auch von einen anderen FTP Server. Auf diese Weise können hier auch Daten direkt von einem FTP Server auf einen anderen übertragen werden ohne, dass vorher die Daten lokal übertragen werden müssen.

Oberfläche FTP Rush

Der Client kümmert sich dabei ausschließlich um die Verbindung zwischen beiden Rechnern und kann sich dabei auch außerhalb des Netzes befinden.

Da dieses nicht nur bei externen FTP Servern funktioniert kann dieses auch sinnvoll sein um von einen NAS Daten auf ein anderes zu übertragen (sofern beide Geräte einen FTP Zugang unterstützen). Der Vorteil ist hierbei, dass der Client, auf dem FTP Rush ausgeführt wird, nicht zwingend im LAN sein muss sondern auch per WLAN im Netz verbunden ist ohne das die Übertragunsgeschwindigkeit zwischen den beiden im LAN befindlichen Servern beeinträchtigt ist.

Ein weiterer Vorteil ist, dass FTP Rush nach erfolgreicher Übertragung den Rechner herunterfahren kann und auch eine Warteschlange (Queue) vorhanden ist über die auch mehrere Dateien gleichzeitig übertragen werden können, sofern dieses die FTP Server ebenfalls unterstützen.

Über Tools / Favoriten (alternativ über die Taste F3)  können häufig genutzte FTP Server inklusive Zugangsdaten hinterlegt werden, so dass ein Verbindungsaufbau schnell möglich ist.
 

Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung
Schnelleinstieg in das Controlling (CO) mit SAP S/4HANA (📖)

Für 29,95 € direkt bestellen

Oder bei Amazon ** Oder bei Autorenwelt

Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Samstag, 5. April 2014
10:49 Uhr

Abgleich Belege in CO auf Profit-Center mit zeitabhängigen Stammdaten der Anlagenbuchhaltung bei Investitionen

Ausgangslage

Innerhalb der Anlagenbuchhaltung wurde ein Anlagenstammsatz über die Transaktion AS01 mit zeitabhängiger Zuordnung auf einen Innenauftrag angelegt.

Exkurs: Vorraussetzung für das Buchen auf Innenaufträgen in der Anlagenbuchhaltung

Hierzu muss die Integration mit der Hauptbuchhaltung im Customizing der Anlagenbuchhaltung aktiviert sein. Dieses ist innerhalb der Transaktion SPRO  unter folgenden Pfad möglich:

  • Finanzwesen
  • Anlagenbuchhaltung
  • Integration mit dem Hauptbuch
  • Mitzubuchende Kontierungsobjekte aktivieren
  • Kontierungsobjekte aktivieren

Hier kann das Kontierungsobjekt CAUFN Innenauftrag auf aktiv gesetzt werden.Ferner muss unterhalb des Knoten "Integration mit dem Hauptbuch" auch die "Feldstatusvariante der Anlagenbuchhaltung" die Kontierungsobjekte als Feldstatus für die Buchungsschlüssel 70 Anlagen-Soll und 75 Anlagen-Haben eingeblendet werden, da andernfalls für Buchungen diese  nicht angezeigt werden. Die entsprechende Feldstatusgruppe ist in den Sachkonten der Anlagenbuchhaltung innerhalb der Transaktion FS00 - Sachkonto anzeigen in der Registarkarte ERfassung/Bank/Zins in der Gruppe "Steuerung der Belegerfassung im Buchungskreis" ersichtlich. Von hier aus können auch die einzelnen Felder unter den Punkt "Zusatzkontierung" auf Ausblenden, Musseingabe oder Kanneingabe gesetzt werden. Hier sollte das Feld CO/PP Auftrag ebenso wie Profitcenter auf "Kanneingabe" gesetzt werden.

Bei der Erfassung der Rechnung zur Anlage kann es zu zwei Fehlern kommen.

a) Vergessen des Innenauftrages in Belegposition Anlagenaktivierung
Später wurde eine Kreditorenrechnung gegen die Anlage gebucht. Hierbei wurde die Belegposition (Buchungsschlüßel 31 - kreditorische Rechnung) gegen den Kreditor bei der Erfassung der Anlagenaktivierung (Buchungsschlüssel 70 - Anlagen-Haben , Bewegungsart 100, Konto = Anlagennummer) jedoch versäumt das Feld Auftrag zu füllen. Hierdurch erfolgt zwar eine Buchung eines Profit-Center-Beleges angelegt, der Beleg der Finanzbuchhaltung weist jedoch weder Kostenstelle noch Innenauftrag aus.

b) Angabe eines abweichenden Innenauftrages
Eine weitere Fehlerquelle kann die Angabe eines abweichenden Innenauftrages zum Anlagenstamm sein. Sofern dieser Innenauftrag vom Profit-Center der verantwortlichen Kostenstelle abweicht kommt es zu einer Warnmeldung in der Form "Profit-Center wird neu gesetzt ...", Handelt es sich jedoch um einen Auftrag der ebenfalls am gleichen Profit-Center hängt kann dann der Beleg der Finanzbuchhaltung eine abweichende Kontierung in der Belegposition enthalten, da hier ein anderer Innenauftrag als im Anlagenstamm hinterlegt ist.

Auswirkung Abweichung CO Belege zu Stammdaten Anlagenbuchhaltung

Bei aktivierter statistischer Fortschreibung von Investitionen ergibt sich bei der Auswertung auf Basis der Profit-Center eine Abweichungen zwischen der Profit-Center-Rechnung und der Innenauftragsrechnung. So weist eine Auswertung von Profit-Center-Belegen andere Salden je Innenauftrag aus  im Vergleich zu einer Auswertung aller Innenaufträge des jeweiligen Profit-Center. Entsprechend könnte es im Fall b) auch zu einer abweichenden Darstellung innerhalb des SAP Moduls PSM-FM geben. Im Fall a) scheint eine Fortschreibung nach PSM-FM tatsächlich am entsprechenden Fond zu erfolgen.

Eine Auswirkung auf die Bilanz / GuV ist nicht gegeben, da hier die Sachkonten direkt und nicht auf Basis von Kostenstellen und Innenaufträge ausgewertet werden.

Eine mögliche Lösung für dieses Problem, wäre eine Übernahme des Feld Innenauftrag als Vorschlagswert aus den Anlagenstamm in das manuell zu pflegende Feld in der Position der Anlagenaktivierung (Buchungsschlüssel 70, Bewegungsart 100, Konto = Anlagennummer). Dieses funktioniert im Standard schon bei der Kostenstelle, wobei diese nicht übertragen wird, wenn im Anlagenstamm ein Innenauftrag hinterlegt ist. Leider scheint es, meines Wissens nach, keine derartige Möglichkeit im Standard vorhanden zu sein.

Lösung:
Daher bleibt nur die Möglichkeit des Abgleich der CO-Belege mit den vorhandenen Daten innerhalb der Anlagenbuchhaltung. Wie im Artikel "Lebensweg einer Anlage oder Query über zeitabhängige Stammdaten einer Anlage" erläutert werden die zeitabhängigen Daten der Anlagenbuchhaltung in der Tabelle ANLZ "Valutierte Anlagen-Zuordnungen" gespeichert. Die Einzelposten der Profit-Center-Rechnung sind in der Tabelle GLPCA "EC-PCA: Ist-Einzelposten" zu finden. Innerhalb des Profit-Center-Beleges sind auch die Informationen zum Innenauftrag beziehungsweise der Kostenstelle der Buchung zu finden. Entsprechend bietet es sich an, diese Tabellen in einer Query miteinander zu verknüpfen und ein Kontrollfeld bei Abweichung zwischen Buchung der Rechnung und der im Anlagenstamm hinterlegten Kontierung zu ermöglichen.

Query Abgleich Investitionen aus Profit-Center-Beleg mit hinterlegter Kontierung aus zeitabhängige Stammdaten der Anlagenbuchhaltung

Hierzu sind folgende Schritte erforderlich:

1. Infoset anlegen

Bei der Anlage eines Infosets über die Transaktion SQ02 wird als Datenquelle unter Tabellen-Join  über Tabelle die Tabelle GLPCA angegeben. In den weiteren Schritten können die anderen Tabellen über  BEARBEITEN->Tabelle einfügen  ergänzt werden.
Die angesprochenen Tabellen werden dabei wie folgt verknüpft. Die Angabe der Tabellen erfolgt in der Reihenfolge, wie diese auch bei der Infoset Anlage ergänzt werden. Bei den Verknüpfungen handelt es sich um eine "normale" Verknüpfung. Dieser ist mit <--> angegeben.

Zur Darstellung der Bewegungsarten werden die beiden Tabellen GLPCA ("EC-PCA: Ist-Einzelposten") und TABWT ("Bewegungsartentexte der Anlagenbuchhaltung") über die Felder Anlagenbewegungsart miteinander verknüpft.

GLPCA-ANBWA<--> TABWT-BWASL

Für die Zuordnung von CO-Beleg und Anlagenstamm werden die beiden Tabellen GLPCA und ANLZ ("Valutierte Anlagen-Zuordnungen") miteinander über die Felder Buchungskreis, Anlagen-Hauptnummer (ANLN1) und Anlagen-Unternummer (ANLN2) verknüpft.

GLPCA-RBUKRS <--> ANLZ-BUKRS
GLPCA-ANLN1<--> ANLZ-ANLN1
GLPCA-ANLN2<--> ANLZ-ANLN2

In den einzelnen Feldgruppen werden dann alle Felder der Tabellen GLPCA und TABWT übernomen. Bei der Feldgruppe über die Tabelle ANLZ kann sich auf folgende Felder beschränkt werden:
ANLZ-BDATU - Datum Gültigkeitsende
ANLZ-ADATU - Datum Gültigkeitsbeginn
ANLZ-ANLN2 - Anlagenunternummer
ANLZ-ANLN1 - Anlagen-Hauptnummer
ANLZ-KOSTL - Kostenstelle
ANLZ-CAUFN - Innenauftrag
ANLZ-KOSTLV - Verantwortliche Kostenstelle der Anlage

Diese Vorgehensweise ist auch schon im Artikel "Lebensweg einer Anlage oder Query über zeitabhängige Stammdaten einer Anlage" beschrieben. Wobei hier keine einzelnen Tabellen sondern eine logische Datenbank der Finanzbuchhaltung (bzw. Anlagenbuchhaltung) genutzt wurde.
 

2. Query definieren


In der Querydefiniton besteht die Möglichkeit über die im Infoset hinterlegten Felder der tabellen weitere Informationen zu hinterlegen und in der Grundliste entsprechend auszuwerten. Hierfür wird innerhalb der Query mit lokalen Feldern gearbeitet.

2.1 Lokale Zusatzfelder anlegen

Um lokale Felder zu definieren wird nicht direkt die Grundliste der Query bearbeitet (wo auch das Layoutdesign gepflegt wird) sondern innerhalb der Querypflege (Transaktion SQ01) mit "nächstes Bild (F6)" auf die Feldauswahl der Query gewechselt. Alternativ ist es auch möglich dies über das Menü SPRINGEN->FELDAUSWAHL->FELDAUSWAHL zu erreichen.

Über
BEARBEITEN->KURZBEZEICHNUNG
kann für die einzelnen Felder eine Kurzbezeichnung eingestellt werden. Nun werden rechts neben den Datenfeldern Eingabefelder für die Kurzbezeichnung angegeben. Hier erhalten nun folgende Felder eine Kurzbezeichnung (in der Beschreibung ist die Bezeichnung, gefolgt von der angelegten Kurzbezeichnung (fett hervorgehoben) und des dahinter technisch liegenden Tabellenfeldes angegeben):

Feldgruppe EC-PCA: Ist-Einzelposten (GLPCA
  • Betrag in Profit-Center-Hauswährung - KSL (GLPCA-KSL)
  • Buchungsdatum im Beleg - BUDAT (GLPCA-BUDAT)
  • Kostenstelle - KOSTL (GLPCA-KOSTL)
  • Auftragsnummer - AUFNR (GLPCA-AUFNR)
Feldgruppe Valutierte Anlagen-Zuordnungen (ANLZ)
  • Datum Gültigkeitsende - BDATU (ANLZ-BDATU)
  • Datum Gültigkeitsbeginn - ADATU (ANLZ-ADATU)
  • Kostenstelle - ANLZ_KOSTL (ANLZ-KOSTL)
  • Innenauftrag - ANLZ_CAUFN (ANLZ-CAUFN)
Diese Kurzbezeichnung ist notwendig, da wir auf diese dann Bezug nehmen, wenn wir ein eigens Feld mit einer Formel anlegen.

Dieses geht über

BEARBEITEN->LOKALES FELD->ANLEGEN

Dieses Lokale Feld wird dann in der Feldgruppe angelegt, in der wir uns gerade befinden. In unseren Fall also ebenfalls in der Feldgruppe der Tabelle ANLZ bzw. der Bezeichnung der Feldgruppe "Valutierte Anlagen-Zuordnungen".

In dieser Query werden vier lokale Felder mit folgenden Eigenschaften angelegt.

Da in der Tabelle ANLZ für jeden Zeitraum ein Datensatz zur Anlage vorhanden ist darf der Buchungswert nur ausgegeben werden, wenn das Buchungsdatum auch innerhalb der Gültigkeit der Anlage liegt. Entsprechend ist ein lokales Feld für die Ermittlung des Wertes mit folgenden Eigenschaften angelegt:

1. lokales Feld (WERT)
Kurzbezeichnung:  WERT
Feldbezeichnung: Berichtswert
Überschrift: Berichtswert
Eigenschaften:
Gleiche Eigenschaften wie Feld:  KSL
Berechnungsvorschrift:
Hier wird eine komplexe Berechnung mit folgenden Bedingungen hinterlegt:
Bedingung: BUDAT >= ADATU AND BUDAT <= BDATU
Formel: KSL * 1
Sonst: KSL * 0

Somit wird der Wert KSL (GLPCA-KSL) nur ausgegeben, wenn das Buchungsdatum des CO Beleges innerhalb des Zeitraums der zeitabhängigen Kontierung des Anlagenstammes aus der Tabelle ANLZ liegt.

2. lokales Feld (KS)
Kurzbezeichnung:  KS
Feldbezeichnung: Kostenstelle
Überschrift: Kostenstelle
Eigenschaften:
Gleiche Eigenschaften wie Feld:  KOSTL
Berechnungsvorschrift:
Hier wird eine komplexe Berechnung mit folgenden Bedingungen hinterlegt:
Bedingung: KOSTL + AUFNR > 0
Formel: KOSTL
Sonst: ANLZ_KOSTL

Dieses Feld gibt die im CO-Beleg vorhandene Kostenstelle aus, sofern innerhalb der Tabelle GLPCA die Summe der Felder KOSTL und AUFNR größer als Null ist (und damit eine Kostenstelle vorhanden ist). Sofern weder Kostenstelle noch Innenauftrag im CO Beleg vorhanden sind wird aus den Anlagenstammsatz die entsprechende Kostenstelle genommen. Dieser Fall sollte jedoch nicht auftreten, da die Übertragung der Kostenstelle bei Buchung auf eine Anlage im Standard funktioniert und lediglich beim Weglassen des Innenauftrages das Feld im CO Beleg nicht gefüllt ist.

3. lokales Feld (IA)
Kurzbezeichnung:  IA
Feldbezeichnung: Innenauftrag
Überschrift: Innenauftrag
Eigenschaften:
Gleiche Eigenschaften wie Feld:  AUFNR
Berechnungsvorschrift:
Hier wird eine komplexe Berechnung mit folgenden Bedingungen hinterlegt:
Bedingung: KOSTL + AUFNR > 0
Formel: AUFNR
Sonst: ANLZ_CAUFN

Sofern im CO-Beleg kein Innenauftrag übertragen wurde, wird in diesen Feld der im Anlagenstammsatz hinterlegte Innenauftrag ausgegeben. Hierdurch würde der eingangs erwähnte Buchungsfehler "a) Vergessen des Innenauftrages in Belegposition Anlagenaktivierung" innerhalb dieser Auswertung behoben, da der Innenauftrag nun aus den Anlagenstamm ausgewertet würde.

4. lokales Feld (CHK)
Kurzbezeichnung:  CHK
Feldbezeichnung: Kontrolle
Überschrift: Kontrolle
Eigenschaften:
Ikone
Durch die Eigenschaft Ikone kann ein entsprechendes Icon ausgegeben werden. Diese sind entweder in der Tabelle ICON ersichtlich oder können als Liste über die Transaktion ICON ausgegeben werden.

Berechnungsvorschrift:
Hier wird eine komplexe Berechnung mit folgenden Bedingungen hinterlegt:
Bedingung: WERT <> 0 AND AUFNR > 0 AND ANLZ_CAUFN <> AUFNR
Formel: ICON_LED_RED

Bedingung: WERT <> 0 AND ANLZ_CAUFN > 0 AND ANLZ_CAUFN <> AUFNR
Formel: ICON_LED_YELLOW

Sofern der Innenanauftrag des CO-Beleges vom Innenauftrag des Anlagenstamms zum Zeitpunkt der Buchung abweicht wird eine rote Ampel ausgegeben (ICON_LED_RED), ist im CO Beleg kein Auftrag angegeben, jedoch im Stammsatz der Anlage ein Innenauftrag zum Zeitpunkt der Buchung hinterlegt (in der Regel ist dieses der Fall, wenn weder Innenauftrag noch Kostenstelle im CO-Beleg vorhanden sind, wird eine gelbe Ampel (ICO_LED_YELLOW) ausgegeben. Die Prüfung erfolgt jedoch nur in den Fällen, da das Feld WERT gefüllt ist (und Buchungsdatum und Anlagenstammsatz miteinander übereinstimmen.

2.2 Grundliste der Query anlegen

Nach Anlage der lokalen Zusatzfelder kann nun die Grundliste der Query angelegt werden.
Hierzu kann über SPRINGEN->GRUNDLISTE->AUFBAU auf die Pflege der Grundlise gewechselt werden in der sowohl das Layout als auch die einzelnen auszugebenden (oder zu selektierenden Felder) ausgewählt werden.

Innerhalb der Query werden nun auf folgende Felder der einzelnen Tabellen Zugriff genommen. Bzw. in der Grundliste zugewiesen. Hierbei ist L als Listenfeld und S als Selektionsfeld zu verstehen.

Die Felder werden hier in der Reihenfolge angeben, wie diese dann auch in der Query ausgegeben werden sollen:



Tabelle GLPCA "EC-PCA: Ist-Einzelposten"
Jahr (L,S)  GLPCA-RYEAR
Soll-/Haben-Kennzeichen  (L,S) GLPCA-DRCRK
Profitcenter (L,S) GLPCA-RPRCTR
Anlage (L,S) GLPCA-ANLN1
Unr. (L) GLPCA-ANLN2
Anlagen-Bewegungsart (L,S) GLPCA-ANBWA

Tabelle TABWT  "Bewegungsartentexte der Anlagenbuchhaltung"
Bezeichnung Anlagenbewegungsart  (L) TABWT-BWATXT
Sprachenschlüssel (S) TABWT-SPRAS
Der Sprachenschlüssel sollte selektiert sein, damit nicht für jede gepflegte Sprachversion die Daten erneut ausgegeben werden.

Tabelle GLPCA "EC-PCA: Ist-Einzelposten"
Konto (L,S) GLPCA-RACCT
Betrag in Profit-Center-Hauswährung  (L) GLPCA-KSL   
Hierbei ist in den Währungsfeldoptionen kein Währungsfeld aktiviert
Buchungsperiode (L,S) GLPCA-POPER
Buchungsdatum im Beleg (L) GLPCA-BUDAT


Tabelle ANLZ "Valutierte Anlagen-Zuordnungen"
Gültig ab (L) ANLZ-ADATU
Gültig bis (L) ANLZ-BDATU
Anlage (L) ANLZ-ANLN1
UNr. (L) ANLZ-ANLN2
ANLZ_KOST (L) ANLZ-KOSTL "Kostenstelle nach Anlagenstamm"
ANLZ_CAUFN (L) ANLZ-CAUFN "Innenauftrag nach Anlagenstamm"
ANLZ_VKOST (L) ANLZ-KOSTLV   "Verantwortliche Kostenstelle der Anlage"


Tabelle GLPCA "EC-PCA: Ist-Einzelposten"
GLPCA_KOSTL (L) GLPCA-KOSTL "Kostenstelle CO Beleges"
GLPCA_AUFNR  (L) GLPCA-AUFNR "Innenauftrag CO Beleg"

Lokale Zusatzfelder
Kostenstelle (L) KS
Innenauftrag (L) IA
Berichtswert (L) WERT
Hierbei ist in den Währungsfeldoptionen kein Währungsfeld aktiviert
Kontrolle (L) CHK

3. Query ausführen

Zum Ausführen der Query ist dann darauf zu achten, dass die entsprechenden Sachkonten der Anlagenbuchhaltung im Feld Konto eingetragen werden und bei den Anlagenbewegungsarten mögliche Zugangsarten (bspw. 100 Zugang) hinterlegt sind. Grundsätzlich eignet sich diese Query auch als Zugangsliste für Investitionen, wobei dieses nur Sachanlagen (mit Stammsatz in der Anlagenbuchhaltung und nicht Finanzanlagen betrifft. Eine Möglichkeit der Auswertung von Finanzanlagen ist im Artikel "Query FI Einzelposten als Belegjournal - Belegsegment (BSEG) und Belegkopf (BKPF) verknüpfen" beschrieben.

Qualitätssicherung


Sofern die Auswertung tatsächlich der Qualitätssicherung und damit einen direkten Vergleich der CO Belege und der Anlagenstammsätze beinhaltet, ist es empfehlenswert die erhaltene ALV Liste (Einzelpostenliste) nach  der Anlagennummer zu gruppieren (Zwischensumme zu bilden). Dieses hat den Vorteil, dass man anhand der gelben oder roten Ampel (eigentlich LED) direkt sieht, ob eine Abweichung noch vorliegt, oder ob die entsprechenden Belege in der Folgezeile schon korrigiert sind (hier sollten sich die Beträge zu 0 saldieren).

Auswertung Investitionen

Sofern die verwendeten Berichte, zum Beispiel Kontoauszug, auf PSM-FM basieren und daher eine Kontrolle obsolet ist eigent sich auch der Artikel "Zusammenfassung Query über Anlagenzugang - Auswertung Investitionen aus Profit-Center-Rechnung" aus 2015 für eine direkte Auswertung der Sachinvestionen aus der Profit-Center-Rechnung mit Ausgabe der CO-Kontierung (Innenauftrag und Kostenstelle) entweder durch den Profit-Center-Beleg oder aus den Anlagenstammsatz. :-) Hier zeigt sich auch im Blog eine entsprechende Entwicklung zwischen den Artikeln.
 

Hinweis:

Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung

Meine IT-Ausstattung

Aktuell ist mein (mobiler) Arbeitsplatz mit folgenden Geräten ausgestattet. Ich bemühe mich diese Seite aktuell zu halten.

Amazon Seite von Andreas Unkelbach


* Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


<< Frühere Einträge Spätere Einträge >>



* Amazon Partnerlink/Affiliatelinks/Werbelinks
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Hinauf






Logo Andreas-Unkelbach.de
Andreas Unkelbach Blog
ISSN 2701-6242

© 2004 - 2026 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de

UStID-Nr: DE348450326 - Kleinunternehmer im Sinne von § 19 Abs. 1 UStG

Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Linkedin Bluesky

Facebook Mastodon

Amazon Autorenwelt Librarything

Buchempfehlung
Berichtswesen im SAP®-Controlling

19,95 € Amazon* Autorenwelt

Espresso Tutorials

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Privates

Kaffeekasse 📖 Wunschliste