Dienstag, 30. April 2013

ABAP - Zahlen auf-/ ab- oder kaufmännisch runden

Man kommt ja häufig in die Verlegenheit Zahlen in ABAP auf-/ ab- oder kaufmännisch runden zu müssen, deshalb hier eine kurze Übersicht der Möglichkeiten:

Funktionsbaustein ROUND: relativ simpel zu bedienen, Zahl rein, Art der Rundung angeben und Anzahl Dezimalstellen, Zahl wieder raus

Ansonsten kann man auch eingebaute Funktionen nutzen. Als Beispiel hier ein Auszug aus der Dokumentation zu COMPUTE:

DATA: I TYPE I,
P TYPE P DECIMALS 2,
M TYPE F VALUE '-3.5',
D TYPE P DECIMALS 1. 

P = ABS( M ). " 3,5 
=>  ABS eliminiert das Vorzeichen

I = P. " 4 - kaufmännisch gerundet
I = M. " -4 
 =>  die Zuweisung von einem Feld mit Nachkommastellen an eine Ganzzahl I führt automatisch zur kaufmännischen Rundung
 
I = CEIL( P ). " 4 - nächstgrößere ganze Zahl
I = CEIL( M ). " -3 
=>  CEIL rundet auf auf die nächste ganze Zahl

I = FLOOR( P ). " 3 - nächstniedrige ganze Zahl
I = FLOOR( M ). " -4 
=>  FLOOR rundet ab auf die nächste ganze Zahl 

I = TRUNC( P ). " 3 - ganzzahliger Teil
I = TRUNC( M ). " -3 
=> TRUNC liefert Teil vor dem Komma

D = FRAC( P ). " 0,5 - Dezimalteil
D = FRAC( M ). " -0,5
=> FRAC liefert Teil nach dem Komma 

Zu guter Letzt sei auch die Division mit DIV und MOD erwähnt.

DIV und MOD liefern das Ergebnis der ganzzahligen Division oder anders formuliert die Antwort auf die Frage "wie oft passt A ganz in B und was bleibt dann übrig"?

Beispiel:

7,3 / 2,4 => 3 * 2,4 = 7,2 => also passt 2,4 genau 3mal in 7,3 ohne Nachkommastellen
7,3 - 7,2 = 0,1 => das ist der Rest der dabei übrig bleibt

DIV steht dabei für die ganze Zahl, also 3 im Beispiel und MOD für den Rest, also 0,1.

Zum Ausprobieren:

DATA: A1 TYPE P DECIMALS 2, A2 TYPE P DECIMALS 2.
DATA: F1 TYPE P DECIMALS 2 VALUE '7.3', F2 TYPE P DECIMALS 2 VALUE '2.4'.

A1 = F1 MOD F2.
A2 = F1 DIV F2.

WRITE: A1, '-', A2.

Donnerstag, 25. April 2013

PA - Infotypenauswertung/ -übersichten

Mit diesen Reports kann man sich eine Übersicht über Infotypen in Bezug auf unterschiedliche Aspekte verschaffen:

Stammdaten
RPDINF01 - sehr nützlich für einen generellen Überblick, liefert Eigenschaften des IT, wie oft/ ob er verwendet wird, Zeitbindung, Subtypen, Tabellen dazu...

RPLINFC0 - liefert detaillierte Daten zu den benutzten Infotypen für eine einzelne Personalnummer als Baumstruktur mit Absprung in PA20

Organisationsmanagement
RHIQ_HROBJINFO - Liefert technische Informationen zu Objekten des Organisationsmanagements

RHINFAW0 - Listet Objekte mit Anzahl, Verknüpfung etc.

Mittwoch, 24. April 2013

PY DE - Abwesenheitsbewertung/ Lohnartengenerierung

Der zentrale View in der Abwesenheitsbewertung in der Abrechnung ist der View V_T554C.

Hier können pro Abwesenheitsbewertungsgruppierung - die in der Abrechnung im Standard durch die Funktion MOD XMOD gesetzt wird - und Bewertungsregel Lohnarten gebildet werden.

Die Bewertungsregel ist in der View V_554S_G der Abwesenheit zugeordnet und kann ggf. noch in der View T5D0C aufgeteilt sein (zum Beispiel bei Krankheit wird die Abwesenheit nach Ende der Lohnfortzahlung anders bewertet). Zu allem Überfluss ist die Zuordnung zur Bwwertungsregel auch noch von der Gruppierung Personalteilbereich für An-/ Abwesenheiten abhängig.

Die eigentlich Abwesenheitsbewertung findet in der Abrechnungsfunktion PAB im Bruttoteil statt.

Will man wissen wie eine Abwesenheit bewertet wird dann sollte man folgende Dinge prüfen - am besten der Reihe nach:

- Gruppierung Personalteilbereich für Abwesenheiten herausfinden V_001P_ALL - MOABW

- Bewertungsregel der Abwesenheit V_554S_G - KLBEW herausfinden

- ggf. ist diese im Zeitverlauf aufgeteilt - hier ggf. den View T5D0C prüfen

Alternativ zu den obigen 3 Schritten - wenn ein Beispiel vorhanden ist - 
- Abrechnung Tabelle AB prüfen (z.B. bei Funktion PAB) - hier ist die Bewertungsregel im Feld KLBEW erkennbar

- Prüfen welcher MODIF A in MOD XMOD (oder einer Kopie davon) gesetzt wird

- Mit den Schlüsseln den Gesamtview V_T554C aufrufen.

Donnerstag, 18. April 2013

PY DE - Abrechnungsfall Praktikant ohne Entgelt/ Umschüler

Wie ist ein Abrechnungsfall in SAP abzubilden wenn es sich um einen unentgeltlich beschäftigten Praktikanten handelt der in der RV/ AV versicherungspflichtig ist?
So etwas kann passieren wenn es sich um ein vorgeschriebenes Vor- oder Nachpraktikum ohne Entgelt handelt oder wenn jemand eine Umschulung macht.  
Dann hat der Arbeitgeber die Beiträge in Höhe von 1% der monatlichen Bezugsgröße  -
2013 - West 0,81 AV/ 5,09 RV - Ost 0,68 AV 4,30 RV - abzuführen.

In SAP wird das folgendermassen umgesetzt:

Customizing:
- neue Lohnart etwa "Bezugsgröße RV/AV" als Kopie von MU50 erstellen, Kumulation 04 löschen und 02 anlegen, Verarbeitungsklasse 71 mit 1 schlüsseln, zulässig für IT0014

IT0012 Steuer: nicht steuerpflichtig

IT0013 SV:
- Praktikant schlüsseln mit KV/RV/AV/PV - 0/1/1/0, also nur RV/ AV-pflichtig
- Sekundärattribut 24 eingeben "Geringverdiener"
- zusätzlich im Reiter "Weitere Daten" bei AV-Sonderregel "06" eintragen - keine IG-Umlage

IT0014 Wiederk. Be-/ Abzüge:
- Lohnart mit einem Prozent der Bezugsgröße eingeben

IT0020 DEÜV:
Personengruppe 105 Praktikanten/ 102 Umschüler

Als Ergebnis müßten dann RV/AV-AG-Anteile in der richtigen Höhe gebildet werden.

Siehe auch:
Hinweis 104162 - HR-DSV: Praktikanten im SV-rechtlichen Sinne
1499158 - Fehler in SV-Berechnung bei Praktikanten - Ergänzung zum HW 104162

Mittwoch, 17. April 2013

PY DE - Arbeitskostenerhebung 2012

Auszug aus Hinweis 1825666:

b) Zusammenfassung nach Unternehmen und nach Bundesländern

Die Daten verschiedener Personalbereich/-teilbereiche können über den Personalbereich Berichtswesen (Teilapplikation EHAK) zu einem Unternehmen zusammengefasst werden. Pro Absender (Unternehmen) werden 9 Formularseiten ausgegeben.

In einigen Fällen mit Personalbereich/-teilbereichen in verschiedenen Bundesländern werden noch Betriebslisten mit einzelnen Daten je Bundesland gefordert. Dazu müssen Sie in BAdI HRPAYDE_EHAK eine eigene Implementierung erzeugen, und darin Methode CHANGE_ORG verwenden, um den Betriebsteilen eines Bundeslandes den gleichen Personalbereich/-teilbereich (P_WERKS, P_BTRTL) zuzuweisen. Beim Aufruf des Reports wählen Sie dann zusätzlich die Option "Betriebsliste erstellen".

Beispiel: Sie haben 100 Personalbereich/-teilbereiche in 10 Bundesländer, die zwei Unternehmen zugeordnet sind. - Einem mit Rechtskreis West für 7 Bundesländer, und einem mit Rechtskreis Ost für 3 Bundesländer.

Mit dem Personalbereich Berichtswesen fassen Sie die einzelnen Personalbereich/-teilbereiche zum jeweiligen Unternehmen/Absender zusammen. Dann erhalten Sie 9 Seiten je Unternehmen + je eine Seite für jede Betriebsliste.

Ohne BAdI-Implementierung sind das 2*9 + 100*1 Seiten, da die Personalbereich/-teilbereiche nicht nach Bundesländern zusammengefasst werden. Mit der Implementierung einer entsprechenden Zusammenfassung sind das 2*9 + 10*1 Seiten, da die 100 Personalbereich/-teilbereiche zu 10 (einem je Bundesland) zusammengefasst werden.


Das bedeutet im Klartext - wenn man Teilbereiche in verschiedenen Bundesländern hat braucht man das BADI:

- das BADI macht die Bundeslandzusammenfassung über die Changing-Parameter P_WERKS und P_BTRTL und kann ggf. die Absenderzusammenfassung über die Teilapplikation EHAK modifizieren (Parameter P_WERKS_SUM und P_BTRTL_SUM) - warum man das auch immer machen möchte nachdem man schon zusammengefasst hat.
Siehe auch Hinweis 1337803 - HR-DEH: Arbeitskostenerhebung 2008 (FAQ)

- wenn es nur ein Unternehmen ist braucht man auch nur einen Absender, die 9 Seiten West und Ost werden automatisch erstellt

- Das Beispielcoding für das BADI ist etwas irreführend. Hier wird der Absender nach Bundesland zusammengefasst:
...

* ... Schleswig-Holstein ...
WHEN '01'.
* p_werks_sum = 'XXXX'.
* p_btrtl_sum = 'YYYY'.
 ...

Wenn man nicht den Absender sondern den eigentlichen Teilbereich zusammenfassen möchte - was denke ich der Regelfall ist - muss es heissen:

...
* ... Schleswig-Holstein ...
WHEN '01'.
* p_werks = 'XXXX'.
* p_btrtl = 'YYYY'.
...

- wenn Hinweis Hinweis 1331206 - Arbeitskostenerhebung (Zusammenfassung pro Bundesland) noch eingebaut ist - in dem steht übrigens das mit P_WERKS und P_WERKS_SUM genauer beschrieben, wenn auch für die Modifikationsmethode - kann es sein dass Hinweis 1826991 - AKE 2012: Kleinere Korrekturen 1 Schwierigkeiten macht beim Einbau. Zuerst 1331206 ausbauen hilft.

- Berlin ist immer Rechtskreis West zugeordnet siehe http://www.arbeitskosten2012.de/Statistik-Portal/AKE/Arbeitskostenerhebung-Muster.pdf - Seite 2 der Erläuterungen

- Was ist ein Mehrbetriebsunternehmen?
Einbetriebsunternehmen, Mehrbetriebsunternehmen und Mehrländerunternehmen
Ein Einbetriebsunternehmen liegt vor, wenn das Unternehmen lediglich aus einem einzigen Betrieb, mit Standort am Sitz des Unternehmens besteht. Wenn das Unternehmen aus mindestens zwei örtlich getrennten Betrieben in demselben Bundesland besteht, spricht man von einem Mehrbetriebsunternehmen. Befindet sich dagegen mindestens ein Betrieb eines Unternehmens in einem anderen Bundesland, so handelt es sich um ein Mehrländerunternehmen

- wenn wie oben beschrieben zusammengefasst wurde kann die Anzahl der Einheiten, also der Niederlassungen über die Summenlohnart C003 pro Teilbereich = Bundesland vorgegeben werden (Anzahlfeld)

- Externe Daten in Statistik übernehmen: es sind prinzipiell 2012 die E- und F-Summenlohnarten relevant - Ausnahme C1U3 Identnummer des Unternehmen und C003 - Anzahl Einheiten

- BETRAG ist bei allen Feldern zwischen 100 und 200 relevant, ANZAHL bei allen Feldern < 100 und >= 300

E132 - Kennzahl 132: Beiträge zur gesetzlichen Unfallversicherung: Diese sind aus dem Beitragsbescheid der BG zu übertragen und müssen ins ANZAHL-Feld der Summenlohnart


siehe http://www.statistikportal.de/statistik-portal/de_entMethDef.asp

siehe auch http://blog.hr-manager.de/2013/02/py-de-arbeitskostenerhebung-2012.html

Dienstag, 2. April 2013

PY DE - Inhalt Support package E5 (für 4.7)

Nachdem es erstaunlicherweise noch ein Support package für 4.7 gibt - nachdem die erweiterte Maintenance bereits abgelaufen ist - hier der Inhalt (kann sein das noch etwas dazukommt):

Allgemein
Hinweis 1834058 - Lohnartenkopierer: Lohnart aus T5D2S wird nicht kopiert

Behördenkommunikation
Hinweis 1827339 - SV: Sammelhinweis Datenaustausch 4/2013

DEÜV
Hinweis 1829768 - DEÜV: Korrekturen X
Hinweis 1835064 - Prüfung Jahresentgeltgrenze KV: Korrekturen (5)

ELStAM
Hinweis 1828701 - ELStAM: Korrekturen nach dem Jahreswechsel 15/2013
Hinweis 1829813 - ELStAM: Vorbereitung Verteiltes Reporting für ELStAM

AAG/ Zahlstellen
Hinweis 1826522 - AAG: Ergänzungen und Korrekturen (3)
Hinweis 1828311 - ZMV: Unnötige Storno- und Neumeldungen
Hinweis 1827443 - Beschäftigungsverbot: berücksichtigen IT 0007

BVV
Hinweis 1836216 - BVV: Satzaufbau des Nachsatz stimmt nicht (Feld DUMMY)

Pfändung
Hinweis 1796337 - EP: Zinsen in Fiktivberechnung, Rückzahlung, lfd. Unterhalt
Hinweis 1799712 - EP: Musterlohnart zur Bereinigung Pfändungsergebnisse
Hinweis 1803132 - EP: Musterlohnart Löschen Differenzen Vormonat Pfändung

SV
Hinweis 1828396 - Einzugsstelle für Insolvenzgeldumlage bei Mixjobs geändert
Hinweis 1830013 - Einmalzahlung unter Märzklausel bei behinderten Menschen

Steuer
Hinweis 1813630 - LStB: Korrekturen 02/2013
Hinweis 1832769 - Zusammenfassung von Steuersplittzeiträumen
Hinweis 1835338 - Untermonatige Änderung Basistarif

Auswertungen/ Statistiken
Hinweis 1826991 - AKE 2012: Kleinere Korrekturen 1
Hinweis 1828978 - RPLEHAD3: Fehler bei Altersteilzeit, Adresse, Ausbildung
Hinweis 1831704 - RPLEHAD3: Dauer der Betriebstätigkeit
Hinweis 1837687 - RPLEHAD3: Fr.Soz./Ök. Jahr / Bundesfreiwilligendienst

Bescheinigungswesen
Hinweis 1797679 - Korrekturen Bescheinigungswesen 1/2013
Hinweis 1808023 - Bescheinigungen zum Antrag auf Elterngeld: Version 12/2012