Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 3353

How to check if in correct SAP system

$
0
0

Hi,

 

I'm having trouble with my script in picking the correct system to run. For example I have A6P430 and ANP430 system open at the same time. When I run my macro it choose the wrong system.

 

Im using SSO to open sap. Would it be better to include sap logon before macro code?

 

 

Please try to improve my script. Thank you.

 

What I have is this:

 

Public SapGuiAuto, WScript, msgcol

Public objGui  As GuiApplication

Public objConn As GuiConnection

Public objSess As GuiSession

Public objSBar As GuiStatusbar

Public objSheet As Worksheet

Dim W_System

 

 

 

Function Attach_Session() As Boolean

Dim il, it

Dim W_conn, W_Sess

 

If W_System = "" Then

   Attach_Session = False

   Exit Function

End If

 

If Not objSess Is Nothing Then

    If objSess.Info.SystemName & objSess.Info.Client = W_System Then

        Attach_Session = True

        Exit Function

    End If

End If

 

If objGui Is Nothing Then

   Set SapGuiAuto = GetObject("SAPGUI")

   Set objGui = SapGuiAuto.GetScriptingEngine

End If

 

For il = 0 To objGui.Children.Count - 1

    Set W_conn = objGui.Children(il + 0)

    For it = 0 To W_conn.Children.Count - 1

        Set W_Sess = W_conn.Children(it + 0)

        If W_Sess.Info.SystemName & W_Sess.Info.Client = W_System Then

            Set objConn = objGui.Children(il + 0)

            Set objSess = objConn.Children(it + 0)

            Exit For

        End If

    Next

Next

 

If objSess Is Nothing Then

   MsgBox "No active session to system " + W_System + ", vbCritical + vbOKOnly"

   Attach_Session = False

   Exit Function

End If

 

If IsObject(WScript) Then

   WScript.ConnectObject objSess, "on"

   WScript.ConnectObject objGui, "on"

End If

 

Set objSBar = objSess.findById("wnd[0]/sbar")

objSess.findById("wnd[0]").maximize

Attach_Session = True

 

 

End Function

 

 

Here is how I call the system:

 

Sub StartExtractA6P()

Dim currentline As Integer

 

  

    W_System = "A6P430"

    RunGUIScriptA6P currentline

     

 

End Sub


Viewing all articles
Browse latest Browse all 3353

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>