cancel
Showing results for 
Search instead for 
Did you mean: 

HRForms Timesheet - P_ABAP and IT0008...

stefan789
Explorer
0 Kudos

Hi SAP-Gurus,

we implemented the sap time sheet based on hrforms with sap smartforms. While implementing the needed authorizations, we encountered an authoriazionproblem within the hrforms-generated report.

The report should be used by the time admins, which shall not get access to IT0008, unfortunately the authority for IT0008 is missing according to TA SU53...

As far as we know, this would be a perfect situation for the authorization object P_ABAP (HR: Reporting) with the according degree of simplification for this report. After we had set up the authorization, we are still getting an error with the notification that the authorization for IT 0008 is missing.

We have also tested the set up with the report RPTEDT00 (the "old" world) and there it worked. Even if the degree of simplification is set to “2” the authorization check fails.

The trace showed that the custom report is checking P_ABAP but afterwards the authorization check continues and fails at IT 0008 later on.

As I said, the report was built with HRFORMS and uses the logical database PNPCE. After some searching in SCN & Co. i think that P_ABAP is only used for logical databases PNP and PAP... 😞

Does anybody encountered a similar problem or has any idea how to solve this problem except granting authorization for IT0008?

Thanks in advance!

Accepted Solutions (1)

Accepted Solutions (1)

Eva_1
Product and Topic Expert
Product and Topic Expert
0 Kudos

HI there!

Generally the time statement requires the authorization of IT0008.
Within HRFORMS there is no separation anymore between time statement and
remuneration statement (formerly different programs). Therefore a check
takes place on the IT0008 (see note 185539).

However, customer has the following options to avoid the check:

1) Implementation of the BADI HRFORM_HRF02 (transaction SE18/SE19)

2) The method CHECK_PERSON can be implemented as follows:

method IF_EX_HRFORM_HRF02~CHECK_PERSON.
  data lx_reject type xfeld.
  call method cl_hrpay99_ir_4_pnpcereporting=>get_infotype_person
    exporting
      im_infty  = '0000'
      im_person = im_person
      im_begda  = im_begda
      im_endda  = im_endda
      im_molga  = im_molga
      im_simce  = im_simce
    importing
      ex_reject = lx_reject
      ex_error  = ex_message.
  if lx_reject eq 'X'.
    raise skip.
  endif.
  endif.
  call method cl_hrpay99_ir_4_pnpcereporting=>get_infotype_person
    exporting
      im_infty  = '0001'
      im_person = im_person
      im_begda  = im_begda
      im_endda  = im_endda
      im_molga  = im_molga
      im_simce  = im_simce
    importing
      ex_reject = lx_reject
      ex_error  = ex_message.
  if lx_reject eq 'X'.
    raise skip.
  endif.
endmethod.

3) Save and activate the method
4) Activate the BAdI

Hope it helps!

Eva

stefan789
Explorer
0 Kudos

Hi Eva,

thank you very much, thats exactly what i was looking for! It works perfectly.

Greetings from germany,

Stefan

Answers (0)