The Dependencies Graph illustrates relationships between legacy artifacts (jobs, procs, programs, copybooks, datasets, database tables, etc). Artifacts are represented as nodes, while their inter-dependencies are depicted as edges.
This can be done in the dependencies graph either by double-clicking on the program (this will select all its dependencies) or by exporting the program to a subgraph and incrementally discovering its neighbors (parents/children).
They are both represented as vertices in the graph but they represent different artifacts. Read more.
This can be done in the dependencies graph. You need to apply a filter using the “link type” field. See examples.
The dependencies graph contains nodes related to the codebase files and nodes related to artefacts such as missings, System Utilities, SQL nodes, etc. They can be filtered based on their types using BQL.
All the graph nodes and links can queried using BQL.
The dependencies analysis extract the known system routines from System Utilities and create specific nodes that can be queried based on their type. A dedicated filter is automatically created once the graph is generated.
Using the dependencies graph, you can use the generated filters to look for missing files. This filter is based on BQL and can be edited.
All the links have a type that can be queried using BQL and can be edited.
The dependencies analysis will consider the file that fits the most (e.g. if the statement is Include in a Cobol program, the dependencies will look for a copybooks even if the codebase contains an homonym files with other types.) and if more than one file fits (e.g. CALL statement in a Cobol program with multiple candidates of different types that suits: Cobol, EZT, REXX), all files will be taken into account.
Catchup algorithm is based on the location of files. If the newly imported files have the same path, the original file will be overwritten. If not it is added.
All the statements supported by each language are listed here.
The largest graph we have seen contains over 1 million nodes and 6 millions links. If you get a larger graph, please tell us!
The outdated icon appears on the Launch button if one or multiple files have been deleted or added (using Catch-up). You can check the project activities to get more details.
Yes, because a node in a graph is the same object as in all other subgraphs.
Yes, they have the same properties as normal nodes.
Yes, if a node is added to a subgraph, it will also be added to the main graph.
They will be lost, we advise you to download the graph JSON before a relaunch.
The dependency job can fail in some rare cases. If it succeeds at computing the dependencies and only fails at generating the graph, you will be able to download the result as a JSON file directly from the dependencies tab. The JSON file contains the list of dependencies. You can try to edit it (e.g. remove some entries) and import it.
If your project is large (+300k files), you may also want to try splitting it into smaller ones.
Isolated nodes can exist for two reasons:
The nodes are actually never called (dead code for example).
The nodes are called by statements which are not supported by the Dependency analysis.
In the first case, you may think about removing these node selecting them and clicking on "Delete node"
In the second case, you can select the isolated nodes you want to analyze. Then click on "Show more links" option. You will find all the potential links where your nodes are present as target. Then select and add the links you want in your graph.
Select the two nodes which you want to delete the link in the dependencies graph and click on 'Delete link' option
Collaborate with stakeholders to identify and retrieve artifacts that are still in use.