Pepe,

The first value is used. That is the difference between DEFINE and #REPLACE.

With #REPLACE the compiler will on the second definition immediately report that the constant already exist while DEFINE will just ignore it. However we build in - did forgot whether it is 19.0 or 19.1 - a detection of constant redefinition and report it as an error when the value is different.

So:
Code:
#Replace MyTest 1
//
#Replace MyTest 1
Will be reported as error

Code:
Define MyTest for 1
//
Define MyTest for 1
Will be OK

Code:
Define MyTest for 1
//
Define MyTest for 2
Will use the first or report a illegial redefiniton.

Since Define is just a wrapper around #REPLACE one can use combinations of #REPLACE and Define.