Release-Dependent Incompatibilities

Handling of Table Parameters

Empty Tables:

In Release 6.20, any table parameters or variables were given an initial first line. For example:

 

The user could access this first line and could assign values to components.

In Release 6.40, all table-like parameters and variables now are empty (that means 0 lines) on creation. For example:

 

Deleting Lines in Tables

In Release 6.20, the deletion of lines in a table was performed by just clearing the components of the lines without rearranging the index.

In Release 6.40, the deletion of lines shifts up the successive existing lines. Therefore, their index is modified.

Using indexed access

There is no change in assigning a value to a table with a given index (even if the index is 1), the destination line and all missing lines in between will be created at assignment time. Accessing an initial table with index 1 will now result in an error message.

FUN Driver

If empty values exist in a first line of a table parameter, a 6.40 system will pass them on to the function module on execution; a 6.20 system will not.

TCD Command interface

See Dynamic Setting of DYNPRO Fields and Values Inside a Loop. 

Additional Information

Export Parameters Cannot Have Default Values

Only import parameters and local variables can have default values. When a script is called by REF and if an export parameter gets no explicit assignment within the script execution its return value is empty at the end of the REF. In Release 6.20 a possible default value was returned.

If the export parameter has a table structure, in Release 6.40 the table has no entries, whereas in Release 6.20 each table had at least one entry in which all fields could be empty. When such a table parameter is returned to the calling script, the same problems can occur there that are described in the section: “Handling of Table Parameters”.

You should assign the values of the export parameters with direct assignments or from results of eCATT commands. Also take care of the extended handling of table parameters with initial values.

Comparing initial values of Parameters

Initial values of parameters and local variables are dependent on the data type of the parameter. In general there are two kind of types:

·        Character types with initial value SPACE or empty strings

·        Numeric types with initial value 0 (Zero).

The eCATT commands  IF,  ELSEIF,  EXIT and CHEVAR have conditions in which the values of parameters can be compared. The comparisons with initial values show differences between Release 6.20 and Release 6.40.

In Release 6.20, there was no difference between 0 (Zero) and SPACE. Initial values of any type were treated as identical. For example, let C be an initial Char-parameter and N be an initial Num-parameter. Any of the following conditions were true in Release 6.20:

Condition

In 6.40, Evaluates to:

CHEVAR ( C = N ).

False

CHEVAR ( C = 0 ).

False

CHEVAR ( N = 0 ).

True

CHEVAR ( C = ‘ ‘ ).

True

CHEVAR ( N = ‘ ‘ ).

False

CHEVAR ( C = ‘‘ ).

True

CHEVAR ( N = ‘‘ ).

True

In Release 6.40, a parameter value 0 (Zero) in any type is not the same as a parameter value SPACE or an empty string parameter. Therefore, some of the above conditions show differences compared to Release 6.20.

In conditions where initial values of parameters are compared, you need to change the conditions to reflect the new comparison values shown in the above example. However, the last two lines of the example show that it is still possible to make a direct comparison to the initial value without respect to the type.