2010 Oct 09 5:50 PM
Hi all, im having a problem with a program that filters and update data from an infotype (0830). I can manage to make it do the things it have to do, but when i go to PA30 transaction to verify results on 0830 infty, i see blank spaces on the positions i deleted data and i want to fill that spaces with the other tax relief data existing from below registries that are not blank.
In resume i want to know how to fill blank spaces that shows in PA30 on infotype 0830 with other values that are present in that same infotype.
Is there any way to sort it or something like that to get rid of that blanks?
Thanks in advance.
Edited by: mauiglesias on Oct 9, 2010 6:51 PM
Edited by: mauiglesias on Oct 9, 2010 6:55 PM
2010 Oct 11 4:32 AM
Hi,
Try to write the coding in user exit ZXPADU02 for the following conditions.
when tcode = PA30 and in change mode , update the blank fields in P0830 from the structure P0830.
Or write a program to read infotype PA0830 and modify the existing record with the values for missing fields using
FM : HR_INFOTYPE_OPERATION.
Regards,
Srini.
2010 Oct 11 8:13 AM
"Or write a program to read infotype PA0830 and modify the existing record with the values for missing fields using
FM : HR_INFOTYPE_OPERATION."
Thats the part i dont know how to do. I am currently using Hr_read_infotype (or similar) to read and then the program fiilters some info, and then it stores the filtered data with HR_INFOTYPE operation. The thing i dont know how to do in a performant way is filling the blank spaces before recording data on infotype.
Any ideas?
Thanks for answering.
Edited by: mauiglesias on Oct 11, 2010 9:14 AM
2010 Oct 11 8:36 AM
Hi,
Call the FM HR_READ_INFOTYPE
DATA : l_infty_tab type p0830 occurs 0 with header line.
l_pernr type pa0830-pernr ,
l_infty type prelp-infty value '0830'
call function 'HR_READ_INFOTYPE'
exporting
pernr = l_pernr <-- pass the pernr
infty = l_infty " <-- 0830
tables
infty_tab = l_infty_tab
EXCEPTIONS
INFTY_NOT_FOUND = 1
OTHERS = 2
.
Program filters the data
fill in all the blank fields into the structure l_infty_tab and call the FM*
call function 'BAPI_EMPLOYEE_ENQUEUE'
exporting
number = l_pernr
importing
return = return.
call function 'HR_INFOTYPE_OPERATION'
exporting
infty = '0830'
number = l_infty_tab-pernr
subtype = l_infty_tab-subty
objectid = l_infty_tab-objps
lockindicator = l_infty_tab-sprps
validityend = l_infty_tab-endda
validitybegin = l_infty_tab-begda
recordnumber = l_infty_tab-seqnr
record = l_infty_tab
operation = c_mod " MOD
tclas = 'A'
dialog_mode = '0'
nocommit = nocommit
importing
return = return
key = key.
call function 'BAPI_EMPLOYEE_DEQUEUE'
exporting
number = l_pernr .
Regards,
Srini.
2010 Oct 12 5:39 AM
Hi, sirini. Thanks for answering, but im currently using that method of reading/storing in my program. The problem is, after reading infotype i apply some filters (for example endda > 2008, else clear begda and endda and more fields from first registry) and then when i call HR_INFOTYPE_OPERATION its working ok, but it is also recording white spaces from the filtering that i made.
I dont know how to fill the free spaces with the present data in other present spaces
For example: PA30
-
<Free space that contained data before filtering. Its ok, thats what the program have todo
-
01.01.2007 | 02.12.2009.| Yes | 22222 < Registry with info
I like for example, to move the registry with info into the position where shows no info.
But the case can be dynamic because the second space could be empty and i need in that case to fill it with registry 3 or 4, or the next with data.
Thanks again.