在程序中使用
call TRANSFORMATION和SUBMIT语法是直接跳到对应的事务代码或者程序,如果需要保持当前会话而且新开会话的话,上述两个语法就不满足了。系统提供了直接创建session的函数
函数1.TH_CREATE_FOREIGN_MODE
"创建新session 的函数
CALL
FUNCTION
'TH_CREATE_FOREIGN_MODE'
EXPORTING
client
= sy
-mandt
user
=
'ZUSER_TEST'
tcode
=
'SESSION_MANAGER'
return_error
=
1
create_exclusive
=
0
EXCEPTIONS
user_not_found
=
1
cant_create_mode
=
2
OTHERS
=
3
.
IF sy
-subrc
<>
0
.
MESSAGE
ID sy
-msgid
TYPE sy
-msgty
NUMBER sy
-msgno
WITH sy
-msgv1
sy
-msgv2
sy
-msgv3
sy
-msgv4
.
ENDIF .
CALL
IF
ENDIF .
函数2. TH_CREATE_MODE 会进行权限检查
CALL FUNCTION 'TH_CREATE_MODE'
EXPORTING
transaktion = 'SESSION_MANAGER'
EXCEPTIONS
max_sessions = 1
internal_error = 2
no_authority = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF
ENDIF.