Текущее время: Пт, апр 19 2024, 16:26

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Чт, ноя 08 2018, 14:09
Сообщения: 88
Откуда: Челябинск
Пол: Мужской
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 часа


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

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


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

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