win32com和SAP-GUI

gue*_*tli 6 sap win32com sap-gui

我的SAP-GUI安装了Scripting并启用了Scripting.

就像在这个截图中:

SAP-GUI的配置 - 启动脚本 -

在"步骤2:设置SAP系统"中的SAP GUI脚本简介中,您需要调用RZ11.

我没有权限拨打RZ11.

有没有办法通过脚本检测到这个(sapgui/user_scripting打开或关闭)?

目前我使用下面的代码,但连接列表始终为空:

import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
sapgui = win32com.client.GetObject("SAPGUI")
system = query.get('system')
client = query.get('mandant')
session = False
application = sapgui.GetScriptingEngine
seen = []
for i_conn in range(0, application.Connections.Count):
    seen.append('i_conn=%s session_count=%s' % (i_conn, application.Connections.Item(i_conn).Sessions.Count))
    for i_sess in range(0, application.Connections.Item(i_conn).Sessions.Count):
        session_info = application.Connections.Item(i_conn).Sessions.Item(i_sess).Info
        system_of_session = session_info.SystemName
        client_of_session = session_info.Client
        if system_of_session == system and client_of_session == client:
            connection = application.Connections.Item(i_conn).Children(i_sess)
            session = connection.Children(i_sess)
            break
        seen.append('system=%s client=%s' % (system_of_session, client_of_session))
    if session:
        break

else:
    info_popup('You are not logged into system %s in Client %s! Seen:\n%s' % (
        system, client, '\n'.join(seen)))
    return
Run Code Online (Sandbox Code Playgroud)

小智 0

据我所知 sapgui/user_scripting 是系统级=应用程序级设置,但不是用户级。因此,如果您没有运行 RZ11 tcode 的权限,那么您就没有机会或权限读取应用程序服务器设置,当然也没有更改它的权限。您必须联系您的基础管理员以与他验证此应用程序设置。您会看到,SAP 由于可能存在漏洞而限制了脚本编写能力,这就是为什么应该在客户端和应用程序服务器端都打开脚本支持的原因。