Вы можете попытаться использовать рабочий процесс, чтобы охватить все возможные случаи.
Создать событие рабочего процесса, которое будет инициировано после создания / изменения доставки, и проверить там на наличие отпуска материала. BO доставки - LIKP, поэтому перейдите к tcode SWU_EWCD и введите такие данные
События рабочего процесса основаны на документах изменений, поэтому каждый раз, когда что-то записывается в таблицу, он запускается. Убедитесь, что ваше событие правильно создано в транзакции SWEC.
Вы также можете создавать события на основе условий NACE . После этого используйте ваше событие для создания собственного рабочего процесса.
Также BAdI LE_SHP_DELIVERY_PROC может представлять интерес для вас, у него есть метод
SAVE_AND_PUBLISH_BEFORE_OUTPUT, который выполняется перед сохранением доставки.