четверг, 29 марта 2012 г.

Text variable

Понадобилось тут происследовать как работают текстовые переменные с опцией - путь замены. Type - label.

На примере - 0CALMONTH

FM - RRSV_CHAVL_TO_VALUE_CONVERTЕсли посмотреть строку 88, то понятна логика возврата текстов:




IF NOT l_s_chatxtsml-txtsh IS INITIAL.

  l_value = l_s_chatxtsml-txtsh.
ELSEIF NOT l_s_chatxtsml-txtmd IS INITIAL.
  l_value = l_s_chatxtsml-txtmd.
ELSE.
  l_value = l_s_chatxtsml-txtlg.
ENDIF.

причем l_s_chatxtsml содержит все 3 текста
МАР 2009                      МАР 2009                                                              Март 2009

[20 символов                ][40 символов                                                       ][ну 60 вы поняли]
 
При передаче соответственно значения обрезается... т.к. хотя бы можно было за счет смещений сыграть. Строка 155 -  PERFORM value_cut

Но c 0CALMONTH тоже не все так просто...
он реализован через класс CL_RSMD_RS_0CALMONTH
тексты получаем через метод IF_RSMD_RS_ACCESS~GET_TEXT

Сами тексты оказалось храняться в табличке:
T246 - тексты дней недели

T247 - тексты месяцев
T248 - тексты недель месяца (первая\вторая\последняя)

Ну и чтобы посмотреть остается расширять стандарт. Либо ABAP, либо атрибут (что в данном контексте опять ABAP)
Enhancement Framework - Function group and Function module enhancement - Concept and Simple Scenario
Modification-Free Adaptations of SAP Programs With Enhancements

Да, на память...
CONSTRUCTOR CL_RSMD_RS_0CALMONTH


I_CHANM        0CALMONTH
I_INFOPROV
I_DATE            29.03.2012
I_LANGU         RU

I_S_COBPRO

Комментариев нет: