FuBa HR_TIME_RESULTS_GET IMPORT – ZES Zeitarten lesen

Bsp. Zeitarten Auswertungsmöglichkeiten über Cluster B2 über FuBa und IMPORT

  • HR_TIME_RESULTS_GET
  • IMPORT
  • TEVEN
*&---------------------------------------------------------------------*
*& Report  ZTEST40
*&
*&---------------------------------------------------------------------*
*&
*& Extract Time Info ZES
*&---------------------------------------------------------------------*
REPORT ztest40.
"Nachweis
" für fehlerhaften FuBa bei verschobenen Periodenbeginn (Mitte Monat)
"HR_TIME_RESULTS_GET
"IMPORT pcl2(b2)
"
"14. Tag des Monats/Periode 02 ist damit folgender:
"
" 15.1 ist erster Tag
"+14
"----
" 29.1 ist damit der 14 Tag des FuBa
" Mit dem 15. Tag hört der FuBa dann auf.
"
" Zeitart 9320 ist Saldo Überstunden
" Zeitart 0050 und 9BM0 ist die gerundeten Ist-Stunden
" Zeitart 0001, 0010, 0051 sind die ungerundeten Ist-Stunden
" Zeitart 0099 verbleibende Urlaubstage Saldo
" Zeitart Z001, 0002, 9BAZ Soll-Stunden
" Zeitart 0500 ist die Pause
" Zeitart 9320 ist Anzahl der +/- Stunden Soll zu Ist-Stunden gerundet Saldo
" Zeitart 0005 ist Anzahl der +/- Stunden Soll zu Ist-Stunden gerundet
" Zeitart 0020 ist die Abwesenheit Arzt etc.

DATA:
  gt_zes             LIKE pc2b6 OCCURS 0 WITH HEADER LINE,
  saldo              LIKE pc2b5 OCCURS 0 WITH HEADER LINE,
  zl                 LIKE pc2bf OCCURS 0 WITH HEADER LINE,
  bezug              LIKE pc2b2,
  no_record_found(1) TYPE c.

PARAMETERS: p_pernr LIKE p0001-pernr DEFAULT '00003179',
            p_datum LIKE sy-datum DEFAULT '20190213',
            p_ztart LIKE gt_zes-ztart DEFAULT '9320'.


** Das Lesen der Kommen-GehenZeit kannst du wie folgt realisieren:

*select * from teven where pernr eq p_pernr
*and erdat eq p_datum.
*if teven-satza eq 'P10'.
*write:/ ' Kommen-Zeit:', teven-ertim.
*endif.
*if teven-satza eq 'P20'.
*write:/ 'Gehen-Zeit:', teven-ertim.
*endif.
*endselect.

***die Tageswerte und ein paar Saldowerte
*** erhältst du aus dem Cluster B2 der PCL2 über folgenden FUBA
*** Cluster muss über den RPTIME00 gefüllt sein.


"Imho werden der 1 Tag der Periode mit dem 1 Tag des Monats kumuliert.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
  EXPORTING
    get_pernr             = p_pernr
    get_pabrj             = p_datum(4) "PN-PABRJ Jahr des Datums
    get_pabrp             = p_datum+4(2) "PN-PABRP Monat des Datums
    get_cltyp             = '1'
  IMPORTING
    get_no_record_found   = no_record_found
    get_bezug             = bezug
  TABLES
    get_zes               = gt_zes
    get_saldo             = saldo
    get_zl                = zl
  EXCEPTIONS
    wrong_cluster_version = 1
    no_read_authority     = 2
    cluster_archived      = 3
    technical_error       = 4
    OTHERS                = 0.
***
** Hier eventuelle Fehlerbehandlung einbauen
***
WRITE: / 'Test1 - Lesen über FuBa'.
IF p_ztart IS INITIAL.
  LOOP AT gt_zes.
    "Hier muss die gewünschte Zeitart stehen
    WRITE:/ gt_zes-reday, gt_zes-anzhl, gt_zes-ztart. "Hier sind die Stunden
  ENDLOOP.
ELSE.
  LOOP AT gt_zes WHERE "reday EQ   p_datum+6(2) AND
    ztart EQ p_ztart.
    WRITE:/ gt_zes-reday, gt_zes-anzhl, gt_zes-ztart. "Hier sind die Stunden
  ENDLOOP.
ENDIF.

DATA gs_bezug TYPE pc2b2.

DATA: BEGIN OF b2_key.               "key für perg-zugriff
        INCLUDE STRUCTURE pc2b0.
DATA: END OF b2_key.

CLEAR gt_zes.
CLEAR gs_bezug.

" Cluster laden
b2_key-pernr = p_pernr.
b2_key-pabrj = p_datum(4). "LS_T549Q-PABRJ.
b2_key-pabrp = p_datum+4(2). "LS_T549Q-PABRP.
b2_key-cltyp = '1'.

IMPORT
     zes TO gt_zes
     bezug TO gs_bezug
   FROM DATABASE pcl2(b2)
   ID b2_key.

" Unnötige Zeitarten entfernen
"DELETE gt_zes WHERE ztart NE p_ztart.

WRITE: / 'Test2 - Lesen über IMPORT'.
IF p_ztart IS INITIAL.
  LOOP AT gt_zes. "reday EQ p_datum+6(2) AND
    "Hier muss die gewünschte Zeitart stehen
    WRITE:/ gt_zes-reday, gt_zes-anzhl, gt_zes-ztart. "Hier sind die Stunden
  ENDLOOP.
ELSE.
  LOOP AT gt_zes "reday EQ p_datum+6(2) AND
    WHERE ztart EQ p_ztart.
    "Hier muss die gewünschte Zeitart stehen
    WRITE:/ gt_zes-reday, gt_zes-anzhl, gt_zes-ztart. "Hier sind die Stunden
  ENDLOOP.
ENDIF.

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..