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: 

how obtain Error messages in iDocs ??

Former Member
0 Kudos

I need to develop a simple alv report of iDocs activity.

I am using tables edidc, edid4 and edids.

But I cannot obtain the error message completely.

In table EDIDS i have the fields:

STATXT : message

STAPA1,STAPA2,STAPA3,STAPA3: paramers for message

(to replace & by variables parameters for the message).

I cannot found a FM that prepare the full message (like left-side tree in WE05).

I need to obtain the detail message and not the simple message: "idoc created" or not.

somebody can help me ?

thanks in advance

regards

Leandro

1 ACCEPTED SOLUTION

former_member188685
Active Contributor
0 Kudos

Hi,

you can do it using MESSAGE_PREPARE or FORMAT_MESSAGE.

or you can use this logic...

[code]

CLEAR IT_MESG.REFRESH IT_MESG.

DATA: T100 TYPE T100,

BUFFER(273).

LOOP AT IT_EDIDS INTO X_EDIDS WHERE STATUS = C_51.

SELECT SINGLE * FROM T100 INTO T100

WHERE SPRSL = SY-LANGU

AND ARBGB = X_EDIDS-STAMID

AND MSGNR = X_EDIDS-STAMNO.

IF SY-SUBRC = 0.

BUFFER = T100-TEXT.

ELSE.

BUFFER = TEXT-M00.

ENDIF.

  • at first &1/&2/&3/&4 or. $1/$2/$3/$4 replace

IF T100-TEXT CA '$1'.

REPLACE '$1' WITH X_EDIDS-STAPA1 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$2'.

REPLACE '$2' WITH X_EDIDS-STAPA2 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$3'.

REPLACE '$3' WITH X_EDIDS-STAPA3 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$4'.

REPLACE '$4' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&1'.

REPLACE '&1' WITH X_EDIDS-STAPA1 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&2'.

REPLACE '&2' WITH X_EDIDS-STAPA2 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&3'.

REPLACE '&3' WITH X_EDIDS-STAPA3 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&4'.

REPLACE '&4' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$'.

REPLACE '$' WITH X_EDIDS-STAPA1 INTO BUFFER.

REPLACE '$' WITH X_EDIDS-STAPA2 INTO BUFFER.

REPLACE '$' WITH X_EDIDS-STAPA3 INTO BUFFER.

REPLACE '$' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&'.

REPLACE '&' WITH X_EDIDS-STAPA1 INTO BUFFER.

REPLACE '&' WITH X_EDIDS-STAPA2 INTO BUFFER.

REPLACE '&' WITH X_EDIDS-STAPA3 INTO BUFFER.

REPLACE '&' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

CONDENSE BUFFER.

MOVE BUFFER TO X_MESG.

APPEND X_MESG TO IT_MESG.

CLEAR X_MESG.

ENDLOOP.[/code]

Regards

vijay

8 REPLIES 8

Former Member
0 Kudos

Hi,

There should be a function with name MESSAGETEXT*, not sure of the exact name.

However, you can read from T100 table directly as well.

Regards,

Ravi

Note : Please mark the helpful answers

Manohar2u
Active Contributor
0 Kudos

Use MESSAGE_TEXT_BUILD fm to buid the text.

former_member927251
Active Contributor
0 Kudos

Hi,

Have a look at IDOC_PROCESS_ERROR and BAPI_IDOCAPPL_DISPLAY function modules.

Reward points if it helps in any way.

Message was edited by: Amit Mishra

Former Member
0 Kudos

Hi,

Use this function Module

<b>IDOC_GET_MESSAGE_ATTRIBUTE</b>

it will give the message discription for the idoc

Mark Helpfull Answers

Regards

Message was edited by: Manoj Gupta

former_member188685
Active Contributor
0 Kudos

Hi,

you can do it using MESSAGE_PREPARE or FORMAT_MESSAGE.

or you can use this logic...

[code]

CLEAR IT_MESG.REFRESH IT_MESG.

DATA: T100 TYPE T100,

BUFFER(273).

LOOP AT IT_EDIDS INTO X_EDIDS WHERE STATUS = C_51.

SELECT SINGLE * FROM T100 INTO T100

WHERE SPRSL = SY-LANGU

AND ARBGB = X_EDIDS-STAMID

AND MSGNR = X_EDIDS-STAMNO.

IF SY-SUBRC = 0.

BUFFER = T100-TEXT.

ELSE.

BUFFER = TEXT-M00.

ENDIF.

  • at first &1/&2/&3/&4 or. $1/$2/$3/$4 replace

IF T100-TEXT CA '$1'.

REPLACE '$1' WITH X_EDIDS-STAPA1 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$2'.

REPLACE '$2' WITH X_EDIDS-STAPA2 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$3'.

REPLACE '$3' WITH X_EDIDS-STAPA3 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$4'.

REPLACE '$4' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&1'.

REPLACE '&1' WITH X_EDIDS-STAPA1 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&2'.

REPLACE '&2' WITH X_EDIDS-STAPA2 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&3'.

REPLACE '&3' WITH X_EDIDS-STAPA3 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&4'.

REPLACE '&4' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '$'.

REPLACE '$' WITH X_EDIDS-STAPA1 INTO BUFFER.

REPLACE '$' WITH X_EDIDS-STAPA2 INTO BUFFER.

REPLACE '$' WITH X_EDIDS-STAPA3 INTO BUFFER.

REPLACE '$' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

IF T100-TEXT CA '&'.

REPLACE '&' WITH X_EDIDS-STAPA1 INTO BUFFER.

REPLACE '&' WITH X_EDIDS-STAPA2 INTO BUFFER.

REPLACE '&' WITH X_EDIDS-STAPA3 INTO BUFFER.

REPLACE '&' WITH X_EDIDS-STAPA4 INTO BUFFER.

ENDIF.

CONDENSE BUFFER.

MOVE BUFFER TO X_MESG.

APPEND X_MESG TO IT_MESG.

CLEAR X_MESG.

ENDLOOP.[/code]

Regards

vijay

0 Kudos

Hi,

check this too..

Regards

vijay

Former Member
0 Kudos

Hi Leandro,

You can use this FM: MESSAGE_TEXT_BUILD to build the message with the values from table EDIDS.

Regards,

Sumant.

Former Member
0 Kudos

Thanks to all, a lot of quick answers !

With your help, I solved it using :

call function 'MESSAGE_PREPARE'

exporting

language = sy-langu

msg_id = iEDIDS-STAMID

msg_no = iEDIDS-STAMNO

msg_var1 = iedids-STAPA1

msg_var2 = iedids-STAPA2

msg_var3 = iedids-STAPA3

msg_var4 = iedids-STAPA4

importing

msg_text = message.

I didn't realize about this relation between edids and the message error components.

Thanks to all.

Leandro