Skip to Main Content
Status Under Review
Workspace Natural for z/OS
Created by Dana Sherbondy
Created on May 10, 2024

Create a user exit in SYSEXT to perform a SCAN across all FUSER or FNAT

Create a user exit in SYSEXT to perform a SCAN across all FUSER or FNAT .
It can be similar to the existing SCAN tool.
The replace function is not required and may be a bit dangerous.

This way we can search all source code for a specific string, be it a variable or module name etc. I understand that PREDICT XREF can perform the same function, if it is being used and active on all libraries. However, scanning source code would also show other instances where XREF was off, or source code was not yet compiled (with XREF on).

This could be initially for Mainframe but also useful on Linux and Cloud.

Use Case Searching for desired usage of a variable or module or other code
  • Dana Sherbondy
    May 20, 2024

    Currently SYSMAIN only allows searching for objects, it does not allow a text string, such as a variable name such as #ORGANIZATION-BUSINESS-UNIT or the word "SECURITY".

    SCAN works fine for the current library, but not for all libraries

    When specifying the library name, no wild cards allowed:

    NAT4889 Library is not defined to Natural Security.

    It could be acceptable to restrict such scans to the libraries the current user has access to, or define a warning that only Administrators can search all known libraries.
    Searching SYS* libs may also need to be an override parm.

    It seems that there are also some internal objects that do not start with standard alphanumeric characters. There may be acceptable exceptions or restrictions for these. There are also object header records that may be restricted from the scan.

    Some of these exceptions may be acceptable to only allow scans for the current FUSER.

    A number of customers have written similar tools (just reading FUSER and doing an EXAMINE on the source field), but of course they have to manage their own exceptions and restrictions.

    The UI could be identical to SCAN and allow a library wildcard including *.
    SCANALL - was a typical name for a user written utility. But again, remove the replace option.