When using the FM HR_INFOTYPE_OPERATION to change a field that is not part of the infotype 0000 key always returns the following error: "
"infotype does not exist."
This happens only for the infotype 0000 and is generated by the FM HR_MAINTAIN_MASTERDATA called in HR_INFOTYPE_OPERATION.
You can get around this bug prevalorizzando field also infty with '0000 'before the call, eg.:
l_p0000-infty = '0000 '.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
Infty = '0000 '
NUMBER = PERNR-l_p0000
VALIDITYEND = l_p0000-endda
VALIDITYBEGIN = l_p0000-begda
RECORD = l_p0000
OPERATION = 'MOD'
IMPORTING
return = l_bapireturn
key = bapipakey_tab
Propose to the factory of SAP Software (does anyone know the address? :-)) the following change in the FM 'HR_INFOTYPE_OPERATION' (marked in red):
271 ASSIGN TO <record> record CASTING TYPE (tabname). "XDP UniCode
272
273 MOVE TO PROPOSED_VALUES infty-infty.
274 MOVE '00 'TO PROPOSED_VALUES-SEQNR.
275
276 * loop at nametab. "XDPK000210
277 LOOP AT NAMETAB WHERE tabname = tabname. "XDPK000210
---------
---------
314 IF NE CHANGE OPERATION.
315 CHECK <FIELD_VALUE> is not initial. "continuous loop
316 ENDIF.
317
318 * XDP end UniCode
319
320 MOVE TO <FIELD_VALUE> PROPOSED_VALUES-FVAL.
321 E CONCATENAT STRNAME '-' NAMETAB-FIELDNAME
322 INTO PROPOSED_VALUES-FNAME.
---
--- IF NAMETAB-FIELDNAME = 'INFTY' .
--- MOVE INFTY TO PROPOSED_VALUES-FVAL.
--- ENDIF.
---
323 APPEND PROPOSED_VALUES.
324 ENDLOOP.
best regards
Emanuele