29 мая 2012 г.

Добавление текста на экран SAP logon

Начальный экран при входе в SAP систему через SAP GUI выглядит следующим образом:

Рис. 1. Начальный экран входа в систему SAP

Свободное место в правой части экрана входа (SAP logon screen) можно использовать с пользой для дела. Для этого необходимо войти в транзакцию SE61 и создать текст с именем ZLOGIN_SCREEN_INFO, типом "Общий текст" ("General text") и языком системы (определяется SAP параметром zcsa/system_language).

Рис. 2. Создание текста ZLOGIN_SCREEN_INFO

В редакторе ввести текст, который будет отображаться на экране при входе в систему:

Рис. 3. Редактирование текста ZLOGIN_SCREEN_INFO

Можно использовать иконки и значки SAP (список предоставляет отчет RSTXICON):

Рис. 4. Отчет RSTXICON

Для этого надо код символа (4-й столбец) заключить между символами "@". Учтите, что иконки могут стоять только в начале строки.
На экране можно написать тип и версию системы, предупреждение, справочную информацию о мандантах системы или контакты. После того как текст готов, необходимо сохранить (добавив настройку в запрос) и активировать, нажав соответствующие кнопки:

Рис. 5. Сохранение текста

После этого начальный экран входа в систему будет выглядеть так:

Рис. 6. Экран входа в систему с добавленным текстом

Данная настройка действует во всех системах, начиная с SAP R/3 4.6, и описана в SAP note # 205487 - Own text on SAPGui logon screen.


Автор: Шиболов Вячеслав Анатольевич


21 мая 2012 г.

Диалоговые инстанции SAP: балансировка нагрузки

Любая SAP система имеет трехзвенную архитектуру.

Рис. 1. Трехзвенная архитектура SAP системы

Уровень базы данных представляет собой инстанцию базы данных (ORACLE, MSSQL, MAXDB, DB2, SYBASE ASE). Идентифицируется DBSID.
Уровень приложений состоит из центральной инстанции SAP (CI). Если упрощенно, то это исполняемые файлы SAP kernel плюс ABAP/J2EE программы, хранящиеся в базе данных. Идентифицируется SAP SID или просто SID, которые обычно совпадает с DBSID.
Ну и наконец, уровень представления, который в большинстве случаев располагается на рабочей станции пользователя и представляет собой SAP GUI. В случае использования "тонкого клиента" (пользователь работает через Web-браузер) уровень презентации переносится на сервер SAP (ITS сервер).

Для повышения быстродействия SAP позволяет распределить уровень приложений по нескольким серверам. Для этого необходимо к центральной инстанции установить один или несколько дополнительных диалоговых инстанций SAP (DI).

Рис. 2. SAP система с несколькими серверами приложений

Рабочие процессы (в основном диалоговые) диалоговых инстанций имеют свои соединения к shadow-процессам ORACLE. А процесс Message Server (MS) центральной инстанции организовывает работу диалоговых инстанций, при запуске регистрируя их у себя, а затем распределяя соединения пользователей и отслеживая состояние SAP инстанций.

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

Пользователи системы через SAP GUI могут коннектиться напрямую на любую диалоговую инстанцию (включая центральную), зная IP-адрес/hostname сервера и номер инстанции. Но в данном случае это очень "скучно". Интереснее создать логон-группы (SAP LogonGroup) в транзакции SMLG, распределив диалоговоые инстанции между ними. На рабочем месте каждого пользователя в SAP Logon прописать ту или иную логон-группу и указать адрес Message Sever. Вход в систему в данном случае происходит по следующей схеме:
  1. Первый пакет от SAP GUI пользователя отправляется к Message Server.
  2. Message Server имея список запущенных серверов приложений, входящих в логон-группу пользователя, выделяет один из них, посылая обратный пакет с координатами сервера, пользователю.
  3. Получив сетевой пакет от Message Server, SAP GUI соединяется с сервером приложений, координаты которого получил.
Рис. 3. Соединение с системой SAP через логон-группу

Обсудим, как лучше распределить сервера приложений (диалоговые инстанции) по логон-группам. Возьмем для примера систему SAP ERP, в которой работают 400 пользователей, равномерно распределенные по SAP модулям системы: MM, FI и PM. Данные пользователи работают в 8 подразделениях предприятия. Установлены центральная инстанция системы и 6 дополнительных серверов приложений.

Следуя управленческому подходу, можно разделить сервера приложений, создав логон-группы для подразделений. Например, на 6 диалоговых серверах будут созданы 3 логон-группы (по 2 сервера на группу). Пользователи 8 подразделений будут распределены по 3 логон-группам по территориальному или иному признаку. Этот подход, к сожалению, не эффективный.

Рекомендуемым подходом будет распределить пользователей по модулям системы. То есть создать 3 логон-группы (по 2 сервера приложений в каждой): MM_users, FI_users, PM_users. В SAP Logon пользователям прописать логон-группу, с функциональностей которой пользователь работает. Преимущество данного решения следующее. В сервере приложений SAP есть несколько буферов для ускорения работы системы (самый крупные и важные - Program buffer и Table buffer). И когда на инстанции работают пользователи одного модуля, то они запускают в основном приложения своего модуля и обращаются к таблицам, содержащим данные этого модуля. Таким образом, SAP буферы диалоговых инстанций логон-группы будут содержать программы, объекты словаря, экраны и данные таблиц только одного модуля. Это резко повышает количество попаданий в буфер, эффективность использования буферов и памяти сервером приложений SAP. И уменьшает время реакции (response time) всей системы.

Конечно, если какой-то модуль в системе очень сильно нагружает систему, в сравнении с другими, например, PM, то эффективнее будет отдать логон-группе PM_users 3 диалоговых инстанции. А на трех других создать логон-группу для модулей FI и MM.

Вообще грамотное использование диалоговых инстанций позволяет получить ряд плюсов:
  • минимум 2 диалоговые инстанции в логон-группе обеспечат отказоустойчивость группы. При выходе из строя одной из инстанций в логон-группе пользователи смогут работать на оставшейся (пользователи, кто был на злополучной инстанции вынуждены будут переконнектиться к системе) без изменения записи в SAP Logon. 
  • минимум 2 диалоговые инстанции в логон-группе  активируют встроенный механизм балансировки нагрузки между инстанциями внутри логон-группы. Message server при выборе диалоговой инстанции для пользователя руководствуется временем отклика (response time) и количеством пользователей, работающих на инстанциях.
  • распределение пользователей по диалоговым инстанциям позволяет исключить из логон-групп центральную инстанцию. После чего, уменьшив размеры SAP буферов на центральной инстанции, можно отдать все ресурсы сервера (CPU, ОЗУ) базе данных (ей-то мало не бывает никогда :о) ).
 Подводя итоги, правила "лучшей практики" в случае логон-групп следующие:
  • включайте в логон-группу минимум 2 сервера приложений,
  • разделяйте пользователей по модулям/функциональности,
  • закрывайте центральную инстанцию для пользователей (по возможности),
  • "кормите" ORACLE лучше, так как больше рабочих процессов SAP требуют больше процессов ORACLE. Частные случаи можно посмотреть тут и тут.

Автор: Шиболов Вячеслав Анатольевич


17 мая 2012 г.

Программное обеспечение для администратора


На рабочем ноутбуке, который я использую на данный момент, установлено следующее программное обеспечение:
  • MS Windows XP Professional SP3 (с Windows 7 очень быстро вернулся опять на XP).
  • MS Office 2003 + пакет обеспечения совместимости с файлами MS Office 2007.
  • архиватор 7-zip.
  • двух-панельный файловый менеджер Far (активно использую встроенный FTP-клиент).
  • для коннекта к серверам использую: Windows Remote Desktop (протокол RDP), RAdmin, RealVNC, Xmanager (триальная версия) и PuTTY (telnet, ssh).
  • SAP GUI 7.20 for Windows.
  • почтовый клиент Mozilla Thunderbird (свежий).
  • интернет-браузер Mozilla Firefox (свежий). Использую для постоянной работы. Пробовал перейти на Google Chrome. Он очень быстрый, имеет свежий лаконичный дизайн, приятные мелочи (такие как свой интерфейс печати, синхронизация пользовательских данных между разными машинами), но, к сожалению, не поддерживается SAP, в отличии от Firefox, и все таки пока некорректно отображает некоторые сайты (например, PlatinHTML HELP SAP системы).
  • интернет-браузер MS Internet Explorer 8 (запасной вариант).
  • чтение документации Adobe Reader, WinDJView.
  • SAP Download Manager для скачивания дисков и пакетов SAP.
  • для связи Skype, MirandaIM (ICQ).
  • ORACLE VirtualBox для виртуализации, тестирования, обучения. В последнее время перешел на учебный сервер, на рабочей станции не использую виртуальные машины.
Из дополнительного:
  • для просмотра/обработки изображений IrfanView.
  • просмотра видео, прослушивания аудио VLC media player.
Основные принципы выбора ПО для работы: меньше программ, но больше функций; бесплатные (лучше open-source); легкие.

А какие полезные программы используете вы? Буду рад, если посоветуете что-то в комментариях.

Автор: Шиболов Вячеслав Анатольевич


12 мая 2012 г.

Поиск по SAP сайтам

Нашел хороший сайт с поиском по крупным ресурсам, связанным с SAP.
Поиск построен на основе поисковой машины Google и "шуршит" по сайтам:
  • SCN.sap.com, 
  • HELP.sap.com, 
  • saptechnical.com, 
  • sapfans.com, 
  • sapboard.ru, 
  • sapnet.ru, 
  • sapforum.biz.

Интерфейс аскетичный, ищет как на русском, так и на английском языках.



Очень удобно пользоваться при поиске информации в случае ошибок и затруднений.
Хотя обычный поиск в Google не хуже, только шире.


Автор: Шиболов Вячеслав Анатольевич


5 мая 2012 г.

Копирование SAP систем - I. Перенос/восстановление.

Обычно SAP система устанавливается из комплекта дисков, предоставляемых компанией SAP AG. После установки системы требуется выполнить ряд пост-установочных шагов. Таких как, установка дополнительных SAP-компонент, обновление SAP системы до нужного уровня SPS, установки принтера, дополнительного языка, создание рабочего манданта, начальная настройка модуля BASIS, создание пользователей и т.п. Только после этого система будет готова к работе консультантов и пользователей. При данном типе установки мы получаем, так называемую, "чистую систему". В системе нет данных пользователей (master data), нет настроек для бизнес-процессов предприятия. Только то или иное SAP решение (в зависимости от того, что мы устанавливали - SAP ERP (SAP ECC), SAP BI, SAP XI, SAP Solution Manager, SAP CRM и т.д.), состоящее из набора программ, экранов, таблиц, транзакций и инструментарий для доработки этого решения до нужд предприятия или разработки своего.

Но для SAP систем есть такое понятие как копирование системы. Обычно под ним подразумевается создание новой SAP системы из существующей. Это позволяет "убить двух зайцев": перенести собственные разработки/доработки, настройки и данные пользователей в новую систему, а так же освободить технического специалиста от большинства пост-установочных шагов (установка пакетов поддержки, дополнительного языка и т.п.). :-)
В рамках этого перед техническим специалистом может стоять одна из следующих задач:
  • Перенос системы с сохранением SID на новый сервер в рамках той же платформы (Disaster system recovery),
  • Гомогенное копирование системы (Homogeneous system copy),
  • Гетерогенное копирование системы (Heterogeneous system copy).
Рассмотрим первую задачу - необходимо установить SAP систему заново, сохранив содержимое базы данных, SID системы и версию всех SAP компонент. Когда может возникнуть такая задача? Например, при восстановлении аппаратной части сервера после сбоя с переустановкой операционной системы. Или в случае "переезда" на более мощный сервер, но с той же платформой (тип OS, разрядность, СУБД). Получаем очень частный случай гомогенного копирования системы - гомогенное копирование системы с сохранением SID.
Для решения поставленной задачи необходимо иметь:
  • исходный сервер с исходной SAP системой, либо резервная копия исходной системы, куда входит - полное описание системы (что нужно всегда иметь для каждой системы, которую мы обслуживаем), резервные копии базы данных, профилей SAP системы и инстанции базы данных, транспортной системы, текущего ядра SAP системы (не обязательно, но желательно).
  • целевой сервер или восстановленный и готовый к работе сервер,
  • установочные диски операционной системы (если необходимо),
  • установочные диски SAP системы, которую мы будем восстанавливать/переносить.
Последовательность действий следующая (в случае ABAP и ABAP+J2EE систем):
  1. Подготовка исходной информации - резервные копии исходной системы (см. выше).
  2. Подготовка целевого сервера: настройка оборудования, дисковых массивов, установка операционной системы той же версии и разрядности, как и на исходной системе. В рамках одного семейства можно и разные. Например, MS Windows Server 2003 -> MS Windows Server 2008 или HP-UX 11.00 -> HP-UX 11.11, главное бинарная совместимость (тип процессора и разрядность). Настройка файловых систем. Для операционных систем MS Windows обязательное условие - сохранение тех же логических дисков (размер не важен), так как файлы базы данных будут располагаться на тех же дисках, что и на исходной системе. Имя сервера, домен, сетевые настройки должны совпадать с исходным.
  3. Проводим установку SAP системы на целевом сервере (как новой), сверяясь с описанием исходной системы (SID, расположение директорий SAP системы, пароли системных пользователей и т.п.). СУБД устанавливаем той же версии, вплоть до уровня пакетов поддержки. Можно не делать ряд шагов для ускорения процесса. Например, этап сбора ORACLE статистики. 

    Уточнение: для последних версий SAPInst процедура, к сожалению, только такая. Для предыдущих (версии системы SAP R/3 4.6, SAP R/3 4.7 Enterprise) возможно прерывание процесса установки на этапа ImportABAP, так как до этого этапа центральная инстанция со всеми пользователями и службами уже установлена.
  4. После установки, проверив успешность установки и доступность для входа SAP системы, не надо делать никаких пост-установочных шагов. Останавливаем SAP-систему. В случае MS Windows - все службы SAP и ORACLE.
  5. Восстанавливаем файлы базы данных (можно просто пройтись по директориям: дата-файлы, control-файлы, онлайн redologs, профайлы ORACLE). Восстанавливаем SAP-профайлы, директории транспортной системы (настройку транспортной системы, файлы запросов, журналы), ядро SAP системы. 
  6. Запускаем базу данных и SAP систему. Первый запуск будет дольше обычного, как при обновлении SAP ядра
  7. Дополнительный шаг, который вероятно надо будет сделать, установить новую SAP лицензию.


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

В итоге, мы получаем систему идентичную исходной во всём. 

Данный метод переноса системы не стоит использовать при создании новой системы, так как две системы с одинаковым SID-ом не могут существовать в одном ландшафте, и осуществлять переносы между такими системами одно мучение. :-)

Про копии систем я расскажу в следующих постах.


Автор: Шиболов Вячеслав Анатольевич