larshp / abapOpenChecks

Open source checks for SAP Code Inspector / ABAP Test Cockpit
https://docs.abapopenchecks.org
MIT License
270 stars 79 forks source link

CHECK_63: Error message not displayed correctly #1112

Closed ConjuringCoffee closed 9 months ago

ConjuringCoffee commented 1 year ago

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!

larshp commented 1 year ago

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

ConjuringCoffee commented 1 year ago

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?

MiLiCLN commented 1 year ago

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

ConjuringCoffee commented 1 year ago

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

MiLiCLN commented 1 year ago

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

ConjuringCoffee commented 1 year ago

The detail view looks good:

image

Compared to before:

image

MiLiCLN commented 1 year ago

A PR is welcome. :-)

ConjuringCoffee commented 1 year ago

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' ).
MiLiCLN commented 1 year ago

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

ConjuringCoffee commented 1 year ago

I want to change the other text 😊

image

MiLiCLN commented 1 year ago

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

ConjuringCoffee commented 1 year ago

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

ConjuringCoffee commented 1 year ago

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

MiLiCLN commented 1 year ago

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.

ConjuringCoffee commented 1 year ago

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. 😅

ConjuringCoffee commented 10 months ago

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

I'll provide a pull request to fix this.

ConjuringCoffee commented 10 months ago

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 commented 10 months ago

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.