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

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

Версия 1.08 от 27.10.2007  
fatheryan.narod.ru при содействии сообщества SAPForum.ru и других хороших людей

"Если вы не можете что-то объяснить шестилетнему ребенку, значит, вы сами этого не понимаете"
''А. Эйнштейн''

Преамбула. Для кого это предназначено. 

Для людей, стремящихся стать консультантами и не знающих, с чего начать. Начальные знания в указанной области малы или полностью отсутствуют, но есть мозги и желание. Путь в консультанты у "программистов" и "предметников", конечно, различен, автор старался, чтобы материал был понятен всем. Дабы не раздвигать размеры документа сверх всяких разумных пределов и не забивать голову новичкам всяческими нюансами, автор сознательно пошел на упрощение многих понятий (тем не менее, стараясь избегать явных ошибок). В квадратных скобках приводятся названия курсов SAP и другие источники информации. Документ планируется совершенствовать, буду признателен за критику и дополнения. 
ПРЕДУПРЕЖДЕНИЕ: Даже если вы выучите данную статью наизусть, это не даст вам право называть себя "консультантом по SAP". Впереди еще тысячи страниц текста и обязательно опыт работы на проекте. Все что я могу это "наставить на путь истинный". Желаю успеха.

Что такое система SAP R/3 и для чего она нужна? 

SAP R/3 является информационной системой ERP (Enterprise Resources Planning - планирование ресурсов предприятия). Система предназначена для автоматизации всей деятельности по управлению предприятием: управленческий и бухгалтерский учет, планирование и многое другое. (Кстати, в последнее время декларируется новая концепция на основе платформы Netweaver: система должна не охватывать все области, а предоставлять сервисы на основе данных из программных продуктов разных производителей. Приживется ли, покажет будущее [SAPTEC]). Система ОЧЕНЬ большая и ОЧЕНЬ сложная. Примите как факт: ее невозможно «самому поставить на компьютер» и «разобраться за выходные, в крайнем случае, за неделю». Просьбы «дайте дистрибутив, я сам установлю и разберусь» поступают регулярно, но не могут иметь другого результата кроме бессмысленной траты времени. Хотя опыт автора основывается в основном на R/3, большая часть положений статьи, с некоторой осторожностью, применима к следующим версиям SAP.


Как все это устроено с технической точки зрения? 

На компьютере пользователя устанавливается небольшая программка SAP GUI (Graphics User Interface - Графический Интерфейс Пользователя), функция которой сводится к отображению данных, принятых с сервера, и передаче на сервер данных и команд пользователя (иногда можно обойтись интернет-браузером вместо GUI). 

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

На сервере обычно устанавливают Систему Управления Базой Данных (СУБД) – программу, предназначенную для хранения данных в виде набора взаимосвязанных таблиц, с возможностью их (данных) добавления, изменения, удаления и извлечения по запросу пользователя в различных сочетаниях. Обращение к БД (Базе данных) осуществляется, как правило, с использованием специального языка SQL (Structured Query Language - Структурированный Язык Запросов). В нашем случае в БД, кроме собственно бизнес-данных, хранятся все настройки системы, репозитарий (о нем будет ниже) и тексты программ на языке ABAP/4. 

Собственно SAP-ом называют Сервер Приложений (Application Server) – программу, работающую на сервере, которая осуществляет все действия над данными пользователей. Рассмотрим ее работу упрощенно на примере. 

Пользователь vasya вводит какое-то число и нажимает Enter. SAP GUI незамедлительно передает Серверу Приложений это число и факт нажатия клавиши. Сервер Приложений запрашивает у БД часть программы на языке ABAP/4, которая должна обработать действие пользователя, и начинает ее выполнять. Программа на языке ABAP/4 может, например, извлечь из БД некую информацию в зависимости от полученного числа и затем передать ее SAP GUI для отображения пользователю vasya. 


В чем суть работы консультанта и что такое процесс внедрения? 

Новички (во всяком случае, те, кого я собеседовал при приеме на работу) часто думают, что достаточно установить программу, ну, может, еще обучить пользователей, и "процесс пошел". На самом деле, такая халява имеет место только при "внедрении" очень простых, узко функциональных программ с малым числом пользователей, к коим даже самая примитивная ERP-система уж точно не относится. 

Проектом внедрения называют ограниченный во времени процесс изменения деятельности предприятия, призванный достичь заданных целей. Целями обычно бывают: 

- Улучшение информированности руководства о текущем состоянии дел. Начальник может видеть все, что пожелает, почти в реальном времени. 
- Улучшение (реинжиниринг) бизнес-процессов (исключение ненужных, повышение эффективности полезных). Например, до внедрения системы перед выпиской накладной на отпуск товара требовалась подпись "отдела учета МТР", дабы не пытаться выдать со склада то, чего там нет в нужном количестве. При использовании системы, где эти данные есть, и при выписке документов автоматически проверяются, данная подпись вкупе со всем отделом становятся ненужным. 
- Снижение затрат на управление. Достигается редко. 

Консультанты должны в указанный срок достичь заданных целей. Для этого нужно: 

- Обследовать деятельность предприятия (если это не сделано до того отдельно). 
- Разработать и согласовать предложения по ее улучшению. 
- Добиться приведения оргструктуры в требуемое состояние. 
- Обучить пользователей (иногда на проектах консультанты вообще не учат пользователей или учат только ключевых, а те, в свою очередь, - конечных). 
- Добиться грамотной и согласованной работы пользователей для достижений заданных целей. 
- Адаптировать (настроить) систему под специфику бизнеса клиента. 

Разумеется, одному человеку затруднительно реализовать все эти функции, поэтому они по возможности распределяются между руководителем проекта, бизнес-аналитиком и техническим консультантом (хотя на практике бывает, что один человек "и швец, и жнец и..."). 

Основные навыки и знания консультанта. Что надо и что не надо делать? 

Исходя из вышеописанных задач, можно сформулировать требования к консультанту: 

- Хорошее знание предметной области. 
- Умение увидеть плохую организацию работы, придумать, как ее сделать лучше, и убедить людей в своей правоте. 
- Умение учить. 
- Знание возможностей системы, заложенной в нее бизнес-логики и пределов ее адаптации. 
- Умение настраивать и дорабатывать систему под клиента. 
- Умение грамотно формулировать решения и требования и документировать их. 
- Коммуникабельность. 
- Умение грамотно планировать свое время. 
- Организаторские способности. 
- Умение решать нетривиальные проблемы. 

НЕ НАДО пытаться автоматизировать «кривой» бизнес, т.к.: 

1) замучаетесь с адаптацией системы; 
2) все равно потом придется переделывать. 

Как известно, если автоматизировать бардак, то получится автоматизированный бардак, коий разгрести в сто раз сложнее, чем обычный. Соответственно, одним из наиболее ценимых навыков консультанта является способность "осаживать" ретивого пользователя (стандартный пример: "Хочу, чтобы в этом вашем SAPе все было, как в 1С, в противном случае я не буду в такой системе работать") и находить компромиссы. 

Что такое транзакция SAP? 
[SAP20]
Транзакция SAP - прикладная программа, выполняющая бизнес-процесс в системе, осуществляющая над данными определенный логически завершенный набор действий. (Технически - это "ярлык" для вызова программы на ABAP/4).  Например, это может быть ввод и бухгалтерская проводка счета-фактуры, формирование некоторого отчета. (Программистам: транзакция SAP не является синонимом транзакции БД). 

Что такое модули? 

[SAP01] Система логически подразделяется на модули. Каждый модуль состоит из множества транзакций, охватывающих определенную часть деятельности предприятия. Как правило, консультант специализируется на каком-либо определенном модуле (хотя узость кругозора никогда ни к чему хорошему не приводила, так что по возможности не надо себя искусственно ставить в рамки). Границы модулей в значительной степени условны, между ними происходит обмен данными, могут быть общие настройки и таблицы с данными, совместное использование одной и той же части программы на ABAP/4 (со всеми вытекающими последствиями при ее непродуманном изменении). 

Краткое описание модулей.

MM (Materials Management) - Управление материальными потоками. 
Включает в себя: 
1) Бухгалтерский учет в части учета запасов по складам, перемещения и списания ТМЦ (товарно-материальных ценностей). 
2) ППМ (планирование потребности в материалах) 
3) Справочник материалов 
4) Систему закупок начиная с заявки и заканчивая поступлением ТМЦ на нужный склад. 
Получает данные из модуля ТОРО (PM). Если настроен ППМ, заявки на ТМЦ формируются из ТОРО-заказов. 
Сформированные проводки передаются в FI. 
При продаже на сторону часть операций (например фактурирование) может быть реализовано средствами SD (сбыт).
[SCM 500,510,515,520,521,550]

FM – Управление бюджетом. Другие названия FI-FM, PSM-FM. Есть вторая более современная разновидность модуля BCS – Система управления бюджетом.

Предназначение и FM, и BCS – управленческий учет, а если по-простому – по каким направлениям (статьям бюджета) израсходованы деньги бухгалтерскими проводками.

Если все деньги бюджета уже истрачены – делать проводки запрещает система (ну или предупреждает о проблемах с бюджетом).

Данные для FM берутся из MM, FI, CO, SD, ТОРО (но не обязательно из всего сразу).

[IPS910, IPS960]

Базис занимает особое место среди других модулей.
Базисники отвечают за функционирование SAPа (сервера приложений) в целом. Задачи:
Первоначальная установка и настройка параметров производительности.
Администрирование базы данных.
Установка пакетов обновлений и корректур (нот).
Осуществление переносов (транспортов) в продуктивную систему.
Администрирование (ввод и присвоение ролей) пользователей.
Резервное копирование данных.
Настройка взаимодействия систем (передачи данных между системами).
Мониторинг (контроль) системы с целью заблаговременного определения проблем и принятия мер.
Настройка доступа к системам со стороны службы поддержки SAP.
Поддержка в актуальном состоянии данных о системах на service.sap.com
Предоставление доступа (выдача имени, пароля и полномочий) для работы с сервисом SAP.
Анализ дампов (лучше совместно с функциональщиками – консультантами оп прикладным модулям и абаперами).
Перечисление неполное, но думаю достаточное для понимания. Базисник по роду своих занятий имеет полные полномочия в системе (SAP_ALL). Любая ошибка легко может привести к полному краху системы. В связи с этим базисник должен обладать как глубокими знаниями, так и колоссальной ответственностью и самодисциплиной. Кроме того это самый консервативный человек в команде - противник всяческих экспериментов, установки непроверенных обновлений и т. п.

Группа разработки (абаперы).
Абапер - это программист на языке ABAP/4.
Задача - реализовать в системе некоторую функциональность или отчет на основе поставленного консультантом технического задания. Абапер хорошо (гораздо лучше консультанта) разбирается в функционировании системы, но при этом не знает бизнес-процессов и не общается с пользователями. Абапер имеет "ключ разработчика" - пароль, который позволяет создавать и модифицировать код в системе в предусмотренных SAPом местах. (Для модификации стандартных программ требуются дополнительные ключи.)
Практически никакой защиты от ошибок в программе в 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 некоторых данных может сложиться ситуация при которой настройку нельзя будет изменить или удалить т. к. она связана с этими данными.

- Роль (отдельная) – описывает, какие именно действия может осуществлять пользователь в системе. 
- Роль (групповая) - состоит из отдельных ролей. Используется для облегчения работы с ролями. 

Роли являются мандантозависимыми, создаются и переносятся так же, как настройки. 

Роль может содержать в себе: [ADM940] 

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)
Более полная информация по платформе NetWeaver

Если щелкнуть на пункте меню Система -> Статус -> «Лупа», можно увидеть версии системы. 
- 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, щелкнув на "листочке" с описанием настроек. Там же обычно указывается, в какой момент будет отрабатывать ваш код. Следует соблюдать осторожность, т.к. ошибки могут привести к нарушению в работе стандартных транзакций вплоть до потери данных. 

Много интересной информации можно найти здесь http://platon69.narod.ru/begin.html

Иногда "хотелки" пользователей таковы, что реализовать их можно, только изменив стандартный код системы. Несмотря порой на кажущуюся легкость и незначительность изменений ("вот тут одну строчечку поменять"), следует иметь в виду, что в долгосрочной перспективе это приводит к БОЛЬШИМ проблемам с вероятностью в 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% случаев вы найдете ответ сразу, и не будете тратить свое и чужое время.