on 08-26-2016 8:14 PM
We are attempting to upgrade our users to SAPGUI 740 (patch 2) using the standalone installation package, and are running into issues with users that have the application running when the install takes place.
To be clear: we are attempting to automate this installation process by pushing the installation package out to the users all at once, but in our testing noticed that any of the users who had SAP currently open, were not prompted to close SAP, and ultimately resulted in an installation failure. This failure also caused SAP to no longer function as intended, and we were forced to uninstall and reinstall SAP entirely on these particular machines. On the user machines where SAP was NOT open when the package installed, the process was successful.
Our initial thoughts were to create a script that closed all processes/services that run with the SAP 730 GUI frontend application that we are upgrading, but we've been unsuccessful with finding any relevant information regarding what those processes and services are. We also figured that there may be a better method of accomplishing what we are trying to do, that we just aren't seeing or are aware of, which is why we are posting this discussion here.
Please let me know if there is any pertinent information that I'm leaving out that would help us resolve this issue. Thanks for any help you can give!
look at the SAPSsetup Guide. There isn't a lot of good examples. Pulled this off of page 81.
If NwEngine.Shell.IsExeRunning ("saplogon.exe") Then
NwEngine.Context.Log.Write "Saplogon is still running. Killing all instances of it."
NwEngine.Shell.TerminateProcessInstances "saplogon.exe"
End If
You will need a developer/coder if you want something fancier
Dan Mead
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Colin,
If you are using a SAPGUI Installation Server to push out the upgrade (which is the recommended route to follow), then the upgrade should detect and kill running instances on the workstation without you having to specially code anything yourself, or at least this is my understanding from the documentation. But perhaps you are using too low of a patch? Patch 2 is very old. GUI 7.40 is up to at least patch 9 (that's what we are using), and the SAPSetup program itself (used by the Installation Server) is beyond patch 78 (what we have). I would ensure you have at least these patch levels.
That said, Dan's code should work if it is inserted into a Package Event Script within your Installation Server. If you aren't using an Installation Server -- well, then, really you should, but if you aren't -- you could use some external VBscript to close the process. I have used the following for running upgrades at my location -- bear in mind, the script needs to "run as administrator" if it is outside of an Installation Server, so it has to start with that:
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
If WScript.Arguments.length = 0 Then 'Restart script as Administrator
If strOSVersion = "6." Or strOSVersion = "10" Then
Set objApp = CreateObject("Shell.Application")
objApp.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """" & " RunAsAdministrator", , "runas", 1
End If
Else 'do the work
Set colProcess = oWMI.ExecQuery ("Select * from Win32_Process Where Name = 'saplogon.exe'")
For Each objProcess in colProcess
Return = objProcess.Terminate()
Next
End If 'Close out the ELSE statement
Cheers,
Matt
Message was edited by: Matt Fraser (first attempt got garbled)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.