BW Change Impact Analysis

This workflow is provided with a set of transports containing BW objects on a Source SAP system. It identifies an optimal (most-at-risk) set of objects which when tested will exercise each of the BW objects in the input transports. The analysis is driven by the set of transport objects, and the results are filtered so that only used BW objects are considered for testing. The used BW objects are obtained from an External Data Source which must be populated prior to running this workflow by running the Find Used BW Objects workflow from the Impact Analysis templates folder.

If a support pack has not been applied to the Source SAP system, it must be disassembled before it can be analyzed using the BW Change Impact Analysis workflow. This can be done by running transaction SAINT and selecting ‘Disassemble OCS Package’ from the ‘Utilities’ menu. Alternatively, it may be disassembled using the Package Disassembler App.

The BW Change Impact Analysis workflow requires that SAP’s Where Used indexes are up to date on the Source system being analyzed. For further details, see the Step 1 (As-Is) - Checking the Integrity of the Where Used Indexes help topic.

  1. The BW Change Impact Analysis workflow carries out the following steps:

  2. The transport objects are extracted from the specified transports.

  3. The raw transport objects are filtered and converted to LiveCompare object types, yielding a final transport object set.

  4. The final transport object set is analyzed by the Where Used action. This action creates a network of ‘where used’ links from the transport objects to BW objects which use them.

  5. The Analyze Object Links action determines a recommended set of BW objects to test.

  6. The remaining actions gather and consolidate information for the reports.

Before You Begin

Before running the BW Change Impact Analysis workflow, you will need to populate the BW Usage External Data Source by running the Find Used BW Objects workflow from the Impact templates folder.

The Create Object Links Cache workflow from the Prerequisites templates folder should be run for the System 1 system to create a cache of object links. See the workflow’s associated help file for details.

Creating RFC Destinations

Before running the BW Change Impact Analysis workflow, you will need to create an RFC Destination for the Source system (System 1).

Preparing the Workflow

To prepare the BW Change Impact Analysis workflow, drag its workflow template from the Templates folder into your own workspace, and modify the workflow as follows:

To specify the Source system to analyze:

  1. Select the System 1 parameter and choose ‘Edit RFC Destination’ from its context menu to display the RFC Destination dialog.

  2. Select the RFC Destination for the system to analyze, then click ‘Save’.

To specify which transports to analyze (each transport should contain only BW objects):

  1. Select the Transport List parameter and choose ‘Edit Table’ from its context menu to display the Table Editor dialog.

  2. Enter one or more transport names from the Source system, or paste in a selection of transport names from an Excel spreadsheet, then click ‘Save’.

If it is more convenient to specify a range of Transport IDs rather than a large list, you can do this by modifying the workflow as follows:

  1. Select the Transport Selection Table Schema parameter and choose ‘Edit Table’ from its context menu to display the Table Editor dialog.

  2. The transport selections table has the following columns:

Column Description
SELNAME This column should be set to SPPK.
KIND This column should be set to S
SIGN If this column is set to ‘I’ the transport specification will be included in the analysis. If the column is set to ‘E’, the transport specification will be excluded. The ‘E’ option should only be used if the table also has a row which uses the ‘I’ option.
OPTION The comparison operator to use: One of EQ, GT, GE, LT, LE, BT or CP. See the Select List Parameters help topic for details.
LOW The name of the ‘low’ transport name in the specification.
HIGH If the BT (Between) operator is used, this column refers to the ‘high’ comparison value.
  1. Modify the table so that it contains specifications for the transports to be analyzed, then click 'Save'. Transports that have been disassembled but not imported should be specified individually in the table using the EQ operator. Transports that have been imported may be specified using the BT operator with a range of values.

  2. Delete the Transport List parameter and the components that lead up to the Get Transport Objects action (the Convert Data and Execute SQL actions, and the Transport Table and Transport Selections datasets).

  3. Select the Get Transport Objects action. In the Property Editor, set the action's 'Source' property to be the Transport Selection Table Schema parameter.

To specify any additional objects to be searched for ‘where used’ results, modify the Edit Transport Set action's Statements property, and add SQL statements similar to the following:

To specify any additional objects to be searched for ‘where used’ results, modify the Edit Transport Set action's Statements property, and add SQL statements similar to the following:

INSERT INTO Result (TRANSPORT_NAME, TYPE, NAME) VALUES ('Added', 'IOBJ', 'MyObject')

To filter the set of objects to be analyzed, modify the Edit Transport Set action's Statements property, and add SQL statements similar to the following:

DELETE FROM Result WHERE TYPE = 'IOBJ' AND NAME LIKE 'Z%'

Save the workflow using the ‘Save’ toolbar button.

Running the Workflow

To run the BW Change Impact Analysis workflow, click the ‘Run’ toolbar button, choose ‘Run Now’ from the diagram’s context menu, or press F5. The currently running workflow action is marked with an animated display. When the workflow execution has completed, select the Report URL dataset and choose ‘View Details’ from the context menu to access the generated report.

Excel Report

The BW Change Impact Analysis workflow generates an Excel report which includes the following spreadsheets:

MostAtRisk

This spreadsheet provides details of which BW objects are recommended for testing. The spreadsheet has the following columns:

Column Description
TYPE The type of an impacted BW object recommended for testing.
NAME The name of the BW object.
COMP_ID The ID of the BW object’s reporting component.
DEPTH The search depth at which the BW object was found.
USAGE The usage count for the BW object, obtained from the BW Usage External Data Source.
CHILD_TYPE The type of a transport object that would be exercised by testing the most-at-risk executable.
CHILD_NAME The name of the transport object.
CHILD_COMPID The ID of the transport object’s reporting component.
TRANSPORT_NAME The name of the analyzed transport which contains the transport object.
COVERAGE For impacted executables with usage counts greater than 0, the number of transport objects that would be exercised by testing the executable.
USED This column is set to ‘Y’ for executables that are used, according BW Usage External Data Source.
CUSTOM This column is set to ‘Y’ for executables that are custom. Custom executables are identified by naming patterns in the Custom Object Naming Patterns External Data Source.

It also includes the following details for the source objects that would be exercised by testing each executable.

Column Description
DATE The source object’s last modification date.
CHANGES The number of transports on the analysis system that contain the changing object. This column is set to 0 if a child object is a table used in a view, and only the view is included in the analyzed transports.
FANIN The source object’s fan-in value. The fan-in value of an object is the number of other objects that are referencing it. Multiple references from the same object are counted as one access.
FANOUT The source object’s fan-out value. The fan-out value of an object is the number of other objects that are referenced in it. Multiple references to the same object are counted as one access.

All

This spreadsheet provides a summary of all the impacted executables, listing each executable’s usage count and the number of source objects it covers. The spreadsheet has the following columns:

Column Description
TYPE The type of an impacted BW executable.
NAME The name of the impacted executable.
COMPID The ID of the impacted BW object’s reporting component.
USAGE USAGE The usage count for the executable, obtained from the BW Usage External Data Source.
COVERAGE This column is set to ‘Y’ for executables that are recommended for testing.
MOSTATRISK This column is set to ‘Y’ for executables that are recommended for testing.
USED USED This column is set to ‘Y’ for executables that are used, according BW Usage External Data Source.
CUSTOM This column is set to ‘Y’ for executables that are custom. Custom executables are identified by naming patterns in the Custom Object Naming Patterns External Data Source.

TransportSummary

This spreadsheet provides a summary of the transport objects. The spreadsheet has the following columns:

Column Description
TYPE The type of a transport object.
NAME The name of the transport object.
COMPID The type of the object’s subobject.
COUNT The total number of executables impacted by the source object.
COUNT_WITH_USAGE The number of used executables impacted by the source object. Used executables are obtained from the BW Usage External Data Source.
FOUND_TYPE The type of an executable impacted by the source object.
FOUND_NAME The name of the executable.
FOUND_COMPID The ID of the example executable’s reporting component.

AllTransportObjects

This spreadsheet provides details for all the analyzed transport objects. The spreadsheet has the following columns:

Column Description
TRANSPORT_NAME The name of an analyzed transport.
TYPE The type of an object from the transport.
NAME The name of the transport object.
COMPID The ID of the transport object’s reporting component.
STATUS This column is set to ‘Filtered’ for transport objects that were not analyzed, ‘NoExecutables’ for transport objects that do not impact any executables, ‘MostAtRisk’ for source objects that impact an executable that is recommended for testing, or ‘Unused’ for source objects that are impacted by executables that have not been used.
FOUND_TYPE The type of an executable impacted by the source object.
FOUND_NAME The name of the executable.
FOUND_COMPID The ID of the example executable’s reporting component.

SystemInfo

This spreadsheet provides details of the Source system. The spreadsheet has the following columns:

Column Description
NAME The name of the RFC Destination.
TYPE The type of the SAP server used for the connection. This column is set to ‘A’ if the connection uses an Application Server, or to ‘M’ if the connection uses a Message Server.
SYSID The RFC Destination’s SAP System ID.
ASHOST The DNS name, domain name or IP address of the SAP Application Server or Message Server.
GROUP For Message Servers, this field is set to the name of the logon group.
INSTANCE_NR The application instance number of the SAP system.
USER The SAP user ID used for this connection.
CLIENT The SAP client.
LANGUAGE The SAP logon language.