SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Создание сессии в SAP https://www.sapboard.ru/forum/viewtopic.php?f=13&t=100216 |
Страница 1 из 2 |
Автор: | proga19 [ Чт, окт 27 2022, 16:11 ] |
Заголовок сообщения: | Создание сессии в SAP |
Добрый день! Подскажите реально ли создать сессию в SAP по RFC? Т.е, например, ФМ1 создает сессию в 08:00, а ФМ2 удаляет эту же сессию в 08:15 (пользователь один и тот же)... |
Автор: | Kengur [ Чт, окт 27 2022, 20:31 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Что такое сессия по твоему? |
Автор: | proga19 [ Пт, окт 28 2022, 08:40 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Тогда вопрос на уровень глубже. Возможно ли установить блокировку от изменений на стандартный объект в SAP (заказ, заявка) по RFC ? Аналогично, когда пользователь заходит в транкцию ME22N, остальные не смогут зайти в этот же заказ, пока 1 не выйдет. Возможно ли организовать работу пользователя при подключении из внешней системы, аналогично возможностям с диалоговым режимом (блокировки и т.д), закрытие внешней системы = закрытие сессии в SAP ? |
Автор: | skaa [ Пт, окт 28 2022, 09:40 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
proga19 написал: Тогда вопрос на уровень глубже. Возможно ли установить блокировку от изменений на стандартный объект в SAP (заказ, заявка) по RFC ? Аналогично, когда пользователь заходит в транкцию ME22N, остальные не смогут зайти в этот же заказ, пока 1 не выйдет. Возможно ли организовать работу пользователя при подключении из внешней системы, аналогично возможностям с диалоговым режимом (блокировки и т.д), закрытие внешней системы = закрытие сессии в SAP ? По RFC могут работать все BAPI, в том числе BAPI изменения закупочного заказа. И там блокировка работает по умолчанию в том числе и по RFC. |
Автор: | broker.chelny [ Пт, окт 28 2022, 09:53 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Теоретически, разве нельзя через RFC запустить фоновое задание? А там уже оно пусть блокирует нужные объекты и работает столько, сколько нужно? |
Автор: | proga19 [ Пт, окт 28 2022, 09:54 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Всё верно. Только задача не просто послать изменения из внешней системы в SAP, а открыть этот объект, подождать и только потом сделать изменения. В этот момент "подождать" никто другой не должен вносить изменения, пока не отработает первый. Возможно ли реализовать такое по RFC или с помощью каких то других технологий? Смысл в том, что интерфейс карточки объекта мы рисуем на WEB форме, т.к там мы можем расположить объекты, как нам угодно (без ограничений по длине симвовлов полей и т.д), а база остается в SAP-е от него пока не уйти. Поэтому идея в том, чтобы не дать никому вносить изменения в этот объект SAP-а, пока USER1 не закончит с ним работу..... |
Автор: | skaa [ Пт, окт 28 2022, 13:28 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
proga19 написал: Всё верно. Только задача не просто послать изменения из внешней системы в SAP, а открыть этот объект, подождать и только потом сделать изменения. В этот момент "подождать" никто другой не должен вносить изменения, пока не отработает первый. Возможно ли реализовать такое по RFC или с помощью каких то других технологий? Смысл в том, что интерфейс карточки объекта мы рисуем на WEB форме, т.к там мы можем расположить объекты, как нам угодно (без ограничений по длине симвовлов полей и т.д), а база остается в SAP-е от него пока не уйти. Поэтому идея в том, чтобы не дать никому вносить изменения в этот объект SAP-а, пока USER1 не закончит с ним работу..... Вы же по RFC вызываете в SAP какой-то Функциональный модуль? В нём и заблокируйте нужный объект от изменений. |
Автор: | Korvax [ Пт, окт 28 2022, 15:21 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
proga19 написал: Смысл в том, что интерфейс карточки объекта мы рисуем на WEB форме, т.к там мы можем расположить объекты, как нам угодно (без ограничений по длине симвовлов полей и т.д), а база остается в SAP-е от него пока не уйти. В рамках концепции блокировок SAP, боюсь, не получится. Насколько понимаю, вы хотите первым RFC-вызовом заблокировать объект, а последующим сохранить изменения и разблокировать?
|
Автор: | Korvax [ Пт, окт 28 2022, 15:28 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
broker.chelny написал: Теоретически, разве нельзя через RFC запустить фоновое задание? А там уже оно пусть блокирует нужные объекты и работает столько, сколько нужно? Можно и так, только потом разбираться с такой "самодеятельностью" будет сложно. |
Автор: | proga19 [ Пт, окт 28 2022, 20:33 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Самая большая проблема в том, что когда USER1 зайдет на редактирования объекта на WEB-страницу, мы заблокируем объект в SAP, а он потом возьмет и просто закроет браузер. Как мы в этом случае снимем блокировку в SAP? Это для размышления, мысли вслух... Если бы была технология, которая бы устанавливала онлайн-связь с SAP-ом, а не просто запрос бы делала.... |
Автор: | proga19 [ Пт, окт 28 2022, 20:34 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Korvax написал: proga19 написал: Смысл в том, что интерфейс карточки объекта мы рисуем на WEB форме, т.к там мы можем расположить объекты, как нам угодно (без ограничений по длине симвовлов полей и т.д), а база остается в SAP-е от него пока не уйти. В рамках концепции блокировок SAP, боюсь, не получится. Насколько понимаю, вы хотите первым RFC-вызовом заблокировать объект, а последующим сохранить изменения и разблокировать?Да, всё верно..... |
Автор: | Удав [ Сб, окт 29 2022, 09:47 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
proga19 написал: Самая большая проблема в том, что когда USER1 зайдет на редактирования объекта на WEB страницу, мы заблокируем объект в SAP, а потом возьмет и просто закроет браузер, как мы в этом случае снимем блокировку в SAP? Логичным кажется способ, при котором на стороне SAP бы хранилась информация о том, с какого фронтенда был выполнен вход, при каждом обращении к RFC/OData/Web-сервису эта информация бы обновлялась. В этом случае можно отследить период неактивности и сбрасывать блокировки к этой сессии. proga19 написал: Это для размышления, мысли в слух... Если бы была технология, которая бы устанавливала онлайн связь в SAP-ом, а не просто запрос бы делала.... В старом CRM была такая технология - stateful, при этом управление web-интерфейсом происходило через SAP. Но идеология stateless такое не позволяет, т.к. управление фронтэндом не связано с бэкендом.. Но как я писал выше, ситуацию можно решить с помощью 2-х дополнительных сервисов - вход в сессию/обновление сессии и выход из сессии. Фактически это будет аналог работы с SAP GUI. |
Автор: | Kengur [ Вс, окт 30 2022, 12:02 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Тут кто-то изобретает концепцию BOPF + Odata. И у вас явно не хватает для этого понимания того, как сап устроен. Лучше не стоит. Выдавайте пользователю ошибку в своем вебе, если что-то пошло не так и объект поменялся. |
Автор: | proga19 [ Пн, окт 31 2022, 08:00 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Kengur написал(а): Тут кто-то изобретает концепцию BOPF + Odata. И у вас явно не хватает для этого понимания того, как сап устроен. Лучше не стоит. Выдавайте пользователю ошибку в своем вебе, если что-то пошло не так и объект поменялся. В таком случае, например, USER1 изменяет объект и ставит ему статус "K9" - т.е изменять объект нельзя (например, в ДМС-объекте). Сохраняет всё ок. В это же время USER2 тоже редактирует этот же объект и сохраняет уже после USER1. Получается, кто последний, тот и сохранил (но при этом статус USER1 уже не предполагает изменений). Тогда при каждом изменении в SAP нужно ещё проверять, можно менять или нет....... Спасибо. Знаний действительно не хватает, а тема интересная! |
Автор: | Yozhhhhh [ Пн, окт 31 2022, 11:22 ] |
Заголовок сообщения: | Re: Создание сессии в SAP |
Наколхозить-то более или менее можно и через обычные блокировки. 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 снимать блокировку. Ссаными тряпками не кидаться |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |