30 декабря 2011 г.

С наступающим Новым Годом!

Друзья!
Поздравляю вас всех с Наступающим Новым Годом!


В этом году количество читателей моего блога выросло. С кем-то из Вас я знаком лично, с кем-то по переписке, а кто-то просто использует информацию из блога в своей работе и любимом (или не очень) деле. :-)


Я очень ценю, что Вы были со мной этот год. И неважно присоединились Вы ко мне в середине года или читаете меня уже пару лет. Ведь именно для Вас я и пишу тут. :-)

Я не особый поклонник праздников, но Новый Год это не просто повод съесть тарелочку оливье и посмотреть в очередной раз "Иронию судьбы...". Лично для меня это черта, время подвести итоги года и запланировать следующий год. 

Желаю Вам отметить этот праздник так, как любите это делать Вы. 
И пусть следующий год будет лучше, светлее и удачливее, чем год прошедший! 
Интересной работы, хороших людей, вдохновляющих идей и толстых конвертов!
Еще раз с Наступающим Новым Годом!
И пусть он, вопреки календарю Майя, будет не последним! :-)


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


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 без параметров.

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


31 октября 2011 г.

Статистика по ОС/СУБД с установленными SAP системами

Начинающие и опытные SAP BASIS консультанты часто задаются вопросом: а какие операционные системы (ОС) и СУБД чаще выбирают для установки продуктов компании SAP AG?

Ответ на данный вопрос помог бы понять - знание каких ОС и СУБД более востребовано на рынке, а каких менее. Не секрет, что часто SAP BASIS консультанту требуется не только знание систем SAP, но и навыки администрирования, а иногда и тонкой настройки, операционных систем и баз данных. Всё выучить на достаточно глубоком уровне сложно, поэтому приходится выбирать.

Мне удалось получить и проанализировать данные по количеству зарегистрированных инсталляций систем SAP с привязкой к ОС и СУБД. Данные не самые свежие, на полноту их я тоже не претендую, но баланс на российском рынке, я думаю, показывает.

Итак, для России расклад такой.


Отдельно для Москвы.


NT/INTEL - это та или иная версия MS Windows Server.
Из статистики лидеры видны четко.

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


25 октября 2011 г.

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


Выложена новая инструкция - обновление системы на базе SAP NetWeaver 7.0 (zip-архив, 1558 Кб).

В данной инструкции на примере обновления системы SAP Solution Manager 7.0 EHP 1 с SPS 20 до SPS 27 показано в подробностях обновление ABAP и J2EE стеков системы, установка нового SAP kernel.

Система установлена на MS Windows 2003 Server с ORACLE 10.2.0.4 на платформу x64.
Инструкция в формате pdf, количество страниц - 24.

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


20 октября 2011 г.

Отмена перевода часов в 2011 году

Помните "проблему 2000 года"? В 2011 году у нас в стране похожая проблема - в России принят закон об отмене перевода часов на летнее/зимнее время.

Таким образом, с момента принятия закона в России меняются все часовые пояса - смещаются на час вперед (см. таблицу) и отменяется обязательный перевод часов 2 раза в год. Чем это грозит для нас? А тем, что мы автоматизировали-автоматизировали процесс перевода часов на серверах, а теперь его надо раз-автоматизировать. =)


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

Начнем с операционных систем. Для семейства операционных систем MS Windows компания Microsoft в августе 2011 года выпустила пакет патчей KB2443685, которые решают эту проблему. Описание проблемы можно найти тут. А патчи для своей версии ОС можно скачать тут. До установки патча было так:


После "вступления закона в силу на сервере" так:


Для HP-UX есть UNOF (unofficial) патчи для версий системы HP-UX 11.11, 11.23, 11.31. Патчи имеют вид типа: UNOF_tztab_1111_09_10.depot. Официальные версии компания HP обещает выпустить в конце III квартала 2011 года. Патч изменяет файл /usr/lib/tztab. Раньше для московского часового пояса было так:

# Western Russia (Moscow) Time, Western Russia (Moscow) Daylight Savings
# Time
WST-3WSTDST
0 3 25-31 3  1983-2038 0   WSTDST-4
0 2 24-30 9  1983-1995 0   WST-3
0 2 25-31 10 1996-2038 0   WST-3

Теперь это выглядит так:

# Western Russia (Moscow) Time, Western Russia (Moscow) Daylight Savings
# Time
WST-3WSTDST
0 3 25-31 3  1983-2011 0   WSTDST-4
0 2 24-30 9  1983-1995 0   WST-3
0 2 25-31 10 1996-2010 0   WST-3
После установки патча перезагружать систему не надо. Используемый часовой пояс в файле /etc/TIMEZONE не изменяется - TZ=WST-3WSTDST.

Так же HP предлагает обновить TZ для java специальной утилитой. Подробности описаны тут.


Теперь посмотрим, что у нас есть для системы SAP. Компания SAP AG выпустила 2 SAP notes:

По второй ноте можно импортировать в систему новые часовые пояса (TIME ZONE). Для этого необходимо войти в систему и выполнить отчет TZCUSTIM, в котором указать путь до файла tzdata.dat.




Данный импорт необходимо провести для всех мандантов системы (включая 000). После этого можно проверить настройки отчетом TZONECHECK.



Подробности в вышеуказанной второй ноте в прикрепленном файле. Для систем с SAP_BASIS ниже версии 620 (SAP R/3 4.6C, SAP R/3 Enterprise 4.7) вышеуказанные отчеты предлагается создать в системе самим. Данные настройки можно произвести и вручную, подробности в первой ноте.

Напоминаю, что настройка системного часового пояса в системе SAP производится через транзакцию STZAC. Старые часовые пояса выглядели так:


После применения вышеуказанных SAP notes так:


После этого 30 октября можно спать спокойно. =)

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


17 октября 2011 г.

Ошибка в Windows Server после upgrade SAP kernel

При обновлении SAP kernel на сервере с операционной системой MS Windows Server 2003/2008 возможна следующая ошибка:
при первом запуске системы после обновления файлов в директории с SAP kernel, не запускается программа sapcpe (приложение для автоматической синхронизации исполняемых файлов ядра из центральной директории):


Причем SAP система может даже запуститься, только sapcpe не запускается.

Проблема связана с Microsoft ATL и описана в SAP note # 1375494 - SAP system does not start after applying SAP kernel patch.

Необходимо выполнить описанные в ноте шаги (скачать и установить update с сайта Microsoft), и все будет хорошо.



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


10 октября 2011 г.

Загрузка пакетов поддержки

Для того, чтобы скачать пакеты поддержки для продуктов SAP необходимо войти на SAP Support Portal (quick link http://www.service.sap.com/swdc) под своим S-user'ом. В данном разделе SAP Support Portal'а можно найти пакеты поддержки на все компоненты ABAP и J2EE стеков систем SAP, add-ons, установочные диски (для систем открытых для данного S-user'а) и installation guides. Пакеты поддержки находятся тут - "Support Packages and Patches -> My Company's Application Components".

Выбираем необходимые пакеты поддержки и добавляем их в Download Basket (виртуальная очередь на скачивание, закрепленная за данным S-user'ом). После того, как очередь сформирована следует предварительно просмотреть Download Basket на сайте SAP Support Portal (http://www.service.sap.com/swdc -> Software Downloads -> Download Basket).

Все пакеты поддержки для систем, базирующихся на SAP NetWeaver 7.0 и выше, не сразу попадают в Download Basket, а требуют "Подтверждения". Их можно найти в Download Basket в закладке Approval List.


Для процедуры "Подтверждения" требуется система SAP Solution Manager (версии 7.0 и выше) с настроенным Maintenance Optimizer. Если SAP Solution Manager на проекте нет, то можно написать SAP message в SAP Support Portal (quick link http://service.sap.com/message). Тема письма: "Approval list". Component: "SV-SMG-MAI-APR". Содержание может быть таким:
Dear Sir/Madam, 
please, approve "approval list" in Download Basket for S-user. 
Thank you.
Best Regards,
Vyacheslav Shibolov
S-user'а указываете своего и подпись ставите свою. =)

После получения ответа о "Подтверждении" очереди, можно начинать процедуру загрузки пакетов поддержки. Для этого на рабочую станцию (Windows, Linux, MacOS, Sun Solaris) надо установить SAP Download Manger, для работы которого требуется java версии от 1.4.2. Скачать SAP Download Manger можно на экране Download Basket.


При первом запуске SAP Download Manger необходимо настроить соединение до SAP Service Marketplace.


Так же можно настроить путь до локальной директории, куда будут загружены файлы из Download Basket.

После этого, если настройки корректны, SAP Download Manger отобразит список файлов из Download Basket. Их можно загрузить выборочно или все разом, немедленно или запланировать загрузку.


В этой SAP ноте можно найти компоненты для создания сообщений связанных с SAP Solution Manager: note 706705 - Solution Manager: Components for Messages.

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


3 октября 2011 г.

Изменения объектов в SAP системе. Часть II.

Про SAP SOFTWARE CHANGE REGISTRATION (SSCR) я уже писал в первой части поста. В прошлый раз я рассказал про ключ разработчика и про механизм проверки этого ключа в SAP системе. Продолжу.

Итак, в SAP системе есть две области имен:
  • область имен клиента (Z* и Y* объекты),
  • область имен SAP (стандартные объекты). 
Разработчик (специальный пользователь в SAP системе с ключом разработчика) может создавать, а в дальнейшем и изменять, объекты в области имен клиента. Компания SAP AG не запрещает вносить изменения в стандартные объекты, но отслеживает это с помощью все той же SSCR.

Когда пользователь с ключом разработчика делает попытку изменить стандартный объект, SAP система запрашивает ключ на изменение объекта (как программы или инклуда, так и объектов SAP-словаря).


Ключ на изменение объекта можно получить на SAP Support Portal (quick link - http://service.sap.com/sscr). Для получения необходимо войти под S-user'ом клиента, указать тип и название объекта, SAP-версию и номер инсталляции. В системе скопировать полученный ключ в поле "Ключ доступа" нажать "Дальше", если ключ корректный (проверяется программой "CHECK_DEVELOPER_KEY"), то откроется ABAP-редактор в режиме редактирования. Обязательно будет включен ассистент модификаций (Modification Assistant), который запоминает изменения в базе и документирует их комментариями. Настоятельно не рекомендую его отключать (такая возможность есть), так как это прибавит проблем в будущем при обновлении системы (установке нот, пакетов поддержки). Ключ на изменение объекта записывается в таблицу ADIRACCESS. После этого данный объект можно изменять без повторного ввода ключа на изменение.

Список полученных для системы ключей на изменение объектов можно увидеть, просмотрев содержимое таблицы ADIRACCESS в транзакции SE16. Список всех запрошенных ключей на изменение объектов для данного номера инсталляции можно посмотреть на SAP Support Portal (quick link - http://service.sap.com/sscr).

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

Ключ на изменение объекта не требуется в следующих случаях:
  • при создании индексов базы данных,
  • при генерации кодов программ средствами SAP (например, при настройке),
  • при изменении параметров буферизации у таблиц,
  • при создании UserExits,
  • при создании SearchHelps,
  • ну и при создании объектов в области имен клиента (Z* и Y*).

На данную тему есть SAP-ноты:

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


28 сентября 2011 г.

Изменения объектов в SAP системе. Часть I.

Вся функциональность SAP системы, за исключением SAP-ядра (поставляется в бинарных файлах), написана на языке ABAP (или JAVA). Все коды программ хранятся в базе данных системы и открыты для просмотра. В системе есть две области имен: область имен клиента (объекты начинающиеся с символов Z и Y) и область имен SAP (область стандартных объектов; объекты начинающиеся с остальных символов).
Для того, чтобы пользователь смог создавать (а в последующем и редактировать) объекты в области имен клиента, он должен иметь:
  1. соответствующие полномочия на разработку в системе,
  2. ключ разработчика (developer key).
С первым пунктом все понятно - нужен набор полномочий для работы с транзакциями SE37, SE38, SE80, SE11 и т.п. Остановимся на втором пункте. При попытке создать новый объект SAP система выдает запрос вида:


Начиная с SAP системы версии 3.0A, SAP отслеживает изменения, вносимые в систему. Это называется - SAP SOFTWARE CHANGE REGISTRATION (SSCR). И одна из частей этой системы регистрации изменений - это отслеживание всех разработчиков клиента.

Осуществляется это через ключ разработчика, который состоит из 20 цифр и запрашивается в соответствующей части SAP Support Portal (quick link - http://service.sap.com/sscr). Для получения необходимо войти под S-user'ом клиента и запросить ключ, указав номер инсталляции и ID пользователя. При введении ключа в поле "Ключ доступа" в диалоговом окне и нажатии "Дальше", SAP система проверяет корректность ключа, запуская C-программу SAP-ядра "CHECK_DEVELOPER_KEY", и в случае прохождения проверки, вносит ключ и ID разработчика в таблицу DEVACCESS. После этого пользователь с данным ID зарегистрирован в системе, как разработчик, и может, при желании, создавать/редактировать объекты в области имен клиента.

Повторная проверка происходит так: SAP система проверяет наличие ключа разработчика для данного ID пользователя в таблице DEVACCESS, проверяет корректность данного ключа, с помощью все той же "CHECK_DEVELOPER_KEY", и если все верно, то пользователю предоставляется доступ к ABAP-редактору в режиме редактирования (диалоговое окно с запросом ключа разработчика в данном случае не выдается). Если ключ не прошел проверку на корректность, то система просит ввести его заново.

Список зарегистрированных в системе разработчиков можно увидеть, просмотрев содержимое таблицы DEVACCESS в транзакции SE16. Список всех запрошенных ключей разработчиков для данной инсталляции SAP системы можно увидеть на SAP Support Portal (quick link - http://service.sap.com/sscr). SAP AG отслеживает количество ключей разработчиков, так как это ограничено пакетом лицензий.

Бывают ситуации, когда необходимо удалить записи из таблицы DEVACCESS. Например, когда пользователь, который был зарегистрирован в системе как разработчик, удаляется из системы. Или когда обнаруживается система (тестовая, продуктивная), где не должно быть ни одного разработчика, с не пустой таблицей DEVACCESS. Сделать это можно несколькими способами.

Если надо очистить всю таблицу, то можно ее пересоздать без сохранения данных в транзакции SE14.


Если же надо удалить лишь отдельные записи, то это можно сделать через уровень DB (SQL запросом удаляющим запись из таблицы) или через отладку (как с ней работать, можно посмотреть тут). А можно поступить более корректно и создать в системе небольшую ABAP-программу со следующим кодом:
REPORT  ZBCDEVACCESS.
* ===============================================================
*
*  TITLE: Delete Record from Table DEVACCESS
*
*  DESCRIPTION: This program deletes the SSCR Developer Keys from the
*  table DEVACCESS. There is no maintenance dialog available via SM30
*  and thus this program is necessary.
*
* ===============================================================
TABLES: DEVACCESS.
PARAMETERS: p_user LIKE DEVACCESS-UNAME.
DELETE FROM DEVACCESS WHERE UNAME EQ p_user.
IF SY-SUBRC EQ 0.
WRITE: 'User and key for ', p_user, 'deleted from table DEVACCESS.'
.
ELSE.
WRITE: 'Error deleting user and key for ', p_user, ' return code ',
SY-SUBRC.
ENDIF.

Вводите имя пользователя для удаления и, если запись для данного пользователя существует в таблице DEVACCESS, то программа удалит его вместе с ключом разработчика из таблицы (из системы соответственно тоже).

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


Подробнее про журналирование таблиц написано тут.

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


19 сентября 2011 г.

Таблица SNAP

Я как-то писал пост про журналы SAP-системы. В рамках поста было указано, что дампы системы (транзакция ST22) хранятся в таблице SNAP. Предлагаю взглянуть на эту таблицу в Вашей системе. Если она занимает в базе данных 200 МБ и более (смотрим через детальный анализ в DB02), то вполне возможно, что она нуждается в реорганизации.


Переходим в транзакции ST22 в пункт меню "Перейти к -> Реорганизовать" (F7).


И удаляем записи о дампах старше 7 дней.


Для уменьшения реального размера таблицы в базе данных необходимо выполнить либо удаление с последующим созданием таблицы в транзакции SE14 (все дампы удалятся), либо реорганизацию таблицы через BRTOOLS/SAPDBA, но с сохранением данных.


Чтобы не проделывать данную операцию время от времени необходимо запланировать ежедневно отчет RSSNAPDL.


Здесь первый параметр - это не количество дампов, а количество строк в таблице SNAP. Один дамп занимает примерно 100 строк в таблице. Второй параметр - количество строк для commit. Он необходим для ограничения порций удаляемых данных, дабы не возникло переполнения rollback segments. В общем, оставляем значения по умолчанию и планируем выполнение раз в сутки.


Подробности можно прочитать в SAP-нотах:

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


14 сентября 2011 г.

SAP GUI 7.20 for Windows: настройка безопасности

В версии SAP GUI 7.20 for Windows появились особенности, которых не было в предыдущих версиях. Одна из них это усиленные меры безопасности при работе с клиентской машиной. При попытке передать файл с клиентской машины серверу приложений SAP или обратно выскакивает диалоговое окно вида:


Такие "приятные" меры безопасности одна из причин, почему я до сих пор сижу на MS Windows XP, а не перехожу на более поздние версии. =)

Настройки этого "безобразия" можно найти, открыв окно опций программы SAP GUI (Alt+F12 -> Опции):



В разделе "Безопасность" можно настроить правила, по которым SAP разрешает/запрещает/выдает диалоговое окно с запросом о действиях. Можно настроить правила, отключить некоторые из них, добавить новые. А можно просто отключить всё, выбрав в поле "Статус" - "Дективировано".


После этого диалоговое окно не будет мешать работать. =)
Настройки безопасности хранятся на уровне ОС в файле:  
C:\Program Files\SAP\FrontEnd\SAPgui\SAPrules.xml.

Подробности можно посмотреть в SAP note # 1540403 - SAP GUI: Deleting incorrectly created security rules.

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


7 сентября 2011 г.

С днём знаний

Всех поздравляю с прошедшим днём знаний! :)

А я к 1 сентября решил проапгрейдить свою учебную машинку. Оказалось, что версия процессора Intel Core 2 Quad Q8300 2,5 GHz, который мне достался, не имеет аппаратную виртуализацию, про которую я писал тут и без которой невозможно виртуализировать 64-битную виртуальную машину. К тому же бюджетных планок памяти DDR2 по 4 Гб тоже уже не найти. И очень хотелось попробовать организовать RAID массив. В итоге, было принято решение менять платформу целиком на AMD. Вложив около 6500 рублей, продав старое оборудование и заимев 3 диска Seagate SATA по 750 Гб выданных родной компанией на учебные цели, собрал вот такую систему:
  • корпус - GIGABYTE GZ-F2 (ATX, 5 внутренних 3,5” отсека) + блок питания - OCZ Fatal1ty (550 Watt),
  • материнская плата - ASUS M4A77T (AMD 770/SB710, AM3, HT 3.0 5.2 GT/s, 4xDIMM Dual Chanel DDR3 1800, 3xPCI, 1 Gb LAN, 1xIDE, 6xSATA 3 GB/s (RAID 0,1,10 и JBOD), BIOS: 2401), 
  • боксовый процессор+кулер - AMD Phenom II X6 1055T AM3, 6 cores, 2.8 ГГц или до 3.3 ГГц в режиме Turbo СORE, 
  • ОЗУ - 16 Гб DDR3 (Dual mode 4 x KINGMAX DDR3 4 Gb 1333), 
  • CD-ROM DVD-RW IDE,
  • HDD - 3 x 750 Gb Seagate 7200 rpm (RAID 0) + 2 x 1000 Gb Seagate 7200 rpm, 
  • видео - NVidia 7300 128 Mb PCI-E.

Машинка получилась просто зверь. Удачно перенес систему (MS Windows Server 2003 64-bit) без переустановки, данные 3-х уже установленных систем на RAID0 массив, который дал примерно двойное ускорение по записи (надеюсь, что по чтению не меньшее). Главное, вовремя бэкапить системы с RAID0, так как вероятность сбоя увеличивается линейно количеству добавляемых дисков. Диски ощутимо грелись - решением была установка дополнительного вентилятора перед ними. Из минусов - прилично шумит боксовый кулер.

Машина выдерживает запуск и работу 2-3 SAP-систем на родной ОС + 2-3 SAP-системы в виртуальных машинах. Есть потенциал для разгона. Дешево и очень сердито. Рекомендую.

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



27 апреля 2011 г.

Установка SAP ERP 6.0 SR3

На днях были внесены изменения в инструкцию по установке SAP ERP 6.0 SR3 (zip-архив, 1994 Кб). Инструкция была дополнена и расширена мелкими шагами, которые необходимо выполнить до установки сервера приложений SAP. Так же было учтено содержимое SAP курса "ADM110 - SAP ERP Central Component Installation". Вы знаете, что делать с такой полезной ссылкой. ;-)

В качестве платформы для ERP-системы успешно была опробована Oracle (Sun) VirtualBox 4.0, которую я советовал тут. Платформа рабочая, быстрая, легкая в освоении, а главное, open-source и free (пока еще). Следует учесть, что так как система SAP сейчас поддерживает только 64-битную ОС (32-бита только для диалоговой инстанции), то и в VirtualBox необходимо установить ОС 64-бита. А это возможно только лишь при поддержке процессором вашей рабочей станции аппаратной виртуализации (Intel VT, AMD-V). Иначе, только 32-бита.

Теперь еще небольшой troubleshooting. Если при установке системы на сервере (виртуальной машине) меньше 3 Гб оперативной памяти, то может возникнуть ошибка на этапе "Import ABAP".


Дело в том, что по-умолчанию (в "Typical" режиме), SAPInst отдает ORACLE половину физической оперативной памяти.


Можно изменить это значение, если на втором экране SAPInst выбрать режим установки "Custom", либо выставить галочку на экране "Parameter Summary" у секции, что на предыдущем скриншоте. В этом экране можно изменить значение "Instance RAM (MB)".


Но выставлять значение больше реального физического количества оперативной памяти не имеет смысла. SAPInst ограничит это значение по физически доступному количеству. По этому значению SAPInst на шаге установки "Prepare database server configuration" настраивает размеры буферов ORACLE и создает файл настройки init<SID>.ora.


Если на рабочей станции меньше 1,5 Гб оперативной памяти, то параметры ORACLE: shared_pool_size и shared_pool_reserved_size будут иметь недостаточный размер для выполнения шага устрановки "Import ABAP". И данный шаг остановится с ошибкой типа:

ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","insert into cdef$(obj#,con#,...","Typecheck","kgghteInit")
(DB) INFO: disconnected from DB


Решение есть. Необходимо поправить эти параметры в файле init<SID>.ora и перезапустить базу данных. После этого перестартовать SAPInst. Минимальные значение при которых импорт проходит, следующие:

             shared_pool_size                 =   241434624
             shared_pool_reserved_size =   24143462

Это соответствует 1,5 Гб в параметре "Instance RAM (MB)" в окне SAPInst.

Если на рабочей станции (виртуальной машине) меньше 1,5 Гб оперативной памяти, то систему можно поставить, только нужно быть готовым к дополнительным действиям по настройке ORACLE, которые я описал выше.

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