Sapforum.Biz
Инструменты => Администрирование (BC) => Тема начата: swips от Май 28, 2009, 12:47:27 pm
-
Помогите пожалуйста со следующей проблемой:
пользователь user1 коннектится из системы X в систему Z через REMOTE LOGON (sm59) под пользователем user2 системы Z.
мне нужно найти его настоящий логин user1 в системе X.
Я нашёл данную информацию в транзакции STAD, но STAD - это считывание статистики из файла.
Информация откуда-то извлекается чтобы потом записаться в файл. Меня интересует первоисточник, чтобы не вычитывать файлы.
-
Можно попробовать посмотреть через программу RSRFCTRC (показывает все dev_rfc)
-
Можно попробовать посмотреть через программу RSRFCTRC (показывает все dev_rfc)
Не подходит - нет соответствующих данных.
-
Может быть тогда кто-нибудь знает как получить Transaction ID (уникальный 32-х значный код) текущей транзакции, чтобы можно было привязаться к статистике STAD....
-
Может быть тогда кто-нибудь знает как получить Transaction ID (уникальный 32-х значный код) текущей транзакции, чтобы можно было привязаться к статистике STAD....
Ну я не знаю, но вот нашелся тут такой вот ФМ: LC_SEL_TRANSACTIONS
EXEC SQL PERFORMING APPEND_ITAB_TRANSACTIONS.
SELECT session, transcount, process, username,
connectdate, connecttime, termid,
reqtimeout, lastwrite, lockmode, lockstate,
reqmode, reqstate,consistentview, applprocess, applnodeid
INTO :ITAB_transactions-sessno,
:ITAB_transactions-transcnt,
:ITAB_transactions-process,
:ITAB_transactions-username,
:ITAB_transactions-condate,:ITAB_transactions-contime,
:ITAB_transactions-termid, :ITAB_transactions-reqtout,
:ITAB_transactions-lstwrite, :ITAB_transactions-lockmode,
:ITAB_transactions-lckstate, :ITAB_transactions-reqmode,
:ITAB_transactions-reqstate,
:ITAB_transactions-consview,
:ITAB_transactions-APPLPROC, :ITAB_transactions-APPLNODE
FROM SYSDBA.transactions
ENDEXEC.
Короче похоже что читаются активные транзакции, но похоже что это сильно СУБД ориентированная ФМ, так как синтаксис запроса идет через EXEC SQL, т.е. чего хочу сказать, может полистать спецификацию на вашу базу данных и там найдутся какие-то интересные таблички из которых можно почерпнуть данную информацию?
Вот тут еще нашел такую функцию как: TH_GET_CONTEXT_ID, дык это там вообще в этой группе функций много чего интересного валяется... посмотри, может найдешь что тебе подойдет, я тут походу нашел, интересные ФМ-ки там есть...
-
Тут еще случайно завалы разгребал, посмотри группу функций CRFC, особенно по инклудам его пошарь, там вызовы функций ядра, некоторые ну очень интересные как на первый вгляд типа
CALL 'RFCControl' ID 'CODE' FIELD 'A'
ID 'IP' FIELD IP "l_ip
ID 'HOSTNAME' FIELD HOST.
Или типа такое там попадается.
*---------------------------------------------------------------------*
* FORM DEST_PLAUSIBILITY *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM DEST_PLAUSIBILITY CHANGING SUBRC.
SUBRC = 0. "Vorinitialisieren auf O.K.
IF RFCDISPLAY-RFCDEST IS INITIAL.
MESSAGE E002.
SUBRC = 1.
ELSE.
SELECT SINGLE * FROM RFCDES BYPASSING BUFFER
WHERE RFCDEST = RFCDISPLAY-RFCDEST.
IF NEW = 'X' AND SY-SUBRC = 0. "Dest. bereits existiert !
MESSAGE E013.
SUBRC = 2.
ELSE.
IF RFCDISPLAY-RFCTYPE IS INITIAL.
MESSAGE E000 WITH 'Bitte Verbindungstyp spezifizieren'(SPZ).
SUBRC = 3.
ELSE.
* Doku ist gepflegt bei Neuangabe aber Destin. und Langu nicht da !
IF RFCDOC-RFCDEST IS INITIAL. "Initialisiere diese !
RFCDOC-RFCDEST = RFCDISPLAY-RFCDEST.
RFCDOC-RFCLANG = SYST-LANGU.
ENDIF.
IF RFCDOC-RFCDOC1 IS INITIAL AND
RFCDOC-RFCDOC2 IS INITIAL AND
RFCDOC-RFCDOC3 IS INITIAL AND
RFCDISPLAY-RFCLOCK IS INITIAL. "Nur wenn Destination Unlocked
* SELECT SINGLE * FROM RFCDOC WHERE RFCDEST = RFCDISPLAY-RFCDEST.
* IF SY-SUBRC NE 0. "Keine Doku existiert !
MESSAGE W005. "Destination bitte dokumentieren.
SUBRC = 4.
* endif.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Entfernen der Servicenummer bei Loadbalancing-Destination
IF LOADBALANCING-YES = 'X'.
CLEAR RFCDISPLAY-RFCSERVICE. "Service-Info entfernen
ENDIF.
* Keine ',' in Login-Daten erlaubt, ansonsten RABAX FORMAT_ERROR
* bei Funktionsbaustein RFCDES2RFCDISPLAY
* IF RFCDISPLAY-RFCCLIENT CA ',' OR
* RFCDISPLAY-RFCLANG CA ',' OR
* RFCDISPLAY-RFCUSER CA ',' OR
* RFCDISPLAY-RFCAUTH CA ',' .
* MESSAGE W000 WITH 'Zeichen , in Anmeldedaten nicht zugelassen !'.
* ENDIF.
ENDFORM.
Ну и в довесок группы функции FITP_AMADEUS_RFC_INTERFACE, QRFC... ну это если уже их не смотрел... вообще в первой группе функций кажется самые интересные варианты попадаются.
-
Нашёл определение идентификатора собственной транзакции. По ней можно сходить в STAD за статистикой соединения.
Функция называется SXIPERF_GET_TRANSID.
Спасибо всем за помощь.