понедельник, 12 ноября 2012 г.

Руководство начинающего консультанта по SAP-3



              Что нужно знать из области базиса. Ландшафт. Транспортная система. Роли.
Рассмотрим основные понятия из области базиса.
Система (центральная инстанция) - представляет собой сервер приложений вместе с СУБД. 
Мандат (клиент). - это организационно независимая часть в системе R/3. Каждый мандант имеет собственную среду данных, т.е. собственные основные и переменные данные, присвоенные основные записи пользователей, планы счетов и специфические параметры настройки.В системе может быть несколько мандантов. Почти во всех таблицах БД с пользовательскими данными и настройками есть поле, являющиеся частью ключа, которое содержит номер манданта. Когда программа запрашивает какие-либо данные из такой таблицы, к запросу автоматом дописывается что-то вроде and mndt=НомерМандантаКудаВыВошли 
На практике это означает, что в каждом манданте может работать отдельное предприятие не мешая работающим в других мандантам. Но программы на ABAP/4, формуляры (отчетные формы) при этом являются общими для всех мандантов одной системы.

Репозитарий - хранилище всех ABAP-программ и описания структуры данных и таблиц, с которыми работают программы. Репозитарий является общим для всех мандантов системы.
Запрос на перенос (транспорт) - содержит программы или настройки, которые можно переносить между мандантами или системами. Деблокированный запрос представляет собой несколько файлов, содержащих требуемую информацию. 
 Деблокирование – этот термин в SAP означает «утверждение», отправку в работу. Пока запрос, документ не деблокированы они считаются черновиками, их можно изменять и никаких действий они не вызывают.
Ландшафт - это несколько систем, между которыми можно переносить настройки и программы. Несколько систем требуются для обеспечения процесса разработки и настройки. SAP рекомендует следующий ландшафт: [ADM325, BC325]
1 - система разработки. Содержит 3 мандата (номера можно использовать другие).
- 300 - в нем можно менять настройки и программы. При этом любое изменение сразу попадает в запрос на перенос.
- 400 - менять в нем ничего нельзя. Используется для предварительного грубого тестирования программ (кои "возникают" там одновременно с 300) и настроек (можно перенести запрос без деблокирования с помощью транзакции scc1)
- 200 - песочница (Sandbox). Предназначен для экспериментирования с настройками. Поменяли настроечку - сразу там же посмотрели, как изменилась работа пользовательской транзакции. Запросы на перенос из песочницы не формируются и соответственно эксперименты никак не могут повредить другим мандантам в этой и других системах. 


2 - контроль качества
В этой системе обычно два манданта:
- 500 - используется для обучения пользователей
- 600 - предназначен для проверки корректности разработки или настройки.
Настройка или разработка может попадать в эту систему после деблокирования. Вы должны тщательно проверить, что все работает, как задумано, прежде чем переносить запрос в продуктив.
3 - продуктивная система
Обычно один мандант, в котором работают пользователи. Согласно требованиям SAP, группа внедрения вообще не должна иметь доступа к этой системе. Если у вас есть доступ к продуктиву, следует соблюдать крайнюю осторожность т. к. ошибочные действия ведут к очень тяжелым последствиям. Также иногда на продуктивной системе делают копию продуктивного манданта (на разных проектах за этим могут стоять разные цели). 

Запрос переносят в продуктив базисники на основании заявки, подписанной руководителями модуля и проекта (разумеется, все может быть реализовано по безбумажной технологии, например с использованием Solution Manager - суть это не меняет)
«Зачем нужно разделение в системе разработки на настроечный (300) и тестовый (400) манданты? Почему нельзя все сразу пробовать в 300?»
Это вызвано техническими  ограничениями. При вводе в 300 некоторых данных может сложиться ситуация при которой настройку нельзя будет изменить или удалить т. к. она связана с этими данными.
- Роль (отдельная) – описывает, какие именно действия может осуществлять пользователь в системе.
- Роль
(групповая)  - состоит из отдельных ролей. Используется для облегчения работы с ролями.
Роли являются мандантозависимыми, создаются и переносятся так же, как настройки. 

Роль может содержать в себе:
1) дополнение к меню пользователя, т.е., транзакции с названиями, которые будет видеть пользователь;
2) объекты полномочий - описывают, что именно может делать пользователь. Например, какие транзакции он имеет право запускать, какие именно операции над данными может выполнять для данного подразделения и т. п.
Следует иметь в виду, что если пользователю присвоены несколько ролей, в которых есть один и тот же объект полномочий с разными параметрами, пользователь получит максимальные права из двух возможных (соответствует логической операции "или"). Поэтому следует быть внимательными при настройке объектов полномочий в новых ролях - "несущественный" параметр, которому вы присвоите значение "*" (разрешено все) может "аукнуться" для другой транзакции и роли.
На программном уровне объект полномочий является специальным элементом языка ABAP/4 и проверяется при выполнении программы. В зависимости от результатов проверки программа может осуществлять различные действия, например, выдавать сообщение "Недостаточно полномочий"
Профиль полномочий - это скомпилированная (приведенная в машинный вид) роль. Собственно система работает именно с профилями, роли пользователю можно и не присваивать (если нет нужды в меню). На практике консультант обычно оперирует ролями. 
  
                                                  Версии компонентов. Обновления.
 Текущая иерархия версий наиболее популярного продукта SAP выглядит следующим образом:
- SAP R/3 4.6 (A,B,C,D)  Функционируют на основе «SAP базиса»
- SAP R/3 Enterprise 4.7  Работает в среде SAP WEB AS
- mySAP ERP 2004 (ECC 5.0) Функционирует на платформе Netweaver 04
- mySAP ERP 6.0 (ранее известен как SAP ERP2005 (ECC 6.0)). Функционирует на платформе Netweaver 7.0 (ранее известен как Netweaver 2004s)
( ECC – Enterprise Central Core)
( WEB AS – WEB Application server)
Более полная информация по платформе Net Weaver
Если щелкнуть на пункте меню Система -> Статус -> «Лупа», можно увидеть версии системы.
- SAP_APPL = 604 (для системы SAP ECC 6.0)
- SAP_APPL = 470 (для системы SAP версии 4.7)
- SAP_APPL = 46С (для системы SAP версии 4.6С)
[У кого есть возможность, проверьте для других систем]
Число в следующей колонке показывает номер последнего установленного пакета поддержки (содержит все исправления ошибок и дополнения, выпущенные к некоторой дате). Когда вы смотрите ноты, следует обращать внимание на версию системы, для которой она предназначена и уровень пакета, в который эта нота входит (может быть уже установлена в системе). Обновление этого компонента (обновляется ABAP-код) затрагивает большинство стандартных модулей.
- C-CEE это «русский Add-on» («дополнение») Выпускается SAP СНГ (Москва). Обеспечивает набор программ и транзакций для поддержки специфики отечественного бухучета. Начиная с версии >ECC 5.0, для России он не нужен (требуется ставить только на Украине и в Казахстане), поскольку функциональность, изначально включенная в дополнение, теперь входит в стандартную поставку системы.
- SAP_BASIS, SAP_ABA – эти компоненты обеспечивают функционирование «базиса». Их обновление не так сильно заметно в системе.
                                    Что нужно знать о программировании на ABAP/4

Понимание, что именно делает программа, весьма желательно для консультанта. Часто исследование под отладчиком или просто просмотр кода являются единственным способом определить причину проблемы и найти ее решение. Это требует хорошего знания ABAP/4. [книга «Разработка приложений SAP R/3 на языке АВАР/4», курсы BC*]
Незнание языка программирования не является фатальным. Можно ставить грамотные технические задания разработчикам и без этого. Нужно уметь просматривать таблицы (транзакции SE11, SE16). Как называется интересующее вас поле, и в какой таблице оно находится, можно определить следующим образом:
1) Находим его на экране, ставим туда курсор.
2) Жмем F1, затем кнопочку «Техническая информация».
Кстати, там же можно найти еще много полезной информации.
                  Что-то работает не так как надо или не работает вообще. Решаем проблему.
В первую очередь надо обязательно убедиться, что имеет место ошибка. Тяжелей всего чинить то, что не сломалось. Если 2*2 не равно четырем, первым делом уточните: может быть, мы видим сумму с НДС. 99% обращений пользователей по поводу "ошибки системы" лечатся чтением инструкции и вправлением мозгов. 
Дамп - самая серьезная из ошибок системы. Возникает при полной невозможности дальнейшего исполнения программы на ABAP/4. Выполнение транзакции прекращается. На экран выводится информация, описывающая суть ошибки, место ее возникновения и рекомендуемые ключевые слова для поиска нот.
Нота (note) - "заметка" (в самой системе, например, в транзакции snote ноты называются "указаниями", нем. Hinweis), выпускаемая SAP, описывающая проблему и способы ее решения. Помимо текстовой части может содержать исправления (корректуры) для программ на ABAP/4. Ноты следует искать на service.sap.com. Требуемые для входа имя и пароль вы можете получить у базисников или руководителя проекта. Установкой нот занимаются базисники. 

Если стандартная транзакции выдает сообщение об ошибке с кодом:
1) читаем внимательно сообщение (лучше войти в систему на английском языке), думаем, проверяем настройки, перечитываем хелп и курсы...
2) ищем ноту по коду ошибки.
3) ищем ноту по коду транзакции и по ключевым словам на английском языке, описывающим проблему. Например "migo save error".
4) жалуемся в SAP с того же сайта service.sap.com. Если вопрос не касается отечественных доработок (русского аддона), то вопрос лучше формулировать по-английски: возрастают шансы получить быстрый и компетентный ответ.
5) если ждать нет возможности или хочется самостоятельно разобраться в причине - запускаем транзакцию под отладчиком. Это сложно и долго. Необходимо иметь полномочия на отладку. Необходимо хорошее знание ABAP/4. Отладка запускается вводом команды /h
6) ищем, не обсуждался ли подобный ответ на форумах. (Там всегда есть кнопка «поиск»).
7) задаем четко сформулированный вопрос на форуме.

                                       Как настраивать (дорабатывать) систему под клиента

В первую очередь систему приводят в соответствие с требованиями бизнеса путем изменения настроек. Запустив транзакцию SPRO, можно получить доступ к всевозможным настройкам. Собственно, данная транзакция является удобной оболочкой (меню) для огромного количества транзакций, работающих с конкретными настройками.
Варианты транзакций - это еще один способ подгонки системы под требования клиента. Позволяет прятать или делать обязательными для ввода отдельные поля, вкладки и т. п.
Часто существующих отчетных форм недостаточно. В этом случае пишут свою программу (транзакцию) на ABAP/4, которая выбирает и выводит данные в требуемой форме.
При необходимости можно создавать свои таблицы с названием на Z* и добавлять в стандартные таблицы новые поля с названием на Z*.
Во многих ABAP-программах предусмотрены специальные места, куда можно вписывать дополнительный код на ABAP/4 с целью выполнения транзакцией некоторых дополнительных действий. Это customer-exit (фактически - вызов функции с параметрами, тело функции мы пишем сами), user-exit (фактически include – место для вставки произвольного кода) и BADI (близко по смыслу к customer-exit, но реализовано методами объектно-ориентированного программирования). [BC425]. Информацию о возможности воспользоваться расширением можно найти в SPRO, щелкнув на "листочке" с описанием настроек. Там же обычно указывается, в какой момент будет отрабатывать ваш код. Следует соблюдать осторожность, т.к. ошибки могут привести к нарушению в работе стандартных транзакций вплоть до потери данных.
Иногда "хотелки" пользователей таковы, что реализовать их можно, только изменив стандартный код системы. Несмотря порой на кажущуюся легкость и незначительность изменений ("вот тут одну строчечку поменять"), следует иметь в виду, что в долгосрочной перспективе это приводит к БОЛЬШИМ проблемам с вероятностью в 99%. Искусство консультанта, в том числе, состоит и в умении переформулировать требования пользователей таким образом, чтобы их можно было реализовать в системе приемлемым способом.
                                        Постановка грамотных ТЗ на разработку

 ТЗ (техническое задание)  - это документ, в котором постановщик (консультант) описывает, что именно должен сделать (запрограммировать) разработчик (абапер). "Как именно" он должен реализовывать ТЗ, указывать не нужно, за исключение самых общих моментов.
Также ТЗ должно содержать:
1) цель разработки.
2) контрольный пример – данные, с помощью которых можно грубо проверить корректность работы программы.
3) настройки, которые нужно сделать в системе.
4) краткую инструкцию по использованию разработки.
         "Почему в SAP все реализовано так сложно, я знаю как сделать проще и лучше"
В SAP аккумулирован многолетний опыт организации бизнеса во многих странах, в первую очередь в Германии. Немецкая пунктуальность, четкая организованность во всем вплоть до мелочей (и эти мелкие, "несущественные", обязательные для ввода, данные  в транзакциях порой так раздражают) являются известными чертами национального характера и соответственно бизнеса. В Германии кирпич на стройку должен доставляться не "20.08.07", а "20.08.07 в 12:30" и машина действительно приезжает в указанное время (соответственно перед этим, завод в нужное время получает сырье, производит требуемое количество продукции, машина не ждет своей очереди на загрузку и т. д. и т. п.) Врядли кто может поспорить по организованности и эффективности с немецким бизнесом - разве что японцы... (Русские однозначно молча курят в сторонке :)
Конечно SAP несмотря на огромные возможности по адаптации, не может 100% идеально (эффективно) соответствовать требованиям бизнеса данного конкретного предприятия. Но можно с уверенностью утверждать, что после грамотного реинжиринга бизнес-процессов, система удовлетворит требованиям минимум на 95%. Вы считаете, что этого мало и надо попытаться достичь большего? Далеко не факт, что вы сможете переплюнуть SAP.  Можете попытаться при соблюдении следующих условий:
1) Вы гений.
2) В п. 1 Вам удалось убедить олигарха - проект щедро финансируется
3) Когда сумеете отнять у SAPа 1% мирового рынка, возьмите меня пожалуйста к себе на работу :)

                                          Где искать дополнительную информацию
1)   Курсы SAP. Официально не предназначены для самостоятельного изучения. И это не только маркетинговый ход, действительно очень часто в них опущены описания некоторых простых действий (подразумевается, что их показывает инструктор), что крайне затрудняет понимание. Но приходится понимать, ибо других источников по интересующей теме может не быть. При этом не стоит забывать, что авторские права на курсы принадлежат исключительно SAP, и весь обмен курсами (а уж тем более - их продажа) между физлицами, по сути, незаконна и может быть преследуема в уголовном порядке. Обилие НЕ отсканированных курсов и на русском и на английском вызывает подозрения, что негласно их распространение если не поощряется, то и не запрещается (но это частное мнение, и его "к делу не подошьешь").
2) Книги. На русском языке их мало. Из полезного для консультантов одна по администрированию базиса, одна по ABAP/4. Обе устаревшие. Еще хорошие отзывы о книге про контроллинг. На английском литературы значительно больше (наиболее значительное количество литературы на английском языке выпускается издательством SAPpress ([1])).
3)     help.sap.com Справка достаточно подробная. Часто гораздо лучше курсов, если требуется разобраться в конкретном вопросе.
4)       sdn.sap.com. Там можно найти множество статей по самым различным темам.
5)      Различные форумы (в первую очередь - SAPfans [2] (на английском), SAPфорум [3] (на русском)). Шансы получить ответ на вопрос «Расскажите мне, как настроить MM» не равны нулю, а скорее имеют отрицательное значение :). Но на узкий, точно сформулированный вопрос практически всегда дают ответы. ОБЯЗАТЕЛЬНО прежде чем задать вопрос пользуйтесь «поиском». В 90% случаев вы найдете ответ сразу, и не будете тратить свое и чужое время. 

Комментариев нет:

Отправить комментарий