Hello @PierreYvesILY,
In addition to the other comments:
Note that the %PUT statement (a macro statement, as opposed to a DATA step statement) is executed before the DATA step is compiled. So, even if a macro variable VKW_DrK existed at that point of time, its value would be written to the log in the middle of the DATA step code, but regardless of what happens during DATA step execution. In fact, it would be written to the log even if DATA step compilation failed with a syntax error that occurred before the %PUT statement. Therefore, as a rule, %PUT (and %LET) statements have their place outside of DATA steps.
The statement
VKW_DrK = compress(VKW_DrK);
would make sense for a character variable VKW_DrK, but your code suggests that this is a numeric variable. In this case the statement only produces two ugly log messages (as you see in your log, referring to line number 610) about automatic numeric-to-character conversion (in order to apply the character function COMPRESS to the initially numeric argument) and character-to-numeric conversion (in order to assign the character result from COMPRESS to the numeric variable, if possible).
The third type conversion mentioned in the log (referring to line 611) is caused by CALL SYMPUT, applied to a numeric second argument. Using CALL SYMPUTX instead would avoid this.
... View more