(DV-2405) ListCube Execution & Backend

LISTCUBE TEST CASE EXECUTION

When a ListCube Test Case is added to the Test Plan, a new backend Test Run is automatically created, and a Run ID is generated. The description holds the technical name for the Test Plan and the Test Case. All ListCube Variants that were selected during the ListCube Test Case creation are automatically added to the ListCube Variant selection for the generated Test Run. 
To execute the ListCube Test Case from the Test Management click on  Execute and a screen for the ListCube Testing scenario is displayed. Please refer to ListCube Execution & Backend#Test Scenario EQS_LIST section for a more detailed description of each scenario step.

ListCube based testing

Currently, there are two Test Scenarios using the ListCube functionality outputs. The ListCube testing uses the same functionality as found in the standard RSA1 Display Data to collect the data from the InfoProviders that is to be tested. 
Recommendations:

  • For one ListCube testing run a maximum of 5000 ListCube variants should be used.

  • Highly recommended is to use the Use DB Aggregation parameter when creating the ListCube Variants. When there are multiple lines with the same key in the image, then the performance is decreased during the comparison phase of this test scenario.

Test Scenario EQS_LIST (ListCube testing)

ListCube Testing Scenario


Basic ListCube testing contains the following steps:

  1. Selecting ListCube Variants

  2. Generation of before image tasks

  3. Creation of before images

  4. Performing specific tasks in the system outside SNP Validate (like conversion, migration, etc.)

  5. Generation of after image tasks

  6. Creation of after images

  7. Generation of comparison tasks

  8. Execution of comparison tasks

  9. Display of results



Select ListCube Variants

By double-clicking on the first Test Step Select ListCube Variants, you can define which ListCube variants are to be used in the specified run for testing, or you can create new ListCube Variants, these consist of all the selected ListCube Variants for this Test Run. 
Once you have the variants selected for the Test Run you need to save the selection by clicking on the Save button (Ctrl + S) on the main screen of the ListCube variants selection.
You can add ListCube Variants in the following ways:


Create New ListCube Variant: You can create a new ListCube Variant by clicking on the Create New ListCube Variant button (Shift + F1). For more information refer to Create new ListCube Variant section. 
Add Existing ListCube Variant: You can display all of the existing ListCube variants in the system by clicking on the Add Existing ListCube Variant button (SHIFT + F4), select one or more variants to be added to the Test Run. 
Add ListCube Variants of Run: By clicking on the Add ListCube Variants of Run button (SHIFT + F5) you can select another (distinct from the current) run, and add all of the ListCube Variants used also into the current Test Run. 
Copy ListCube Variants of Run: By clicking on the Copy ListCube Variants of Run button (SHIFT + F8) you can choose another (distinct from the current) run and copy the ListCube Variants into the current Test Run. 
Generate ListCube Variants: By clicking on the Generate ListCube Variants button (SHIFT + F2) a dialog for the ListCube variants generation is displayed. Refer to Generate ListCube Variants section. 
Generate RFC ListCube Variants: By clicking on the Generate RFC ListCube Variants button, ListCube variants with RFC destinations are displayed. Refer to Generate RFC ListCube Variants section.
Add Variants of Test Case: By clicking on the Add Variants of Test Case button (SHIFT + F11) you can select from existing ListCube Test Cases and add the ListCube Variants in it also into the current Test Run. 
Copy Variants of Test Case: By clicking on the Copy Variants of Test Case button (SHIFT + F12) you can select from existing ListCube Test Cases, and add all of the ListCube Variants in it also into the current Test Run as copies. 
Copy Variants: Refer to the Copy ListCube Variants section for function details.

Generate tasks for before image

To generate the tasks, you can double-click to execute, this will prepare the tasks for the following step Create before image.

Create before images

By double-clicking on this step, you first define a number of background jobs to be used to create the before image for each of the specified ListCube variants. The Image creation of some ListCube variants can fail due to too many rows read. This is a safety limit that can be adjusted by changing the setting Max. ListCube image row size. See the Settings section for more details on how to change this setting. 
If the SNP Validate setting ListCube additional aggreg. is set to X, the image that is returned from an InfoProvider during the task execution is aggregated again. This function can be used for cases when a ListCube returns multiple rows with the same key because of unsupported functions. 
SNP Validate is capable of handling numeric aggregation overflows. Automatic overflow handling is executed when ListCube additional aggreg. is set to X and aggregation of results fails because of numeric overflow. In cases of problematic overflowing the key figure is set to 0 for all returned rows. And in cases of multiple overflowing key figures, these will be set to 0. Overflow handling is always logged as if it was used. This feature enables you to create images for InfoProviders that normally would not be possible because of an overflow error on the DB level. By turning off DB Aggregation in ListCube variants all aggregations will be performed in SNP Validate and all non-overflowing key figures will be correctly saved in the image. DB Aggregation is always preferred for performance reasons and additional aggregation should be used for handling special situations. 

During additional aggregation, the whole data image of returned rows from the InfoProvider needs to be loaded into memory at once. Memory restrictions of work processes can cause the failure of the task execution if these thresholds are reached during additional aggregation.

Generate tasks for after image

To generate the tasks, you can double-click to execute, this will prepare the tasks for the following step Create after image.

Create after images

You define the number of background jobs to be used in the creation of the after image of the specified ListCube variants. The Image creation of some ListCube variants can fail due to too many rows read. This is a safety limit that can be adjusted by changing the setting Max. ListCube image row size. See the Settings section for more details on how to change this setting. 
If the SNP Validate setting ListCube additional aggreg. is set to X, the image that is returned from an InfoProvider during the task execution is aggregated again. This function can be used for cases when a ListCube returns multiple rows with the same key because of unsupported functions. 
SNP Validate is capable of handling numeric aggregation overflows. Automatic overflow handling is executed when ListCube additional aggreg. is set to X and aggregation of results fails because of numeric overflow. In this case, the problematic overflowing key figure is set to 0 for all returned rows. In the case of multiple overflowing key figures, all of them will be set to 0. Overflow handling is always logged if it was used. This feature enables you to create images of InfoProviders that would be not possible because of overflow errors on the DB level. By turning off DB Aggregation in ListCube variants all aggregation will be done in SNP Validate and all not overflowing key figures will be correctly saved in the image. DB Aggregation is always preferred for performance reasons and additional aggregation should be used for handling special situations. 

During additional aggregation, the whole data image of returned rows from the InfoProvider needs to be loaded into memory at once. Memory restrictions of work processes can cause the failure of the task execution if these thresholds are reached during additional aggregation. 


Generate tasks for comparison
You can specify key figures InfoObjects that are ignored during the comparison. These ignored key figure columns are not visible in the Reports Display Results section. The generation of tasks is executed by clicking on the Create Tasks (F8) button. 
You can enable Automated Root Cause Analysis for comparison tasks. Refer to the Automated Root Cause Analysis section for more details. 

Selection of ignored key figure columns



It is not possible to ignore characteristic columns as those are used as unique keys for record matching during the comparison.

Compare before and after images

You define the number of jobs/ background jobs to be used for tasks execution each of the tasks compares the before image data with the after image data for one ListCube Variant, please refer to the Comparison logic section.

Display results

You can view the outputs and their comparison results for the ListCube Variants executions, refer to the Results overview section.

ListCube with mapping

Test Scenario EQS_SLO_L (ListCube with mapping testing)

The ListCube with mapping scenario shares many of the same steps as with the standard ListCube scenario, the difference is with the additional functions to create converted images based on the defined mappings.

ListCube with mapping - Testing Scenario


ListCube with mapping testing contains the following steps:

  1. Selecting ListCube Variants

  2. Generation of before image tasks

  3. Creation of before images

  4. Defining mapping

  5. Generation of convert tasks

  6. Creation of converted images

  7. Performing specific tasks in the system outside SNP Validate (conversion, etc.)

  8. Generation of after image tasks

  9. Creation of after images

  10. Generation of comparison tasks

  11. Execution of comparisons tasks

  12. Display of results

Select ListCube Variants

By double-clicking on the first Test Step Select ListCube Variants, you can define which ListCube variants are to be used in the specified run for testing, or you can create new ListCube Variants, these consist of all the selected ListCube Variants for this Test Run. 
Once you have the variants selected for the Test Run you need to save the selection by clicking on the Save button (Ctrl + S) on the main screen of the ListCube variants selection.
You can add ListCube Variants in the following ways:

Create New ListCube Variant: You can create a new ListCube Variant by clicking on the Create New ListCube Variant button (Shift + F1). For more information refer to Create new ListCube Variant section. 
Add Existing ListCube Variant: You can display all of the existing ListCube variants in the system by clicking on the Add Existing ListCube Variant button (SHIFT + F4), select one or more variants to be added to the Test Run. 
Add ListCube Variants of Run: By clicking on the Add ListCube Variants of Run button (SHIFT + F5) you can select another (distinct from the current) run, and add all of the ListCube Variants used also into the current Test Run. 
Copy ListCube Variants of Run: By clicking on the Copy ListCube Variants of Run button (SHIFT + F8) you can choose another (distinct from the current) run and copy the ListCube Variants into the current Test Run. 
Generate ListCube Variants: By clicking on the Generate ListCube Variants button (SHIFT + F2) a dialog for the ListCube variants generation is displayed. Refer to Generate ListCube Variants section. 
Generate RFC ListCube Variants: By clicking on the Generate RFC ListCube Variants button, ListCube variants with RFC destinations are displayed. Refer to Generate RFC ListCube Variants section.
Add Variants of Test Case: By clicking on the Add Variants of Test Case button (SHIFT + F11) you can select from existing ListCube Test Cases and add the ListCube Variants in it also into the current Test Run. 
Copy Variants of Test Case: By clicking on the Copy Variants of Test Case button (SHIFT + F12) you can select from existing ListCube Test Cases, and add all of the ListCube Variants in it also into the current Test Run as copies. 
Copy Variants: Refer to Copy ListCube Variants section for function details.

Generate tasks for before image

To generate the tasks, you can double-click to execute, this will prepare the tasks for the following step Create before image.

Create before images

By double-clicking on this step, you first define several background jobs to be used to create the before image for each of the specified ListCube variants. Image creation of some ListCube with mapping variants can fail due to too many rows read. This is a safety check and this behavior can be adjusted by changing the setting to Max. ListCube image row size. See the Settings section for more details on how to change this setting.

Define mapping

By clicking on this step you can define a mapping that should be used to convert before images and create converted images. Currently, there are two types of mapping that you can use/create.

 

Selecting mapping for image conversion


Custom mapping
By clicking on  button screen is displayed where you can specify which program and which form should be called for each row of the before image that should be converted. 


The creation of custom mapping is confirmed by pressing the Enter button. SNP Validate ListCube with mapping scenario expects that the called form has this parameter:

  • cs_line – changing parameter; type ANY

The cs_line parameter holds the actual line that should be changed based on your custom mapping logic. 

It is possible to also define the following form in a program you inserted when creating the custom mapping. 
Name: VALIDATE_MAPPING_INITIALIZATION
Parameters:

  • iv_infoprov – using parameter; type RSINFOPROV

  • it_components – using parameter; type ABAP_COMPONENT_TAB

If this form exists in a custom mapping program, SNP Validate calls it once before the actual conversion of data. This way you can make decisions based on the InfoProvider name that is converted and/or components of the line to be converted. 
SNP Validate standard mapping
By clicking on  button, a screen is displayed where you can define standard SNP Validate mapping without the need to create some custom mapping reports. 

SNP Validate Standard mapping creation


In each row, you can define characteristics and their old value that should be changed to the new value. For each mapping rule, you can define conditions that need to be satisfied for mapping to be applied (by clicking on  button). When multiple mappings can be applied to a field value based on conditions (during actual conversion) the first applicable mapping rule in the list is used.
For each row, conditions can be specified. 

Setting conversion-mapping conditions


For each mapping rule row, you can specify multiple conditions. Specified conditions are then combined to create one rule in the following way: If there are multiple condition values for one type of characteristic, these are evaluated together while using OR condition. Multiple types of characteristics are evaluated together while using AND condition. So in case of the same conditions are defined, the resulting condition would look like this:
IF ((0COMP_CODE = 1000 OR 0COMP_CODE = 1100) AND 0SALES_ORG = AA125) => use mapping 
If no mapping rules are specified the resulting converted image should be the same as the before image. 
It is possible to upload mapping rules with conditions from a CSV file. By clicking on  Upload mapping from CSV file button, and select a CSV file from the system that contains the defined mapping.

Upload mapping from CSV


You can define the separator character that is used in the CSV file and the number of lines that should be ignored in the file from the top. The Data structure in the CSV file has to adhere to rules that are described in the help text available under  Information button.

Generate tasks for conversion

To generate the tasks, you can double-click to execute, this will prepare the tasks for the following step Convert Before Images.

Converted before images

By double-clicking on this step, you first define several background jobs to be used to create the converted image for each of the specified ListCube variants before images.

Generate tasks for after image

To generate the tasks, you can double click to execute, this will prepare the tasks for the following step Create after image.

Create after images

You define the number of background jobs to be used in the creation of the after image of the specified ListCube variants. Image creation of some ListCube with mapping variants can fail due to too many rows read. This is a safety check and this behavior can be adjusted by changing the setting to Max. ListCube image row size. See the Settings section for more details on how to change this setting.

Generate tasks for comparison

By clicking on this task you can define which already created image, you would like to compare with the after image. You can either select standard before image or converted image created by using specified mapping. 

Selection of image to be compared


After clicking on  button, comparison tasks are generated in the next scenario step Compare Images.

Display results

You can view the outputs and their comparison results for the ListCube Variants executions, refer to the Results overview chapter.