Code Monkey home page Code Monkey logo

abaplint-sci-client's Introduction

abaplint SCI client

This project enables abaplint to be run in the context of SAP Code Inspector (SCI), allowing immediate feedback to the ABAP developers in their standard editor, SE24 / SE80 / SE38 / ABAP in Eclipse. And also works seamlessly with other places where the code inspector is triggered like ABAP Test Cockpit (ATC).

Overview

The integration requires two parts: The abaplint Server and the abaplint Client (this project). When performing code checks through one of the supported editors or transactions, the abaplint Client will collect the necessary objects and dependencies and send them to the abaplint Server to be processed. The server responds with all of the abaplint findings, which are displayed like any other check results in the SAP tools.

Components

Important: The code under test leaves your ABAP system! Be sure to use a secure and controllable abaplint Server. For a test, you might use the common server at https://sci.abaplint.app (but please don't post any proprietary code).

Note: Dependencies maintained in abaplint.json (in your repository) are ignored when running via SCI. Instead the dependencies are taken from the running ABAP system.

Examples

  1. ATC

atc-overview

atc-details

Clicking the 'Check' or 'Check message' links will display the documentation of the rule in a browser. Click on the object name in the overview or 'Display object' in the details to jump to the location in the code related to the finding.

  1. SCI

sci

Clicking the 'Info' icon next to a message will display the documentation of the rule in a browser. Double-click on a message to jump to the location in the code related to the finding.

  1. abapGit

abapgit

Click on the object name to jump to the location in the code related to the finding.

Documentation

Blog Posts

abaplint-sci-client's People

Contributors

blackmancc avatar ed-holland avatar fabianlupa avatar fdupret avatar frehu avatar g-back avatar gregorwolf avatar larshp avatar lucasborin avatar matt1as avatar mbtools avatar mraht avatar rayatus avatar sbcgua avatar sz3lbi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abaplint-sci-client's Issues

configuration, dumps on private repos

on click of "update from abapgit"
because of this: zcl_abapgit_password_dialog-> popup

      PERFORM password_popup
        IN PROGRAM (sy-cprog) <<<<<<<<<<<<<
        USING iv_repo_url
        CHANGING cv_user cv_pass.

Link in AbapLint error does not work

The code-inspector returns this error:
image

The shortcut is pointing to sapevent:cinav:CLASZCL_ABAPGIT_DEPS|PROGZCL_ABAPGIT_DEPS==============CO|000001

which does not seem to do anything.

Parser Error: Constants

Error:
`FUGR /JCS/EXT_RUN_ERP > PROG /JCS/LEXT_RUN_ERPTOP [ @32 ]
Statement does not exist in ABAPv700(or a parser error), "CONSTANTS", #JCS#EXT_RUN_ERP.FUGR.#JCS#LEXT_RUN_ERPTOP.ABAP, p

FUGR /JCS/EXT_RUN_ERP > PROG /JCS/LEXT_RUN_ERPTOP [ @32 ]
Statement does not exist in ABAPv700(or a parser error), "CONSTANTS", #JCS#EXT_RUN_ERP.FUGR.#JCS#LEXT_RUN_ERPTOP.ABAP, p

FUGR /JCS/EXT_RUN_ERP > PROG /JCS/LEXT_RUN_ERPTOP [ @32 ]
Statement does not exist in ABAPv700(or a parser error), "CONSTANTS", #JCS#EXT_RUN_ERP.FUGR.#JCS#LEXT_RUN_ERPTOP.ABAP, p

FUGR /JCS/EXT_RUN_ERP > PROG /JCS/LEXT_RUN_ERPTOP [ @32 ]
Statement does not exist in ABAPv700(or a parser error), "CONSTANTS", #JCS#EXT_RUN_ERP.FUGR.#JCS#LEXT_RUN_ERPTOP.ABAP, p

`

Code:
image

Message Classes not found

The SAP message classes with strange names >4 are not recognized although they exist.
image
image

Also the message class "00" is not.
./src/xbp/#redwood#xbprsdbspva.prog.abap[1, 39] - Message invalid: Message class "00" not found (message_exists)
image

Or should the message classes also be generated as part of the dependencies?

Rename repos ?

What about renaming these 2 repos: the names are rather confusing currently and do not show the link between each other. e.g. ...backend is in fact a client application.

what about:

  • abaplint-sci-client for this one
  • and abaplint-sci-server or abaplint-sci-backend for the js server or just abaplint-backend (which will follow the docker hub name)

Show the rule that is causing the issue

In the message from SCI, the rule is not mentioned that was failing.
FUGR /JCS/BC > PROG LBTCHDEF [ @518 ] Variable "rc_tgt_host_chk_has_failed" not used, #JCS#BC.FUGR.LBTCHDEF.ABAP

like in the pipeline:
/tmp/abaplint-aigijg/src/cx_salv_bs_tools_conv_error.clas.abap[1, 1] - Expected CLASSDEFINITION (structure)

Dependencies do not seem to be considered

the abaplint/dependencies project has dependencies defined.

Code Inspector messages:
image

AbapLint config:
image

The GitHub workflow did not have this issue. Does the Docker-Image require changes for this?

CX_SY_MOVE_CAST_ERROR during dependency serialization

Based on Pull Request #61 (for issue 58).

After the dependencies are resolved, the program ZABAPLINT_DEPENDENCIES serializes the code (BUILD_CODE method). It gets the above exception while processing the interface IF_ADT_LIFECYCLE_MANAGER (from SAP).

What is the cause of this exception?
image

events missing as dependencies?

example with abapGit, following should be found as a dependency chain,

zcl_abapgit_popups -> cl_salv_events_table -> if_salv_events_actions_table

Downporting (731)

Looking at downporting possibilities ... for the moment stumbled upon 2 issues:

  • /ui5/cl_json_parser at zcl_abaplint_json_reader: will try to replace with cl_fdt_json=>json_to_data ? or maybe leave the validation to the backend ???
  • IF_T100_DYN_MSG at exception: hmm, what's the heck it this :)))) looks like a combination of IF_MESSAGE and IF_T100_MESSAGE and a couple of attrs ... do you think I can remove ?

@larshp

Dependency sources with self signed certificates fail

We are using a gitlab server with self-signed certificates.
with git one can define "-c http.sslverify=false" to ignore the error " SSL certificate problem: self signed certificate".

Is it possible to add git options also in the dependencies definition of abaplint.json?

Includes not found

FUGR /REDWOOD/1IDOC > PROG /REDWOOD/L1IDOCTOP [ @4 ] 
Include RSXPGDEF not found, #REDWOOD#1IDOC.FUGR.#REDWOOD#L1IDOCTOP.ABAP

FUGR /REDWOOD/1IDOC > PROG /REDWOOD/L1IDOCTOP [ @5 ] 
Include MBDCONST not found, #REDWOOD#1IDOC.FUGR.#REDWOOD#L1IDOCTOP.ABAP

FUGR /REDWOOD/1IDOC > PROG /REDWOOD/L1IDOCTOP [ @8 ] 
Include <CNTN01> not found, #REDWOOD#1IDOC.FUGR.#REDWOOD#L1IDOCTOP.ABAP

image

Improve dependency detection

Dependency detection currently only works for a certain number of objects. As many more objects are supported by AbapGit, this creates issues.

Ability to run Code Inspector on a subpackage

Running Code-Inspector can take quite some time.
To make it easier, the packages are structured hierarchically. One can use the folder view to reduce the list of objects.

It would be a great improvement if only the current package (and its sub packages) would be checked by Code-Inspector.

Duplicates during dependency generation

Based on #58

The list of dependencies does not have any duplicates. I've removed all entries from the target repository.

When these are serialized, the job stops with this message:
image

Duplicates: /kgal.fugr.rk_al_seq_delete.abap
OTR-Based Exception of Class: ZCX_ABAPGIT_EXCEPTION

What is causing this?

serializer does not use package for path

In the AbapLint Backend, the serializer is called to generate dependency code.
image
The package is filled
image
The resulting path does not contain it.
image

Is that meant to be this way?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.