Текущее время: Вт, июн 17 2025, 18:39

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_OUTB_DELIVERY_CHANGE и косяки с сортировкой её внутренней таблицы ct_vbpok
СообщениеДобавлено: Чт, фев 18 2021, 16:11 
Начинающий
Начинающий

Зарегистрирован:
Вт, окт 27 2015, 10:14
Сообщения: 8
Здравствуйте, уважаемые коллеги!

Крик моей души посвящен исключительно стандарту SAP, косяк в котором приводит к ошибкам в Z-части (один из энхансментов, потребляющих значение LIPS-LGORT).

Так вот, в BAPI_OUTB_DELIVERY_CHANGE, в подпрограмме spe_vbpok_obdlv_fill_chg( include /SPE/V50IF01 ), есть конструкция:
Code:
SORT ct_vbpok BY vbeln_vl posnr_vl.


Если в полях vbeln_vl и posnr_vl значения повторяются от строки к строке, то нестабильная сортировка меняет итоговый порядок строк таблицы CT_VBPOK.
В этом нет ничего нового, скажете вы, однако сразу за этой сортировкой следует цикл по таблице it_item_data_spl, в котором заложен алгоритм,
изменяющий данные таблицы CT_VBPOK, и изменяет он их по индексу SY-TABIX, который устанавливается оператором READ TABLE, а коли строки в CT_VBPOK изменили порядок своего следования, то такая модификация таблицы теряет свой смысл для первой итерации, когда из it_item_data_spl берется номер вышестоящей позиции, и по нему
READ TABLE читает данные в CT_VBPOK (в ней все VBELN_VL и POSNR_VL имеют одинаковые значения), а затем, найдя первую же строку, изменяет данные в ней.

Первая строка в этой таблице носит особый смысл: она не содержит номер партии, и в дальнейшем именно этот критерий (CT_VBPOK-BATCH IS INITIAL) сыграет свою роль, но в паре со значением CT_VBPOK-XWMPP = 'X'.

И тут получается, что если порядок строк изменился, а меняется он так, как будто бы строки таблицы расположили в обратном порядке, то ставшая последней первая строка
никогда не получит значение CT_VBPOK-XWMPP = 'X', что нарушит нормальную работу BAPI, и в LIPS-LGORT не подставится значение склада, а затем Z-энхансмент прервет
выполнение BAPI при проверке запасов, хотя запасы-то есть, просто нет значения LIPS-LGORT, являющегося аргументом запроса.

Сталкивались ли вы с таким безобразием? Может быть, есть нота, где используется SORT STABLE или что-то иное? Мы таких нот не нашли (может, плохо искали).

Скажу лишь только то, что такие поставки всплывают где-то раз в полгода небольшими пачками (штук по пять). Наблюдается это уже года два (по словам коллег), но продебажили эту ситуацию и нашли явный огрех в стандарте только сейчас.

Дополнительные опорные данные: SAP_BASIS - 740, SP-Level - 0011.

Если нужны версии ещё каких-то компонентов, скажите, я напишу.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_OUTB_DELIVERY_CHANGE и косяки с сортировкой её внутренней таблицы ct_vbpok
СообщениеДобавлено: Чт, фев 18 2021, 17:53 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
Так вот же она: https://launchpad.support.sap.com/#/notes/3010815
С пылу с жару, от января 2021 )
Вообще прикольно получилось: только вчера с инклюдом /SPE/V50IF01 копался по другому поводу и видел эту ноту.

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_OUTB_DELIVERY_CHANGE и косяки с сортировкой её внутренней таблицы ct_vbpok
СообщениеДобавлено: Чт, фев 18 2021, 22:32 
Начинающий
Начинающий

Зарегистрирован:
Вт, окт 27 2015, 10:14
Сообщения: 8
Большое спасибо!

Случайности - не случайны)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB