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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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