Установка SAP в Яндекс.Облаке
Программное обеспечение компании SAP используется в основном в крупных компаниях, но установить SAP и написать свою первую программу может абсолютно каждый. Разберём это на примере пошаговой установки SAP в Яндекс.Облаке.
SAP в компании X
Представьте себе большую производственную компанию. Назовём эту абстрактную компанию как «X».
SAP EWM
Как театр начинается с вешалки, так и производство в компании X начинается с её склада. Чтобы быть сильным и конкурентным игроком на рынке, этой компании нужен современный, а это значит автоматизированный склад. Сырьё должно бесперебойно поставляться на производство, а готовая продукция отгружаться дистрибьюторам. Подбор сырья и готовой продукции должен вестись с соблюдением сложной бизнес-логики, например, в производство должно отправляться сырье с более ранним сроком годности. За всё это на складе отвечает SAP EWM.
SAP ERP
Как и в любой компании, которая следит за качеством своей продукции, в компании X реализован входной контроль сырья и выходной контроль готовой продукции. За это отвечает модуль QM.
Компании X нужны инструменты для планирования производства, инструменты которые позволят вовремя сделать закупки сырья и оптимально загрузить работу оборудования. За это отвечает модуль PP/DS. Само же оборудование должно сообщать о необходимости ремонта и планового обслуживания. За это отвечает SAP MII.
За входящие и исходящие поставки, всевозможные накладные и выстраивание сложных логистических цепочек внутри компании и с внешними контрагентами в компании X отвечают модули MM и SD. Выпускаемая в компании X продукция подлежит маркировке. За получение у государства QR-кодов, а также за отправку в государственные органы сведений о том какая продукция была с этими QR кодами выпущена отвечает SAP ATTP.
Как и положено каждой крупной компании в X есть свой отдел кадров, который отвечает за приём сотрудников на работу, предоставляет справки и ведёт личное дело работника. За это отвечает модуль HCM-HR. Также работникам в компании X необходимо производить начисление и выплату заработной платы, премий, декретных пособий. За это отвечает SAP ERP — модуль HCM-Payroll.
Как и в других крупных компаниях, в Х широко используются возможности корпоративного портала, сотрудники получают доступ к новостям, форумам, контактной и справочной информации. За это отвечает SAP Enterprise Portal. Невозможно представить и компанию без бухгалтерии, где за кассовые и банковские операции, предоставление отчётности и закрытие финансового периода отвечает модуль FI, а за различные виды учётов затрат и расчёт себестоимости продукции отвечает SAP ERP — модуль CO.
SAP OpenText
Масштаб компании не позволяет X обойтись без системы электронного документооборота (СЭД), различные цепочки согласования проходит и заявка на отпуск рядового сотрудника и многомиллионный договор на закупку нового оборудования. За это отвечает SAP OpenText.
Для заказов от дистрибьюторов в компании X используется B2B решение на базе SAP Hybris. Полученные через веб-витрину заказы загружаются в ERP-систему через единую шину данных компании на базе SAP PO. Через эту шину проходят и все другие информационные потоки, связывающие SAP-системы с системами других производителей, например, системой бюджетирования Infor, и с внешними сервисами, например, с системой юридически значимого электронного документооборота СБИС. Для принятия решений, руководящим сотрудникам компании X постоянно требуется аналитическая отчётность, в которой за консолидацию, хранение и подготовку данных отвечает SAP BW.
За мониторинг систем, репозиторий кода, прослеживаемость изменений и другие аспекты жизненного цикла SAP-систем в компании X отвечает SAP Solution Manager.
Типы SAP-систем
Приведённый выше пример достаточно условен. В зависимости от специфики той или иной компании меняется и набор модулей в SAP ERP и stand-alone-систем, которые в ней используются.
Теперь попробуем разобраться в типах SAP-систем. Условно их можно разделить на следующие категории:
- ABAP. SAP-системы, построенные на платформе SAP NetWeaver ABAP Application Server (ABAP — это проприетарный язык программирования, разработанный в SAP и использующийся только в программных продуктах этой компании). Для приведенной в качестве пример компании X — ABAP-системами будут SAP ERP, SAP EWM, SAP Solution Manager и SAP ATTP.
- JAVA. SAP-системы построенные на платформе SAP NetWeaver Java Application Server. В основе разработки лежит популярный в Enterprise — среде язык Java. Для компании X — это SAP Enterprise Portal. SAP PO, SAP MII и ещё раз SAP Solution Manager (SolMan — это dual-stack решение).
- OTHER. В третью категорию попадают системы, которые достались SAP в ходе поглощения других компаний и к классической архитектуре SAP прямого отношения не имеют. Как правило это JAVA-системы использующие Apache и Tomcat. Для компании X — это SAP Hybris и SAP OpenText.
Стандартный функционал любой SAP-системы «из коробки» практически никогда не покрывает потребности реальной компании и требует доработки с привлечением SAP-консультантов, ABAP и JAVA разработчиков. Примеры разработок могут быть самыми разными от формы этикетки на короб, до фонового задания, которое блокирует возможность работы с сырьём, у которого истёк срок годности.
Для тех, кого данная вводная часть заинтересовала и кто хочет узнать о SAP немного больше и написать свою, может быть, первую строчку кода, была выпущена специальная Developer-версия, которую можно установить на виртуальную машину или в Яндекс.Облаке. Второй способ рассмотрим в виде следующего пошагового руководства,
SAP в Яндекс Облаке
Шаг 1. Скачиваем установочные файлы SAP
Заходим на портал SAP Community Trials and Downloads. В строке поиска укажем, что хотим загрузить SAP NetWeaver AS ABAP Developer Edition 7.52 SP04.
Загружаем все 11 частей RAR-архива, внутри в котором SAP Application сервер, база данных SAP ASE и Frontend — клиент SAP Logon.
Шаг 2. Создаём виртуальную машину в Яндекс.Облаке
Для подключения к виртуальной машине в Яндекс.Облаке необходимо сгенерировать пару Public/Private ключей.
Смотрите пошаговые инструкции для Linux/macOS и Windows 10 в документации.
Для машин с ОС Windows 7/8 понадобится следующий бесплатный софт:
- PuTTY — SSH-клиент.
- PuTTYgen — Генератор Public/Private ключей.
- WinSCP — SFTP-клиент.
Создадим связку Public-Private ключ с помощью PuTTYgen.
Регистрируемся / заходим в Яндекс Облако (https://cloud.yandex.ru/). Переходим в раздел Compute Cloud и приступаем к созданию виртуальной машины.
Важно
Необходимо иметь в виду, что имя виртуальной машины при создании должно быть задано как vhcalnplci. Именно на этот hostname завязан скрипт установки SAP.
Зададим подходящие для SAP NetWeaver AS ABAP Developer Edition характеристики ВМ:
- vCPU — 2
- RAM — 6 GB
- SSD — 13 GB
В качестве операционной системы выберем последнюю стабильную ОС OpenSUSE, на момент написания статьи — это версия ОС OpenSUSE 42.3. Загрузочный диск 13 ГБ.
Укажем Логин и Public SSH-ключ, сгенерированный с помощью PuTTYgen
В разделе Диски создаем отдельный диск на 87 ГБ.
Шаг 3. Подготавливаем виртуальную машину к установке SAP
Находим в настройках Публичный IPv4 адрес:
Подключаемся к созданной ВМ с помощью Putty-клиента, указав в подключении публичный IPv4, заданный логин и путь к Private–ключу.
Подготовим файловую структуру созданной ВМ к установке SAP.
lsblk
sda
— boot диск, sdb
— диск под данные.
Создадим на нём два раздела под дистрибутивы (20 GB) и SAP (остальное), сделаем это с помощью утилиты fdisk
:
fdisk /dev/sdb
Проверим ещё раз структуру дисков и создадим файловую систему ext4:
lsblk
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
Создадим директории под дистрибутив и SAP Application Server, а также примонтируем к ним созданные на предыдущем шаге разделы. Также обновим файл /etc/fstab, чтобы монтирование восстанавливалось при перезагрузке.
mkdir /usr/sap
mkdir /distr
mount /dev/sdb1 /distr
mount /dev/sdb1 /usr/sap
vi /etc/fstab
Импортируем в WinSCP настройки из Putty. Подключимся к ВМ и загрузим в /distr установочные файлы SAP.
Установим и запустим UUIDD демон. UUIDD — universally unique identifiers (этот сервис требуется для работы SAP)
zypper install uuidd
service uuidd start
Проверим наличие библиотек libaio
/ libaio1
. В версии openSUSE 42.3 эти библиотеки есть, поэтому шаг носит опциональный характер.
rpm -qa | grep libaio
rpm -qa | grep libaio1
С помощью команды ifconfig
находим внутренний IPv4-адрес и добавляем его в виде такой строчки в файл /etc/hosts:
vi /etc/hosts
<inet addr> vhcalnplci vhcalnplci.ru-central1.internal
Установим разрешение на папку с установочными файлами SAP:
chmod -R 777 /distr
Шаг 4. Устанавливаем SAP
Запускаем скрипт инсталляции с правами root — пользователя.
cd /distr ./install.sh
Соглашаемся с условиями лицензионного соглашения.
Указываем мастер-пароль для пользователей, которых SAP создаст во время инсталляции.
SAP NetWeaver 7.52 SP04 и база данных SAP ASE успешно установлены и запущены.
Шаг 5. Запуск SAP и пост-инсталляционные шаги
Устанавливаем Front-End клиент SAP Logon.
Настраиваем строку подключения:
Application Server — публичный IPv4-адрес
Instance number — 00
System ID — NPL
После установки нам доступны манданты 000 и 001.
000 — Технический мандант для настроек и обновлений. Создаётся во всех SAP-системах.
001 — Мандант для работы.
- Мандант — это логическое разделение системы и базы данных. Классический пример использования мандантов — это разделение системы между филиалами одной компании, где есть манданто-зависимые данные, например, учетные записи сотрудников, и манданто-независимые, например, версия ядра и компонентов системы.
Авторизоваться можно под одним из следующих предустановленных пользователей:
В целях безопасности рекомендуется зайти под пользователем SAP и сменить стандартные пароли. Сделать это можно в транзакции SU01.
- Транзакция в SAP — это технически ярлык на ABAP-программу. Для SU01 запуск этой транзакции — это вызов программы SAPLSUID_MAINTENANCE. Код транзакции необходимо вводить в строке Command Field либо добавлять их в Favorites.
Шаг 6. Обновление лицензии
Для продолжения работы требуется обновить начальную лицензию.
Для этого необходимо перейти в транзакцию SLICENSE и скопировать значение Active Hardware Key.
Переходим на портал SAP License Keys for Preview, Evaluation and Developer Versions:
https://go.support.sap.com/minisap/#/minisap
Выбираем пункт NPL — SAP NetWeaver 7.x (Sybase ASE).
Заполняем Имя, Фамилию и Hardware Key, скопированный из SLICENSE.
Загружаем сгенерированный файл с лицензией (NPL.txt) в транзакции SLICENSE.
Шаг 8. Начало работы
Заходим в SAP под предустановленной учетной записью DEVELOPER и приступаем к разработке. Для этого запускаем транзакцию SE38 и создаём ABAP — программу ZTEST, в которой реализуем простой отчёт выгрузки существующих в системе пользователей (записи из таблицы USR01).
ABAP — код:
TYPE-POOLS: slis.
*&---------------------------------------------------------------------*
*& Data Declaration
*&---------------------------------------------------------------------*
DATA: it_usr01 TYPE TABLE OF USR01.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.`
*&---------------------------------------------------------------------*
*& START-OF-SELECTION`
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*Fetch data from the database
SELECT * FROM USR01 INTO TABLE it_usr01.
*Build field catalog
wa_fieldcat-fieldname = 'MANDT'.
wa_fieldcat-seltext_m = 'MANDT'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'BNAME'.
wa_fieldcat-seltext_m = 'USER'.
APPEND wa_fieldcat TO it_fieldcat.
* display ALV list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_usr01
EXCEPTIONS
program_error = 1
OTHERS = 2
Результат вывода:
Заключение
Установить SAP и написать свою первую программу оказалось достаточно просто. В следующей части этой серии блогов установим в Яндекс Облаке базу данных со встроенным веб-сервером SAP HANA XS и напишем своё первое веб-приложение для неё.