05-26-2006 4:50 PM
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
05-26-2006 5:00 PM
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
05-26-2006 4:54 PM
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
05-26-2006 4:56 PM
05-26-2006 4:58 PM
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
05-26-2006 5:00 PM
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
05-26-2006 5:00 PM
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
05-26-2006 5:05 PM
05-26-2006 5:02 PM
Hi Leandro,
You can use this FM: MESSAGE_TEXT_BUILD to build the message with the values from table EDIDS.
Regards,
Sumant.
05-26-2006 5:18 PM
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