SAPфорум.RU
https://sapboard.ru/forum/

Что такое MODIFY?
https://sapboard.ru/forum/viewtopic.php?f=13&t=756
Страница 1 из 1

Автор:  Novic [ Ср, сен 22 2004, 12:04 ]
Заголовок сообщения:  Что такое MODIFY?

Может кто знает, как мне решить следующую проблему.
У меня есть таблица tab без заголовка
и есть рабочая область wa like line of tab.
В процессе работы значение некоторых поля рабочей области изменились.
wa-field_1 = 'X'.
Надо из менить и соответствующую строку в таблице tab. Ставлю

modify table tab from wa TRANSPORTING field_1.

И что-то не срабатывает.
Может по другому надо???
Спасибо.

Автор:  ВН [ Ср, сен 22 2004, 12:29 ]
Заголовок сообщения: 

MODIFY TAB FROM WA TRANSPORTING FIELD_1 WHERE .....

Автор:  sy-uname [ Ср, сен 22 2004, 12:31 ]
Заголовок сообщения:  Re: Что такое MODIFY?

Novic написал(а):
Может кто знает, как мне решить следующую проблему.
У меня есть таблица tab без заголовка
и есть рабочая область wa like line of tab.
В процессе работы значение некоторых поля рабочей области изменились.
wa-field_1 = 'X'.
Надо из менить и соответствующую строку в таблице tab. Ставлю

modify table tab from wa TRANSPORTING field_1.

И что-то не срабатывает.
Может по другому надо???
Спасибо.

А как определена таблица tab и какое значение принимает sy-subrc после выполнения modify ...?

Автор:  Novic [ Ср, сен 22 2004, 12:37 ]
Заголовок сообщения: 

Определена как
data: begin of tab occurs 0,
field_1
...
...
data end of tab.
sy-subrc возращает 4. :(

Автор:  sy-uname [ Ср, сен 22 2004, 12:48 ]
Заголовок сообщения: 

Novic написал(а):
Определена как
data: begin of tab occurs 0,
field_1
...
...
data end of tab.
sy-subrc возращает 4. :(


Ну тогда всё правильно - используй как тепе подсказали вариант с where
Code:
MODIFY itab [FROM wa] TRANSPORTING f1 ... fn WHERE cond.

или
Code:
MODIFY itab [FROM wa] [INDEX idx] [TRANSPORTING f1 ... fn].


Просто у тебя используется стандартная таблица, у которой ключём является строка целиком и поэтому, возможно, оператор modify не может найти ту строку, которую требуется модифицировать.
Это в том случае, если ты не обрабатываеш таблицу в цикле LOOP.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/