Impact Analysis Report for PL/I
- statements that actually transfer data (like assignments);
- statements that read from or write to external resources (like tables and files that are mapped further with datasets);
- parameter passing across internal procedures;
- parameter passing across external procedures;
To generate this report, in Explore Projects view, go to the Mainframe Reports list in the pane to the right. Select Impact Reports then double-click the desired report to display the report wizard.
Then, select the impact direction (forward or backward). If you want to limit the analysis to X depth, check the option limit expansion depth and enter the desired value in the corresponding field then press Next.
Select the type of resource - program or include - that contains the variable for which you want to perform the analysis, then press Next.
According to the selections made in the previous dialog, a list of programs, includes, SQL tables or datasets is displayed. Use the field to filter the list and to locate the desired resource. Select the resource then click Next to display the next dialog window of the wizard.
A list of variables that were found in the selected resource is presented. Use CTRL to select non-consecutive variables from the list. Use the field to filter the list and locate the desired variable then select it and click Next to display the next dialog window of the report.
Use this dialog to specify resources that must be EXCLUDED from the report. The list of entities available for exclusion presents variables, datasets, SQL tables, and SQL fields.
- for variables: variable, variable_name, [program, program_name, forefather, forefather_name];
- for datasets: dataset, dataset_name;
- for SQL tables: sqltable, sqltable_name;
- for SQL fields: sqlfield, sqlfield_name, [sqltable, sqltable_name].
variable, CUSTID-REC
variable, CUSTID-REC, program, ACCT03, forefather, MISC
variable, CUSTID-REC, forefather, MISC
sqltable, ACCOUNTS
sqlfield, SCITY
sqlfield, SCITY, sqltable, CUSTOMER
The results of the report depend on the type of statement selected for analysis.
The Report summary section includes a Variables summary page, a Programs summary page, a File summary page, a Dataset summary page, a SQL Field summary page, and a Sources summary page. These pages present the input (selected variables or programs) for the report and the impacted resources (variables, files, datasets, SQL fields, and programs).
The Report details section presents the input variable and the final datasource for the variable together with all the steps in between.
Example 1: statements that actually transfer data (assignments). We want to show the impact of modifying the variable LINE. An Impact analysis of variable LINE presents the data flow that reaches to the variable LINE, through the assignment statements. The Report summary section presents information about entities that are impacted, that is, the list of sources being touched. In the Report details section, the definition source and the program that started the flow are presented. If we click on PL1: Assignment statement, we will see the statement highlighted in the source code in the Editor view.
Example 2: statements that read or write to external resources (like SQL table fields and Files). This level allows the user to get an overview of how data flows through the system at a level that is closer to the business view. This time we want to show the impact of modifying a SQL Table Field. An Impact analysis of SQL field presents the flow of data beginning with the starting point and ending with the SQL table field name - that is suffixed with the SQL table name. After the report is generated, clicking on the SQL insert, we will see the INSERT INTO statement (that is used to insert new records in a table x, the fields names and the values to be inserted).
In case you select statements that read from or write to files that are mapped with datasets: an Impact analysis of a dataset presents the dataflow beginning with the starting point and ending with the file. The file that is written has a DDCard association. Clicking on the DDCard association we'll see JCL Data definition (DD) statement that defines the datasets.
- the program that started the flow;
- table with columns: "from", "to" "impact type" describing the flow of data beginning with the starting point and ending with the program;
- subsection with possible chains of calls and data flows between programs that start or get to the current program;
- subsection with list of variables impacted in the program;
- subsection with list of programs impacted and how variables in the current program map to defined parameters of the called program.