Ansicht
Dokumentation

CL_HRPAY99_FILL_INFOTYPES - Vorbelegen von Infotypen für Fkt.baustein HR_PAYROLL

CL_HRPAY99_FILL_INFOTYPES - Vorbelegen von Infotypen für Fkt.baustein HR_PAYROLL

Vendor Master (General Section)   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Eine Instanz dieser Klasse speichert Infotypsätze zu bestimmten Personalnummern, die dem Funktionsbaustein HR_PAYROLL übergeben werden. Die Personalabrechnung, die von diesem Baustein aufgerufen wird, ignoriert dann die entsprechenden Infotypen auf der Datenbank und benutzt die übergebenen.

Es ist weiterhin möglich, Infotypen zu einer Personalnummer als nicht vorhanden zu markieren. Die Personalabrechnung geht dann davon aus, dass es diese Infotypen zu der speziellen Personalnummer nicht gibt.

Zum Füllen eines Objekts werden die Methoden INSERT und MODIFY benutzt; einen Satz als nicht vorhanden markieren kann man mit der Methode DELETE_IT.

Nach dem Aufruf des Bausteins HR_PAYROLL können die Sätze mit den Methoden CLEAR (für eine einzelne Personalnummer) bzw. CLEAR_ALL wieder aus den Objekt gelöscht werden.

Alle Sätze werden intern nach Personal- und Infotypnummer getrennt in der Tabelle IPREL abgelegt; Lese-Zugriff auf diese Tabelle erhält man mit den Methode GET_IPREL.

Beziehungen

Dem Baustein HR_PAYROLL wird eine Instanz dieser Klasse im optionalen Parameter OBJ_IPREL übergeben.

Beispiel

Der Infotyp 0008 wird für zwei Personalnummern verändert. Der IT 2010 einer der Personalnummern soll von der Abrechnung nicht berücksichtigt werden.

INFOTYPES: 0008.

DATA: fill TYPE REF TO cl_hrpay99_fill_infotypes.

              

CREATE OBJECT fill. "Aufruf des Konstruktors

,,

* Ändern des aktuellsten Satzes des IT 0008 der Personalnummer 123

CALL FUNCTION 'HR_READ_INFOTYPE'

  EXPORTING pernr     = 123 infty = '0008' begda = sy-datum

  TABLES    infty_tab = p0008[].

READ TABLE p0008 INDEX 1.

p0008-bet01 = 10000.

MODIFY p0008 TRANSPORTING bet01.

CALL METHOD fill->insert( p0008[] ).

,,

* Ändern des aktuellsten Satzes des IT0008 der Personalnummer 987

p0008-pernr = 987.

p0008-bet01 = 12000.

MODIFY p0008 TRANSPORTING bet01.

CALL METHOD fill->insert( p0008[] ).

,,

* Markieren des IT 2010 der Pernr 123 als nicht vorhanden

CALL METHOD fill->delete_it( i_pernr = 123 i_infty = '2010' ).

,,

* Aufruf des HR_PAYROLL

CALL FUNCTION 'HR_PAYROLL'

  EXPORTING ...

            obj_iprel = fill

            ...

* Löschen der Daten aus dem Objekt

CALL METHOD fill->clear_all.

* alternativ: CALL METHOD fill->clear( i_pernr = 123 ).

*             CALL METHOD fill->clear( i_pernr = 987 ).

Hinweise

Für spezielle Wünsche kann die Klasse durch Ableiten erweitert werden.

Ein hypothetisches Beispiel: Für eine Liste von Personalnummern soll ein ganz bestimmter Infotypsatz als gelöscht markiert werden. Da diese Anforderung häufig vorkommt und nicht für jede Personalnummer die Methode DELETE_IT manuell aufgerufen werden soll, wird die Klasse um die Methode DELETE_IT_LIST erweitert.

CLASS lcl_extend DEFINITION INHERITING FROM cl_hrpay99_fill_infotypes.

  PUBLIC SECTION.

  METHODS:

    delete_it_list IMPORTING it_pernr TYPE hrpay99_pernr_table

                             i_infty  TYPE infty.

ENDCLASS.

CLASS lcl_extend IMPLEMENTATION.

  METHOD delete_it_all.

    DATA: pernr TYPE pernr_d.

    LOOP AT it_pernr INTO pernr.

      CALL METHOD delete_it( i_pernr = pernr

                             i_infty = infty ).

    ENDLOOP.

  ENDMETHOD.

ENDCLASS.

Weiterführende Informationen






CPI1466 during Backup   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5290 Date: 20240427 Time: 060825     sap01-206 ( 59 ms )