Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

IN_UPDATE method at BADI HRPAD00INFTY

Former Member
0 Likes
1,682

hi all,

i need some help on this BADI.

i have a requirement somewhat like this:

on PA30 under infotype 9 and subtype 1 after delimiting the record i need to update the record in database which was chosen for delimitation . i will have to make enda of chosen record to newly selected date - 1.

below is the code which i have written in IN_UPDATE method at BADI HRPAD00INFTY.

here i am importing data from after_input and before_output methods of same badi.

method IF_EX_HRPAD00INFTY~IN_UPDATE.

data: V_ENDDA type endda,

V_begda TYPE begda,

v_INFTY TYPE INFTY,

v_subty TYPE SUBTY,

v_pernr type PERSNO.

data: new_innnn type PRELP,

old_innnn TYPE PRELP,

flag1 type i.

data: v_pa0009 type P0009,

v_pa0009_copy TYPE P0009,

v_date type endda.

CONSTANTS: change TYPE pspar-actio VALUE 'MOD'.

data: begin1 type begda,

end1 type sy-datum,

v_sydatum TYPE endda,

v_VIEW_INF type P0003-VIEKN,

V_SECON_INF type t777d-infty,

return type bapireturn1,

key type BAPIPAKEY.

if sy-ucomm = 'UPD'.

import t_begda to v_begda

t_endda to v_endda

t_subty to v_subty

t_pernr to v_pernr

from MEMORY ID 'DATA_DELI_OUTPUT'.

IMPORT t_new_innnn to new_innnn

t_old_innnn to old_innnn

from MEMORY ID 'DATA_DELI_INPUT'.

if v_begda is not initial and v_pernr is not initial.

if new_innnn-begda is not INITIAL .

if new_innnn-begda <> v_begda.

CALL FUNCTION 'HR_99S_DATE_MINUS_TIME_UNIT'

EXPORTING

I_IDATE = new_innnn-begda

I_TIME = 1

I_TIMEUNIT = 'D'

IMPORTING

O_IDATE = v_date

EXCEPTIONS

INVALID_PERIOD = 1

INVALID_ROUND_UP_RULE = 2

INTERNAL_ERROR = 3

OTHERS = 4

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

if v_date is not initial.

begin1 = v_begda.

end1 = v_endda.

CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'

EXPORTING

number = v_pernr.

CALL FUNCTION 'HR_INFOTYPE_GETDETAIL'

EXPORTING

INFTY = '0009'

NUMBER = v_pernr

SUBTYPE = v_subty

  • OBJECTID =

LOCKINDICATOR = ' '

VALIDITYBEGIN = begin1

VALIDITYEND = end1

  • RECORDNUMBER =

TCLAS = 'A'

IMPORTING

RETURN = return

RECORD = v_pa0009

VIEW_IDENTIFIER = V_VIEW_INF

SECONDARY_RECORD = v_SECON_INF

.

V_PA0009_COPY = V_PA0009 .

BREAK-POINT.

end1 = v_pa0009-endda.

V_sydatum = v_date.

v_pa0009_COPY-endda = v_sydatum.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

INFTY = '0009'

NUMBER = v_pa0009-pernr

SUBTYPE = v_pa0009-subty

OBJECTID = v_pa0009-objps

LOCKINDICATOR = ' '

VALIDITYEND = end1

VALIDITYBEGIN = v_pa0009-begda

RECORDNUMBER = v_pa0009-seqnr

RECORD = v_pa0009_COPY

OPERATION = change

TCLAS = 'A'

DIALOG_MODE = '0'

NOCOMMIT = ' '

VIEW_IDENTIFIER = V_VIEW_INF

SECONDARY_RECORD = v_SECON_INF

IMPORTING

RETURN = RETURN

KEY = KEY

.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

  • IMPORTING

  • RETURN =

.

"unlock record after modification

CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'

EXPORTING

number = v_pa0009-pernr.

endif.

clear v_pa0009.

endif.

  • endif.

endif.

endif.

endif.

but after execution on PA30 this is ending up with message: NA DATA STORED IN BANK DETAILS FOR SELECTED PERIOD.

and am not able to modify the chosen record.

kindly help me.

i am new for HRABAP.

thanks,

snehaal

1 REPLY 1
Read only

Former Member
0 Likes
823

resolved with ,

UPDATE pa0009

set endda = v_sydatum

WHERE pernr = v_pa0009-pernr and

subty = v_pa0009-subty and

begda = v_pa0009-begda and

endda = v_pa0009-endda and

betrg = v_pa0009-betrg.