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

Error while processing inbound Idoc (HRMDA_07) with FM IDOC_INPUT_HRMD

maarten_duits2
Participant
0 Likes
933

Hello,

I have a inbound Idoc of type HRMD_A (basistype HRMD_A07) which is processed by Function module (FM) IDOC_INPUT_HRMD with proofing. After processing an Idoc the status Monitor for ALE messages (BD87) tell me that my Idoc has status 53, which should be the result i would like to have.

Unfortunately when i go to transaction PA20 and check the infotypes, i see that infotype 0302 isn't created. When analyzing this problem i see that during the processing the Infotypes are posted with HR_MAINTAIN_MASTERDATA (dialog mode is 0 and luw_mode = 0 from include LRHA2F02 FORM save_pa_pb_infty) When this is done for infotype 0302 sy-subrc <> 0 the message is A complex application error has occured. This error message is placed in Export parameters

Return and Return1

of HR_MAINTAIN_MASTERDATA. When the program returns to the calling Form it checks if there is message of type E in HR_RETURN (see below) :

 CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
          EXPORTING
            pernr                          = ins_objects-objid       "#EC DOM_EQUAL
            actio                           = 'INS'
            tclas                           = tclas
            dialog_mode               = dial_mode
            luw_mode                  = '0'
            no_existence_check = $cross
            no_enqueue              = $cross
          IMPORTING
            return1                       = return
            hr_return                    = hr_return
          TABLES
            proposed_values    = proposed_values.
        REFRESH proposed_values.
     IF hr_return-msgty = 'E'.                           "note 984409
      CLEAR protocol_error.
      protocol_error-msgty  = hr_return-msgty.
      protocol_error-msgid  = hr_return-msgid.
      protocol_error-msgno  = hr_return-msgno.
      protocol_error-msgv1  = hr_return-msgv1.
      protocol_error-msgv2  = hr_return-msgv2.
      protocol_error-msgv3  = hr_return-msgv3.
      protocol_error-msgv4  = hr_return-msgv4.
      READ TABLE t_hrobjinfty WITH KEY objid = hr_return-pernr
                                       infty = hr_return-infty
                                       subty = hr_return-subty.
      protocol_error-segnum = t_hrobjinfty-segnum.
      protocol_error-routid = 'create_prf_pa_pb_object'

As mentioned above, the error message is only placed in the parameters Return and Return1 and not in HR_RETURN.please read the first reply

Hello,

I have a inbound Idoc of type HRMD_A (basistype HRMD_A07) which is processed by Function module (FM) IDOC_INPUT_HRMD with proofing. After processing an Idoc the status Monitor for ALE messages (BD87) tell me that my Idoc has status 53, which should be the result i would like to have.

Unfortunately when i go to transaction PA20 and check the infotypes, i see that infotype 0302 isn't created. When analyzing this problem i see that during the processing the Infotypes are posted with HR_MAINTAIN_MASTERDATA (dialog mode is 0 and luw_mode = 0 from include LRHA2F02 FORM save_pa_pb_infty) When this is done for infotype 0302 sy-subrc <> 0 the message is A complex application error has occured. This error message is placed in Export parameters

Return and Return1

of HR_MAINTAIN_MASTERDATA. When the program returns to the calling Form it checks if there is message of type E in HR_RETURN (see below) :

 CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
          EXPORTING
            pernr                          = ins_objects-objid       "#EC DOM_EQUAL
            actio                           = 'INS'
            tclas                           = tclas
            dialog_mode               = dial_mode
            luw_mode                  = '0'
            no_existence_check = $cross
            no_enqueue              = $cross
          IMPORTING
            return1                       = return
            hr_return                    = hr_return
          TABLES
            proposed_values    = proposed_values.
        REFRESH proposed_values.
     IF hr_return-msgty = 'E'.                           "note 984409
      CLEAR protocol_error.
      protocol_error-msgty  = hr_return-msgty.
      protocol_error-msgid  = hr_return-msgid.
      protocol_error-msgno  = hr_return-msgno.
      protocol_error-msgv1  = hr_return-msgv1.
      protocol_error-msgv2  = hr_return-msgv2.
      protocol_error-msgv3  = hr_return-msgv3.
      protocol_error-msgv4  = hr_return-msgv4.
      READ TABLE t_hrobjinfty WITH KEY objid = hr_return-pernr
                                       infty = hr_return-infty
                                       subty = hr_return-subty.
      protocol_error-segnum = t_hrobjinfty-segnum.
      protocol_error-routid = 'create_prf_pa_pb_object'

As mentioned above, the error message is only placed in the parameters Return and Return1 and not in HR_RETURN.please read the first reply

3 REPLIES 3
Read only

maarten_duits2
Participant
0 Likes
692

Sorry but i have trouble to post this message correcty with the markup. So i have to do it in 2 post. I think it is an error, because it is not displayed in BD87. I hope someone can tell me if it should be possible to save Infotype 0302 records with FM IDOC_INPUT_HRMD.

Thanks in advance.

Kind regards,

Maarten.

Read only

0 Likes
692

Hi,

I think you have preety much done from your end itself .

Could you please tell me what you got in this parameters:

protocol_error-msgty = hr_return-msgty.

protocol_error-msgid = hr_return-msgid.

protocol_error-msgno = hr_return-msgno.

protocol_error-msgv1 = hr_return-msgv1.

protocol_error-msgv2 = hr_return-msgv2.

protocol_error-msgv3 = hr_return-msgv3.

protocol_error-msgv4 = hr_return-msgv4.

It may help us to track down the issue in more better way .

Thanks!

Read only

0 Likes
692

Hello,

I would like to share with you my solution for the above mentioned problem. In our system IT0302 is created when it0000 is created / changed. The solution that works for me is: don't process infotype 0302.

Kind regards,

Maarten.