Application Development 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: 

HR_INFOTYPE_OPERATION does not update eeamt of P0169

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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..

9 REPLIES 9

Former Member
0 Kudos

Please help experts....

While debugging the standard - HR_INFOTYPE_OPERATION, the value is hidden like this:

0 Kudos

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.

former_member201275
Active Contributor
0 Kudos

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.


Bharathi_M
Explorer
0 Kudos

Hi,

Can you check if the internal table LT_PA0169 has the value for the field EEAMT for the corresponding line?

Thanks,

Bharathi

0 Kudos

Hi Neethu,

Try to pass all key fields.

Regards

Ujjawal

Former Member
0 Kudos

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..

0 Kudos

Did you try my suggestion? If you have the batch running in foreground this should solve this, or debug.

0 Kudos

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...

Former Member
0 Kudos

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..