SAPфорум.RU https://sapboard.ru/forum/ |
|
Объект блокировки https://sapboard.ru/forum/viewtopic.php?f=13&t=83269 |
Страница 1 из 3 |
Автор: | skaa [ Ср, июл 17 2013, 16:53 ] |
Заголовок сообщения: | Объект блокировки |
Добрый день. Подскажите как можно решить проблему. Есть z-транзакция, в которой сбытовые заказы объединяются в группы. Когда сбытовой заказ добавляется в группу в этой z-транзакции, то на этой заказ должна ставиться блокировка, чтобы другой пользователь при работе с этой z-транзакцией не добавил этот заказ, в это же самое время в другую группу. Если использовать стандартый объект блокировки EVVBAKE, то при работе z-транзакции блокируется заказы и в стандартных транзакциях, а этого не нужно. Возможно ли как-то блокировать сбытовой заказ только для данной z-транзакции. |
Автор: | weise [ Ср, июл 17 2013, 17:00 ] |
Заголовок сообщения: | Re: Объект блокировки |
Свой объект блокировки? |
Автор: | skaa [ Ср, июл 17 2013, 17:04 ] |
Заголовок сообщения: | Re: Объект блокировки |
Пробовал, но всё-равно в своем объекте блокировки блокируется запись таблицы vbak с данным заказом, что приводит к тому что стандартные транзакции тоже видят мои блокировки. |
Автор: | D.Krokhun [ Ср, июл 17 2013, 17:08 ] |
Заголовок сообщения: | Re: Объект блокировки |
A shared lock не подойдёт? |
Автор: | skaa [ Ср, июл 17 2013, 17:16 ] |
Заголовок сообщения: | Re: Объект блокировки |
А что подразумеваете под shared lock? |
Автор: | D.Krokhun [ Ср, июл 17 2013, 17:17 ] |
Заголовок сообщения: | Re: Объект блокировки |
Для объекта блокировки указать режим блокировки. Цитата: 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. |
Автор: | D.Krokhun [ Ср, июл 17 2013, 17:18 ] |
Заголовок сообщения: | Re: Объект блокировки |
Ну либо завести в программе таблицу в которую вносить записи блокировки пользователем. Т.е. реализовать некое подобие своего объекта блокировки. |
Автор: | skaa [ Ср, июл 17 2013, 17:32 ] |
Заголовок сообщения: | Re: Объект блокировки |
Режим Shared lock не помог. Можно конечно реализовать свой аналог саповской блокировки, например через z-табличку, или через abap-память, но это на крайний случай. |
Автор: | ArmAnn [ Ср, июл 17 2013, 17:42 ] |
Заголовок сообщения: | Re: Объект блокировки |
skaa написал(а): Пробовал, но всё-равно в своем объекте блокировки блокируется запись таблицы vbak с данным заказом, что приводит к тому что стандартные транзакции тоже видят мои блокировки. Что то вы не так понимаете и/или делаете - стандартные транзакции не знают про ваш объект блокировки, и соответственно они не обращают на него никакого внимания Цитата: Можно конечно реализовать свой аналог саповской блокировки, например через z-табличку, или через abap-память Забудьте про это, лучше разберитесь со стандартным механизмом блокировок
|
Автор: | skaa [ Чт, июл 18 2013, 09:14 ] |
Заголовок сообщения: | Re: Объект блокировки |
Я делаю следующим образом: Копирую стандартный объект блокировки 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 который заблокировался(хотя в в стандарте используется свой объект блокировки). Что я делаю не так? |
Автор: | nicky555 [ Чт, июл 18 2013, 09:31 ] |
Заголовок сообщения: | Re: Объект блокировки |
ФМ блокировки - средство внести запись в таблицу блокировок и ничего более. В таблице блокировок НЕТ ссылки на ФМ блокирования, но есть ссылка на таблицу данных, которые блокируются. Скопировав стандартный объект блокирования (ФМ блокировок) и вызвав его, вы не поменяли таблицу - посмотрите SM12. Результат вызова стандартного объекта блокирования и вашей копии будет идентичен. Сделайте какой-нибудь фиктивный объект блокирования, не связанный с таблицей стандартного объекта блокирования (на форуме эта тема поднималась неоднократно). |
Автор: | skaa [ Чт, июл 18 2013, 10:08 ] |
Заголовок сообщения: | Re: Объект блокировки |
Спасибо. Фиктивный объект блокирования на фиктивную z-таблицу помог |
Автор: | D.Krokhun [ Чт, июл 18 2013, 11:20 ] |
Заголовок сообщения: | Re: Объект блокировки |
Можно обойтись стандартным объектом, просто указав в параметре mandt, например, '1'. |
Автор: | skaa [ Чт, июл 18 2013, 11:59 ] |
Заголовок сообщения: | Re: Объект блокировки |
Необычный способ вы придумали! Интересно есть ли у этого способа какие-то подводные камни. Например не будут ли в двух разных мандантах блокироваться заказы с одинаковыми номерами? |
Автор: | D.Krokhun [ Чт, июл 18 2013, 12:07 ] |
Заголовок сообщения: | Re: Объект блокировки |
Я бы тоже хотел узнать об этом =) Но если ваше предположение верно, можно, например передавать в параметр текущий мандант с '_'. Code: Concatenate '_' sy-mandt into l_mandt.
|
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |