Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: Skif от Июль 04, 2017, 12:00:51 pm
-
Привет,
Чисто программистская задачка. Наверняка сто раз решена - где-то - Ткните пальцем, плз :)
Не дать сохранить дублирующую PERNR запись с перекрывающимся интервалом. В смысле, т.к. они ключевые, то конечно матюкнётся на update. Но хотелось бы проверить до сохранения, выдать сообщение об ошибке с требованием проверить интервалы.
-
хотелось бы проверить до сохранения, выдать сообщение об ошибке с требованием проверить интервалы.
Сделать переменную типа RANGES в нее загнать интервалы? которые существуют (sign = I, option = BT, low = <начало>, high = <конец>), а дальше новый интервал проверить вхождение начала интервала и конца в этот RANGES если начало или конец входят в проверку то значит есть пересечение, т.е. типа if BEGDA-ENDDA in RANGES. <значит дата входит в один из диапазонов>. elseif BEGDA-BGNDA in RANGES. <дата входит в пересечение диапазона>. else. <все в порядке пересечения нет>.
-
Добрый день! Подсмотрел алгоритм у самого SAP когда-то :)
... where begda <= p_end
and endda >= p_beg.
где p_beg , p_end - период нашей новой записи.
-
Добрый день! Подсмотрел алгоритм у самого SAP когда-то :)
Юра, там условие, было следующее. Так что твой вариант мимо кассы получается, базу то трогать не хотят лишними нагрузками.
Но хотелось бы проверить до сохранения, выдать сообщение об ошибке
-
Олег, в варианте с RANGE используется SELECT к таблице? или вся таблица загружена во внутреннюю память?
-
Олег, в варианте с RANGE используется SELECT к таблице? или вся таблица загружена во внутреннюю память?
Так я так понял данные по существующим интервалам у него уже где-то есть в переменных., так что RANGE просто используется для проверки без запроса к базе, хотя если конечно там HANA, то как бы все равно 8)