Solution PlusCONSULTING

ABAP Разработка и интеграции

Код, который начинается там, где заканчивается стандарт.

Разработку на ABAP мы не отдаём на сторону — пишем сами. И основной вес этой работы приходится не на доработки внутри одной системы, а на то, что связывает SAP со всем, что его окружает.

Разработка хороша, если её всё ещё можно понять после того, как автор ушёл с проекта.

Большинство заявок на деле начинается с двух вопросов: умеет ли это стандартный SAP, и если умеет, почему этим никто не пользуется? Если ответ «не умеет» — пишем код. Если «не пользуются» — сначала обсуждаем процесс.

Сегодня ни одна ERP не работает в одиночку. Рядом с ней стоит система управления производством, лабораторное программное обеспечение, складское приложение, оператор электронных счетов, банковский интерфейс или собственная разработка компании. Сложность обычно не в ABAP, а в договорённости между этими двумя мирами: какое событие создаёт какой документ, что происходит при ошибке и чья версия верна при расхождении.

Каждый созданный объект соответствует правилам именования, в заголовке указано, что он делает и зачем создан, и передаётся вместе с транспортным запросом. Ключевую логику мы не зашиваем в код, а выносим в таблицу: при изменении параметра разработчик не понадобится.

Компетенции

Чем мы занимаемся на стороне ABAP

DEV Разработка приложений

Отчёты, экраны и печатные формы

Отчёты, которые открывают каждое утро, экраны ввода данных, печатные документы, ночные фоновые задания. Мы выстраиваем разработку вокруг того, как человек реально работает, и проектируем экран как часть рабочего процесса, а не как техническую необходимость.

Что уместнее — объектно-ориентированный подход или классический — решаем, глядя на существующую кодовую базу и на то, что сможет сопровождать команда заказчика.

Списочные и интерактивные отчётыЭкранные и диалоговые программыПечатные документыФоновые заданияПроверки полномочийОбъектно-ориентированный ABAP
EXT Расширения

Расширение стандарта

При вмешательстве в стандартный поток выбор правильной точки обычно важнее самого кода. Вмешательство в неверной точке ломается на первом же обновлении; сделанное в верной — годами остаётся незаметным.

Любое правило, которое может измениться, выносится в сопровождаемую таблицу, а не в код. Правила, различающиеся по организации, стране или товарной группе, после этого управляются без разработчика.

Точки расширенияОбработка событийУправление через таблицыЭкраны веденияУстойчивость к обновлениям
INT SAP — SAP

Интеграция между системами SAP

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

Любой поток, который мы строим, прослеживаем: какой документ и когда ушёл, какой не прошёл и как ошибку переработать — это закладывается с самого начала. Молча исчезнувшая запись — самая дорогая ошибка интерфейса.

Передача документов и основных данныхУдалённые вызовы функцийСтандартные объекты интерфейсовПотоки через промежуточный слойСверочные отчётыМеханизмы повторной обработки
NON Системы вне SAP

Интеграция с приложениями вне SAP

Здесь центр тяжести. Мы связываем SAP с системами управления производством, лабораторным программным обеспечением, складскими и логистическими приложениями, операторами электронных счетов, банковскими интерфейсами, платформами электронной коммерции, инструментами отчётности и с тем, что компания разработала сама.

Прежде чем строить соединение, мы пишем договорённость: какое событие порождает какую запись, как сопоставляются поля, что происходит, когда вторая сторона не отвечает, и когда повторная отправка безопасна. Интерфейс, созданный до появления этих ответов, при первом же сбое останавливает бизнес-процессы.

С технической стороны выбор — сервисное соединение, обмен файлами и каталогами, подключение к базе данных или очередь сообщений — определяется тем, что реально умеет вторая система. Аутентификация, шифрование и журналирование всегда входят в объём работ.

Веб-сервисы (REST и SOAP)Публикация и потребление сервисовОбмен через файлы и FTPПодключения к базам данныхОчереди сообщенийСопоставление и преобразование полейОбработка ошибок и повторная отправкаАутентификация и безопасностьМониторинг и журналирование
MIG Данные

Загрузка данных и массовая обработка

Ввод данных в систему — отдельная инженерная задача. И в разовых переносах, и в ночных загрузках мы ищем одно и то же: проверку, обработку частичного успеха и возможность перезапуска с начала.

Вместо того чтобы загружать сырые данные как есть, мы сначала прогоняем их через проверки. Не пустить ошибочную запись всегда дешевле, чем вычищать её потом.

Массовая загрузка данныхПравила проверкиОтчёты об ошибкахПерезапускаемая конструкцияЛогика преобразованияСверка после загрузки
PRF Производительность и качество

Оптимизация и передача

В системах, работающих годами, это самая частая задача: задания, перестающие укладываться в ночное окно, экраны, открывающиеся минутами, отчёты, замедляющиеся вместе с ростом данных. Мы измеряем, прежде чем трогать код: оптимизация без измерения — это гадание.

Написали мы код сами или получили в наследство — оставляем его в состоянии, пригодном для сопровождения другой командой. Ревью кода, правила именования и документация для нас не дополнительная услуга, а сама работа.

Измерение и профилированиеОптимизация запросов и доступа к даннымИспользование памяти и таблицРевью кодаСтатическая проверка кодаДокументация и передачаУправление транспортами

Среда

Версии и технологии, с которыми мы работаем

Мы не рассматриваем ABAP отдельно от остального процесса. Понимание рабочего потока, которого касается код, удерживает разработку на своём месте.

  • SAP S/4HANA
  • SAP ECC
  • ABAP 7.40 и выше
  • Объектно-ориентированный ABAP
  • Веб-сервисы (REST / SOAP)
  • Сервисы OData
  • Стандартные объекты интерфейсов
  • Удалённые вызовы функций
  • Промежуточные и интеграционные платформы
  • Обмен через файлы и FTP
  • Подключения к базам данных
  • Технологии печати и форм
  • Инструменты массовой загрузки
  • Управление фоновыми заданиями
  • Статическая проверка кода
  • Управление транспортами и релизами

Контакты

Две системы, которые никак не соединяются?

Вы можете попросить нас разобраться, почему существующая интеграция постоянно рвётся или почему программа стала медленной. Обычно это дешевле, чем писать заново.