Что такое SAP PaPM? (дополнение)
Это продолжение предыдущей статьи в которой рассматривались функции PaPM, которые могут генерировать объекты на уровне БД SAP HANA или на уровне сервера приложений, в частности говорилось о SQL-скриптах, с помощью которых выполняются бизнес-расчеты. В конце статьи был сделан вывод, что PaPM хорош тем, что он нечто большее, чем просто набор SQL-скриптов, так как позволяет моделировать, управлять расчетам, контролировать ход выполнения и визуализировать результаты расчетов. И вот это переход от голого SQL к управлению и моделированию был неочевидным, я не показал этот механизм моделирования и управления расчетами. Исправляюсь.
Стандартный бизнес-контент
Вместе с PaPM поставляется стандартный бизнес-контент, который показывает возможности PaPM на примере простых расчетов для различных видов бизнеса:
![Примеры бизнес-расчетов для различных отраслей Примеры бизнес-расчетов для различных отраслей](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/36f/c98/65a/36fc9865aa801855bb88a1d4c401b611.png)
Возьмем пример для Нефти и Газа:
![Набор функций расчета Набор функций расчета](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/cfc/e6f/deb/cfce6fdeb35951da6b4c7c4f6ee73783.png)
Здесь представлены следующие функции:
Доступ к источникам данных. С помощью функций доступа к данным можно подключится к источникам данных как на уровне приложений SAP BW и SAP S/4HANA (или классической SAP ERP), так и на уровне как локальной базы данных, так и к удаленным базам данным, причем практически к любым (с помощью соответствующих адаптеров). Данные возможности не специфичны для PaPM, это обеспечивается общим функционалом SAP. В данном случае используются объекты SAP BW. Подробнее про подключения можно почитать тут.
Функции хранения данных в таблицах на уровне PaPM и записи этих данных на уровень SAP BW (или уровень приложений ERP). Можно ввести данные в таблицы модели среды PaPM вручную через интерфейс или загрузить из файла и далее используя функции записи перенести данные в объекты SAP BW (ADSO). Подробнее про функции записи можно почитать тут.
Используя функции запроса можно просмотреть данные в настроенной структуре представления как в самом приложении, так и с использованием Analysis for Excel. Если запрос редактируемый, то можно используя функцию планирования (функционал SAP BW) редактировать показатели или через приложение или используя Analysis for Excel. Подробнее про функции запроса можно почитать тут.
Сами функции расчета, которые генерируют SQL-скрипты при активации.
Функции запросов с настроенными фильтрами и с настроенной структурой представления столбцов и строк для формирования отчетов.
Поток моделирования
![Пример визуализации потока моделирования для примера в статье Пример визуализации потока моделирования для примера в статье](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/da5/b10/b16/da5b10b16c485d04662b59c06d1f7480.png)
Красивая картинка, которая показывает все элементы модели и их взаимосвязи. При проваливании в конкретную функцию, например в join “Определение пар МВЗ для распределения” приложение показывает взаимосвязи более подробно:
![Подробное представление функции и ее взаимосвязей в потоке моделирования Подробное представление функции и ее взаимосвязей в потоке моделирования](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/195/b8b/ad2/195b8bad2400a35f377992c157600863.png)
Другой пример:
![Пример визуализации потока моделирования из стандартного бизнес-контента Пример визуализации потока моделирования из стандартного бизнес-контента](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/afb/f89/d11/afbf89d11bdce1226044d73f602f5891.png)
Шаблон процесса
Для того, чтобы функции не оставались набором SQL-скриптов, а стали частью процесса, необходимо создать шаблон процесса с операциями, в которых нужно указать исполняемые функции и последовательность их выполнения:
![Шаблон для процесса Шаблон для процесса](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/3d7/9da/027/3d79da027443100417984d466991c32b.png)
В шаблоне процесса указываются как выполняемые операции (собственно расчеты) так и операции ввода/вывода данных. Сама по себе последовательность расположения функций в Среде моделирования не определяет последовательность выполнения расчетов, правильная последовательность обеспечивается операциями процесса.
При определении операций можно назначить команды (группы) Исполнитель и Проверяющий. Отдельно определяются пользователи для этих групп.
Инстанция процесса
Для выполнения процесса создается инстанция процесса, которая потом развертывается (деблокируется):
![Инстанция процесса на основе шаблона Инстанция процесса на основе шаблона](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/eff/e31/ca1/effe31ca128c7401d60c42ee13e3007a.png)
Далее можно осуществить выполнение операций, контроль и утверждение результата выполняется согласно присвоения пользователей группам. Пользователь не присвоенный группе выполнения не может запустить операцию.
Выполнение операций процесса
Существует отдельное FIORI-приложение для просмотра отчетов по процессу:
![Приложения FIORI для PaPM Приложения FIORI для PaPM](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/499/241/551/4992415513ae2ef3462482c458fb4534.png)
Приложение показывает выполняемые операции, который должны быть выполнены или операции ввода/вывода, которые должны быть запущены:
![Приложение Мои действия для выполнения операций процесса Приложение Мои действия для выполнения операций процесса](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/8cb/a08/934/8cba08934ccbbb7e5bbd62275e127c44.png)
Тут можно выполнить саму операцию, отправить на утверждение используя workflow, утвердить или отклонить результат при согласовании, посмотреть данные по workflow.
Операции ввода/вывода можно запустить для получения отчетов:
![Пример отчета по результатам расчета в виде диаграммы Пример отчета по результатам расчета в виде диаграммы](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/928/1a4/e2c/9281a4e2ce9e76e676485266448b4b39.png)
в виде диаграмм,
![Пример отчета по результатам расчета в виде таблицы Пример отчета по результатам расчета в виде таблицы](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/a37/900/8e6/a379008e68e83854d6c2781dbe70d890.png)
или в табличном виде.
Также можно перейти в форму ввода данных для редактируемых запросов:
![Редактирование показателей для расчета в интерфейсе PaPM Редактирование показателей для расчета в интерфейсе PaPM](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/457/405/6f7/4574056f7b4b0f8e4eae45f2384651c5.png)
Также есть вариант с использованием надстройки Analysis for Excel:
![Редактирование показателей для расчета в Analysis for Excel Редактирование показателей для расчета в Analysis for Excel](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/749/89e/f7d/74989ef7d5b112f1d8a93840a358e1c0.png)
Подробнее про запросы и возможность редактировать показатели можно посмотреть в статье тут.
Отчетность
Существует отдельное FIORI-приложение для просмотра отчетов по процессу:
![Приложения FIORI для PaPM Приложения FIORI для PaPM](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/582/973/411/582973411a9bffc1fda5c24f1dcbbed1.png)
Приложение показывает на одном экране результат выполнения всех отчетов по процессу в режиме реального времени:
![Представление отчетов по процессу на одном экране Представление отчетов по процессу на одном экране](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/dad/01f/5ca/dad01f5cae4584bc8bbd82f51e538852.png)
Еще один пример из стандартного бизнес-контента SAP поставляемого с PaPM:
![Представление отчетов по процессу из стандартного бизнес-контента Представление отчетов по процессу из стандартного бизнес-контента](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/2ed/5ac/bf9/2ed5acbf97da078ec4f284962a713125.png)
Для отчетов с возможностью ввода данных в этом приложении можно ввести показатели с использованием пользовательского интерфейса и обновить расчет с целью моделирования “что если…”:
![Ввод данных для расчета Ввод данных для расчета](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/d76/87b/91a/d7687b91a6a7c7b2107d4c3c7f74840b.png)
Монитор приложений
В SQL-скрипты при их генерации встраивается код, позволяющий сохранять подробную информацию о ходе его выполнения в журнал приложений. Монитор приложений показывает эту информацию:
![Лог выполнения функций PaPM Лог выполнения функций PaPM](https://webcf.waybackmachine.org/web/20240804095830/https://habrastorage.org/getpro/habr/upload_files/5d7/386/e04/5d7386e04f28d0794c8b7b6f0a995c13.png)
Теперь уже вполне оправданный вывод…
Вывод
Наверное, в определенных ситуациях, когда алгоритмы расчетов стабильны и из раза в раз выполняется один и тот же код, собственная разработка на SQL будет проще, быстрее и дешевле чем PaPM. Но если требуется именно моделирование, когда алгоритмы расчетов меняются и необходимо гибко управлять логикой расчетов, входными условиями расчетов, то без инструмента управления элементами расчетов (хранимыми процедурами), последовательностью их выполнения, организации запусков, контроля хода выполнения и обработки результатов не обойтись. Создавать это самостоятельно – трата сил, времени и денег, в то время как уже есть SAP PaPM.