Donnerstag, 29. September 2011

ABAP - Abrechnungsergebnisse lesen per Funktionsbaustein

Es gibt ja einige Funktionsbausteine die Abrechnungsergebnisse lesen. Jeder hat aber so seine Eigenheiten, die man kennen sollte.

HRCM_PAYROLL_RESULTS_GET

    CALL FUNCTION 'HRCM_PAYROLL_RESULTS_GET'
      EXPORTING
        PERNR                    = WA_ITAB-PERNR
        BEGDA                    = BEGQ "Selektion Begda
        ENDDA                    = ZHIGH " 31.12.9999
     IMPORTING
       SUBRC                    = ZSUBC
*       MOLGA                    =
       PAYROLL_RESULT_TAB       = PAYROLL_RESULT_TAB
              .
=> hat die Eigenheit, auch internationale Ergebnisse zu lesen. Dafür ist EVP leer, die Verwaltungsdaten sind in der Struktur INTER gespeichert. Liest auch nur A-Ergebnisse und diese nur dann, wenn das Auszahlungsdatum! (PC261-PAYDT) im selektierten Datumsbereich liegt.
Das kann zu Problemen führen wenn ein Monat nach ENDDA mit Rückrechnung abgerechnet wurde, also beispielsweise Einstellung 01.06.2011, Endda 30.06.2011, Abrechnung Monat 06/ 2011 aber erst in 07/2011, etwa wegen verspätet eingereichter Unterlagen. In diesem Fall ist das Auszahlungsdatum im Juli, das Juniabrechnungsergebnis wird nicht berücksichtigt.
Lösung: immer bis 31.12.9999 lesen und dann mit
    DELETE PAYROLL_RESULT_TAB WHERE INTER-VERSC-FPEND > ENDQ.
überzählige Abrechnungsergebnisse löschen.

HR_GET_PAYROLL_RESULTS

  CALL FUNCTION 'HR_GET_PAYROLL_RESULTS'
    EXPORTING
      PERNR                               = PERNR-PERNR
*    PERMO                               = 01
      PABRJ                               = PNPPABRJ
      PABRP                               = PNPPABRP
*   PABRJ_END                           =
*   PABRP_END                           =
*   INPER_LST                           =
   INPER_ACT                           = ZABRP
    ACTUAL                              = 'X'
*   WAERS                               =
*   ARCH_TOO                            =
    TABLES
      RESULT_TAB                          = PAYROLL_RESULT_TAB
   EXCEPTIONS
     NO_RESULTS                          = 1
     ERROR_IN_CURRENCY_CONVERSION        = 2
     T500L_ENTRY_NOT_FOUND               = 3
     PERIOD_MISMATCH_ERROR               = 4
     T549Q_ENTRY_NOT_FOUND               = 5
     INTERNAL_ERROR                      = 6
     WRONG_STRUCTURE_OF_RESULT_TAB       = 7
     OTHERS                              = 8
            .
  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
 => hier kann man sowohl A als auch P und O lesen. Über INPER_ACT und INPER_LST kann man die Auswahl der berücksichtigten Rückrechnungen feinsteuern. Um das Ergebnis von oben zu erzielen müssen Sie INPER_ACT auf 999912 setzen sowie ACTUAL auf 'X' (nur A-Ergebnisse). Die Fürperiode wird durch PABRJ/ PABRP und PABRJ_END / PABRP_END bestimmt. Der Funktionsbaustein funktioniert auch international.


PA/ PY - Prüfen Adressaufbereitung

Die Adressaufbereitung (länderspezifisch) kann in Tabelle T005 eingestellt werden und mit Report RPLADR00 getestet. Gewisse Dinge sind allerdings im Funtionsbaustein ADDRESS_INTO_PRINTFORM fest programmiert, wie. z.B. ob die Anrede in einer separaten Zeile steht - was ja zum Beispiel im Entgeltnachweis, der ja nur mit ADRS-LINE0... LINE9 arbeitet von  Bedeutung sein kann . Der zentrale Hinweis der SAP ist für RPCEDTX0 die Nummer 406977.




ADDRESS_INTO_PRINTFORM

Mittwoch, 28. September 2011

PY - Rückrechnung in anderen Buchungskreis - Überweisung

Wenn ein Mitarbeiter den Buchungskreis bzw. die juristische Person wechselt so wird die Überweisung die inhaltlich zu Buchungskreis A gehört über Buchungskreis B gesteuert.
Die /559 wird nur im neuen Buchungskreis gebildet. Dadurch entstehen im Buchungskreis B Überweisungen, die mit Buchungskreis A verrechnet werden müssen. Denkbar wäre in einem solchen Fall auch die Bildung eines zusätzlichen Abrechnungsergebnisses. Was ist richtig?
Hier die Antwort der SAP:
Das Verhalten des Abrechnungsprogramms ist korrekt. Anmerkung: Überweisung über Buchungskreis B, ein Abrechnungsergebnis, Verrechnung in der Buchung über RR-Zufluss/-abfluss.
Es gibt in diesem Fall keine Möglichkeit, ein zweites Abrechnungsergebnis zu erzeugen. Wenn ein untermonatiger Wechsel stattfindet, dann hat das erste Ergebnis ja ein anderes Endedatum als das zweite.
Z.B. 01.02.-14.02 Buchungskreis A
15.02.-28.02. Buchungskreis B
Bei einem Wechsel zum 01. des Monats gibt es ja keinen Zeitraum, den ein erstes Ergebnis abdecken könnte.

Auch im Fall des untermonatigen Wechsels wird bei einer Rückrechnung ein Zufluss in die aktuellen Periode gebildet und es findet eine Verrechnungstatt:
01/01: /559: 500,- Bkrs A
02/02: /559: 250,- Bkrs A
02/02: /559: 250,- Bkrs B
02/03: /559: 250,- /551: -100,- Bkrs A
02/03: /559: 250,- Bkrs B
03/03: /559: 350,- /552: 100,- Bkrs B

D.h. es gibt hier zwei Gründe, warum das Ergebnis so aussieht:
1. Es ist kein möglicher Zeitraum für einen Split vorhanden
2. Es sind keine rückwirkenden Zahlungen möglich, sobald rückwirkend in einem anderen Buchungskreis ein Aufwand entsteht findet immer eine Verrechnung statt.

ABAP - Personalnummernselektion TMW per Funktionsbaustein

Wenn man im TMW per Funktionsbaustein Personalnummern selektiert wird dieser im Include SAPLHRBAS00GENERICSELECTION aufgerufen (wichtig für Debugging).

Freitag, 23. September 2011

PY DE - Krankenkassen Guthaben löschen

Entsteht bei einer Krankenkasse ein Beitragsguthaben und überweist die Kasse dieses dann muss in Tabelle T5D16 das Guthaben gelöscht werden (TA SM30).

ABAP - Rücksetzen ALV-Puffer

Die Feldkataloge der ALV-Anzeigen sind gepuffert in SAP. Dadurch kann es passieren dass neue Felder nach Strukturänderung und Transport nicht sichtbar sind. Um den Puffer neu aufzubauen muss dann Report BALVBUFDEL ausgeführt werden. Näheres siehe auch Hinweis 339258 bzw. 122975.

Mittwoch, 21. September 2011

PY - Prüfung Stammdaten 0013/ 0020 auf Zulässigkeit DEÜV

Die Prüfung ob die Stammdaten eines Mitarbeiters für die DEÜV konsistent sind kann mit Report RPUDCCD0 gemacht werden.

Donnerstag, 15. September 2011

Mittwoch, 14. September 2011

PA - Änderung Eintrittsdatum nach Abrechnung

Während ohne erfolgte Abrechnung das Eintrittsdatum beliebig verschoben werden kann muss nach erfolgter Abrechnung Hinweis 41523 beachtet werden:

Fall 1:
              Hat die Personalnummer noch keine Abrechnungsergebnisse, so können Sie das Eintrittsdatum beliebig verschieben.

Fall 2:
              Das tatsächliche Eintrittsdatum liegt vor dem eingegebenen Datum, z.B. im Vormonat. In diesem Fall ist ein Verschieben des Eintrittsdatums möglich.
      a) Zunächst muß mit der Hilfsfunktion "Abrechnungsstatus ändern" das Feld "Abgerechnet bis" im Infotyp 0003 ("Abrechnungsstatus") gelöscht werden.
      b) Die Abrechnungsergebnisse dürfen nicht gelöscht werden.
      c) Verschieben Sie nun mit der Hilfsfunktion "Ein-/Austrittsdatum ändern" das Eintrittsdatum in die Vergangenheit. Der Gültigkeitsbeginn der vorhandenen Infotypen wird automatisch verschoben.
              Bei der nächsten Abrechnung wird eine Rückrechnung auf das frühere Eintrittsdatum ausgelöst, und die Abrechnungsergebnisse werden korrigiert.

Fall 3:
              Das tatsächliche Eintrittsdatum liegt nach dem eingegebenen Datum, z.B. am 15. statt dem 1. eines Monats oder auch im Folgemonat.
              In diesem Fall darf das Eintrittsdatum NICHT verschoben werden. Die Abrechnung würde nicht mehr auf den vormals abgerechneten Zeitraum zurückrechnen und deshalb INKONSISTENTE Abrechnungsergebnisse erzeugen.
              Um dies zu vermeiden, gehen Sie wie folgt vor:
      a) Richten Sie zwei neue Maßnahmen (in Tabelle T529A) ein:
                       in Release 2.2:
Maßnahme                ... Infogr FCh Pruef-  Status Aus Upd
                                          merkmal Massn. Dat 0000
-----------------------------------------------------------------
70 Irrtümlicher Eintritt          1             0         X
71 Korrigierter Eintritt          0             3 1       X
                     
                       ab Release 3.0:
Maßnahme                    FC Kundenind. Besch. Sond.Zahl U0000
-----------------------------------------------------------------
70 Irrtümlicher Eintritt      1            0                X
71 Korrigierter Eintritt      0            3      1         X
                     
      b) Richten Sie die Maßnahmegründe (in Tabelle T530) ein:

      Mass- Massnahmen- Massnahmentext           DUEVO Abkehrgr. Kennz.
      nahme Grund       Text zum Massnahmengrund      Knappsch. unst.B
      -------------------------------------------------------------
      70                Irrtümlicher Eintritt
      71                Korrigierter Eintritt      1
                       Nehmen Sie die beiden Maßnahmen nicht in das Menü für die Maßnahmen auf, da sie nur in Ausnahmefällen benötigt werden.
                     
      c) Rufen Sie für den betroffenen Mitarbeiter den Infotyp 0000 "Maßnahmen" auf und kopieren Sie den Satz mit der Eintrittsmaßnahme.
      d) Verändern Sie den Gültigkeitsbeginn nicht.
      e) Überschreiben Sie den Maßnahmenschlüssel mit "70" (Irrtümlicher Eintritt). Das Feld "Status Beschäftigung" hat den Wert 0 für "ausgetreten".
      f) Sichern Sie den Satz. Es wird keine Infogruppe prozessiert.
      g) Kopieren Sie den Infotypsatz für die Maßnahme erneut. Vergeben Sie den Maßnahmenschlüssel "71" (Korrigierter Eintritt) und geben Sie nun als Gültigkeitsbeginn das tatsächliche Eintrittsdatum ein. Das Feld "Status Beschäftigung" hat den Wert 3 für "aktiv".
      h) Sichern Sie den Satz. Es wird keine Infogruppe prozessiert.

                       Die bereits vorhandenen Infotypsätze (org.Zuordnung IT0001, Basisbezüge IT0008, etc.) behalten das irrtümliche Eintrittsdatum als Beginndatum. Sie dürfen nicht manuell geändert werden.
            
              Es existieren nun folgende Sätze zum Infotyp 0000 auf der Datenbank:
              Vorher:
  01.01.2005 bis 31.12. 9999 Eintritt, Status 2 = 3.
              Nachher (Eintritt zum 15.01. statt 01.01.):
  01.01.2005 bis 14.01.2005 irrtümlicher Eintritt, Status 2 = 0,
  15.01.2005 bis 31.12.9999 korrigierter Eintritt, Status 2 = 3.
            
              Bei der nächsten Abrechnung wird eine Rückrechnung zum 01.01.2005 ausgelöst. Das zuviel bezahlte Entgelt wird durch die Aliquotierung ermittelt und als Forderung in die nächste Abrechnungsperiode übernommen. Nachfolgende Auswertungen übernehmen die korrigierten Ergebnisse.
              Hinweis: Diese Vorgehensweise ist auch möglich, falls statt des Ersteintritts ein Wiedereintritt verschoben werden muß. In diesem Fall empfiehlt es sich, zwei kundeneigene Maßnahmen "Irrtümlicher Wiedereintritt" und "Korrigierter Wiedereintritt" in Tabelle T529A anzulegen. Die Maßnahme "Irrtümlicher Wiedereintritt" muß hierbei mit dem Funktionscharakter (FC) = 0 geschlüsselt werden. Alle anderen Felder müssen analog zu den Maßnahmen 70 und 71 gecustomized werden.
              Die Maßnahmengründe zu den beiden neuen Maßnahmen sollten in Tabelle T530 analog zu den Maßnahmen 70 und 71 geschlüsselt werden.
              Die weitere Vorgehensweise ist die gleiche wie beim Verschieben des Ersteintritts.

Freitag, 9. September 2011

ABAP - Anzeigevariante HR_DISPLAY_BASIC_LIST

Szenario: Kopie eines älteren Standardreports z.B. RPTPSH10, der Report soll zwei verschiedene Anzeigevarianten (und Selektionen) für unterschiedliche Nutzergruppen ausgeben.
Lösung: Zwei Transaktionscodes (Reporttransaktion mit Variante) für die Selektionen.
Problem: an Funktionsbaustein HR_DISPLAY_BASIC_LIST können keine Anzeigevarianten übergeben werden.
Lösung: Über einen Trick ist das doch möglich. Der Parameter CURRENT_REPORT wird zur Bestimmung der Standardanzeigevariante benutzt, aber nicht gegen SY-CPROG verprobt (warum auch). In Abhängigkeit von der Transaktion wird der Parameter bspw. auf <REPORT>01 oder <REPORT>02 gesetzt. So kann man pro Transaktion dann jeweils eine Defaultanzeigevariante definieren. Diese stehen in Tabelle LTDXD (Default) oder LTDX.

PY CH - Abrechnung Schweiz Quellensteuer

Das Entstehungsprinzip gibt es nicht in der Schweiz. Dies hat zur Folge dass die Quellensteuer monatlich erhoben wird und Nachzahlungen nach dem Zuflußprinzip versteuert werden.
Es gibt allerdings kantonale Regelungen bezüglich der Bildung von gleitenden Schnitten, also einem permanenten Jahresausgleich in der Quellensteuer um die Progressionsnachteile dieser Methode auszugleichen.
Diese Regelung gilt für Wallis, Waadt, Tessin und Freiburg. In Genf wird ein Jahresausgleich durchgeführt. Das Verfahren ist in der Tabelle T5C2C hinterlegt und wird mit der Operation CSTSH?QBE abgefragt.
 
Grundsätzlich wird die Quellensteuer nach den Regeln des Wohnkantons berechnet. Zur Vereinfachung des Verfahrens für den Arbeitgeber kann die Quellensteuer auch nach den Regeln des Arbeitskantons bestimmt werden. In diesem Fall wird durch die Quellensteuerämter ein interkantonaler Ausgleich durchgeführt, d.h. die Differenz der Quellensteuer des Arbeits- und des Wohnkantons wird dem Arbeitnehmer nachträglich veranlagt bzw. zurückerstattet.
Für Grenzgänger ist der Arbeitskanton massgebend für die Quellensteuerberechnung.

Donnerstag, 8. September 2011

ABAP - Kommentare zu Infotypsätzen lesen

Kommentare (Text, F9) zu Infotypsätze lesen - hier am Beispiel Infotyp 0014

DATA: TX-KEY LIKE PSKEY. "Schlüssel Textcluster

DATA: BEGIN OF PTEXT OCCURS 200. "Importstruktur Textcluster
DATA:  LINE(78).
DATA: END OF PTEXT.

*Versionsnummer
DATA: BEGIN OF TEXT-VERSION,
        NUMMER TYPE X VALUE '02',
      END OF TEXT-VERSION.

DATA: LEN TYPE I.

DATA: TEXTLINE(2048). "Langes Feld zur Ausgabe in eine Liste
.....

      MOVE P0014 TO TX-KEY. "Schlüssel füllen

      RP-IMP-C1-TX. "Import Cluster
.....
      LOOP AT PTEXT.  "Text einlesen und in Textline füllen
        IF LEN < 2048.
          MOVE PTEXT-LINE TO TEXTLINE+LEN.
        ELSE.
          EXIT.
        ENDIF.
        LEN = STRLEN( TEXTLINE ).
        LEN = LEN + 1.
      ENDLOOP.
.....


Dienstag, 6. September 2011

PY Beschäftigungsverbot Perioden für Durchschnitt

Relevant für den Durchschnitt sind 3 Monate vor Eintritt der Schwangerschaft. In SAP bedeutet das - Mutmaßliches Entbindungsdatum aus IT0080 - 01. des Monats im Vorjahr ist Monat 1 und dann weitere 2 Monate. Dieser Zeitraum wird im IT0080 angezeigt. Beispiel: Entbindung 12.08.2011 - Durchschnittszeitraum 01.08.2010 - 31.10.2010.
Wenn dieser Zeitraum z.B. wegen späterem Eintritt nicht verwendet werden kann dann können die ersten 3 Monate der Beschäftigung verwendet werden. Der Schnitt kann z.B. über Lohnart MBV6 vorgegeben werden bei maschineller Berechnung.

Weitere Ausnahmen siehe §11 MuSchG:

§ 11 Arbeitsentgelt bei Beschäftigungsverboten
(1) 1Den unter den Geltungsbereich des § 1 fallenden Frauen ist, soweit sie nicht Mutterschaftsgeld nach den Vorschriften der Reichsversicherungsordnung beziehen können, vom Arbeitgeber mindestens der Durchschnittsverdienst der letzten 13 Wochen oder der letzten drei Monate vor Beginn des Monats, in dem die Schwangerschaft eingetreten ist, weiter zu gewähren, wenn sie wegen eines Beschäftigungsverbots nach § 3 Abs. 1, §§ 4, 6 Abs. 2 oder 3 oder wegen des Mehr-, Nacht- oder Sonntagsarbeitsverbots nach § 8 Abs. 1, 3 oder 5 teilweise oder völlig mit der Arbeit aussetzen.
2Dies gilt auch, wenn wegen dieser Verbote die Beschäftigung oder die Entlohnungsart wechselt.
3Wird das Arbeitsverhältnis erst nach Eintritt der Schwangerschaft begonnen, so ist der Durchschnittsverdienst aus dem Arbeitsentgelt der ersten 13 Wochen oder drei Monate der Beschäftigung zu berechnen.
4Hat das Arbeitsverhältnis nach Satz 1 oder 3 kürzer gedauert, so ist der kürzere Zeitraum der Berechnung zugrunde zu legen.
5Zeiten, in denen kein Arbeitsentgelt erzielt wurde, bleiben außer Betracht.
(2) 1Bei Verdiensterhöhungen nicht nur vorübergehender Natur, die während oder nach Ablauf des Berechnungszeitraums eintreten, ist von dem erhöhten Verdienst auszugehen.
2Verdienstkürzungen, die im Berechnungszeitraum infolge von Kurzarbeit, Arbeitsausfällen oder unverschuldeter Arbeitsversäumnis eintreten, bleiben für die Berechnung des Durchschnittsverdienstes außer Betracht.
3Zu berücksichtigen sind dauerhafte Verdienstkürzungen, die während oder nach Ablauf des Berechnungszeitraums eintreten und nicht auf einem mutterschutzrechtlichen Beschäftigungsverbot beruhen.
(3) Die Bundesregierung wird ermächtigt, durch Rechtsverordnung mit Zustimmung des Bundesrates Vorschriften über die Berechnung des Durchschnittsverdienstes im Sinne der Absätze 1 und 2 zu erlassen.

PY Lohnsteuerbescheinigung 2010 - Zeile 28

In Zeile 28 wird bei privat Versicherten der Basistarif bescheinigt - dieser muss natürlich dann auch in IT0079 gepflegt sein.

PY Abrechnung - Zuschuss zum Muttschaftsgeld bei teilweiser BV im Bemessungszeitraum

Problemstellung: Im Bemessungszeitraum für den Zuschuss Mutterschaftsgeld (3 Monate vor Beginn Schutzfrist) liegt ein teilweises Beschäftigungsverbot vor. IT0008 wird reduziert über den Beschäftigungsgrad, das Beschäftigungsverbot über IT0597 aufgegeben und über den IT0008 Subtyp DBVE die ungekürzten Bezüge aufgegeben. Nach dem Beschäftigungsverbot ist der IT0008 wieder mit 100% Beschäftigungsgrad aufgegeben. Die Funktion DOZMG BEW bewertet nun die Basisbezüge neu zu 100%, da: Auszug aus MuSchG: "Nicht nur vorübergehende Erhöhungen des Arbeitsentgeltes", die während der Schutzfrist vor und nach der Entbindung wirksam werden, sind von diesem Zeitpunkt an in die Berechnung einzubeziehen. Dadurch wird die Grundlage um den Ausgleichsbetrag BV zu hoch. Hinweis 1563815 beseitigt dies - allerdings erst ab 01/ 2012. Will man das vorher haben muss in T596D die Teilapplikation DOZB aktiviert werden.

Montag, 5. September 2011

PA - FI/CO/MM Verknüpfung Personalnummer - Kreditor

Aus Personalnummern können per Report Kreditorenstämmsätze erzeugt werden mit dem Report RPRAPA00 erzeugt werden. Die Verknüpfung zur Personalnummer wird über das Feld Personalnummer im Kreditor hergestellt (LFB1-PERNR). Übliches Szenario: Überweisung Reisekosten im FI.