Performing Impact Analysis


Use impact analysis to see how an entity is related to or may be impacted by other entities. One particularly useful feature of impact analysis is its ability to display indirect and direct relationships between entities. It lets you choose what related entity types you want to see— without cluttering the display with those you don't want.

Impact analysis can be used, for example, to identify the jobs that use a dataset, which are only indirectly— not directly— related, as shown in the following graphic.

JOBtoDATASET.jpg

Impact analysis can even uncover such distant relationships as a table that uses a virtual table.

TBLtoVTBL.jpg

In addition, impact analysis can uncover dead ends— points where a relationship has not yet been formed because, for example, programs have not yet been merged or a program has not yet been collected. This prevents the Metadata Analyzer from being able to determine the entire impact path between the entities you selected. For example, if you request impact analysis from data item to job but a proc is missing from a JCL collection, impact analysis will never reach all of the jobs.

The Metadata Analyzer notifies you that it was unable to complete the impact path and provides a reason so you can remedy the situation. You may then perform impact analysis again to verify whether the dead end has been addressed.

When selecting entities for Impact Analysis you have a choice:

  • Use the default mode if you are only selecting one entity. This mode displays the results in a dialog box and allows you to select items and see their path.
  • Use batch mode if you are working with multiple entities of the same type. This mode runs in the background and produces a separate text file for each entity/target type selected. The text files can be imported into a spreadsheet or database for further analysis. Batch mode is especially useful for documenting applications. It allows you to, for example, select all the jobs in an application and see the related files. By searching for and selecting multiple data items of interest, it allows you to see the impact of changing these data items.

Note

 Impact Analysis is available for most entity types.

To select the entity or entities to perform impact analysis on

  1. Select from the Entities view the entity or entities that you would like to perform impact analysis on. If you select one entity, the results will display in the Impact Analyzer window. If you select more than one entity, impact analysis is run in batch mode and the results are saved to multiple text files.

Note

To run impact analysis in batch mode, all entities selected on the Entities view must be of the same type.

  1. Do one of the following:
    • From the Tools menu, select Impact Analysis.
    • Right-click the entity or entities and select Impact Analysis.
    • Click IAtoolbar.jpg.

The Select Target Types dialog box appears.

To select the entity types to include in the impact analysis

The Select Target Types dialog box lists all of the possible entity types that can impact or be impacted by the selected entity type.

SelectTargetTypesWCallouts.jpg

Note

When impact analysis is run as a batch job, a message warns you if existing output files for the entity type combination (such as data item to data item) already exist in the output folder because they will be overwritten. If you want to keep the original output files, choose a different output location for the current impact analysis.

When you click OK, one of the following appears:

  • The Impact Analysis Progress dialog box (when only one entity is selected for impact analysis)
  • A Command Prompt window (when more than one entity is selected for impact analysis)

progDBOX.jpg

Messages are provided for the following activities as the impact analysis progresses:


    • When impact processing begins
    • When processing begins for each entity type
    • The number of impact relationships found for the entity type
    • The number of dead end paths found for the entity type, if any
    • When impact processing is complete

Note

If, during processing, you click Stop, processing stops. Click OK and the impact information collected before Stop was clicked appears in the Impact Analyzer window or the text files.

To view the entities involved in the impact analysis

When impact analysis processing is complete, do one of the following:

  • If only one entity was selected for impact analysis, click OK on the Impact Analysis Progress dialog box to view the results in the Impact Analyzer window.
  • If more than one entity was selected for impact analysis, close the Command Prompt window and open the text files, located in the output location entered in the Select Target Types dialog box, to view the results. If dead ends exist for a given entity type combination, they are written to a separate text file.

Note

By default, impact analysis returns 1000 impacted entities. A message appears if the results exceed this limit. You can change this limit.

Two types of information are available based on impact analysis:

  • The impacted entities
  • Dead ends

When impact analysis is run on one entity, this information is available in the Impact Analyzer view. When impact analysis is run as a batch job, the same information is written to multiple text files. The figure below shows the Impact Analyzer view.

MAiaDBOXwCALLOUTS2.jpg

Impact entities information

The entities that might impact or be impacted by the entity you performed impact analysis on are shown in the Impact Entities view or the text file. The standard columns are as follows:

Impact Effect: Whether the entity impacts the source entity or is impacted by it. Valid values are Impacts and Impacted By.

Distance: The fewest number of impact entities between the source entity and the target entity in an impact path.

End Point: Whether the target entity is the last item in the Impacts or Impacted By path. Valid values are Yes or blank.

In the Impact Entities view (only available when a single entity was chosen for impact analysis), if you selected more than one target type for impact analysis— for example, data item and job— use the Target Type drop-down list to view impact information for each target type for which impact information was found.

maIAdbox510.jpg

Dead Ends information

Entities that may be considered obstacles or "dead ends" in trying to determine the impact entities are shown in the Dead Ends view or a dead ends text file.

Dead ends information includes:

  • The entity responsible for the dead end
  • The fewest number of impact entities between the source entity and the target entity in an impact path
  • The ID, name, type, and owner of that entity
  • The reason for the dead end
  • The confidence that the entity is, in fact, a dead end

The figure below shows the Dead Ends view.

deadEND.jpg

In the Dead Ends view (only available when a single entity was chosen for impact analysis), if you selected more than one target type for impact analysis— for example, data items and jobs— use the Target Type drop-down list to view dead end information for each target type you chose.

Dead end reasons

The table below lists the reasons dead ends can exist and what action to take to try to remedy the dead end.

Note

You may not be able to remedy all dead ends if you have programs you don' t have the source for.


Entity type

Dead end reason

Action to take

Program

Not collected or not merged

First, make sure the program has been collected. Second, make sure to merge the load version of the program (collected by the JCL, CICS, or IMS collections) with the source version of the program (collected by COBOL, PL/I, or DDIO collections). Finally, perform impact analysis again.

Note

Subprograms may not need to be merged as long as their calling Program is merged.

Not learned (only COBOL and PL/I programs are learned)

No action can be taken to resolve this type of dead end.

Not analyzed because the source was not downloaded

Rerun the collection for this program, being sure to set the value for the Download property to Yes. Then perform impact analysis again.

Not analyzed because the program has a Learn Status of Pending (only applies to COBOL and PL/I programs)

Wait until the learning process finishes learning this program. Then perform impact analysis again.

Not analyzed because the parse failed

Perform program analysis on the program from the Metadata Analyzer (from the Tools menu, select Program Analyzer). Refer to the Diagnostics view to find the errors and flaws and correct them. Then perform impact analysis again.

Note

This functionality is not available for Assembler programs.

JCL proc

Not collected

First, change all of the JCL collections that collect this Proc to include the Proc library that contains this Proc. Second, rerun the collections. Finally, perform impact analysis again.

DBMS instance

Steps or CICS regions that use DBMS instance not collected

Run the JCL or CICS collections that use this DBMS instance. Then perform impact analysis again.

If this does not resolve the dead end, the problem may be that the DBMS instance name specified in the DB2 collection is not correct and needs to be renamed.

A schema was not collected for the DBMS instance

Run the DB2 collection that collects tables and stored procedures for this DBMS instance. Then perform impact analysis again.

If this does not resolve the dead end, the problem may be that the DBMS instance name specified in the DB2 collection is not correct and needs to be renamed.

IMS SEGM

IMS DBD not collected

Change the IMS collection to collect the IMS DBDs referenced by the collected IMS PSBs, run the IMS collection, then perform impact analysis again.

Schema

A table was not collected for the schema

Run the DB2 collection that collects tables for this DBMS instance. Then perform impact analysis again.

Data items in a PL/I program

DevEnterpriseis unable to process aliases for variable length data items.

No action can be taken to resolve this type of dead end.


Dead ends information also indicates how confident the Metadata Analyzer is that the impact path will be complete when the dead end is remedied. The confidence level can be:

  • Certain – Resolving the dead end will enable the Metadata Analyzer to reach the target type.
  • Possible – Resolving the dead end may still not enable the Metadata Analyzer to reach the target type (for example because the program does not contain includes).

From the Impact Analyzer window, you can perform several other functions:

  • Get information on the impact path so you can understand how an entity might be impacted.
  • Perform impact analysis on one or more entities in the Impact Analyzer window. If you select more than one entity, each is analyzed in a separate window.
  • Understand why the entity is involved in the impact analysis.
  • Export the Impact Entities view or the Dead Ends view (Exported impact analysis information includes the root entity's ID, name, type, and user label, which is not available in the Impact Analyzer window.)

Note

The functions above cannot be performed when impact analysis was run as a batch job. To perform these functions on an entity run as a batch job, rerun impact analysis on that entity individually.

To get information on the impact path

The Impact Path window—available from the Impact Analyzer window—has three views to help you understand how an entity might be impacted and get detailed information about all of the related entities:

  • Impact Path Chart, which gives a graphical view of the path between the original entity and related entities
  • Properties view, which shows the properties of the selected entity
  • Impact Reason view, which gives information about why the entity is involved in the impact analysis
  1. Select the related entity in the Impact Analyzer window.
  2. Do one of the following:
    • From the Tools menu, select Impact Path.
    • Click IMPpathICON.jpg.

The Impact Path window appears.

IMPpathHILEVEL.jpg

Note

You can have multiple Impact Path Charts open at the same time. To easily navigate between multiple open charts or windows, click wdwLISTbtn.jpg and select from the Windows dialog box what you want to view.

Note

If many procedures start with the same characters and are truncated, it can be difficult to read the name of a procedure shown on a node. Changing the node display to Text mode remedies this problem.

Performing impact analysis on an entity in the Impact Path Chart

You can also perform impact analysis on an entity shown on the Impact Path Chart.

  1. Select the node on the Impact Path Chart.
  2. Do one of the following:

    • From the Tools menu, select Impact Analysis.
    • Right-click the node and select Impact Analysis.

Understanding why the entity is involved in the impact analysis

The Impact Path window also contains an Impact Reason view, which tells how the parent entity affects the selected entity— that is, why the entity is involved in the impact analysis. For example, if the parent is a data item in a COBOL program that moved to the selected data item, the impact reason would be "MOVE". Some of the most common impact reasons are:

  1. Action – A movement or comparison relationship between data item and/or virtual column entities. For example a COBOL MOVE statement creates an Action relationship between data item entities.
  2. Alias – A relationship created between two data items when those data items refer to the same storage. A COBOL REDEFINES is an example of this.
  3. Application defined – A relationship between virtual column entities or a virtual column and a data item, where the two entities serve as an intersection of virtual tables within a SQL statement.
  4. Contains – A parent-child type of relationship. For example, a program entity contains data item entities.
  5. Data movement – Data movement refers to the transfer of data from one data item to another data item, virtual column, or virtual DD. An example is MOVE DATA-ITEM-1 to DATA-ITEM-2.
  6. Data comparison – Data comparison refers to relating one data item to another. For example WHEN DATA-ITEM-1 = DATA-ITEM-2.
  7. Foreign key – A database relationship between column entities within DB2, where one column is a foreign key of another column.
  8. User defined – A relationship that has been manually added by an Admin user.
  9. Uses – A relationship where one entity uses another entity. For example, a DBMS instance is Used by a CICS region.
  10. Select the entity in the Impact Path Chart. A red circle appears around the selected entity and the Impact Reason view populates.
  11. View the Properties and Impact Reason views for information about the selected entity.
    impPathWcallouts.jpg

Do any of the following using this chart:

  1. Use the Overview window to view a high-level "road map" of the chart and zoom in on specific items.
  2. Select an entity and change the chart's depth to show to change the number of levels viewable in the chart.
  3. Change the size or position of a chart.
  4. Print the chart.

To perform impact analysis on another entity

You can also perform impact analysis on any entity shown on the Impact Analyzer window.

  1. Select the entity on the Impact Analyzer window.
  2. Do one of the following:
    • From the Tools menu, select Impact Analysis.
    • Right-click the entity in this window and select Impact Analysis.
  3. Repeat the steps above for selecting the entity types to in include the impact analysis and to view the entities involved in the impact analysis.

Impact analysis limitations

Impact Reason browsing requires Notepad++ be installed and xppma.cfg option Notepad++=Yes.

Impact analysis does not evaluate the following for data item and virtual column entities:

  • All languages:
    • Data items used in EXEC CICS statements
    • Programs with multiple entry points
  • COBOL

    • 88-level data items
    • The following Communication Section statements: ACCEPT MESSAGE COUNT, DISABLE, ENABLE, PURGE, RECEIVE, and SEND
    • The following Data Movement statements: EXAMINE, INSPECT, STRING, TRANSFORM, and UNSTRING
  • For PL/I programs:
    • Data items having a variable length display as dead ends

To change the impact analysis limit

You can change the maximum number of impacted entities that impact analysis finds. Any number may be used.

  1. Open server.cfg.
  2. Add a parameter called maxImpact= and enter the maximum number of impacted entities you want impact analysis to find.

    Note

    The limit you set applies to all clients who access your server.

  3. Save the file.
  4. Restart the server for the change to take effect.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*