RFC функция ZZ2

Автор Olga, Жовтень 19, 2026, 11:43:45 ДП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Olga

В SAP є таблица ztbl1 . Корегування окремих полів таблиці відбувається не в SAP а в зовнішній системі і кожен раз передаеться RFC функциєю в SAP яка корегує значення полів таблиці.Корегування полів в зовнішній системі відбувається декількома користувачами одночасно .
Підскжіть , як правильно зробити що б поля таблиці SAP корегувались коректно !
RFC функція має приблино такий вигляд :

FUNCTION ZZ2.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  TABLES
*"      ITABB STRUCTURE  ZS02
*"      RETURN STRUCTURE  BAPIRET2
*"----------------------------------------------------------------------
* передана ЗОВНІ ІНФОРМАЦІ  itabb-equnr - КЛЮЧ ; vn-НОВЕ ЗНАЧЕННЯ ПОЛЯ
loop at itabb.
 * читаємо таблицю ztbl1 по ключу   itabb-equnr
select * from ztbl1 where equnr = itabb-equnr.

* корегуємо поля  vn dsys fsys таблиці ztbl1

update ztbl1 set vn = itabb-vn dsys = sy-datum fsys = SY-uname
 where equnr = itabb-equnr .

IF sy-subrc = 0.
  commit work.
ELSE.
  rollback work.
  return-TYPE = 'E'.
  return-id = 'Помилка'.
  return-MESSAGE = 'Cталася помилка '  .
 append return.
ENDIF.
exit.
endselect.

endloop.

ENDFUNCTION.

Uukrul

Использование объектов блокировки вам должно помочь. Создаете свой объект блокирования. Затем в коде проверяете блокировку с параметром _WAIT = 'X' и будет вам счастье. Про сами объекты блокирования информации полно как сделать и как использовать.

Если технически то перед тем как давать пользователю редактировать данные проверяете нет ли блокировки данных, если нет, тогда даете редактировать если есть говорите чтобы обождал. Ну это если есть вероятность редактирования одних и тех же данных. Вызовы модулей блокировки тоже можно поставить галку RFC чтобы оно давало делать удаленные вызовы.

SMF spam blocked by CleanTalk