Sunteți pe pagina 1din 4

16/02/2017 Debugging for functional consultants Part 1: How to analyze an error message in debug | Caetano Almeida | Pulse | LinkedIn

Debugging for functional consultants


Part 1: How to analyze an error message
in debug
Publicado em 13 de fevereiro de 2017

Caetano Almeida Seguir


67 0 11
CoE Support Architect at SAP

The competition in the SAP market is everyday stronger and if we want to succeed as a
functional consultant we cannot rely only in our business knowledge only. It is very
important to have some basic ABAP technical knowledge, so that we can dig into
complex issues.

How to analyze an error message in debug

With this in mind, I'll share some quick tips that I have learned along the years that will
help functional consultants to start to use debugging as an effect troubleshooting tool.
Bear in mind that debugging requires time and patience, and you will only learn to do it
properly if you take your time to practice.

Very often an error or warning message is not clear or does not provide the necessary
details to find the exact cause of the error.

A classic example is the error message 'The date 00.00.0000 is not convertible (please
correct)' which can be triggered in several transactions. When this message is triggered
by MRP or in transaction MD04, it does not specify exactly what is the planning
element for which the error happened.

Another typical issue is a custom error message being triggered by an exit or BAdI, but
you don't know exactly which exit or BAdI is triggering the message.

https://www.linkedin.com/pulse/debugging­functional­consultants­part­1­how­analyze­error­almeida?trk=v­feed&lipi=urn%3Ali%3Apage%3Ad_flagship3_f… 1/5
16/02/2017 Debugging for functional consultants Part 1: How to analyze an error message in debug | Caetano Almeida | Pulse | LinkedIn

For such cases, there is a very simple trick to find exactly where the error message is
triggered.

Lets see a very basic example. I'll get into transaction CO02 and enter a production
order that does not exist.

The following error message will be triggered:

The last three digits are always the message number and the rest is the message ID.

When a message is triggered by the system, the message ID is stored on SY­MSGID
and the message number is stored on SY­MSGNO

Now I want to know exactly where this error message is triggered.

Open transaction CO02, enter a production order that does not exist on the database.
Type '/H' on the command to open debug and press enter.

Click the button 'Watchpoint' to create a new watchpoint.

You will get the following screen, where you will create a watchpoint for SY­
MSGNO, where the value of the variable is '017'. In some cases, you don`t know
the message number, so you can leave the condition empty. In such case, system
will stop on every message, instead of going directly to the desired message.

https://www.linkedin.com/pulse/debugging­functional­consultants­part­1­how­analyze­error­almeida?trk=v­feed&lipi=urn%3Ali%3Apage%3Ad_flagship3_f… 2/5
16/02/2017 Debugging for functional consultants Part 1: How to analyze an error message in debug | Caetano Almeida | Pulse | LinkedIn

Confirm and press F8 to continue with the program execution.

System will stop exactly on the point where the error message is triggered.

https://www.linkedin.com/pulse/debugging­functional­consultants­part­1­how­analyze­error­almeida?trk=v­feed&lipi=urn%3Ali%3Apage%3Ad_flagship3_f… 3/5
16/02/2017 Debugging for functional consultants Part 1: How to analyze an error message in debug | Caetano Almeida | Pulse | LinkedIn

Here we can also check the values of the internal tables and see why the error message
is triggered. We can also see that the message is hardcoded as an error, because there is
an 'e' before the message number.

Similarly, It would be possible to set a watchpoint for SY­MSGID, where the value is
equal to 'CO'.

On this example, I can see that the error is happening after function module
CO_DB_HEADER_READ is called. This is the function module where the order
header is read from the database, so I can get deeper into the code to find exactly where
the order is read. Another idea is to look for correction notes that change this function
module or the caller program.

With a little knowledge of code we can find the solution of problems that we would
spent hours researching and checking on the documentation.

* This content was originally published in SCN:
https://archive.sap.com/documents/docs/DOC­53035

Denunciar

Caetano Almeida
CoE Support Architect at SAP Seguir
2 artigos

0 comentários

Deixe seus comentários aqui…

Principais artigos selecionados pelos editores

Beyond the Cloud for Self-Driving Cars Viacom Narrows Focus To Its Top Brands The Bond Market Is Watching and
Daniel Zahler no LinkedIn As Media Middle Gets "Skinnier" Waiting
Howard Homonoff no LinkedIn Krishna Memani no LinkedIn

Quer saber mais sobre as últimas notícias no LinkedIn?

https://www.linkedin.com/pulse/debugging­functional­consultants­part­1­how­analyze­error­almeida?trk=v­feed&lipi=urn%3Ali%3Apage%3Ad_flagship3_f… 4/5

S-ar putea să vă placă și