Главная > Компьютеры > Взгляд IT-специалиста на SAP ERP
Взгляд IT-специалиста на SAP ERP12 ноября 2015 19:50. Разместил: Altyn |
Статья будет полезна в первую очередь тем, кто планирует начать работать с SAP ERP как в качестве IT-специалиста (консультанта/программиста), так и в качестве конечного пользователя.
Для работы с системой нужно запускать так называемые транзакции (к транзакциям БД они отношения не имеют). Транзакция SAP – это что-то типа «ярлыка» для вызова программы, с помощью которой можно выполнить какое-то действие в системе (например, просмотреть список заказов на поставку или отредактировать какой-либо документ). Имена у транзакций абсолютно ничего неговорящие (ME21, IW33, MIRO…). Запустить транзакцию можно двумя способами: из древовидного меню слева или введя код транзакции в специальное поле. В меню можно заблудиться, поэтому чаще всего транзакции запускаются путем ввода её кода. Поэтому у каждого пользователя есть блокнотик, в котором все эти коды записаны.
Запускаю я, значит, транзакцию для просмотра списка объектов ремонта, кое-как заполняю селекционный экран, жму «Выполнить» и получаю…дамп (так в SAP называется критическая ошибка, прерывающая выполнение программы без возможности продолжить её работу).
Вчитываюсь в этот страшный, совершено непонятный простому пользователю, экран и понимаю, что передал слишком много входных данных.
Еще ситуация. Открываю я транзакцию «MIRO – создание входящего счета-фактуры», долго заполняю шапку, указываю системный номер документа входящей поставки, на основании которого автоматически заполняется позициями табличная часть счета-фактуры. Из тысячи позиций мне нужно было 100 удалить. Я нахожу эти позиции, долго выделяю их и жму кнопку «Удалить». Как думаете, что должно произойти после выделения позиций и нажатия кнопки «Удалить»? Вот я тоже так же подумал. А разработчики SAP думали как-то по-другому – удалилось 900 невыделенных позиций. «Ладно», — подумал я, — «сейчас нажму CTRL+Z и все верну назад». Ну, вы поняли уже, да? Отменить это действие нельзя, поэтому пришлось перезапускать транзакцию и заново забивать все данные.
Интерфейс никак не стандартизирован. Где-то меню слева, где-то справа. Где-то кнопки сверху, где-то снизу. Где-то вообще никаких кнопок нет, а все действия выполняются через главное меню. Где-то иконки на кнопках одни, где-то на тех же кнопках другие. Даже горячие клавиши в разных транзакциях для одних и тех же действий отличаются. И это касается не только кнопок, но и табличных частей, вкладок и т.д. – единства нет, везде всё по-разному. Видно, что каждый разработчик лепил интерфейс, как ему вздумается, и никакого контроля за этим не велось. Дизайнеров в команде не было. Похоже, это из-за того, что в момент разработки особо серьезных конкурентов на рынке не наблюдалось, поэтому решили, что нужно развивать функциональность, а интерфейс пользователи «проглотят» любой.
С этим интерфейсом можно научиться работать двумя способами: либо кто-то долго будет вас обучать этому, рассказывая тонкости каждой транзакции и показывая подводные камни, либо самостоятельно, не переставая наступать на бесконечные грабли. Чаще всего обучение проходит по комбинированному сценарию: консультанты пишут операционные инструкции с минимально необходимыми для работы сведениями, а дальше пользователь сам бродит в этом дремучем лесу, постоянно обеспечивая консультантов зарплатой обращаясь к консультантам за помощью. В последнее время в SAP поняли, что сели попой в лужу с приходом эффективных менеджеров, избалованных айфонами и выбирающих софт по внешнему виду, нужно что-то менять в интерфейсе. Тем более, конкуренты уже давно подтянулись по функциональности. Поэтому SAP пытается делать какие-то шаги в этом направлении и создает взамен старых транзакций новые, которые называются enjoy-транзакции. Появляются какие-то новые темы оформление с кнопками в стиле Android, но пока, как говорится, «сколько на осла бантиков не вешай…». Рассказывать о прелестях интерфейса можно бесконечно, но давайте пойдём дальше…
Почему переводили в Magic Gooddy? Потому что не может человек перевести пункт настроек «Country-specific requirements» как «Страновые требования».
Почему перепечатывали вручную? Потому что встречаются опечатки и грамматические ошибки. Например, «Щапрос на перенос», «налогооблАжение» и «вниматИльно» явно печатали руками. Встречаются также сокращения слов, чтобы не выходить за рамки допустимой длины текста.
Почему люди не понимали русский язык? Потому что даже при перепечатывании русскоговорящий человек должен был усомниться, увидев фразу «Пушномолочная свинья-несушка» — так до определенного времени называлась программа RAIMEWMS (сейчас название уже исправили). В оригинале она называется «Eierlegende Wollmilchsau», что переводится как «Мастер на все руки», но умный Magic Gooddy посчитал, что Wollmilchsau – это 3 отдельных слова (Woll, milch, sau) и перевел фразу «Eierlegende Woll milch sau» как «Яйцо укладки шерсти молока свиноматки». Остается только гадать, как это потом превратилось в «Пушномолочная свинья-несушка».
Да-да, я всё ещё рассказываю о том самом SAP ERP, лицензии которого стоят много тысяч долларов и за внедрение которого организации выкладывают сотни миллионов рублей.
Большая часть знаний консультантов и разработчиков либо передается по наследству от старшего поколения к младшему, либо получается методом «тыка». Если повезет, то можно что-то найти на профильных форумах и в частных блогах, если нет – ковыряйся сам, отладчик тебе в помощь.
Если найти нужную ноту труда не составляет, то установка может оказаться вполне нетривиальной задачей. Ноты могут быть зависимы друг от друга и перед установкой одной ноты нужно установить с десяток других нот, которые тоже имеют зависимости. В процессе установки нот может потребоваться выполнить какие-либо действия вручную. Например, принести яйцо дракона из пещеры на вершине горы. Утрирую, конечно, но порой установить ноты, исправляющие ошибки, тяжелее, чем самому эти ошибки исправить. Недавно на Гиктаймс была статья, в которой говорилось о том, что люди через чат Arch Linux устанавливали. Так вот, некоторые ноты (особенно связанные с изменением функциональности под законодательство) устанавливаются так же: люди на форуме коллективно пытаются пройти квест (так, а теперь давайте нажмем все вместе на счет три вот эту кнопку…). Причем, ноты устанавливаются в нескольких системах с одинаковой версией и везде возникают разные ошибки.
Названия таблиц, полей и переменных, как и названия транзакций, никакого смысла в себе не несут. Глядя на Open SQL-запрос SELECT, невозможно даже близко догадаться, что за данные он выбирает из базы. Нужно либо заранее знать, что хранится в обрабатываемой таблице, либо по ходу действия в эту таблицу лезть через браузер данных и пытаться понять, что в ней.
В SAP предусмотрена возможность доработки стандартной функциональности. Править стандартный код, предварительно получив специальный ключ разработчика для стандартного объекта, можно, но крайне нежелательно. Вместо этого разработчику предлагается использовать так называемые USER-EXIT. По сути, это пустые функции с заранее заданными входными и выходными параметрами, разбросанные по стандартному коду. Вызываются эти функции до или после какого-то события. Для правки кода этих функций специального ключа не требуется. Позже к USER-EXIT добавилась еще одна возможность расширять стандартную функциональность – BADI. Это то же самое, что USER-EXIT, только объектно-ориентированное. Зачем оно появилось и почему, раз уж оно появилось, не отказались от USER-EXIT – мне непонятно, только лишней путаницы добавилось. Так как никакой официальной документации по USER-EXIT и BADI нет, то, чтобы найти подходящее место, куда можно дописать свой код, нужно либо сидеть в отладчике в поисках этих пустых функций, либо штудировать форумы в надежде, что кто-то уже сталкивался с такой необходимостью. Часто бывает, что для одной и той же задачи подходят разные USER-EXIT и BADI. Из-за этого случается так, что на одном проекте разные разработчики/консультанты выбирают различные USER-EXIT/BADI, и код, который должен бы логически быть в одном месте, разбросан по нескольким местам. Хочется еще упомянуть про отладчик. Их два: старый и новый. В старом отладчике есть функции, которых нет в новом, а в новом есть функции, которых нет в старом. Например, в старом отладчике есть функция просмотра ABAP Memory и SAP Memory, в новом – нет. Переключаться между старым и новым можно прямо в процессе отладки. Хотя слово «новый» тут не очень уместно, так как он существует уже почти 10 лет. Почему за это время его не доработали и не избавились от старого – загадка.
Тем не менее, я не хочу, чтобы моя статья выглядела как обливание SAP грязью. У любого продукта есть плюсы и минусы. На каждый мой абзац можно написать такой же о плюсах SAP ERP и я соглашусь с ними. Но мне хочется, чтобы люди, решившие связать свою работу с SAP ERP, знали чуточку больше, чем «SAP ERP – это такая крутая немецкая программа, которая стоит много денег». Вернуться назад |