Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: Валентина от Март 27, 2015, 09:00:06 am
-
Уважаемые абаперы! Изучать ABAP я начала не так давно, поэтому не обессудьте. Проблема вот какая. Несколько пользователей одновременно используют z* таблицу для изменения данных. Одна и та же запись одновременно оказаться у разных пользователей не может. Когда изменения во внутренней таблицы произведены, происходит изменение z* таблицы. Для наглядности:
UPDATE zelzvi FROM TABLE lt_zelzvi.
IF sy-subrc = 0.
COMMIT WORK AND WAIT.
MESSAGE s055.
ELSE.
ROLLBACK WORK.
ENDIF.
lt_zelzvi - внутренняя таблица с измененными данными. Проблема в том, что не все записи изменяются. И от чего это зависит не могу понять. И ситуацию такую сделать не могу, потому как не могу понять почему! Помогите кто чем может!
-
lt_zelzvi - внутренняя таблица с измененными данными. Проблема в том, что не все записи изменяются. И от чего это зависит не могу понять. И ситуацию такую сделать не могу, потому как не могу понять почему! Помогите кто чем может!
Ну раз разные пользователи, то хотелось бы узнать каким образом вы разным пользователям не даете менять одну и туже запись. Т.е. показывайте свой механизм выбора записей во внутреннюю таблицу lt_zelzvi для изменений.
-
select-ом выбираю данные из таблицы по введенным параметрам на селекционном экране
SELECT *
INTO CORRESPONDING FIELDS OF TABLE lt_zelzvi
FROM zelzvi
WHERE
dispo IN so_dispo AND
werks = p_werks AND
status IN s_status AND
elzvblnr IN s_elznr AND
matnr IN s_matnr AND
fevor IN s_fevor AND
gstrs_f IN s_gstrs.
И выкидываю блокированные позиции
CALL FUNCTION 'ENQUEUE_EZZELZVI'
* EXPORTING ELZVBLNR = ls_zelzvi-ELZVBLNR
* EXCEPTIONS FOREIGN_LOCK = 1
* SYSTEM_FAILURE = 2.
ELZVBLNR - уникальный ключ
-
CALL FUNCTION 'ENQUEUE_EZZELZVI'
* EXPORTING ELZVBLNR = ls_zelzvi-ELZVBLNR
* EXCEPTIONS FOREIGN_LOCK = 1
* SYSTEM_FAILURE = 2.
А это вы из кода брали? Тогда не ясно почему у вас строки закомментированны, там где ключ и остальное. Вот этот символ * показывает что строка коментирована
-
да, из кода, я пробовала уже несколько вариаций, в том числе и эту. Не помогло. Вернула обратно. Боюсь совсем сломать
-
да, из кода, я пробовала уже несколько вариаций, в том числе и эту. Не помогло. Вернула обратно. Боюсь совсем сломать
Мда, ну раз вы вообще не понимаете что и как написано в программе, то могу только посочувствовать. Вы не правильной используете блокирование записей, поэтому затягиваете во внутреннюю таблицу данные которые изменяются другими пользователями, вот и происходит перезапись данных друг другом. Вообще очень советую начать читать с этой книги: http://sapforum.biz/index.php/topic,117.0.html иначе толку от вашего программирования будет очень мало :-\