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, которые я описал выше.

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


4 февраля 2011 г.

Новое рабочее место BASIS администратора

Хочу похвастаться. С этого года у меня новая рабочая станция - HP ProBook 4720s:


Ноутбук имеет на борту 4 Гб DDR III ОЗУ и Windows 7 64-bit соответственно. Пришлось на ней и остаться. Ноутбук в целом неплохой. Замена стационарного компьютера. Есть свои плюсы и минусы. До сих пор дико хочется обратно на Windows XP. :) Жду когда пропадет желание.

Поставил SAP GUI for Windows 7.20. С ним есть один нюанс. Файл настроек соединения saplogon.ini хранится теперь не в C:\Windows. Правило такое.
  • местоположение файла, по умолчанию, %APPDATA%\SAP\Common. В реальности это C:\Documents and Settings\<username>\Application Data\SAP\Common.
  • если на рабочей станции уже была установлена SAP GUI предыдущей версии, то при установке SAP GUI 7.20 установщик ищет файл saplogon.ini по старому пути и, найдя его, копирует его в вышеуказанную новую директорию.
  • значение по умолчанию нового местоположения данного файла можно изменить тут:



Подробности об этом можно найти в SAP note # 1409494 - SAP Logon (Pad) 7.20: configuration (ini) files' storage.

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


21 января 2011 г.

Single Sign-On passport для SAP Service Marketplace

Сайт SAP Service Marketplace поддерживает установку Single Sign-On passport-а (сертификат) для доступа. Его удобно использовать так как серверов у данного сайта много, они постоянно меняются при логине, а passport подходит один для всех. Можно, конечно, пойти путем запоминания пары пользователь/пароль для всех серверов, но это долго и ненадежно. Ставится паспорт следующим образом:
  • входите на сайт http://service.sap.com
  • переходите по ссылке "Benefit From Single Sign-on" в верхнем правом углу:
  •  нажимаете на кнопку "Apply for an SAP Passport":
  • вводите в диалоговое окно пару пользователь/пароль:
  •  вводите еще раз пароль и нажимаете кнопку "Apply for an SAP Passport":
  • получаете сообщение о том, что Passport успешно установлен в систему для данного браузера:


Если вы работаете с несколькими браузерами, то для них всю процедуру надо повторить. При входе в SAP Service Marketplace у вас автоматически будет предлагаться нужный Passport. Если вы работает с несколькими проектами и имеете несколько логинов к сайту, то установите Passports и для других пользователей, а при входе выбирайте из списка нужный.

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