Текущее время: Пн, июл 14 2025, 20:00

Часовой пояс: 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 часа


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

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


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

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