Текущее время: Вт, июл 15 2025, 10:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Определить, что программа вызвана в RFC
СообщениеДобавлено: Чт, дек 04 2008, 23:17 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 25 2008, 00:30
Сообщения: 5
Всем хай.

Задачка следующая - требуется понять, что текущая программа была вызвана в RFC.
SY-ONCOM использовать не получается, т.к. в цепочке вызовов от ФМ до программы ее значение могло измениться.

Есть еще вариант с CALL 'ThUsrInfo', который выглядит панацеей, но для него нужно определить параметр TID (Terminal ID) для текущей сессии. К сожалению, FM TH_USER_INFO возвращает первый попавшийся TID для заданного имени пользователя, а user может быть залогинен несколько раз, причем как в GUI, так и через RFC одновременно.

Может кто-нибудь знает, как идентифицировать RFCсишность со 100% вероятностью?:) Или как получить TID текущей сессии?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 05 2008, 08:10 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Такие заморочки, пока, не требовались, но самое тупое, что приходит в голову - сохранить SY-ONCOM с помощью export, а в нужный момент получать с помощью import...

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 05 2008, 10:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
А может это вообще не решается в общем случае? RFC выполняется в обычном диалоговом процессе, пользователь вроде не обязательно должен быть вида communication или system.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 05 2008, 15:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Для определения ARFC-вызова можно:
1. сделать попытку обратиться к любой переменной группы функций ARFC через ASSIGN. Если эта группа функций загружена в память, значит идет вызов RFC
2.вызвать ФМ SYSTEM_CALLSTACK и найти в стеке вызовов программу SAPLARFC

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 05 2008, 20:44 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 25 2008, 00:30
Сообщения: 5
Коллеги, спасибо за комментарии и подсказки.

К сожалению далеко не факт, что вызов будет aRFC, но идея со стеком вызовов очень даже интересная.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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