When trying to resolve include files (copybooks, PL/I includes, JCL procedures, and so on), the
CA parser uses different search methods that you can set in the
Homonyms
tab in
Project Options. The three methods are described below:
- Search all, use the provided paths as preference
- If you choose this option, the parser will look at all folders trying to find names that match the included file. If only
one match is found, it will use that file. If more than one match is found, the parser will take the following steps to resolve
which of the matching include files is the one to use:
- It will check if one of the folders is listed under
Search Path in the
Homonyms tab in
Project Options. The folder should be listed as the full path to the registered sources. It could be local or shared, for example:
- It will look for proximity of the included file to the including file in the source folder structure. First, it will check
the files that are in the same folder as the "including" source, then the files in the dependent folder, and then up the folder
hierarchy.
- Finally, folder names will be matched and the "include" folder that has a name with a better match to the source folder name
will be selected.
- Search only in the provided paths
- When this option is selected, only the paths specified in the Search Path list will be used as locations for looking for
include files. As this option works on project level, you can configure each subsystem or application in a separate project,
and then specify the copybook locations for each project. This option is useful when the number of applications/subsystem
is not too big.
- Search in common location and only the same subsystem
- This option might help when there is a large number of applications/subsystems. It lets you use the folder structure in the
file system to define the boundaries between subsystems and to restrict retrieval of include files based on the physical folder
structure. If you choose it, you can put all the sources in a single project and avoiding the need to add a list of folders
to search in. If you choose this option, you need to specify the following two paths:
- Common folder
- All common libraries need to be located inside the same root folder, for example,
C:\Sources\Common. Files in folders located here will be "visible" to all programs being analyzed.
- Subsystems root level
- All subsystems need to have a common root folder, for example,
C:\Sources\Subsystems. If you have two subsystems in this folder, one of them will not get copybooks from the other and vice versa, but they can
both get copybooks from the common libraries folder specified in the
Common folder field.
Note: The subsystems root level selection is checked first and then the common folder.
Note: For COBOL only, if there is a registered homonym (copybook) in the program's folder it will be used in preference to the homonym
search configuration.