striezl/VariScan
An ABAP program, Z_VARI_SCAN, that searches program variants for a value or pattern, doing for variants what RS_ABAP_SOURCE_SCAN does for source code, with each variant checked in a parallel task.
Z_VARI_SCAN searches ABAP program variants for a value or pattern, described by the maintainer as doing for variants what the standard report RS_ABAP_SOURCE_SCAN does for source code, useful during a refactor to find every variant a change touches. Each variant is generated at runtime and checked in its own parallel task, and system programs are excluded, along with, on S/4HANA, programs blacklisted in table ABLM_BLACKLIST or SAP Note 2249880. The maintainer warns that setting the task count too high can slow the whole system, and recommends starting conservatively.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 2@striezlmaintainer
Before choosing this
Signals
ActivityQuietNo published releases; repository quiet for 62 months
It publishes no releases, and its repository has been quiet for at least 24 full months. This may be normal for stable software; check whether its current state still fits your use.
What it declares
Every artifact
- Type
- CLI
- Origin
- Independently maintained
As a CLI
- Distributed through
- abapGit
Connections
Finding where a string or name occurs across code in a system
Git client written in ABAP that runs inside the system
Download
Architecture
Download
README
quoted from striezl/VariScan under MIT, readVariScan is a fast search tool for SAP program variants
Z_VARI_SCAN is supposed to be something like RS_ABAP_SOURCE_SCAN for program variants - so for example if you are doing some kind of refactoring and therefore want to find a certain value or pattern in all variants it could be your weapon of choice. Never again check variants manually!
Manual, Screenshots
See Wiki.
Prerequisits
Install abapgit if you have not done so yet.
Installation
Clone the VariScan repo using abapgit. Create a package first, we recommend Z_VARI.
Authorization
Variant 1
Per default, the program Z_VARI_SCAN checks for the following authorization at the INITIALIZATION event:
- Object = ZVARI
- Field = ZVARI
- Field Value = X
Note that SAP_ALL might need regenaration (transaction su21) due to the new authority object ZVARI that comes with installing VariScan.
Variant 2
Alternatively you can choose to use the standard object S_PROGRAM (P_ACTION = "VARIANT", P_GROUP = <TRDIR-SECU>) for authority check. Therfore build an implementation in enhancement spot (se18) for BAdI Z_VARI_AUTH that is copied from the example implementation Z_VARI_AUTH_S_PROGRAM. The check for the custom object ZVARI will then be discarded. If you use S_PROGRAM each program (respectivly the authorization group of each program) will be checked seperately. If then at least one authority check fails, the message "Due to missing authorization not all programs could be checked" will be displayed.
In general
The Program Z_VARI_SCAN uses RFC function module Z_VARI_SCAN for parallel processing. Note that this FM does not have an implicit authority check, authorization S_RFC should be set accordingly.
Constraints
System programs (trdir-rstat = S) are out of scope.
S/4: Blacklisted programs (see Table ABLM_BLACKLIST or SAP Note 2249880) will not be checked, even if execution is temporarily allowed.
Troubleshooting
Dumps occur
To get the variant content, each examined program must be generated at runtime which can cause various errors. Try to exclude programs / packages that cause dumps via selection in Z_VARI_SCAN. Try to find those programs by examining dumps in transaction st22. At runtime each variant is checked in an exklusive tasks, so if one or more tasks fail (with runtime error) the overall reporting will still complete.
Slow scan
Normally the program should work quite fast of course depending on your database, available tasks, the number of scanned packages and so on. Under good circumstances even a scan of the entire program repository can be possible within minutes or less. However single programs can cause a long runtime and slow down the analysis. For the moment those are quite hard to find, it might help to use the default exclusions with which Z_VARI_SCAN is delivered. Furthermore, if you can narrow the scope of your search to certain packages or programs. Another reason for a slow scan might be a too high or too low number of max tasks, both leading to inefficient processing, see Warning.
Warning
Beware of setting parameter "Max. number of tasks" too high, it might slow down the entire system! Always make sure not to consume most of your available dialog process (see transaction sm50), maybe a rule of thumb for dev system might be half of them max., of course heavily depending on your individual setup. Set the parameter to "1" if you want the most conservative setup (at the price of a longer runtime).
Contribution
Your contribution is very welcome!
FAQ
For questions/comments/bugs/feature requests/wishes please create an issue.
Others providing
Compare all 14 on the Searching code in a system page →- sapguisapguiThirty classic transactions, SE80 and SE16N among them, rebuilt as abap2UI5 apps and installed with abapGit into a standard ABAP system.independent, abapThirty classic transactions rebuilt as abap2UI5 appsfrom ABAP
- alwinvandeput/zscv_search_cds_viewsalwinvandeput/zscv_search_cds_viewsAn in-system tool for searching CDS views, started from transaction ZCDS_VIEW_SEARCH and built on CDS views over how CDS views, DDIC views and database tables relate to one another.independent, abapIn-system search tool for CDS viewsfrom ABAP
- abapwuluabapwuluRebuilds the where-used index for the ABAP repository objects in one package, optionally with its subpackages, as the report ZSAPDEV_WULU_RUN or as an ADT console class, for sandbox systems.independent, abapRefreshes the where-used list for objects in one packagefrom ABAP
- boy0korea/ZWD_CODE_SCANNERboy0korea/ZWD_CODE_SCANNERA code scanner for Web Dynpro ABAP, installed as the program ZWD_CODE_SCANNER with a transaction code of its own that starts it and shows the results in a list.independent, abapCode scanner for Web Dynpro ABAPfrom ABAP
- bryanmcain/zcode_scannerbryanmcain/zcode_scannerAn implicit enhancement to ECC's built-in code scanner, which covers only reports, function modules and classes, adding enhancement implementations, Web Dynpro components, BSP ABAP and form code.independent, abapEnhancement extending ECC's code scanner to more object typesfrom ABAP
- coreline/ZDDIC_FINDERcoreline/ZDDIC_FINDERA finder for ABAP Dictionary objects, searching domains, data elements, tables and structures, table types and ranges tables, installed with abapGit or as a program named ZDDIC_FINDER.independent, abapFinder for ABAP Dictionary objectsfrom ABAP
- abap-code-search-toolsabap-code-search-toolsA backend that searches ABAP source objects for a string or regular expression entirely in ABAP, instead of through the ADT source search, used from an Eclipse plugin or the report ZADCOSET_SEARCH.independent, abapIn-system ABAP source search by string or regular expressionfrom ABAP
- ABAP Code SearchABAP Code SearchAn Eclipse plugin that searches ABAP sources from the Eclipse search dialog, either in the client over the ADT API or inside the system through its own backend.independent, abapEclipse plugin searching ABAP sources from the search dialogfrom ABAP
- ABAP Search and Analysis ToolsABAP Search and Analysis ToolsAn Eclipse plugin with an object search dialog over repository objects and a view that analyses CDS views top-down and answers where-used questions, fed by its own ADT backend in the system.independent, abapEclipse plugin for ABAP object search and CDS view analysisfrom ABAP
- abap-search-toolsabap-search-toolsThe ADT backend the separate ABAP Search and Analysis Tools Eclipse plugin needs, installed in the ABAP system.independent, abapADT backend for the ABAP Search and Analysis Tools pluginfrom ABAP
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
- Source Code FinderSource Code FinderA report that searches ABAP source code in methods, enhancement implementations, DTPs and transformations for a word or a pattern with an asterisk, installed with abapGit.independent, abapReport searching ABAP source in methods, enhancements, DTPs and morefrom ABAP
- sap-russia/ZRS_ABAP_SOURCE_SCANsap-russia/ZRS_ABAP_SOURCE_SCANA report that searches code inside modifications and enhancements without depending on SAP HANA.independent, abapA report that searches code inside modifications and enhancements without depending on SAP HANA.from ABAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
abaplint
History in the atlas
- First seen.
For your agent
- Ref
artifact:striezl-variscan- JSON
- /artifacts/striezl-variscan.json
- MCP
- Connecting an agent