Фреймворк BOPF. ч 4. Создание Determination.

В третьей части мы создали свой бизнес-объект ZTS_CLIENT. Сначала создадим determination – определение, которое отобразит значение полей из transient-структуры. В данном примере напишем функционал, который будет находить бизнес-партнера с номером PARTNER и копировать его наименование в поле transient-структуры.

Создание determination в Business Object

Новый determination назовём ZDET_ROOT_NAME_ORG

Читать далее «Фреймворк BOPF. ч 4. Создание Determination.»

Фреймворк BOPF. ч. 3. Создание бизнес-объекта

Для углубленного изучения BOPF создадим новый бизнес объект. Для этого зайдем в транзакцию BOBX и создадим BO.

Создание Business Object

Заходим в меню Extras-Propose Repository Names

В разделе Node отмечаем все пункты кроме Node Class Name нажимаем на кнопку Ok

Читать далее «Фреймворк BOPF. ч. 3. Создание бизнес-объекта»

Фреймворк BOPF. ч. 2.

В первой части я кратко описал основные возможности фреймворка BOPF. Теперь рассмотрим практический пример работы с фреймворком.

Работать мы будем с объектом /BOBF/CONF_LIBRARY

/BOBF/CONF_LIBRARY

Класс /BOBF/IF_CONF_LIBRARY_C содержит все константы, необходимые для работы с данным BO.

Для работы с содержимым BO прежде всего нужно создать сервисный менеджер. В качестве параметра указываем константу с ключом, которые берется из класса с константами. Имя класса с константами специфично для каждого BO и указано в его параметрах.

Читать далее «Фреймворк BOPF. ч. 2.»

Фреймворк BOPF. ч. 1.

BOPF (Business Object Processing Framework) — это фреймворк для работы с бизнес объектами (BO). Данный фреймворк подразумевает инкапсуляцию данных и всех инструментов для работы с ними. То есть это ООП на глобальном уровне.

Основными транзакции для работы с BOPF:

BOBX — Business Object Enhancement Workbench

BOBT — BO Test

Читать далее «Фреймворк BOPF. ч. 1.»

Деление строки на отдельные слова

Возникла необходимость разделять строку на отдельные слова. На первый взгляд решение показалось банальным

Однако в какой-то момент столкнулся с проблемой — пользователь в строку каким-то образом ввел какой-то пробел, который не определялся как значение переменной space. Таким образом при попытке деления на отдельные слова в строку таблицы попадали два слова с пробелом между ними.

Читать далее «Деление строки на отдельные слова»

Динамические таблицы

Иногда возникает необходимость работать с динамическими таблицами, т.е с таблицами, столбцы которых определяются в зависимости от каких-либо данных.

Например, нужно выводить только те МВЗ, на которых были затраты определенного вида. Остальные МВЗ не нужны.

Работа c динамической таблицей состоит из следующих этапов:

  1. Определение перечня столбцов динамической таблицы
  2. Создание таблицы
  3. Заполнение таблицы данными
  4. Вывод таблицы в ALV

Расмотрим каждый шаг по отдельности.

Читать далее «Динамические таблицы»

Разработка СНТ. Начальные остатки

В процессе старта проекта СНТ необходимо обеспечить на виртуальных складах наличие остатков в соответствии с остатками в SAP. При этом необходимо, что бы портал знал источник происхождения каждой партии и идентификатор остатков хранился в признаке партии. Таким образом обеспечивается возможность дальнейшей работы комплекса СНТ с возможностью формирования СНТ на реализацию/перемещение, форм списания итд.

Для старта проекта к других клиентов была разработана программа, которая формировала и отправляла на портал формы остатков на каждом складе отдельно. При этом если товары из одной и той же партии были на разных складах, то в SAP они переносились в новую партию с наследованием признаков старой. Таким образом каждый идентификатор товаров сохранялся в отдельную партию. Однако в новом клиенте по ряду причин нельзя было переносить товары в новые партии.

Читать далее «Разработка СНТ. Начальные остатки»