Текущее время: Сб, апр 27 2024, 13:23

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Спрятать повторяющиеся части в метод
СообщениеДобавлено: Вт, мар 12 2024, 21:00 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, дек 02 2013, 11:38
Сообщения: 26
Пол: Женский
Доброго дня!

Подскажите, пожалуйста, как оптимизировать повторяющиеся части кода и вставить их в метод???

Code:
CASE callcontrol-step.
    WHEN gcov_step_presel.
      APPEND INITIAL LINE TO shlp-selopt ASSIGNING FIELD-SYMBOL(<ls_selopt>).
      <ls_selopt>-shlpfield = gcov_fieldname_spras.
      <ls_selopt>-sign = gcov_sign_i.
      <ls_selopt>-option = gcov_option_eq.
      <ls_selopt>-low = gcov_value_ru.

      APPEND INITIAL LINE TO shlp-selopt ASSIGNING <ls_selopt>.
      <ls_selopt>-shlpfield = gcov_fieldname_mtart.
      <ls_selopt>-sign = gcov_sign_i.
      <ls_selopt>-option = gcov_option_eq.
      <ls_selopt>-low = gcov_value_roh.

      APPEND INITIAL LINE TO shlp-selopt ASSIGNING <ls_selopt>.
      <ls_selopt>-shlpfield = gcov_fieldname_mtart.
      <ls_selopt>-sign = gcov_sign_i.
      <ls_selopt>-option = gcov_option_eq.
      <ls_selopt>-low = gcov_value_fert.

      APPEND INITIAL LINE TO shlp-selopt ASSIGNING <ls_selopt>.
      <ls_selopt>-shlpfield = gcov_fieldname_atnam.
      <ls_selopt>-sign = gcov_sign_i.
      <ls_selopt>-option = gcov_option_eq.
      <ls_selopt>-low = gcov_value_type_zapis.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Спрятать повторяющиеся части в метод
СообщениеДобавлено: Вт, мар 12 2024, 23:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
Использовать макрос:
Code:
DEFINE _append_selopt.
      APPEND INITIAL LINE TO shlp-selopt ASSIGNING <ls_selopt>.
      <ls_selopt>-shlpfield = &1.
      <ls_selopt>-sign = gcov_sign_i.
      <ls_selopt>-option = gcov_option_eq.
      <ls_selopt>-low = &2.
END-OF-DEFINITION.
CASE callcontrol-step.
    WHEN gcov_step_presel.
      _append_selopt: gcov_fieldname_spras gcov_value_ru,
                      gcov_fieldname_mtart gcov_value_roh,
                      gcov_fieldname_mtart gcov_value_fert,
                      gcov_fieldname_atnam gcov_value_type_zapis.

Есть и другие способы оптимизации наполнения таблиц, начиная с базиса 7.40.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Спрятать повторяющиеся части в метод
СообщениеДобавлено: Ср, мар 13 2024, 08:17 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, дек 02 2013, 11:38
Сообщения: 26
Пол: Женский
The statement "_APPEND_SELOPT" is invalid. Check the spelling. - возникает ошибка, не знаю, в чем дело... Если его поставить над то пишет, что <LS_SELOPT> - неизвестное значение..


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Спрятать повторяющиеся части в метод
СообщениеДобавлено: Ср, мар 13 2024, 08:25 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, дек 02 2013, 11:38
Сообщения: 26
Пол: Женский
Field "<LS_SELOPT>" is unknown. - пишет. Как-то не принимает прога :-((


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Спрятать повторяющиеся части в метод  Тема решена
СообщениеДобавлено: Ср, мар 13 2024, 09:26 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 475
Пол: Мужской
SAP ведь явно написал, что не знает такую переменную. Следовательно, надо её объявить. например так:
APPEND INITIAL LINE TO shlp-selopt ASSIGNING FIELD-SYMBOL(<ls_selopt>).

В вашем случае можно обойтись и другим вариантом:
Code:
APPEND VALUE #(shlpfield = gcov_fieldname_spras
                    sign = gcov_sign_i
                  option = gcov_option_eq
                     low = gcov_value_ru ) to shlp-selopt.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Спрятать повторяющиеся части в метод
СообщениеДобавлено: Ср, мар 13 2024, 11:48 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
Хорошая практика - разделать алгоритмы и данные, плохая практика - использовать массовый хардкод (пусть и с объявлением констант).
Судя по коду, вам нужно применять настройки для select-options, их хорошо вынести так, чтобы в дальнейшем для изменения настроек не надо было менять ABAP-код программы.

Вариантов выноса настроек select-options из кода программы много:
1. На селекционник программы, в транзакции прописать вариант селекционника по умолчанию с нужными полями.
Можно использовать переносимый запросами вариант (код должен начинаться на cus&), можно настроить прямо в продуктиве после переноса
2. В отдельную настроечную z-таблицу
3. В хранение в тр. STVARV
4. В другие принятые у конкретного клиента инструменты для такой задачи (обычно они есть и даже не один).

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Спрятать повторяющиеся части в метод
СообщениеДобавлено: Чт, мар 14 2024, 07:26 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, дек 02 2013, 11:38
Сообщения: 26
Пол: Женский
Спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB