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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Пн, окт 31 2022, 12:15 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 08 2018, 14:09
Сообщения: 87
Откуда: Челябинск
Пол: Мужской
Yozhhhhh написал:
Наколхозить-то более или менее можно и через обычные блокировки.
1. Пользователь открыл WEB-интерфейс: отправка в sap через rfc информации о блокировке объекта.
2. Зафиксировать допустимое время работы с объектом, например, 15 минут.
3. При сохранении из Web-интерфейса отправка в sap через rfc изменений и снятие блокировки.
4. При незакрытом web-интерфейсе выкидывать сообщение "Продлевать будете?" При нажатии "Да" отправка в sap через rfc запроса на снятие блокировки и мгновенное блокирование повторно. При этом время блокирования объекта обновляется в sap. При нажатии "Нет" выходить из интерфейса, отправлять в sap снятие блокирования.
5. Все это время в фоне в SAP работает программа, которая каждые N минут проверяет, когда был блокирован объект. При достижении критичного порога снимать блокировку принудительно (предполагая, что ранее в web-интерфейсе пользователь продлил или вышел). При этом предполагается, что время счетчика в sap в фоне должно чуточку превышать время счетчика в web-интерфейсе, потому что после достижения 15 минут и долгого разглядывания сообщения в web-интерфейсе объект в sap уже будет разблокирован. Например, контроль в фоне в сапе 20 минут, в интерфейсе 15 минут. Разница между этими двумя отметками - это холостое простаивание объекта в заблокированном состоянии при закрытом браузере или при игнорировании сообщения в web-интерфейсе.
6. Финальная нотка - это определение времени на обработку сообщения о продлении в web-интерфейсе. Например, на принятие решения после всплытия сообщения дается минута. Таким образом, 15 минут до вывода сообщения, минута на обработку (после отсутствия реакции останавливать работу в web-сервисе). В фоне в сапе обрубать после 17 минут. Программа в фоне могла бы работать каждые N минут (чем меньше будет шаг, тем меньше будет холостое простаивание). Сама программа абсолютно невесомая, нагрузки на систему не дает особой: посмотреть все заблокированные типовые объекты и отследить время блокирования. При достижении критического времени X снимать блокировку.

Ссаными тряпками не кидаться :D


Да, при желании можно.....
Удивляет, что до сих пор нет инструмента аналог с RJ45 на мат. плате, оборвал и 2 внешние системы уже не могут между собой взаимодействовать, воткнул -> свзяь есть (зеленая лампочка загорелась)....
Что только не выдумает мозг человека...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Вт, ноя 01 2022, 02:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
proga19 написал:
Kengur написал(а):
Тут кто-то изобретает концепцию BOPF + Odata. И у вас явно не хватает для этого понимания того, как сап устроен. Лучше не стоит. Выдавайте пользователю ошибку в своем вебе, если что-то пошло не так и объект поменялся.

В таком случае, например, USER1 изменяет объект и ставит ему статус "K9" - т.е изменять объект нельзя (например, в ДМС-объекте). Сохраняет всё ок.
В это же время USER2 тоже редактирует этот же объект и сохраняет уже после USER1.
Получается, кто последний, тот и сохранил (но при этом статус USER1 уже не предполагает изменений).

Тогда при каждом изменении в SAP нужно ещё проверять, можно менять или нет.......
Спасибо.
Знаний действительно не хватает, а тема интересная!

Если посмотреть на время когда кто сохранял и запрашивал документ, то сразу можно отследить несоответствие.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Вт, ноя 01 2022, 02:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
proga19 написал:
Yozhhhhh написал:
Наколхозить-то более или менее можно и через обычные блокировки.
1. Пользователь открыл WEB-интерфейс: отправка в sap через rfc информации о блокировке объекта.
2. Зафиксировать допустимое время работы с объектом, например, 15 минут.
3. При сохранении из Web-интерфейса отправка в sap через rfc изменений и снятие блокировки.
4. При незакрытом web-интерфейсе выкидывать сообщение "Продлевать будете?" При нажатии "Да" отправка в sap через rfc запроса на снятие блокировки и мгновенное блокирование повторно. При этом время блокирования объекта обновляется в sap. При нажатии "Нет" выходить из интерфейса, отправлять в sap снятие блокирования.
5. Все это время в фоне в SAP работает программа, которая каждые N минут проверяет, когда был блокирован объект. При достижении критичного порога снимать блокировку принудительно (предполагая, что ранее в web-интерфейсе пользователь продлил или вышел). При этом предполагается, что время счетчика в sap в фоне должно чуточку превышать время счетчика в web-интерфейсе, потому что после достижения 15 минут и долгого разглядывания сообщения в web-интерфейсе объект в sap уже будет разблокирован. Например, контроль в фоне в сапе 20 минут, в интерфейсе 15 минут. Разница между этими двумя отметками - это холостое простаивание объекта в заблокированном состоянии при закрытом браузере или при игнорировании сообщения в web-интерфейсе.
6. Финальная нотка - это определение времени на обработку сообщения о продлении в web-интерфейсе. Например, на принятие решения после всплытия сообщения дается минута. Таким образом, 15 минут до вывода сообщения, минута на обработку (после отсутствия реакции останавливать работу в web-сервисе). В фоне в сапе обрубать после 17 минут. Программа в фоне могла бы работать каждые N минут (чем меньше будет шаг, тем меньше будет холостое простаивание). Сама программа абсолютно невесомая, нагрузки на систему не дает особой: посмотреть все заблокированные типовые объекты и отследить время блокирования. При достижении критического времени X снимать блокировку.

Ссаными тряпками не кидаться :D


Да, при желании можно.....
Удивляет, что до сих пор нет инструмента аналог с RJ45 на мат. плате, оборвал и 2 внешние системы уже не могут между собой взаимодействовать, воткнул -> свзяь есть (зеленая лампочка загорелась)....
Что только не выдумает мозг человека...

Так есть уже все. Купите hybris от сапа.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Вт, ноя 08 2022, 19:14 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 179
Ещё можно использовать оптимистичные блокировки. Почитать можно здесь:
https://abap-blog.ru/database-work/konc ... vok-v-sap/

Смысл там в том, что если кто-то уже сохранил документ, то при попытке сохранения другим пользователем будет выводиться ошибка.
И при "преобразовании блокировки из оптимистичной в блокировку на запись. В случае успеха оптимистичные блокировки в других программах будут сняты".


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Вт, ноя 08 2022, 20:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Блокировки в сапе работают, пока есть сессия. Сессия при запросе ICM заканчивается сразу же при возврате ответа. Не путайте людей.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Ср, ноя 09 2022, 13:12 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 179
Спасибо за замечание!
Тогда дополню, что эти оптимистичные блокировки нужно устанавливать в каком-нибудь ABAP демоне, если версия системы позволяет)
https://blogs.sap.com/2018/10/18/abap-d ... le-events/

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Ср, ноя 09 2022, 16:12 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
Не удержусь и добавлю свое мнение )

1. Задача топикстартера тянет на реализацию полноценного web-gui для SAP с максимально корректной концепцией блокировок объектов.
Если посмотреть на историю, то сам вендор (SAP) делал не меньше семи (!!!) подходов к этой задаче:
https://blogs.sap.com/2014/08/14/histor ... hnologies/

Учитывая несравнимую разницу в ресурсах, не стоит пытаться переиграть SAP на его поле.
Если очень хочется переходить на web-gui, берите актуальную технологию от SAP (UI5) со всеми прилагаемыми к ней подходами по блокировке.

2. С другой стороны, у меня был опыт участия со стороны SAP ERP в реализации веб-портала поставщика.
Со стороны портала команда писала на php, в SAP для чтения и записи данных дергали RFC-ФМ, которые мы им предоставляли как back-end.
Никакой предварительной блокировки не было: пользователь на портале нажимал условную кнопку "сохранить", в SAP дергался ФМ, который пытался поставить блокировку на объект. Если ок - менял объект, если нет, пользователь портала получал сообщение, что объект уже заблокировал кто-то другой.
В той конкретной предметной области такой подход аля "оптимистичная блокировка" вполне взлетел.

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание сессии в SAP
СообщениеДобавлено: Ср, ноя 09 2022, 19:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Так и что с того? Я тоже в Х5 делал портал на шарепоинте с интеграцией в сап. Пробросить до пользователя ошибку при изменении можно и без прослоек, это не сложно. А вот сделать блокировку объекта когда кто то в нем теоретически "сидит", совсем другое дело. Можно было бы конечно же сделать банально свои блокировку с блекджеком, которые бы отваливались по времени, а на стороне клиента написать на js код которые периодические эти блокировки "обновляет".

В итоге получается что сап не для веба, а веб не для сапа. В вебе редко когда вобще пользователи имеют доступ к "чужим" объектам. А в сапе самое любимое у кого то пойти открыть сбытовой заказ и сидеть в нем на редактирование пока не выбросит из по таймауту, а в этот момент у тебя пиай пытается прием заказов через ЭДО нахреначить, и падает с ошибкой.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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