如何在用户登录时sap时触发一特定程序执行

简介: 如何在用户登录时sap时触发一特定程序执行

有时候需要在用户登录时sap时触发一特定程序去执行,sap提供了两种方法t.

1) 使用函数 'NAVIGATION_SET_START_TCODE' ,用该函数可以设置用户和一个TCODE,该TCODE当用户登录sap系统后就可以自动执行。sap对应的程序:ADMIN_SET_START_TRANSACTION_FO

这个相对比较简单实用。

同时在客户端主界面上也可以设置运行什么t-code这个更加简单,同时可以设置是否显示技术名称

2)使用用户出口

该用户出口的模块名称是:SUSR0001,你可以在该单元里增加你的代码进行相应的控制。.

SAP用户登录增强示例

* Transaction CMOD -> Utiliteis -> SAP Enhancements* Exit Name SUSR0001* Double click EXIT_SAPLSUSF_001* Double click ZXUSRU01* Insert -> include zsesschk.** zsesschk limits the number of login sessions per user* in a certain client* It runs from user exit SUSR0001 after the SAP Login* n-1 is the number of concurrent sessions allowed

TABLES: UINFO.

DATA: N TYPE I VALUE 2.              "Upper limit of login sessions
DATA: OPCODE TYPE X VALUE 2, I TYPE I, A(60).
DATA: BEGIN OF BDC_TAB1 OCCURS 5.
        INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB1.
DATA: BEGIN OF USR_TABL OCCURS 10.
        INCLUDE STRUCTURE UINFO.
DATA: END OF USR_TABL.
* Exclude Limit login by Users
IF SY-UNAME <> 'XXX'
AND SY-UNAME <> 'XXX'.
CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE
ID 'TAB' FIELD USR_TABL-*SYS*.
LOOP AT USR_TABL.
IF SY-UNAME = USR_TABL-BNAME AND SY-MANDT = USR_TABL-MANDT.
    I = I + 1.
ENDIF.
ENDLOOP.
IF I >= N.
A = 'You have already '.
A+17(2) = I - 1.
A+19(25) = 'login sessions in client '.
A+44(4) = SY-MANDT.
CALL FUNCTION 'POPUP_TO_INFORM'
       EXPORTING
            TITEL = 'UNSUCCESSFUL LOGIN'
            TXT1 = A
            TXT2 = 'You are not allowed to log in'.
MOVE: 'SAPMSSY0' TO BDC_TAB1-PROGRAM,
          '120' TO BDC_TAB1-DYNPRO,
          'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
         '/nex' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
CALL TRANSACTION 'SM04' USING BDC_TAB1 MODE 'N'.
ENDIF.
ENDIF.
相关文章
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
526 0
SAP 程序DEBUG内存分析
DEBUG:程序调试内存分析(如下)
89 0
SAP ALV 程序执行中返回选择界面
ALV 程序执行中返回选择界面
196 0
SAP DALOG开发-代码触发回车事件
对于指定输入框:触发屏幕回车事件
244 0
SAP 电商云 Spartacus UI 修改 Delivery Mode 触发的三个 HTTP 请求(一)
SAP 电商云 Spartacus UI 修改 Delivery Mode 触发的三个 HTTP 请求
134 0
SAP 电商云 Spartacus UI 修改 Delivery Mode 触发的三个 HTTP 请求(一)
|
网络协议
SAP公司间STO里发货单过账后触发的IDoc报错 – Could not find code page for receiving system –
SAP公司间STO里发货单过账后触发的IDoc报错 – Could not find code page for receiving system –
SAP公司间STO里发货单过账后触发的IDoc报错 – Could not find code page for receiving system –
SAP RETAIL 通过自动补货功能触发的采购申请有些啥特殊的地方?
SAP RETAIL 通过自动补货功能触发的采购申请有些啥特殊的地方?
SAP RETAIL 通过自动补货功能触发的采购申请有些啥特殊的地方?
SAP RETAIL 通过自动补货功能触发采购申请
SAP RETAIL 通过自动补货功能触发采购申请
SAP RETAIL 通过自动补货功能触发采购申请
SAP RETAIL 如何确定自动补货触发的单据类型 III
SAP RETAIL 如何确定自动补货触发的单据类型 III
SAP RETAIL 如何确定自动补货触发的单据类型 III
SAP RETAIL 为分配表触发PO后将PO删除,不能再次为它创建PO了
SAP RETAIL 为分配表触发PO后将PO删除,不能再次为它创建PO了
SAP RETAIL 为分配表触发PO后将PO删除,不能再次为它创建PO了