Что мы подразумеваем под SAP?
Тут, конечно, стоит сразу уточнить, чтобы не показаться уже совсем дилетантом в этом вопросе.
В проектах перехода с SAP на 1С я участвовал не раз, но, к сожалению, до того, как это стало мэйнстримом.
Сама по себе фраза "переход с SAP на 1С" обычно сразу выдаёт человека "недалёкого и необразованного", поэтому использую я её в статье сугубо для упрощения (а оно ещё как потребуется). Конечно, SAP и 1С - это бренды, принадлежащие компаниям соответственно SAP AG и ЗАО "1С" (могу конечно ошибаться, но как-то так). При этом продуктовая линейка у обоих компаний крайне обширная. Под 1С мы будем понимать главным образом ERP или, я бы даже сказал, любимый всеми "ERPУХ", поскольку для перехода с SAP выбираем флагманское актуальное решение.
Что же касается линейки продуктов SAP...
Сразу скажу, что SAP BO (Business One - не путать с Business Objects, которое, впрочем, тоже уже переименовали:) ) в рамках этой статьи рассматривать не будем (хотя RPA для него тоже подойдёт) просто BO относительно простая история - проще разобраться в структуре, сделать выгрузки и перейти "одним днём", притом не факт, что на ERP - вполне вероятно, на УНФ или КА. Тут можно, наверное, "обойтись привычными эксельками".
В статье буду придерживаться основной линейки, ведущей свою историю от R/3.
Хотел обойтись без рекламных SAP-овских картинок, но уж очень они хороши:
Итак, если вы думали, что у 1С всё запутано, то наслаждайтесь :).
На самом деле всё проще: в 1992 году появился SAP R/3 - тот SAP, который мы знаем, и до 2004 года ничего с ним не случалось кроме переименований, в 2004 он встал на NetWeaver - самая популярная на текущий момент "платформа" для SAP. Потом ещё пара переименований вроде ECC, All-In-One, BS.
Пока в 2015-м не появилась HANA, она же S/4, которая про inmemory и columnstore и вообще изначально больше про БД. Но в целом теперь это название актуальной версии SAP.
А что не так с интеграцией?
Зачем всё это нужно знать?
Для того, чтобы понимать - если у вас SAP до NetWeaver, то SAP-ёры предложат вам "классный инструмент", который они называют RFC (не путать со стандартами!!!), это по сути то, что все нормальные люди называют RPC (удаленный вызов процедур), но в SAP решили, что у них функции и будем называть RFC... Для него есть, конечно, прекрасный SDK на C++. В общем, как вы уже поняли, это не для нормальных здоровых людей.
Но скорее всего у вас будет SAP уже посвежее и вы услышите что-нибудь про XI\PI (это два названия одного и того же, которые просто устали путать и все используют вместе :)). И там будет "полный SOAP" с xsd схемами, которые кроме SAP-а никто больше не прочитает, но "ручками" можно, всё таки быстрее, чем C++ SDK.
Может ещё всплыть тема вроде iDoc - это типа нашей универсальной выгрузки загрузки XML - с неё я бы рекомендовал сливаться, если не уверены в себе или ваших друзьях SAP-ёрах. Косяки ловить можно очень долго.
Но, кстати к чести SAP-овцев, стоит сказать, что вся эта история обратно совместима... так что если освоили RFC то это будет работать вообще везде :).
Благодать наступает с S/4 Hana - тут уже вам могут предложить ODATA, даже управляемую через CDS.
Это конечно не самая простая история и в SAP надо очень хорошо разбираться, но относительно описанного выше - самая приличная, хотя бы привычный уже REST.
А что с интерфейсом?
Тут тоже много всего интересного. Но коротко - есть два типа интерфейса: SAP GUI и SAP Fiori.
То, к чему мы с вами привыкли - это SAP GUI. Интерфейс убогий, но практичный.
Если успели забыть, как он выглядит - могу напомнить:
Но кто не видел, ничего не потерял.
Если у вас SAP версии до HANA, то именно этот интерфейс вы скорее всего увидите.
Хотя всё, конечно, зависит от SAP-ёров. Чтобы писать на Fiori, не обязательно использовать HANA.
Тем не менее, большинство аппликух переписано на fiori уже в HANA (заметьте, не все!).
Кстати, ничего не напоминает в 1С? :)
SAP Fiori уже HTML5, так что выглядит всё очень даже прилично:
И причём тут RPA?
Так вот, весь предыдущий экскурс в историю был именно ради этого момента, чтобы слова не звучали пустыми:
- Интеграция с SAP дело непростое
- В SAP по сути два вида интерфейса
Где же место RPA в проекте миграции с SAP?
Если сейчас вам на ум пришли "загрузка - выгрузка начальных остатков и номенклатуры", то НЕТ!
Давайте будем честны с собой - остатки проще всего загрузить обычными CSV и XLS - если это разовая история. RPA тут, конечно, можно приделать, но особого смысла, пожалуй, нет.
Если есть наивные читатели, которые скажут "ну тогда он не нужен, мы загрузим начальные остатки и начнём работать в 1С с 1 января нового года, SAP удалим 2 января", то им, конечно, нужно один раз это проделать в своей жизни... просто чтобы понять, что жизнь штука тяжелая :)
В общем, идеальное место применения для роботов в проектах миграции с SAP - это ПОДДЕРЖКА ПАРАЛЛЕЛЬНОЙ ЭКСПЛУАТАЦИИ 2-х систем:
- Робот пишется быстро и не требует больших вложений в разработку, с учетом того, что это временное решение, то такой подход более чем оправдан
- Не нужно привлекать две команды для параллельной эксплуатации
- Робот может как брать данные из SAP и вносить в 1С, так и брать из 1С и вносить в SAP
- Робот учитывает все интерфейсные механики и не требует глубокого знания структуры систем
Соответственно RPA поможет на проекте избежать работы пользователей в двух системах, а это и ускорение процессов, и право на ошибку, и более гладкое внедрение, я бы даже сказал, в принципе сама возможность внедрения. Более того, для RPA вам не нужно дорогостоящих консультантов и разработчиков - достаточно просто чтобы пользователь показал, куда и что он вводит в SAP, а консультант показал, куда и что надо вводить в 1С... Кстати, как инструмент тестирования и проверки это тоже весьма неплохо подходит :).
Так реально ли мигрировать с SAP на 1С без команды поддержки SAP?
При наличии консультантов и\или продвинутых пользователей, конечно, да.
В конце концов данные в систему или загружаются или вносятся людьми.
То, что вносится людьми, легко роботизируется. Прямо очень легко.
Для SAP UI есть замечательная штука "Script recording and playback":
Садимся рядом с пользователем, жмём "записать", получаем скрипт, скармливаем его OneRPA и расставляем параметры. Наслаждаемся.
Для 1С процедура схожая как две капли воды, впрочем, вы её знаете:
Если же речь идёт про Web интерфейс (Fiori) то с ним работы средств, конечно же, много, и с селекторами в нём всё намного лучше, чем в 1С (по крайней мере нет циклических, неуникальных и не меняются постоянно).
Осваивается это всё 1С-ником за пару часов (тут я именно про OneRPA, с другими не знаю) после чего жизнь на проекте миграции становится намного более приятной и понятной.