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

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


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.

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