07-31-2014 11:12 PM
Hello Experts,
I am unable to update the EEAMT, that is, (pre-tax contribution) while using the HR_INFOTYPE_OPERATION .
The value is passed to the FM, however it fails in the standard method - HR_INFOTYPE_OPERATION .
While debugging the transaction, the value exists at:
ASSIGN record TO <record> CASTING TYPE (tabname).
But in the following loop the amnt exists in C(255), and the value is not getting condensed.
* loop at nametab. "XDPK000210
LOOP AT NAMETAB WHERE TABNAME = TABNAME.
Please help.....
Code snippet:
LOOP AT lt_pa0169 INTO ls_pa0169.
IF sy-subrc = 0.
ls_p0169-pernr = lv_pernr.
ls_p0169-infty = '0169'.
ls_p0169-pltyp = lv_subty = ls_pa0169-pltyp.
ls_p0169-bplan = ls_pa0169-bplan.
ls_p0169-begda = lv_begda = ls_pa0169-begda.
ls_p0169-eeamt = ls_pa0169-eeamt. "this is what has to be refelected...
ls_p0169-curre = 'USD'.
ls_p0169-endda = lv_currdate. "'20141231'.
ENDIF.
lv_endda = '99991231'.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = lv_pernr.
CALL FUNCTION 'HR_INFOTYPE_OPERATION' "Fails here
EXPORTING
infty = '0169'
number = lv_pernr
subtype = lv_subty
validityend = lv_endda
validitybegin = lv_begda
record = ls_p0169
operation = 'MOD'
tclas = 'A'
IMPORTING
return = w_return.
COMMIT WORK.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING
number = lv_pernr.
ENDLOOP.
Many thanks,
Neethu
08-01-2014 5:49 PM
Yes I was not passing the parameters correctly.
Did a Select stmt without using the MODIFY ** TRANSPORTING ** statement.
Currently used the HR_READ_INFOTYPE to read '0169'. Issue resolved.
Thanks Bharath..
Thank you all for your time..
08-01-2014 3:37 AM
Please help experts....
While debugging the standard - HR_INFOTYPE_OPERATION, the value is hidden like this:
08-01-2014 4:21 PM
If fields have a default value hardcoded in the MP corresponding, then that value will overwrite whatever value you pass in the funcition, you have to create first and modify after, it's dumb i know, but we did have to use this solution sometimes, as the defaults values filled in the module PNNNN in the PBO weren't overwritten with what we sent in the record parameter of the function. See if this is the case.
08-01-2014 8:18 AM
Sounds to me like you are not filling all the necessary fields for this infotype.
What I would do is run the batch in foreground so you can step through the actual screen and see it load. Don't do this for all 235 of your records simple 1 or 2 would do. You do this by changing the DIALOG_MODE import field of HR_INFOTYPE_OPERATION. To be honest I would anyway rather use HR_MAINTAIN_MASTERDATA, which this FM calls anyway.
Hope this helps.
08-01-2014 10:16 AM
Hi,
Can you check if the internal table LT_PA0169 has the value for the field EEAMT for the corresponding line?
Thanks,
Bharathi
08-01-2014 11:03 AM
08-01-2014 3:00 PM
Hi All,
Thank you for your prompt response.
All the parameters have been passed.. The record gets delimited, but the value is not populated.
Any suggestions would help..
Thank you..
08-01-2014 3:10 PM
Did you try my suggestion? If you have the batch running in foreground this should solve this, or debug.
08-01-2014 4:19 PM
Hi Glen,
Thanks for your response. I am not running a batch at all. I'm using Webdynpro to delimit a record and update a value. So basically, the work area has all the values before HR_INFOTYPE_OPERATION. Once in the FM, the value is right aligned (c 255) and I am not able to see the value in PA30. However, the record gets delimited...
Hope I am clear to you...
08-01-2014 5:49 PM
Yes I was not passing the parameters correctly.
Did a Select stmt without using the MODIFY ** TRANSPORTING ** statement.
Currently used the HR_READ_INFOTYPE to read '0169'. Issue resolved.
Thanks Bharath..
Thank you all for your time..