После анализа кода нужен не массовый «рефакторинг под HANA», а контролируемое исправление тех объектов, которые затрагивает выбранный source-to-target переход. Исправление считается принятым, когда оно соответствует целевому release, сохраняет ожидаемый результат финансовой операции и прошло проверку в целевом окружении.
Превратите finding в конкретное требование#
Для каждого ATC finding, Simplification Item или ошибки после конверсии определите:
- исходную и целевую версию и используемый check variant;
- изменившийся SAP-объект, интерфейс, структуру или ограничение и ссылку на SAP Note;
- точный Z-объект и путь исполнения, который зависит от изменения;
- тип действия: синтаксис/типизация, изменение доступа к данным, переход на поддерживаемый API, исправление производительности или redesign;
- финансовый процесс, пользователя, данные и контроль, которые должны остаться неизменными.
Проверьте сообщение по документации конкретной target-версии и примечанию, на которое оно ссылается. Quick fix может уменьшить технический finding, но не решает вопрос бизнес-семантики, роли авторизации или полноты сценария. Применяйте автоматическое исправление как кандидата в code review; после него активируйте объект, повторите ATC и проверьте diff.
Проверяйте смысл изменённых объектов и API#
Не предполагайте, что таблица с тем же названием или compatibility view сохраняет прежнюю структуру, гранулярность и поддержку всех полей. Для каждого прямого доступа определите, какие поля, ключи, суммы, ledger и фильтры реально использует приложение. Сопоставьте их с целевым объектом, совместимостью, ограничениями чтения/записи и целевым контрактом.
Compatibility view может предоставлять ограниченную совместимость для прежнего интерфейса; это не универсальный договор на дальнейшую разработку и не разрешение изменять представленные данные через него. Сверьте назначение и срок поддержки для target release. Для новых чтений выбирайте документированный CDS View из подходящей области VDM и учитывайте его stability contract, статус, авторизации и пригодность для нужного сценария.
View Browser и документация помогают исследовать поля, семантические аннотации, назначение, статус и возможного successor. Выбор successor требует сравнить, что именно возвращает новый объект и какие фильтры/измерения он поддерживает. Одинаковый label у поля не доказывает эквивалентность.
Для финансовой операции сохраняйте необходимые измерения: company code, ledger, account assignment, currency, fiscal period, posting/document date и document/line identity. Не переходите на агрегатный CDS-запрос, если потребителю нужны открытые позиции, сторно, отдельные строки или lineage до исходного документа.
Сохраняйте семантику в изменениях типов и SQL#
Проверьте длину и тип каждого значения на границах SAP API, структуры, внутренней таблицы и внешнего интерфейса. Усечение identifier или сумма с прежней точностью могут не вызывать синтаксическую ошибку, но приводить к неверному поиску объекта, отбрасыванию строк или изменению суммы. Сопоставьте типы, преобразования, округление, null/initial и сортировку на реальных граничных примерах.
Для SQL-переписывания установите, какой результат требует процесс: полный набор строк, точные ключи, понятный порядок, дедупликация или агрегирование. Не полагайтесь на случайный порядок строк без явной сортировки. Проверьте joins, клиентские ограничения, единицы/валюты, фильтры периода и различия между источником и CDS-слоем. Статически корректный SELECT не гарантирует тот же набор бухгалтерских документов.
Если чтение участвует в финансовом расчёте, проверьте currency/amount pair, валюту оценки, ledger, posting date и правила периода. Если читает интерфейс, проверьте его contract и downstream consumers. Изменение доступа к данным не должно незаметно менять формулу, выборку или детализацию.
Измеряйте производительность на критическом пути#
После замены структуры или SQL зафиксируйте прежний и целевой запрос, системные/периодные параметры, объём данных и число результатов. Измеряйте representative execution для фактического процесса на целевой платформе. Сравните runtime, число прочитанных строк, объём переданных данных, количество обращений и memory use там, где доступны эти метрики.
Не оптимизируйте по одному тесту с пустой базой. Проверьте массовую обработку, крупный период, типичные фильтры, редкий длинный документ и межсистемный поток, если они входят в scope. HANA execution plan может отличаться от прежней базы; переписывание должно подтвердить улучшение без потери смысла и корректности.
Стройте исправление вместе с финансовым тестом#
Для каждой адаптации свяжите finding, commit/transport, целевой SAP объект/API, ожидаемый вход и результат, финансовую сверку и regression owner. Используйте малые изменения, которые можно проверить отдельно; массовый quick fix без изолируемого результата затрудняет диагностику.
В минимальном regression-наборе для затронутого объекта проверьте:
- обычную и граничную запись, включая длинные ключи, нулевые значения и большие суммы;
- несколько валют, ledger, дату документа и дату проводки, включая границу открытого/закрытого периода;
- несколько строк документа, сторно, повторную обработку и open/cleared status, если они поддерживаются сценарием;
- авторизацию, company/client scope и внешние интерфейсы, которые используют результат;
- контрольные суммы, количества документов и трассировку результата к исходной записи;
- ATC на целевом варианте и измерение критического performance path после адаптации.
Сравнивайте исходную и исправленную реализацию на одном входном снимке. Каждое допустимое отличие должно быть описано как ожидаемое изменение SAP, а не просто принято из-за нового кода. После конверсии повторите target checks и бизнес-регрессию на фактическом релизе.
Не объединяйте в одну задачу устранение syntax error, замену API, оптимизацию SQL и пересмотр бизнес-правила. Если процесс должен намеренно поменяться, согласуйте его отдельно с владельцем учёта и задайте новую ожидаемую сверку.
Этот материал частично покрывает MIG-09. Руководства Custom Code Migration для S/4HANA 2025 относятся к On-Premise и Private Edition; источники по compatibility views, VDM и View Browser относятся к On-Premise 2025 FPS01. Реальный ABAP код, ATC run, API scope, производительность, финансовые данные и SAP runtime не проверялись; источники остаются metadata_only.