Dependencies

How can I find the dependencies of one or multiple programs?

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).

What is the difference between nodes and files in the dependencies graph?

They are both represented as vertices in the graph but they represent different artifacts. Read more.

How can I identify CRUD operations between my programs and data/files?

This can be done in the dependencies graph. You need to apply a filter using the “link type” field. See examples.

What are the different node types I can see in my graph?

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.

How can I query my graph?

All the graph nodes and links can queried using BQL.

How can I extract dependencies to system routines?

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.

How can I know if my codebase is complete?

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.

How can I know the relationship type between two artifacts/nodes?

All the links have a type that can be queried using BQL and can be edited.

I have homonyms in my project. Which version of the file is taken into account?

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.

A catch-up on my project introduces homonyms. How can I replace the previous version of the file?

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.

What are the supported statements per programming language?

All the statements supported by each language are listed here.

What is the largest dependencies graph I can manipulate in AWS Blu Insights?

The largest graph we have seen contains over 1 million nodes and 6 millions links. If you get a larger graph, please tell us!

Why is my dependencies analysis outdated?

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.

Is my node deleted from all graphs if I deleted it from a subgraph?

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.

Why when starting the dependency analysis I get the following message "We successfully computed the dependencies but the generation of the graph failed!"?

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.

What can I do with isolated nodes?

Isolated nodes can exist for two reasons:

  1. The nodes are actually never called (dead code for example).

  2. 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