Текущее время: Чт, мар 28 2024, 11:57

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 16:53 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Добрый день.
Подскажите как можно решить проблему.
Есть z-транзакция, в которой сбытовые заказы объединяются в группы. Когда сбытовой заказ добавляется в группу в этой z-транзакции, то на этой заказ должна ставиться блокировка, чтобы другой пользователь при работе с этой z-транзакцией не добавил этот заказ, в это же самое время в другую группу. Если использовать стандартый объект блокировки EVVBAKE, то при работе z-транзакции блокируется заказы и в стандартных транзакциях, а этого не нужно. Возможно ли как-то блокировать сбытовой заказ только для данной z-транзакции.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:00 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Свой объект блокировки?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:04 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Пробовал, но всё-равно в своем объекте блокировки блокируется запись таблицы vbak с данным заказом, что приводит к тому что стандартные транзакции тоже видят мои блокировки.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:08 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 22 2013, 11:44
Сообщения: 41
A shared lock не подойдёт?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:16 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
А что подразумеваете под shared lock?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:17 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 22 2013, 11:44
Сообщения: 41
Для объекта блокировки указать режим блокировки.
Цитата:
Shared lock

Several users can read the same data at the same time, but as soon as a user edits the data, a second user can no longer access this data. Requests for further shared locks are accepted, even if they are issued by different users, but exclusive locks are rejected.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:18 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 22 2013, 11:44
Сообщения: 41
Ну либо завести в программе таблицу в которую вносить записи блокировки пользователем. Т.е. реализовать некое подобие своего объекта блокировки.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:32 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Режим Shared lock не помог. Можно конечно реализовать свой аналог саповской блокировки, например через z-табличку, или через abap-память, но это на крайний случай.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Ср, июл 17 2013, 17:42 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
skaa написал(а):
Пробовал, но всё-равно в своем объекте блокировки блокируется запись таблицы vbak с данным заказом, что приводит к тому что стандартные транзакции тоже видят мои блокировки.

Что то вы не так понимаете и/или делаете - стандартные транзакции не знают про ваш объект блокировки, и соответственно они не обращают на него никакого внимания

Цитата:
Можно конечно реализовать свой аналог саповской блокировки, например через z-табличку, или через abap-память
Забудьте про это, лучше разберитесь со стандартным механизмом блокировок

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Чт, июл 18 2013, 09:14 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Я делаю следующим образом:
Копирую стандартный объект блокировки EVVBAKE в свой z-объект блокировки EZVVBAKE.
Далее вызываю ФМ для своего z-объекта блокировки:
Code:
DATA vbeln TYPE vbeln.
vbeln = '0000000003'.
CALL FUNCTION 'ENQUEUE_EZVVBAKE'
  EXPORTING
    vbeln                =  vbeln
  EXCEPTIONS
    foreign_lock         = 1
    system_failure       = 2
    OTHERS               = 3
          .
break-point.


И на момент break-pointa захожу в стандартный заказ va02 который заблокировался(хотя в в стандарте используется свой объект блокировки). Что я делаю не так?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Чт, июл 18 2013, 09:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
ФМ блокировки - средство внести запись в таблицу блокировок и ничего более. В таблице блокировок НЕТ ссылки на ФМ блокирования, но есть ссылка на таблицу данных, которые блокируются.
Скопировав стандартный объект блокирования (ФМ блокировок) и вызвав его, вы не поменяли таблицу - посмотрите SM12. Результат вызова стандартного объекта блокирования и вашей копии будет идентичен.
Сделайте какой-нибудь фиктивный объект блокирования, не связанный с таблицей стандартного объекта блокирования (на форуме эта тема поднималась неоднократно).

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Чт, июл 18 2013, 10:08 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Спасибо. Фиктивный объект блокирования на фиктивную z-таблицу помог


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Чт, июл 18 2013, 11:20 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 22 2013, 11:44
Сообщения: 41
Можно обойтись стандартным объектом, просто указав в параметре mandt, например, '1'.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Чт, июл 18 2013, 11:59 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Необычный способ вы придумали!
Интересно есть ли у этого способа какие-то подводные камни.
Например не будут ли в двух разных мандантах блокироваться
заказы с одинаковыми номерами?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект блокировки
СообщениеДобавлено: Чт, июл 18 2013, 12:07 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 22 2013, 11:44
Сообщения: 41
Я бы тоже хотел узнать об этом =)
Но если ваше предположение верно, можно, например передавать в параметр текущий мандант с '_'.

Code:
Concatenate '_' sy-mandt into l_mandt.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB