Текущее время: Пт, апр 26 2024, 12:34

Часовой пояс: 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
Сообщения: 4842
Откуда: Москва
Пол: Мужской
Так вот же она: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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