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

What Function Module Writes IDOC status messages

Former Member
0 Likes
4,134

Hello gurus,

I'm getting an intermittent Status value of '02' on outbound DESADV Idocs.

There's no problem creating the IDOC segments.

The details on the status message are:

MsgID: EA

Msgno: 299

The system could not convert data from the data record 000010.

I'd like to locate the exact function module that composes the message.

I've tried setting a watchpoint for SY-MSGID = EA

and SY-MSGNO = 299

But, they aren't hit.

I also used transaction SE91 and the "where used" on the message number. That comes up blank.

Does anyone know which function module or class method is used to write this message?

Thanks

Ed Baker

1 ACCEPTED SOLUTION
Read only

uwe_schieferstein
Active Contributor
0 Likes
2,953

Hello Ed

According to the longtext of the message there is a problem with the port definition.

A possible soure for the message generation might be include LEDI7F11, e.g. lines 717ff (on ERP 6.0):


...
      if conv_return ge 6.
* das aktuelle IDoc muß aus I_EDIDC genommen werden
        save_msgid = 'EA'.
        save_msgty = 'E'.
        save_msgno = '299'.
        save_msgv1 = conv_edidd-segnum.
        APPEND EDIDC TO ERR_SEND.
        DELETE I_EDIDC.          " Löschen aus der internen Tabelle der
                                 " zu versendenden Kontrollsätze
* loop über Kontrollsätze muß verlassen werden
* Datei muß gelöscht werden-kann außerhalb des loops über i_edidc sein
        exit. "verlasse loop
      endif.
    ENDIF.
...

Regards

Uwe

Hello Ed

According to the longtext of the message there is a problem with the port definition.

A possible soure for the message generation might be include LEDI7F11, e.g. lines 717ff (on ERP 6.0):


...
      if conv_return ge 6.
* das aktuelle IDoc muß aus I_EDIDC genommen werden
        save_msgid = 'EA'.
        save_msgty = 'E'.
        save_msgno = '299'.
        save_msgv1 = conv_edidd-segnum.
        APPEND EDIDC TO ERR_SEND.
        DELETE I_EDIDC.          " Löschen aus der internen Tabelle der
                                 " zu versendenden Kontrollsätze
* loop über Kontrollsätze muß verlassen werden
* Datei muß gelöscht werden-kann außerhalb des loops über i_edidc sein
        exit. "verlasse loop
      endif.
    ENDIF.
...

Regards

Uwe

11 REPLIES 11
Read only

ThomasZloch
Active Contributor
0 Likes
2,953

Maybe IDOC_STATUS_WRITE_TO_DATABASE, can't verify that though. Set a breakpoint there and see if this FM is being executed.

Thomas

Read only

Former Member
0 Likes
2,953

HI,

It may be because the message might be getting populated dynamically hence it does not show in Where-used list.

If you are in the mood to debug a little then you could set up a Watchpoint for 'sy-subrc NE 0'...

For an error message for sure 'sy-subrc goes NE 0'

Edited by: Ankesh on Jan 9, 2009 9:03 PM

Edited by: Ankesh on Jan 9, 2009 9:04 PM

Read only

uwe_schieferstein
Active Contributor
0 Likes
2,954

Hello Ed

According to the longtext of the message there is a problem with the port definition.

A possible soure for the message generation might be include LEDI7F11, e.g. lines 717ff (on ERP 6.0):


...
      if conv_return ge 6.
* das aktuelle IDoc muß aus I_EDIDC genommen werden
        save_msgid = 'EA'.
        save_msgty = 'E'.
        save_msgno = '299'.
        save_msgv1 = conv_edidd-segnum.
        APPEND EDIDC TO ERR_SEND.
        DELETE I_EDIDC.          " Löschen aus der internen Tabelle der
                                 " zu versendenden Kontrollsätze
* loop über Kontrollsätze muß verlassen werden
* Datei muß gelöscht werden-kann außerhalb des loops über i_edidc sein
        exit. "verlasse loop
      endif.
    ENDIF.
...

Regards

Uwe

Read only

0 Likes
2,953

This is brilliant Uwe.

It points to the exact code that set the error message.

How did you do it?

I tried looking for the long text you referred to. But, I couldn't replicate what you found.

Read only

0 Likes
2,953

I think I found how you did it. Tell me if I'm correct.

In the "Logging" tab of the message, program LEDI7F10 (the include file of the EDI7 function group) is mentioned. You then went into that include and located the string "299"

I'd never observed this before. It's terrific to know it now.

Thank you so much

Read only

0 Likes
2,953

Hello Ed

I did the Where-Used-List for message class EA in SE80 (displayed its assigned package SED) because in SE91 you do not find any cross-reference. My expection was that at least the message class is somewhere referenced.

The LEDI1Uxx function modules appealed my attraction but I did not find the message there. The third try with the FORM include was successful. Within the include I simply did a text search for '299' in the main program (not really sophisticated but it works...).

By the way, if you need to send messages like they did in the include but want to be able to trace it I use the following trick that I have learnt from RE-FX:


...
      if conv_return ge 6.
* das aktuelle IDoc muß aus I_EDIDC genommen werden

  " Ensure traceability of the message:
  IF 1 = 2. MESSAGE E299(EA).  ENDIF.

        save_msgid = 'EA'.
        save_msgty = 'E'.
        save_msgno = '299'.
        save_msgv1 = conv_edidd-segnum.
        APPEND EDIDC TO ERR_SEND.
...

Regards

Uwe

Read only

0 Likes
2,953

Very nice, Uwe

I did something similar to you. I frequently use this technique when dealing with function module groups.

As soon as I saw the LEDI7F10 in the logging tab of the IDOC error message, I just opened SAPLEDI7 with se38 and did a global search for "299"

Thanks again for your help. It was terrific.

Read only

0 Likes
2,953

Hi Ed,

Wonder if you manage to find out what is the root cause of the intermittent issue. If yes, kindly share your finding.

Best Regards,

Philip

Read only

0 Likes
2,953

I did find out how to do this after discussing it with Uwe in previous messages in this thread.

I actually wrote a small application note on it for other members of my team.

I'd be glad to email it to you if you want.

Read only

0 Likes
2,953

Hi Ed,

Thanks for sharing your finding. Wonder if it is alright to share it here.

Best Regards,

Philip

Read only

0 Likes
2,953

I'd be glad to send it to you. But, I don't know how to attach a document to a forum message.

Is there a way to do that?