ABAP: фоновые задания, пакеты и журналирование#
Фоновый запуск меняет условия выполнения, но не отменяет проектирование процесса. Задание должно иметь явные шаги, условия старта, вариант параметров, полномочия, ожидаемый объём и способ проверить результат. Для больших операций дополнительно нужны ограниченные пакеты, сохранение прогресса и правила безопасного повторного запуска.
Контракт фонового задания#
Задание состоит из одного или нескольких шагов. В каждом укажите программу или внешнюю команду, вариант отбора, плановое время или событие запуска, приоритет, целевой сервер либо балансировку, язык, пользователя запуска и ожидаемые spool-результаты. Запланированное задание должно быть корректно выпущено для выполнения; проверяйте владельца, полномочия и условия старта отдельно от факта сохранения расписания.
Вариант отбора является частью воспроизводимости. Фиксируйте его имя и версию, диапазон компании, даты или периодов, режим обработки, ограничения объёма и настройки повтора. Не используйте вариант, который незаметно отбирает все периоды или позволяет запустить разрушающий режим без подтверждения.
Пакетная обработка с восстановлением#
Разбейте большую работу по устойчивому ключу и задайте верхнюю границу размера пакета. Храните идентификатор запуска, диапазон ключей, номер пакета, время начала и окончания, состояние, количество прочитанных, записанных, отклонённых и повторно обработанных объектов. Сохраняйте checkpoint только после фиксации соответствующих данных и результата обработки.
Повтор пакета должен быть идемпотентным либо явно продолжаться с подтверждённого ключа. Не продвигайте позицию чтения при неподтверждённой записи. Для частичной ошибки сохраняйте исходные ключи, причину, версию входа и способ повторной обработки; не помечайте весь запуск успешным только потому, что часть данных обработана. Предотвращайте одновременный запуск конфликтующих экземпляров и определите поведение отмены, блокировки и перезапуска после падения сервера.
Контролируйте конкуренцию и ресурсы: длительность, память, число записей, блокировки, потребление фоновых work process и нагрузку базы. Для тяжёлой выборки применяйте селективные условия и ограниченный пакет; планируйте окно и количество параллельных заданий. Увеличение параллелизма без анализа порядка ключей и блокировок может замедлить процесс или создать взаимные конфликты.
Журнал задания и Application Log#
Job log показывает системные и программные сообщения по шагам задания, включая предупреждения, ошибки и завершение. Используйте его вместе со статусом шага, ABAP dump и spool, если они относятся к проблеме. Job log не является полной трассой бизнес-объектов и не обязательно содержит сообщения отдельных механизмов обработки, например batch input.
Application Log добавляет прикладной контекст: object и subobject, идентификатор запуска, бизнес-ключ, тип и класс сообщения, результат проверки и ссылку на причину ошибки. Пишите краткие полезные сообщения на границах обработки и группируйте их так, чтобы оператор мог найти нужную работу через SLG1. Не записывайте пароли, полные персональные данные или большие payload в свободный текст.
Разделяйте информационный итог, предупреждение, отклонённую запись и аварийное завершение. Для каждой ошибки укажите, можно ли повторить только запись, пакет или всё задание, нужна ли очистка, и как проверить, что предыдущая попытка не создала документ. Spool используйте для предназначенного пользователю отчёта, а не вместо структурированного журнала.
Контроль результата и диагностика#
Сопоставьте статус задания и шага с числом обработанных и отклонённых ключей. Сверьте контрольные суммы и количества по компании, ledger, периоду и валюте. Успешный статус задания не заменяет контроль бизнес-результата, а сообщение об ошибке не всегда означает, что не было частичной фиксации.
Для расследования сохраните job name и идентификатор экземпляра, владельца, время и start condition, программу и вариант, шаг с ошибкой, application-log object/subobject, бизнес-ключ, текст и номер сообщения, dump/spool-ссылки, checkpoint и последнюю подтверждённую операцию. Сначала проверьте состояние документов и checkpoint, затем выбирайте повтор. Не удаляйте файлы job log напрямую на уровне операционной системы; используйте штатное управление заданиями и хранением SAP.
Ссылки описывают фоновую обработку ABAP Platform 2025 FPS01 и Application Log. Наличие полномочий, доступных ресурсов и эксплуатационных процедур зависит от системы. В этом проекте нет SAP runtime; фоновые задания, batch recovery, SLG1 и бизнес-сверки не выполнялись.