Текущее время: Чт, сен 19 2019, 09:15

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
Основная цель разработки - убрать из кода магические числа и другие "постоянные" данные из кода. И дать возможность пользователю менять "константы" в дружественном интерфейсе.
Номера счетов по определенной маске, тексты при создании документов 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 который зависит от условия, которое может меняться, но делать таблицу БД и создавать генератор ведение обременительно.

* Создание настройки SE38
* Создание настройки SE24
* Какую транзакцию ведения выбрать?
* Описание интерфейса
* Изменение описания полей
* Сложные типы данных
* Средство поиска в ui5
* Создание настройки через интерфейс
* Экспорт и импорт данных
* Расширения
* Поиск кода с настройкой
* Инструкция по установке


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


Последний раз редактировалось matik Сб, апр 27 2019, 15:50, всего редактировалось 4 раз(а).

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

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

Чтобы создать настройку просто запустите программу в DEV.

Изображение

На основе этой описания этой структуры создастся 4 вида полей:

Изображение

  • №1 PARAMETERS
  • №2 SELECT-OPTIONS
  • №3 TABLES
  • №4 STRINGS


Сам код создания настройки желательно вызвать однократно во время **INITIALIZATION** или **START-OF-SELECTION**

Code:
    " Initials values in editor
    set_default_values(
     CHANGING
       cs_opt = ms_opt  ).

    " Or use class attributes
    GET REFERENCE OF ms_opt INTO lv_ref.           " ! Ref to data

    " Read new values
    TRY.
        zcl_aqo_option=>create(
          iv_package_id = '$TMP'               " Package  "#EC NOTEXT
          iv_option_id  = 'Main options'(op1)  " Any text < 30 symbols
          ir_data       = lv_ref               " REF #( ms_opt )
          " iv_repair     = abap_true
        ).
      CATCH zcx_aqo_exception INTO lo_error.
        MESSAGE lo_error TYPE 'S' DISPLAY LIKE 'E'.
        RETURN.
    ENDTRY.


После этого ms_opt будет содержать данные которые внес консультант в одной из программ ведения


Последний раз редактировалось matik Сб, апр 27 2019, 15:56, всего редактировалось 3 раз(а).

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

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

Чтобы создать на основе аттрибутов класса просто нажмите F8.

Изображение

Описание полей аналогично описанию структуры

Изображение

за исключением того что аттрибуты должны быть PUBLIC и READ-ONLY
Они могут быть или:
  • Instance Attribute
  • Static Attribute

но не оба вида в одной настройке (в противном случае возникнет исключение)

Изображение

Так как READ-ONLY аттрибуты не могут быть изменены вне класса нужно добавить ZCL_AQO_OPTION в друзья.
Если вы забыли это сделать выйдет специальное напоминание во время выполнения


Сам код создания настройки желательно вызвать однократно в CONSTRUCTOR или CLASS-CONSTRUCTOR

Code:
  " Default values! For simple types use initilazation in declaration itself

  " Optional initialization
  APPEND INITIAL LINE TO me->bukrs_range ASSIGNING <ls_bukrs>.
  <ls_bukrs>-sign   = 'I'.
  <ls_bukrs>-option = 'BT'.
  <ls_bukrs>-low    = '1000'.
  <ls_bukrs>-high   = '3000'.

  SELECT * INTO TABLE me->t002_tab
  FROM t002.

  " Read new values
  TRY.
      zcl_aqo_option=>create(
        iv_package_id = '$TMP'                " Package    "#EC NOTEXT
        iv_option_id  = 'Class options'(op1)  " Any text < 30 symbols
        " Public read-only attributes is options!
        " CLASS-DATA or DATA (but not both)
        io_data       = me
        " iv_repair     = abap_true
      ).
    CATCH zcx_aqo_exception INTO lo_error.
      MESSAGE lo_error TYPE 'S' DISPLAY LIKE 'E'.
      RETURN.
  ENDTRY.


После этого аттрибуты ME->* будут содержать данные которые внес консультант в одной из программ ведения


Последний раз редактировалось matik Сб, апр 27 2019, 16:01, всего редактировалось 2 раз(а).

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

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

Изображение

№1 Левая часть экрана предназначена для:
  • поиска
  • сортировки
  • фильтрации
  • группировки
  • и создания новой настройки

№2 Правая часть экрана выходит после выбора конкретной настройки.
В правом верхнем углу находятся кнопки:
  • переход в полноэкранный режим
  • закрытие правой части экрана
  • отправить e-mail об ошибке


Также под названием настройки можно заметить:
  • размер настройки в Kb
  • описание настройки
    --- можно отредактировать кликнув по ссылке

№3 В нижней части находится:
  • переключение на технический режим
  • кнопки выгрузки и загрузки в файл
  • количество полей настройки
  • 2 поля: Описание и значение


Если переключится на технический режим

Изображение

№1 Кнопки удаления и добавления полей

№2 Технические поля:
  • описание поля
  • можно ли редактировать данное поле в продуктиве
  • тип поля или связка ТАБЛИЦА-ПОЛЕ для средства поиска


№3 В самом низу:
  • скопировать настройку в другой мандант (без запуска SCC1)
  • положить настройку в запрос
  • удалить настройку
    настройки в пакетах начинающихся на **$** можно удалить без запроса
  • сохранить настройку
    будет активна после внесения изменений

"Старый" интерфейс

На селективном экране нужно выбрать пару пакет - id c помощью средства поиска.
Для создания новой настройки нужно указать не существующий **id**

Изображение

Если мандант закрыт на изменение сразу попадаем на экран ведения настроек

Изображение

№1 Кнопки сохранения и навигации

№2 Ведение parameters и select-options

№3 Таблицы и memo тексты отображены лишь кнопками для вызова диалога

Если мандант открыт на изменение (DEV) сначала будут отображены технические параметры настройки

Изображение

№1 Слева на право:
  • переход на экран ведения значений
  • положить настройку в запрос
  • скопировать настройку в другой мандант (без запуска SCC1)
  • удалить настройку
    настройки в пакетах начинающихся на **$** можно удалить без запроса
  • поиск кода из которой была создана настройка

№2 Описание настройки

№3 Кнопки удаления и создания поля в настройки

№4 Технические поля:
  • описание поля
  • можно ли редактировать данное поле в продуктиве
  • тип поля или связка ТАБЛИЦА-ПОЛЕ для средства поиска

№5 Быстрый переход в диалог ведения значения для таблиц и memo текстов


Последний раз редактировалось matik Сб, апр 27 2019, 16:18, всего редактировалось 2 раз(а).

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

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

На данный момент есть 6 транзакций, которые можно разделить на 2 группы:
  • EDITOR - Для редактирования настроек
  • VIEWER - Для просмотра настроек (В продуктиве часто оставляют лишь эту возможность)

Если мандант открыт на изменение ZCL_AQO_HELPER=>IS_DEV_MANDT( ) все поля в настройки открыты на изменение в EDITOR .
В других системах лишь поля помеченные как Editable in prod могут редактироваться.

Изображение

Изображение

1. ZAQO_BSP_EDITOR / ZAQO_BSP_VIEWER

Основная рекомендуемая транзакция на основе BSP приложения.
Запускает браузер по умолчанию (желательно Chrome)

Можно выслать url настройки консультанту
Изображение

2. ZAQO_EDITOR / ZAQO_VIEWER

Запускает Internet Explorer внутри SAP GUI.
Для работы танзакции нужен интернет (в отличии от BSP загружает sapui5 библиотеку с https://sapui5.hana.ondemand.com)

Также может проваливаться в код (место создания настройки)
Изображение

и описания полей (SE11)

Изображение

3. ZAQO_EDITOR_OLD / ZAQO_VIEWER_OLD

Имеет следующие ограничения:
  • Не умеет отображать таблицу таблиц или range внутри таблицы (в разработке)
  • Выгружать (и загружать) настройку во внешний файл (к примеру из продуктива в DEV) (в разработке)
  • Checkbox, combobox и datetime поля не доступны
  • Отображать предыдущие значения поля

К плюсам можно отнести:
  • Привычный интерфейс (к SAPUI5 нужно привыкнуть)
  • Удобно работать с простыми таблицами в ALV (В UI5 можно выгрузить/загрузить таблицу в CSV для редактирования в Excel)
  • В field catalog полей и вложенных таблицы можно перемещать поля
    Изображение
  • Работа с range более удобная
    Изображение


Последний раз редактировалось matik Сб, апр 27 2019, 16:25, всего редактировалось 1 раз.

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

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

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


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

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

Range или таблица внутри другой таблицы
Настройка может содержать поля с типом таблица (**Standard|Sorted|Hashed**).\
В свою очередь поля этой таблицы в свою очередь могут быть таблицами или range.


Объявление в коде
Изображение

  • В ZAQO_BSP_EDITOR | ZAQO_EDITOR при редактировании таблицы отображается кнопка с количеством записей
    Изображение

    поля ALT_LAND_TEXT
    Изображение
  • В ZAQO_EDITOR_OLD
    отображаются лишь данные плоских таблиц

    Изображение

    или сразу тут
    Изображение

Редактирование сложных таблиц в "старом интерфейсе" находится (в разработке), на данный в таблице можно редактировать memo поля


Последний раз редактировалось matik Сб, апр 27 2019, 16:30, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить 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
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
Доброго времени суток
спасибо за отзыв

можете выслать использование настроек? (описание класса или структуры)
все типы могут описаны локально (структуры, таблицы и 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
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
пожалуйста обновитесь


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

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


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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Ср, сен 11 2019, 18:03 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 26 2013, 09:29
Сообщения: 11
Добрый день!
Сегодня французский коллега попросил протестировать эту программу.

Разработка очень понравилась, но я столкнулся с таким поведением:
1. В тестовой программе добавил в структуру параметров новое поле. Запустил, программа корректно обновила хранимые параметры, в редакторе ZAQO_BSP_EDITOR всё доступно.
2. Удалил в коде один из параметров. При запуске выдает ошибку - "Declared in editor only" для этого параметра.
3. Попытался удалить в редакторе отсутствующее в коде значение. Нажимаю шестеренку, выделяю строку, нажимаю "-" над таблицей. Ничего не происходит.
4. ZAQO_EDITOR при выборе набора параметров выдает ошибку "Declared in editor only" для каждого из параметров, ничего не отображает.
5. ZAQO_EDITOR_OLD не находит параметров, предлагает "Create a new option".

Как понять, почему не удаляет параметр в ZAQO_BSP_EDITOR?
Спасибо!


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

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

Цитата:
3. Попытался удалить в редакторе отсутствующее в коде значение. Нажимаю шестеренку, выделяю строку, нажимаю "-" над таблицей. Ничего не происходит.

вроде все правильно
после этого должна быть активна кнопка сохранения
нажать Save, подтвердить сохранение и параметр должен удалиться навсегда


в старом редакторе тут кнопка

Изображение

после удаления также нужно нажать на Save
там еще есть проверки на сохранение (проверка на знак числа)


Изображение


Цитата:
добавил в структуру параметров новое поле

есть нюанс с таблицами таблиц
при добавлении нового поля во вложенную таблицу
желательно перечитать описание полей запустив код с флагом IV_REPAIR = abap_true (попробуйте запустить так)
если изменился тип поля с Parameter на Select-Option (или Table :? ) желательно удалить поле из редактора и вновь запустить создание настройки

да и не забыть перенести настройку из DEV в другой мандант
можно положить в запрос и перенести через SCC1 (но спец кнопкой быстрее)


Последний раз редактировалось matik Чт, сен 12 2019, 10:29, всего редактировалось 1 раз.

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

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

записал себе в bug
https://github.com/bizhuka/aqo/issues

ui5 почти не тестировал, конусльтантам превычнее в ZAQO_EDITOR_OLD
там удалил и создал поля
вроде работает


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программа ведения настроек
СообщениеДобавлено: Чт, сен 12 2019, 11:03 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 26 2013, 09:29
Сообщения: 11
Добрый день!

Понял свой косяк - запускал ZAQO_EDITOR_OLD через SE38, а там зашиты проверки на имя транзакции.
Если запускать транзакцию ZAQO_EDITOR_OLD - работает, поле удалил.

Продолжаю тестирование, спасибо!


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

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


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

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


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

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