Текущее время: Сб, апр 20 2019, 17:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Программа ведения настроек
СообщениеДобавлено: Вт, мар 27 2018, 12:35 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
ABAP quick options
Просто нажмите здесь, чтобы протестировать AQO без какой-либо установки

Основная цель разработки - убрать из кода магические числа и другие "постоянные" данные из кода. И дать возможность пользователю менять "константы" в дружественном интерфейсе.
Номера счетов по определенной маске, тексты при создании документов FI или Range of BLART в различных выборках являются хорошими примерами где можно использовать ведение настроек.
Проще всего описать разработку, это что-то вроде tr. STVARV, но все параметры и опции выбора сгруппированы вместе, как и в tr. SLG1 с интерфейсом схожим с SAP Fiori который непосредственно отображается в SAP GUI через CL_GUI_HTML_VIEWER.

В самой программе настройки обычно хранятся в структурах (либо в атрибутах класса) и могут содержать такие данные, как:
    * Опции выбора (SELECT-OPTION)
    * Параметры (любое простое значение как дата, время или BUKRS)
    * Строки (тексты произвольной длины)
    * Таблицы (STANDARD, SORTED, HASHED на основе структур)
Первые 2 полностью аналогичны STVARV, в строках к примеру можно хранить шаблоны писем, а таблицы подойдут, когда нужно написать, к примеру, большой case который зависит от условия, которое может меняться, но делать таблицу БД и создавать генератор ведение обременительно.

* Программа ZAQO_TEST
* Настройки на основе классов
* Ведение настроек в ZAQO_EDIT
* Инструкция по установке

Библиотека доступна по ссылке


Последний раз редактировалось matik Пн, апр 23 2018, 10:25, всего редактировалось 3 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Вт, мар 27 2018, 12:37 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
Программа ZAQO_TEST


Последний раз редактировалось matik Ср, мар 28 2018, 08:52, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Вт, мар 27 2018, 12:38 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
Настройки на основе классов


Последний раз редактировалось matik Ср, мар 28 2018, 08:51, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Вт, мар 27 2018, 12:39 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
Ведение настроек в ZAQO_EDIT


Последний раз редактировалось matik Ср, мар 28 2018, 08:49, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Вт, мар 27 2018, 12:40 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
Инструкция по установке


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Вт, апр 03 2018, 15:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 19:21
Сообщения: 1233
Несколько раз прочитал вики но не увидел как в итоге считать эти настройки из mr_opt и подпихнуть например в свой sel-opt.

_________________
я твой сап эфай внедрял
BAdI-позитив


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Ср, апр 04 2018, 09:08 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
наверное стоит улучшить документацию
пожалуйста обновитесь до последней версии в ZABAPGIT

  • Запустите программу ZAQO_TEST
    остановитесь на BREAK-POINT и посмотрите значения в ms_opt
    в этой структуре хранятся все настройки (Parameters, Ranges, Tables, Memos)

    Изображение
    F8

    описание структуры настроек в самом инклюде (можно глобальное, но имхо в глобальном классе удобнее )
    Code:
          " Main settings of the program
          " Be very careful with editing
          BEGIN OF ts_main_opt,
            edit_mask     TYPE editmask,          " CHAR
            bukrs         TYPE bukrs,             " CHAR
            pack_blocked  TYPE xsdboolean,        " ABAP_BOOL     swd_blocks
            msg_count     TYPE syst-tabix,        " INT4
            due_date      TYPE syst-datum,        " D
            due_time      TYPE syst-uzeit,        " T
            " datetime      TYPE xsddatetime_local, " datetime NO component in OLD UI
            sum           TYPE bscurr,            " P with sign
            allowed_bukrs TYPE RANGE OF bukrs,    " Range
            blocked_bukrs TYPE RANGE OF bukrs,     " Range
            some_numbers  TYPE RANGE OF syst-tabix,
            alt_land_text TYPE SORTED TABLE OF ts_alt_land WITH UNIQUE KEY land1,
            t002_tab      TYPE STANDARD TABLE OF t002 WITH DEFAULT KEY,
            some_text     TYPE string,
    *        one_field      TYPE STANDARD TABLE OF char30 WITH DEFAULT KEY,  " Table_line is not structure
          END OF ts_main_opt.

    для теста, свое новое поле можете добавить сюда
    но надо будет добавить инициализацию в метод init_options
    или просто закомментируйте вызов (он введен только для демонстрационных целей)
  • Далее запустите tr ZAQO_EDIT или tr ZAQO_EDIT_OLD (переключение между ними по кнопкам Изображение )
    Начните набирать $TMP должен выйти список настроек (или воспользуйтесь СП)
    Для старой версии поле Description обязательно для заполнения (и TYPE должен быть уникально)
    Изображение
  • Нажмите на карандаш
    Изображение
  • После сохранения изменений запустите программу ZAQO_TEST вновь
  • Положите настройку в запрос или перенесите в тестовый мандант

    Изображение

    Изображение
  • В тестовом манданте будут редактироваться лишь те поля которые вы пометили на прямые изменения

    Изображение

PS Разработка находится во временном пакете, хорошо протестировать не могу :oops:
признателен за апробацию


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Ср, янв 16 2019, 09:26 
Специалист
Специалист

Зарегистрирован:
Вт, авг 24 2004, 17:49
Сообщения: 185
Откуда: SAP ERP60
Пол: Мужской
Спасибо за интересный функционал и реализацию :wink:
При тестировании возник следующий момент -
указание нетипизованного параметра в программе приводит к дампу CX_SY_STRUCT_COMP_TYPE в транзакциях ZAQO_EDIT / ZAQO_EDIT_OLD
чтение настроек из программы при этом проходит корректно
Видимо ссылка на тип словаря обязательна, но от дампа в случае ошибки трудно избавиться. Приходится вручную удалять через delete() и помогает не сразу ))
Отсюда пожелания - отловить catch в транзакциях настройки. Плюс сделать возможность удаления объекта настройки из транзакций без его раскрытия, приводящего к дампу


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Ср, янв 16 2019, 15:15 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
Доброго времени суток
спасибо за отзыв

можете выслать использование настроек? (описание класса или структуры)
все типы могут описаны локально (структуры, таблицы и range)
но с предварительным описанием через TYPES (не DATA)

удалять всю настройку не обязательно
можно скормить новую структуру и вызвать save c этим параметрам
Изображение

    А так задумок довольно много (надеюсь приступить к ним в ближайшем будущем)
  • Использование listbox когда СП меленький
  • Настройка таблица с полями в виде таблиц
  • Проверки при редактировании настроек
  • Создавать настройки не из кода (а в самой транзакции, к примеру консультантом)
  • Версионность (чтобы понять, что изменилось и на кого катить бочку)
  • Выгрузка настройки в файл и обратно (к примеру, из прода в тест)
  • Убрать хранения из кластеров (версионность будет проще реализовать)
    Думаю о представлении иерархии в BOBF (Пакет->Настройка->Версия->Отдельные поля)
    Но слетит обратная совместимость
  • И главное доработать SAPUI5 (ZAQO_EDIT)
    -чтобы оно запускалось в виде BSP приложения (а не в сапгуй)
    -Использовать прочие рекомендации от САП (К примеру, New Master Detail template )
    -Сделать нормальные СП (сейчас это facepalm)
    -Использовать odata аннотации для смарт контролов (table & field)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Ср, янв 16 2019, 15:48 
Специалист
Специалист

Зарегистрирован:
Вт, авг 24 2004, 17:49
Сообщения: 185
Откуда: SAP ERP60
Пол: Мужской
В качестве теста использую ZADO_TEST
Code:
  BEGIN OF ts_main_opt,
         code1 type c, " <- поле без ссылки , типизации
         edit_mask    TYPE editmask,             " CHAR
         bukrs        TYPE bukrs,                " CHAR
         pack_blocked TYPE xsdboolean,           " ABAP_BOOL swd_blocks
         msg_count    TYPE syst-tabix,           " INT4
         due_date     TYPE syst-datum,           " D
         due_time     TYPE syst-uzeit,           " T
    " datetime      TYPE xsddatetime_local, " datetime NO component in OLD UI
         sum           TYPE bscurr,              " P with sign
         allowed_bukrs TYPE RANGE OF bukrs,      " Range
         blocked_bukrs TYPE RANGE OF bukrs,      " Range
         some_numbers  TYPE RANGE OF syst-tabix,
         alt_land_text TYPE SORTED TABLE OF ts_alt_land WITH UNIQUE KEY land1,
         t002_tab      TYPE STANDARD TABLE OF t002 WITH DEFAULT KEY,
         some_text     TYPE string,
*        one_field      TYPE STANDARD TABLE OF char30 WITH DEFAULT KEY,  " Table_line is not structure
  END OF ts_main_opt.

Дальше запуск программы без инициализации нового поля.
После этого собственно сразу дамп в настройках при открытии объекта
Чтение через read() без проблем

p.s наоборот очень понравилась реализация SAPUI+Viewer. уходить в чистый браузер порой совсем не интересно, теряются возможности интеграции ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Ср, янв 16 2019, 20:27 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 72
Откуда: Альфа Центавра
Пол: Мужской
пожалуйста обновитесь


если описание в классе, так ругается
Изображение

вроде так аналогично
Code:
code1 TYPE c LENGTH 1, " <- поле без ссылки , типизации


добавлен класс исключений
Изображение

немного переделал код
редактор запустился, но типа не видно (можно выделить запись и нажать на минус)
все же лучше указать тип из словаря (CHAR1)
Изображение


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

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


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

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


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

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