Ок, дело обстоит так.
В таблице EQUZ создана доп. стр-ра в которой определены скажем два поля F1 и F2. EQUZ как известно служит для ведения временных периодов у ЕО (проще говоря отслеживает изменения ЕО, верней отдельных полей). Так вот мне необходимо сделать так, что при изменении одного из таких полей у ЕО, и перед тем как создастся новая запись в EQUZ, изменить значение поля в
последней строке таблицы скажем F1 (EQUZ-F1).
Для этого очень удобно использовать экзит EXIT_SAPMIEQ0_001.
Вот тут я и делаю:
Code:
UPDATE EQUZ SET: F1 = 'ABCD'
WHERE F2 = '12345' "Условие нахождения последней
and EQUNR = '00001 "строки в EQUZ
.
COMMIT WORK.
Все классно, поле принимает нужное мне значение, а вот дальше получается, когда выходим в основную программу (SAPMIEQ0 - [FORM EQUIPMENT_SAVE] ) и когда отрабатывает COMMIT WORK там:
- как и должно быть, происходит добавление новой строки в EQUZ,
- но при этом та строка в которой я делал изменения затирается такой-же только в первоначальном виде.
Елси этот CОMMIT проходить в отладчике по F5 то поподаем в очень интересную форму BUF_SAVE, где много интересного, тут и структура GLOBAL_EQUZ_BEF_TAB - так назовем первоначальные данные(той самой последней записи в EQUZe) и соответственно новая GLOBAL_EQUZ_AFT_TAB, вот какраз в
старой стр-ре и хранится значение которое мне надо изменить, только вот как к ней добраться
Сорри если что за коломбур, вот как мог изложил свою проблемму, буду рад любому совету.