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

IDOC status

Former Member
0 Likes
1,082

Hi,

I am using IDOC status using IDOC_STATUS_WRITE_TO_DATABASE.

But as i am passing only the status number as a parameter, is it possible to change the default status code text.

If so, let me know please.

5 REPLIES 5
Read only

Former Member
0 Likes
822

hi ananda,

pass the status table (idoc_status) and give the msgno,msgv1 and msgv2,..etc.

now you can able to change the text..

thanks

vijay

Read only

Former Member
0 Likes
822

Check the below code. It will help u lot.

data: i_idoc_numbers type line of idoc_detail_itab

occurs 0 with header line.

data: i_idoc_status like bdidocstat occurs 0 with

header line,

idoc_control like edidc.

-


perform compile_idoc_status tables i_idoc_status

pxt_bapi_messages

using i_idoc_numbers.

call function 'IDOC_STATUS_WRITE_TO_DATABASE'

exporting

idoc_number = i_idoc_numbers-addiidoc

idoc_opened_flag = 'X'

  • NO_DEQUEUE_FLAG = 'X'

importing

idoc_control = idoc_control

tables

idoc_status = i_idoc_status

exceptions

idoc_foreign_lock = 1

idoc_not_found = 2

idoc_status_records_empty = 3

idoc_status_invalid = 4

db_error = 5

others = 6.

if sy-subrc <> 0.

perform update_bapi_message tables pxt_bapi_messages

using sy-msgty

sy-msgid

sy-msgno

sy-msgv1

sy-msgv2

sy-msgv3 sy-msgv4

i_idoc_numbers-row.

pe_idoc_update_error = 1.

exit.

endif.

-


<b>form get_idoc_numbers tables pit_idoc_status structure bapi2106is

pet_idoc_numbers type idoc_detail_itab.

data: idoc_status_line like sy-tabix,

idoc_numbers_idx like sy-tabix.

refresh: pet_idoc_numbers.

loop at pit_idoc_status.

idoc_status_line = sy-tabix.

read table pet_idoc_numbers

with key addiidoc = pit_idoc_status-addiidoc.

idoc_numbers_idx = sy-tabix.

if sy-subrc <> 0. " not found

pet_idoc_numbers-row = idoc_status_line.

move-corresponding pit_idoc_status to pet_idoc_numbers.

if pit_idoc_status-status = 0.

pet_idoc_numbers-status = 0.

else.

pet_idoc_numbers-status = 1.

endif.

append pet_idoc_numbers.

else.

if pet_idoc_numbers-status = 0

and pit_idoc_status-status <> 0.

pet_idoc_numbers-status = 1.

modify pet_idoc_numbers index idoc_numbers_idx

transporting status.

endif.

endif.

endloop.

endform. " GET_IDOC_NUMBERS</b>

Read only

Former Member
0 Likes
822

How to use the status record message id ?

i don't know the values of the parameters.

Let me know

Read only

0 Likes
822

Check the below code:

form compile_idoc_status

tables pet_idoc_status structure bdidocstat pxt_bapi_messages structure bapiret2

using pi_idoc_number type idoc_detail.

data: msg_v1 like sy-msgv1,

msg_v2 like sy-msgv2,

msg_v3 like sy-msgv3,

msg_v4 like sy-msgv4.

refresh pet_idoc_status.

pet_idoc_status-docnum = pi_idoc_number-addiidoc.

if pi_idoc_number-status = 0.

pet_idoc_status-status = '16'.

else.

pet_idoc_status-status = '17'.

endif.

pet_idoc_status-msgty = pi_idoc_number-messagetype.

pet_idoc_status-msgid = pi_idoc_number-messageid.

pet_idoc_status-msgno = pi_idoc_number-messagenumber.

pet_idoc_status-msgv1 = pi_idoc_number-message_v1.

pet_idoc_status-msgv2 = pi_idoc_number-message_v2.

pet_idoc_status-msgv3 = pi_idoc_number-message_v3.

pet_idoc_status-msgv4 = pi_idoc_number-message_v4.

append pet_idoc_status.

  • A success message is returned to the calling program.

msg_v1 = pi_idoc_number-addiidoc.

msg_v2 = pi_idoc_number-status.

msg_v3 = pi_idoc_number-message_v3.

msg_v4 = pi_idoc_number-message_v4.

perform update_bapi_message tables pxt_bapi_messages

using addi_message_type_success

addi_message_class

addi_status_idoc_ok

msg_v1

msg_v2

msg_v3

msg_v4

pi_idoc_number-row.

endform. " COMPILE_IDOC_STATUS

Read only

Former Member
0 Likes
822

Hi,

This should work...

MOVE wa_edidc-docnum TO wa_idoc_status-docnum.

MOVE '69' TO wa_idoc_status-status.

MOVE 'E' TO wa_idoc_status-msgty.

MOVE 'Z2' TO wa_idoc_status-msgid.

MOVE '005' TO wa_idoc_status-msgno.

MOVE 'IDOC HAS BEEN MODIFIED' TO wa_idoc_status-msgv1.

MOVE sy-uname TO wa_idoc_status-uname.

MOVE sy-repid TO wa_idoc_status-repid.

APPEND wa_idoc_status TO it_idoc_status.

CALL FUNCTION 'IDOC_STATUS_WRITE_TO_DATABASE'

EXPORTING

idoc_number = wa_edidc-docnum

no_dequeue_flag = ' '

TABLES

idoc_status = it_idoc_status

EXCEPTIONS

idoc_foreign_lock = 1

idoc_not_found = 2

idoc_status_records_empty = 3

idoc_status_invalid = 4

db_error = 5.

Here the message 'IDOC HAS BEEN MODIFIED' will appear as the status text.

Vamsi