abapOpenChecks icon indicating copy to clipboard operation
abapOpenChecks copied to clipboard

CHECK_63: Error message not displayed correctly

Open ConjuringCoffee opened this issue 1 year ago • 18 comments

I activated CHECK_63 (ABAP Doc - Check parameter consistency) but the errors are not displayed properly. The message of each finding is "Unknown error code" and the navigation always leads to the start of the class, not the abap Doc parameter.

Here's an example (the faulty parameter is param_3):

CLASS ycl_aoc_test DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    "! @parameter param_1 |
    "! @parameter param_3 |
    METHODS example
      IMPORTING
        param_1 TYPE i
        param_2 TYPE i.

  PROTECTED SECTION.

  PRIVATE SECTION.
ENDCLASS.


CLASS ycl_aoc_test IMPLEMENTATION.
  METHOD example.
    RETURN.
  ENDMETHOD.
ENDCLASS.

image

Any idea why this happens? Thanks!

ConjuringCoffee avatar Jul 14 '23 10:07 ConjuringCoffee

guess something changed in the abapdoc api, try setting a breakpoint

larshp avatar Jul 16 '23 07:07 larshp

The check successfully reaches method INFORM with the following text in p_param_1:

inconsistency ABAP Doc comment - parameter interface of element EXAMPLE

So it doesn't seem like this is a problem with the abap Doc API to me. Any other ideas?

ConjuringCoffee avatar Jul 17 '23 12:07 ConjuringCoffee

I suspect the problem comes from the defined error code-number "003" in the constructor and the passed code-number in "inform" (001). Can you try to make "003" into "001" in the constructor at "insert_scimessage"? image

MiLiCLN avatar Jul 17 '23 14:07 MiLiCLN

This is the result now:

image

I think we're on the right path, but we're not quite there yet. Any chance we can exchange the very generic message for a more specific message? The more specific message can only be seen in SAP GUI:

image

ConjuringCoffee avatar Jul 18 '23 09:07 ConjuringCoffee

Ok, step by step a little further. :-) Unfortunately, I can't test it. But what can be seen in the Detail view?

MiLiCLN avatar Jul 19 '23 10:07 MiLiCLN

The detail view looks good:

image

Compared to before:

image

ConjuringCoffee avatar Jul 19 '23 11:07 ConjuringCoffee

A PR is welcome. :-)

MiLiCLN avatar Jul 19 '23 13:07 MiLiCLN

I didn't submit a pull request because I'm not happy yet with how the text turns out. Compare it to check 001 for example:

image

How can this text be changed? I tried to change iv_text like this, but it had no effect:

    insert_scimessage(
        iv_code = '001'
        iv_text = 'ABAP Doc parameter name is inconsistent' ).

ConjuringCoffee avatar Jul 25 '23 09:07 ConjuringCoffee

What is your goal? To change the highlighted text in the screenshot? image This text is from the class description; the check-title.

MiLiCLN avatar Jul 25 '23 15:07 MiLiCLN

I want to change the other text 😊

image

ConjuringCoffee avatar Jul 26 '23 06:07 ConjuringCoffee

I had now also the possibility to test this with eclipse. For me the result looks like this (with the latest PR): image

MiLiCLN avatar Jul 27 '23 06:07 MiLiCLN

That's weird! I'll check the installation and report back. (Could take a while, I'm having some authorization problems right now...)

ConjuringCoffee avatar Jul 28 '23 09:07 ConjuringCoffee

My authorization problems are fixed and I'm running the latest version now. The message still isn't displayed correctly.

Can anyone please re-open this issue?

I also tried it using SAP GUI, same result: image

ConjuringCoffee avatar Aug 04 '23 08:08 ConjuringCoffee

Is it ok to change the text of the check message from "&1" to "ABAP Doc: &1"? This would then look like this: abap doc change

For the findings list, the text of the check message is used; however, the variables are replaced by "..." and only added later, e.g. in the details.

MiLiCLN avatar Aug 09 '23 11:08 MiLiCLN

Are we still talking about the same problem? I'd be actually okay with the way it already works in your previous screenshots, it just doesn't seem to work on my system. 😅

  • On your system: inconsistency ABAP Doc comment - parameter interface of [...] (cut off in the screenshot) image
  • On my system: Check: ZCL_AOC_CHECK_63, Rule: 001 image

ConjuringCoffee avatar Aug 10 '23 08:08 ConjuringCoffee

Right, so I have a bit more experience with ATC checks now and I think I know what's going on now.

  • The ATC check message is only defined with a message variable: &1
  • The actual text (inconsistency ABAP Doc comment - parameter interface [...]) is put into the message variable when calling method INFORM
  • For some reason, the behavior of MiLiCLN's system is different to mine: On his system, ADT already shows the complete message. On my system, it shows Check: ZCL_AOC_CHECK_63, Rule: 001
  • I conclude that my system replaces the complete message text with Check: ZCL_AOC_CHECK_63, Rule: 001 if it only consists of a single message variable. If I include any other text in the message, then it works as expected.

I'll provide a pull request to fix this.

ConjuringCoffee avatar Jan 11 '24 11:01 ConjuringCoffee

image

I've changed the message from &1 to ABAP Doc: &1 and it works in the SAP GUI:

image

However, it doesn't work in ADT:

image

If I change the error code from '001' to '002' (both in the constructor and in the run method), then it works in ADT too:

image

Restarting my own PC didn't help, and it also behaves the same for colleagues. Maybe there is some kind of additional caching for the ATC message check? I'll keep an eye on it.

ConjuringCoffee avatar Jan 11 '24 12:01 ConjuringCoffee

Maybe there is some kind of additional caching for the ATC message check? I'll keep an eye on it.

I suspect that this was the case. The error message is correctly displayed for '001' now.

ConjuringCoffee avatar Jan 15 '24 08:01 ConjuringCoffee