Показаны сообщения с ярлыком bonus. Показать все сообщения
Показаны сообщения с ярлыком bonus. Показать все сообщения

понедельник, 23 апреля 2012 г.

Связь бонусных соглашений и условий

Заголовки условий хранятся в таблице KONH. Уникальный номер условия KONH-KNUMH.
Соглашения хранятся в таблице KONA. Уникальный номер соглашения KONA-KNUMA.

Получить номер соглашения по номеру условия просто - он хранится в одном из полей  KONH-KNUMA_* (например KNUMA_BO).

Получить все номера условий для заданного соглашения, конечно, можно, выполнив SELECT по  KONH-KNUMA_*, но это очень медленно, потому что индекса по этим полям в KONH нет.
В принципе для этого существует  индекcная таблица KONAIND, но судя по тому стандартному коду, который находится поиском, она используется только в случае, если тип соглашения (KONA-ABTYP) равен "C" (Мероприятие по стимулированию продаж).

Для бонусных соглашений правильным способом получения всех условий  является использование ФМ SD_BONUS_READ. Если же "копнуть" глубже, то поиск условий в этом ФМ производится по таблицам KOTE*,  в которых есть поля KNUMA и KNUMH и, как правило, есть индекс по KNUMA.