29 декабря 2011 г.

Установка дополнительного языка в SAP систему

Любая SAP система после установки содержит в себе 2 предустановленных языка - английский и немецкий. Мы живем в России (или другой дружественной стране) и разговариваем на русском (украинском и т.д.) языке. Поэтому возникает необходимость в установке дополнительного языка в SAP систему.

До версии 6.20 в SAP системе поддерживалась установка других языков, но в определенных комбинациях при одновременной установке. То есть разные комбинации активных языков в системе, в рамках одной кодовой страницы. Что касается русского языка, то он уживается только с английским языком (немецкий язык приходится деактивировать). Подробности можно прочитать в SAP Note # 73606 - Supported Languages and Code Pages.

Для тех кому "кровь из носа" нужны были "несовместимые" в рамках одной кодовой страницы языки, мог использовать MDMP системы (Multi-Display/Multi-Processing), в которых кодовые страницы динамически переключались на уровне сервера приложений.

Начиная с версии системы SAP NetWeaver 7.0, SAP вводит для хранения кодовую страницу - Unicode и прекращает поддержку MDMP систем. Unicode позволяет кодировать символы практически любого языка и помогает "ужиться" большему количеству активных языков в SAP системе. В результате установка дополнительного языка упрощается. Но за все надо платить. В случае Unicode приходится платить увеличенными требованиями к аппаратному обеспечению сервера (база вырастает примерно на 30 %, а требования к CPU, ОЗУ и сети на 30-50 %). На данный момент все новые версии SAP систем возможны только в установке "с Unicode". Для старых систем компания SAP рекомендует апгрейд на Unicode.

По поводу Unicode читать - SAP Note 79991 - Multi-Language and Unicode support of SAP applications.

Кстати, посмотреть кодовую страницу данной SAP системы можно через меню "Система -> Статус":


Так как дополнительный язык (а таким компания SAP считает все кроме английского, немецкого и японского) может не охватывать все транзакции и поля, то необходимо (рекомендуется) после основного импорта языка выполнять процедуру замещения (supplement) дополнительного языка вторым языком системы. Для русского таким является английский.

Основные этапы установки дополнительного (русского) языка  в систему (смотрите внимательно какие этапы для какой системы необходимы):
  • Запустить отчет RSCPINST. Добавить новый язык (русский), если данная база данных не-Unicode, то необходимо удалить несовместимый немецкий язык. Выполнить сначало simulate, если пройдет нормально, то затем выполнить active.
  • Выставить следующие параметры в профайле инстанции (на примере установленного русского и английского языка):
    install/codepage/appl_server                 1500 (параметр для не-Unicode системы)
    zcsa/installed_languages                        ER
    zcsa/second_language                            E
    zcsa/system_language                            R
  • Войти в транзакцию SMLT, добавить в список русский язык. Указать путь до пакета (до уровня RU) и импортировать. Пакет удобно положить в директорию \usr\sap\trans\EPS\in.
  • Перезапустить сервер приложений SAP.
  • Запустить Supplementation with English через транзакцию SMLT.
После этого в систему возможен вход на русском языке.

Для последних SAP систем появилась транзакция I18N, которая объединяет ссылки на нужные транзакции связанные с установкой языков.

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


В ролике показаны все этапы установки языка в Unicode систему. Хочу обратить внимание, что на 12-й минуте есть момент, как импортировать профили инстанции в базу данных. Правда, потом редактирование параметров профиля идет через "Basic Maintenance".

Подробности по данной теме можно найти в курсе ADM102 (Unit 5. Globalization).

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


5 декабря 2011 г.

Установка диалоговой инстанции для SAP ERP 6.0 SR3

SAP система имеет трезвенную архитектуру, состоящую из сервера базы данных (DB), сервера приложений и сервера презентации. Если мы не используем тонкого клиента, сервером презентации является рабочая станция пользователя с установленным клиентским местом SAP - SAP GUI. Сервер базы данных это СУБД того или иного вендора (ORACLE, MS SQL, DB2). В типовых случаях сервер базы данных не масштабируется. Сервер приложений в минимальной конфигурации состоит из центральной инстанции (CI), в состав которой обязательно входит Message Server (MS).

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

Рабочие процессы открывают соединение до процессов базы данных на сервер базы данных, а диспетчер диалоговой инстанции регистрирует себя у Message Server'а центральной инстанции.



В моем блоге я уже не раз в постах упоминал про диалоговые инстанции и особенности работы с ними:
Я написал инструкцию по установке ABAP диалоговой инстанции (zip-архив, 1022 Кб) для SAP ERP 6.0 SR3 на платформу Windows/ORACLE. Инструкция в формате pdf, количество страниц - 10.

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


28 ноября 2011 г.

Печать в системе SAP. Часть III.

Первые две части можно прочитать тут - часть I, часть II.

На сервере приложений обработку осуществляют процессы спула (тип S). Количество процессов определяется параметром инстанции: rdisp/wp_no_spo. По умолчанию, он равен 1.

При большом количестве пользователей часто один процесс спула не справляется с потоком печати и образуется очередь к процессу спула, которая нервирует пользователей и тормозит бизнес-процессы компании. Естественным решением в данном случае является увеличение количества процессов спула инстанции, то есть увеличение параметра rdisp/wp_no_spo с перезагрузкой сервера приложений.
Но простое увеличение данного параметра не ведет к избавлению от очереди печати, так как можно обнаружить, что запросы на печать все равно обрабатывает только один процесс спула.

Это легко проверить, войдя в транзакцию SM50 и нажав кнопку "ЦП (Ctrl+Shift+F6)" и посмотрев сколько времени центрального процессора потратил каждый процесс инстанции.


Для включения в работу всех процессов спула необходимо увеличить параметр системы rdisp/wp_no_spo_Fro_max.Сделать его значение равным значению параметра rdisp/wp_no_spo.

Подробности в SAP note # 108799 - How many spool work processes for each instance?.

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


24 ноября 2011 г.

Печать в системе SAP. Часть II.

В прошлой раз я начал рассказ про настройку печати из SAP системы по типу F (Front-End Printing). В первой части описана настройка печати в системе SAP. Рассмотрим клиентскую часть.

Рабочая станция пользователя является сервером печати и получает от процесса спула запросы на печать. Данные запросы обрабатываются программой SAPLPD (saplpd.exe). Программа запускается автоматически при отправке запроса на печать и выглядит следующим образом:


Вручную программу можно запустить выполнив на рабочей станции пользователя: "Пуск" -> "Выполнить" -> "saplpd". Данная утилита использует для печати принтер, установленный в системе Windows по-умолчанию. Рекомендация – использовать максимально простое имя принтера в системе Windows.

Для корректной печати русских символов на рабочей станции пользователя необходимо:
  1.  Выполнить подмену шрифтов в saplpd. Для этого выполнить пункт меню «Options -> Font substitution» и прописать следующее:


    Либо создать и выполнить файл-реестра следующего вида:
    REGEDIT4

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
    "SAP_CODEPAGE"="1504"

    [HKEY_CURRENT_USER\Software\SAP\SAPlpd\SAPLPD]
    "SAPFont1"="Courier New"
    "PrinterFont1"="Courier New Cyr"
    "SAPFont2"="Arial"
    "PrinterFont2"="Arial Cyr"
    "SAPFont3"="Times New Roman"
    "PrinterFont3"="Times New Roman Cyr"
    "SAPFont4"=" Courier"
    "PrinterFont4"=" Courier New Cyr"
    "WinCharSet"="204"
  2.  Прописать переменную окружения SAP_CODEPAGE = 1504.



21 ноября 2011 г.

Обновление системы на базе SAP NetWeaver 7.0: видео

В дополнение к посту про обновление системы есть пара роликов на youtube.

В первом ролике показан процесс обновления ядра (SAP kernel) системы.


В качестве платформы в ролике использована система SAP ERP 6.0 IDES. Ролики не мои, поэтому есть небольшие комментарии к видео:
  1. Определение текущего уровня SAP kernel - тут все наглядно и правильно.
  2. Загрузка новой версии SAP kernel - этап не показан, подробности можно посмотреть тут.
  3. Распаковка нового SAP kernel - есть избыточность в копировании sapcar. Я раньше делал также, но можно проще: если делать операцию из под пользователя <sid>adm, то у него в переменных окружения прописан путь до бинарных файлов SAP kernel и распаковать можно прямой командой:
    sapcar -xvf ARCHIVE.SAR
    подробности по работе с архиватором SAPCAR.
  4. Замена файлов старого SAP kernel новым - нет двух важных этапов: остановки системы перед копированием и создания резервной копии.
  5. Рестарт системы - если делать правильно, то тут должен быть старт системы.
    По поводу ошибки, которая возникает при старте системы после обновления SAP kernel, решение подробно описано тут.
Таким образом, данный ролик нагляден, но более правильная последовательность обновления описана в моей инструкции по обновлению SAP системы. У кого ролик не открывается, прямая ссылка - http://www.youtube.com/watch?v=MA2rbpPzBJg.

Второй ролик - про обновление SPAM/SAINT.


Этот ролик делал тоже не я. Комментарии:
  1. Распаковка SAR-архива - обратить внимание на директорию, в которой производится операция. Так как пакет небольшого размера, то можно сделать проще - загрузить обновление через SAPGUI и транзакцию SPAM.
  2. Загрузить пакет с обновлением, определить текущую версию SPAM/SAINT.
  3. Процесс обновления.
  4. Рестарт SPAM.
Прямая ссылка на ролик - http://www.youtube.com/watch?v=3_p57YUWjuc.

P.S. За наводку на ролики спасибо Роману Коробову. =)

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


15 ноября 2011 г.

Печать в системе SAP. Часть I.

Самым распространенным способом печати в системе SAP, на мой взгляд, является тип печати F (Front-End Printing) - с использованием рабочей станции пользователя в качестве сервера печати.


При отправке запроса на печать рабочий процесс спула (S) связывается с программой SAPLPD (на Windows: saplpd.exe) на рабочей станции пользователя и печатает, используя средства операционной системы, на принтере, установленном на рабочей станции пользователя по-умолчанию. На других операционных системах (MAC OS, UNIX) используются средства операционной системы без программы SAPLPD.

В Windows для печати используется протокол SAPWIN (SWIN, подробности в SAP note # 21738 - Device type SAPWIN). Особенностью данного вида печати является обязательное наличие коннекта к рабочей станции (SAP GUI), то есть фоновая печать в данном случае невозможна.

Подробности можно прочитать в курсе "ADM100 - SAP Web AS Administration I" (Unit 11).

С практической точки зрения, настройка принтера в системе производится следующим образом:
  1. Создать новый тип устройства ZSAPWIN. Войти в транзакцию SPAD -> кнопка «Полное администрирование» -> закладка «Типы устройств» -> строка «Типы устройств», кнопка «Просмотр». Перейти в режим «Редактировать» -> выбрать SAPWIN (Rel.4.x/SAPlpd 4.09+ ONLY!) -> кнопка «Создать по образцу (F5)». Скопировать SAPWIN в ZSAPWIN: кнопка «Выбрать» -> «Да» на запрос о создании типа устройств ZSAPWIN -> Включить в пакет (Z001) и в запрос на перенос.
  2. Войти во вновь созданный тип устройства ZSAPWIN, в полях «Набор знаков» и «СинтНаборЗнаков» вписать значение 1505 (Printer SAPWIN5  Russian MS-Windows codepage):


  3.  Нажать кнопку «Форматы»,
    для формата X_65_80 в «Инициализация принтера» откорректировать текст следующим образом:


    в форматы X_65_132, X_44_120, X_58_170, X_90_120, X_65_255, X_PAPER в «Инициализация принтера» добавить в конце строки:
    # wincharset 204 = ISO 8859/5
    \eW204;

    для формата X_90_120 в «Инициализация принтера» закомментировать следующую строку:
    #\ec16;

  4. Войти в транзакцию SE73 -> «Шрифты печати» -> кнопка «Изменить» -> войти в тип устройства ZSAPWIN. Для семейств шрифтов COURIER, HELVE и TIMES изменить в поле «ОпУпрП 2» значения на SF015.


  5. Транзакция SPAD -> Устройства вывода -> кнопка «Просмотр» -> перейти в режим редактирования. Нажать кнопку «Создать устройство»(Shift + F1). Заполнить поля:
    На закладке «Атрибуты устр-в»:
    «Устройство вывода» = FRONTEND (имя для нового принтера)
    «Краткое имя» = FRND (короткое имя принтера)
    «Тип устройства» = ZSAPWIN
    «Класс устройства» = Станд. принтер


    На закладке «Связь со СпулХоста»:
    «Метод» - F: Печать на хосте фронтэнда (или G: Печат на фронтэнде с технолог. упр. элем.)
    «Принтер хоста» = __default (двойное подчеркивание default, без пробелов)
    «Нет выбора устройства на фронтэнде» = не устанавливать


    Сохранить.
  6. Прописать всем пользователям, кто использует данный тип печати, в транзакции SU01 в закладке «ПостЗначения» поля:
    «Устр. вывода» = FRONTEND
    «Немедленный вывод» = установить
    «Удалить после вывода» = установить


Подробности в SAP note # 128105 - Frontend printing (collective note).

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


8 ноября 2011 г.

SAPCAR - архиватор компании SAP AG


SAPCAR это утилита для архивирования файлов компании SAP AG. Расширение архивов *.CAR и *.SAR. CAR-архивы использовались компанией до версии системы SAP R/3 4.6C и для работы с ними существовала утилита CAR. На данный момент утилита SAPCAR поддерживает оба формата (новый *.SAR и старый *.CAR). Правда, создает только SAR-архивы. CAR-архивы может читать/тестировать/распаковывать. Обычно в архивы данного формата помещаются пакеты обновления или части установочных дисков систем SAP (например, SAP kernel).

На установленной SAP системе утилиту SAPCAR можно найти в директории с SAP kernel:
UNIX: /usr/sap/<SAPSID>/sys/exe/run/
NT: <drive>:\usr\sap\<SAPSID>\sys\exe\run\
А самая свежая версия для всевозможных операционных систем всегда доступна на сайте SAP Support Portal (quick link - http://www.service.sap.com/patches) по пути "Support Packages and Patches -> Browse Our Download Catalog -> Additional Components -> SAPCAR". Не пугайтесь только расширения *.exe в файлах для UNIX-систем. Это расширение надо просто удалить после того, как скачаете утилиту.

Утилита SAPCAR commandline типа. Основные опции:
  • SAPCAR -cvf ARCHIVE.SAR * - упаковать все файлы и директории из текущей директории в ARCHIVE.SAR,
  • SAPCAR -cvf ARCHIVE.SAR dir - упаковать всю директорию "dir" в ARCHIVE.SAR,
  • SAPCAR -cvf ARCHIVE.SAR dir/* - упаковать все файлы без директорий из директории "dir" в ARCHIVE.SAR,
  • SAPCAR -avf ARCHIVE.SAR file1 file2 file3 - добавить файлы file1, file2, file3 к ARCHIVE.SAR,
  • SAPCAR -xvf ARCHIVE.SAR - распаковать ARCHIVE.SAR,
  • SAPCAR -xvf "ARCHIVE1.SAR ARCHIVE2.SAR" - распаковать 2 архива,
  • SAPCAR -xvf "*.SAR" - распаковать все архивы формата *.SAR из текущей директории.

Подробности об установке утилиты в SAP note 212876 - The new archiving tool SAPCAR, о других опциях - в выводе команды SAPCAR без параметров.

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