Посмотрите пример SALV_DEMO_TABLE_COLUMNS, там аналогичная ситуация, при этом текст устанавливается нормально.
Code:
data: lr_columns type ref to cl_salv_columns_table,
lr_column type ref to cl_salv_column_table.
lr_columns = gr_table->get_columns( ).
lr_columns->set_optimize( gc_true ).
*... §4.1 set exception column
try.
lr_columns->set_exception_column( 'EXCEPTION' ).
catch cx_salv_data_error. "#EC NO_HANDLER
endtry.
try.
lr_column ?= lr_columns->get_column( 'EXCEPTION' ).
lr_column->set_short_text( 'MY EXCEPT' ).
lr_column->set_medium_text( 'MY EXCEPTION' ).
lr_column->set_long_text( 'MY EXCEPTION COLUMN' ).
catch cx_salv_not_found. "#EC NO_HANDLER
endtry.
Возможно, Вы оформили последовательность вызовов в блок try-catch, который вызывает исключение до установки текста. Соответственно, это исключение ловится и никак себя не проявляет, кроме того, что все остальные операторы не выполняются.