问题描述
我有以下问题,我在SAP F6P
系统中打开了两个会话/窗口,我需要告诉两个人执行不同的工作。它如何为两个会话发送命令?
请看一下下面的代码,我发现了哪个号码是会话,但我不知道怎么称呼它。
请注意,如果我登录SAP并打开两个会话,则第一个会话似乎是1号,第二个似乎是2号。如果现在我删除第二个并创建一个新的,则系统将第三个理解为第三个而不是第二个。
代码如下:
Sub SAP_activesession()
If Not IsObject(App) Then
Set SapGuiAuto = Getobject("SAPGUI")
Set App = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
Set Connection = App.Children(0)
End If
If Not IsObject(Session) Then
Set Session = Connection.Children(1)
End If
If IsObject(wscript) Then
wscript.ConnectObject Session,"on"
wscript.ConnectObject App,"on"
End If
'Set Session = App.ActiveSession
'Session.findById("wnd[0]").maximize
'Session.findById("wnd[0]/tbar[0]/okcd").text = "/nf-28"
Dim sn,ss,su,st,session_number_all,syn,sid,client
' ðëçèïò áíïéêôþí session
'sn = Session.info.SessionNumber ' íïõìåñï ôïõ session
'ss = Session.info.systemname ' system name
'su = Session.info.User ' user name
'st = Session.info.transaction ' transaction
'MsgBox ("session count :" & sc & " " & sn & " " & su & " " & st)
Dim NoSession: Dim time1,time2
session_number_all = Connection.Children.Count: MsgBox (session_number_all)
For NoSession = 0 To session_number_all - 1 Step 1
Set Session = Connection.Children(Int(NoSession)) 'epilegeis session
sn = Session.info.SessionNumber ' íïõìåñï ôïõ session
ss = Session.info.systemname ' system name
su = Session.info.User ' user name
st = Session.info.transaction ' transaction
sid = Session.info.systemsessionid ' session id
syn = Session.info.systemnumber ' system number
client = Session.info.client
MsgBox ("Total session: " & session_number_all & vbNewLine & _
"Session number: " & sn & vbNewLine & _
"Session children: " & session_number_all & vbNewLine & _
"Session system: " & ss & vbNewLine & _
"Session user: " & su & vbNewLine & _
"Session transaction: " & st & vbNewLine & _
"Session Id: " & sid & vbNewLine & _
"System No: " & syn & vbNewLine & _
"Client: " & client)
Session.findById("wnd[0]/tbar[0]/okcd").text = sn & "." & st
time1 = Now
time2 = Now + TimeValue("0:00:05")
Do Until time1 >= time2
DoEvents
time1 = Now()
Loop
'Set Session = Connection.Children.ITEM(NoSession)
On Error Resume Next
Next NoSession
End Sub
先谢谢您, 瓦西里斯
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)