SAP Login failed

Hi @Allan_Zimmermann

I need help identifying the exact cause of the error # Login failed in my workflow. The error is being displayed in OpenRPA, but it seems that the login was successful because the credentials were accepted, and I can see the “SAP Menu”. However, one second later, the error appears.
This is my logs:

[14:24:27.779][Debug] Received reply: 6977 getconnections
[14:24:27.719][Debug] Sending: 6977 getconnections
[14:24:12.319][Debug] Deleted 2 items from workflow history.
[14:24:06.856][Output] RPA007DSI-ResetContaSAP failed at 1.118 in 00:18.106
# Global/RPA002GBL-LoginSAP failed with Login failed
[14:24:06.740][Debug] InitializeStateEnvironment
[14:24:06.738][Error] System.Exception: Global/RPA002GBL-LoginSAP failed with Login failed ---> System.Exception: Login failed
   at OpenRPA.SAP.SAPhook.SendMessage(SAPEvent message, TimeSpan timeout)
   at OpenRPA.SAP.Login.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
   --- End of inner exception stack trace ---
   at OpenRPA.Activities.InvokeOpenRPA.OnBookmarkCallback(NativeActivityContext context, Bookmark bookmark, Object obj)
[14:24:06.731][Information] RPA007DSI-ResetContaSAP resumed
[14:24:06.511][Output] RPA002GBL-LoginSAP failed at 1.64 in 00:04.226
# Login failed
[14:24:06.507][Debug] Received reply: 6975 login
[14:24:02.295][Debug] Sending: 6975 login
[14:24:02.292][Debug] Received reply: 6973 getconnections
[14:24:02.287][Debug] Sending: 6973 getconnections
[14:24:02.284][Information] RPA002GBL-LoginSAP started in 00:00.000
[14:23:57.706][Debug] Received reply: 6971 getconnections
[14:23:57.687][Debug] Sending: 6971 getconnections
[14:23:55.336][Debug] Header (add to line numbers): 45
[14:23:54.403][Debug] Deleted 1 items from workflow history.
[14:23:49.230][Information] RPA007DSI-ResetContaSAP resumed
[14:23:48.878][Output] RPA001GBL-GetPlatformData completed in 00:00.150
[14:23:48.727][Information] RPA001GBL-GetPlatformData started in 00:00.000
[14:23:48.633][Information] RPA007DSI-ResetContaSAP started in 00:00.000

Can you help me!

Hi @kowts.
I have the same problem, but I end up leaving the project (didn’t find any solution or reason for why it happened) and start another, different project.
I hope someone can help with this, it’s really weird.
In my case, clearly the login was successful, but OpenRPA says that “System.Exception: Login failed.” :upside_down_face:

I don’t have access to SAP anymore, so is hard to support and troubleshoot.
Test that there is no conflicting server settings that is blocking SAP GUI scripting.
Normally setting sapgui/user_scripting to true is enough, but a few months ago I was helping troubleshoot an installation where it turned out there was another setting that would block the use from using SAP GUI scripting enabled. ( Could not take selector on sap - #10 by Allan_Zimmermann )

Hi @Allan_Zimmermann
I tried your suggestion and the issue persisted, but I found a solution that worked for me. I then created a python script to execute the login and it works fine.

Hopefully this code can help you out a bit. This code is a Python script that interacts with the SAP GUI application using the pywin32 module: pip install pywin32

import win32com.client
import sys
import subprocess
import time

class SapGui():
    def __init__(self):

        self.path = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe" # Path to saplogon instalation folder
        time.sleep (2)

        self.SapGuiAuto = win32com.client.GetObject("SAPGUI")
        if not isinstance(self.SapGuiAuto, win32com.client.CDispatch):

        application = self.SapGuiAuto.GetScriptingEngine
        self.connection = application.OpenConnection("SAP PROD", True) # Name of your SAP connection

        self.session = self.connection.Children(0)

    def sapLogin(self):
            # Set the text of the SAP GUI element with the ID for login
            self.session.findById("wnd[0]/usr/txtRSYST-MANDT").text = "***" # Client
            self.session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "***" # User
            self.session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "***" # Password
            self.session.findById("wnd[0]/usr/txtRSYST-LANGU").text = "***" # Language

            # check a element you want to verify login status
            elemExist = self.session.findById("wnd[0]/tbar[0]/btn[15]")
            if elemExist is not None:
                # Resize the working pane of the SAP GUI window
                self.session.findById("wnd[0]").resizeWorkingPane(100, 20, False)

                # Login was successful
                # Perform further actions

                # Login failed or window text does not match and Handle the failure case
                # Display an error message
                print("Login failed or window text does not match")

                # Close the SAP GUI connection

                # Terminate the SAP GUI application
                application = self.SapGuiAuto.GetScriptingEngine()

                # Raise an exception or return an error code if necessary
                raise Exception("Login failed!")

sap_gui = SapGui()

This code demonstrates a basic interaction with the SAP GUI using the win32com.client module in Python. It starts the SAP GUI, performs a login operation, and performs some actions if the login is successful.

@Allan_Zimmermann If I want to create this as an agent, is it possible? (after some improvments)


You should beable to do the same using openrpa, but this is ssooooo much cleaner.
You can run this as an agent right now ( using assistent, since it requires a desktop )

Thanks for the info @Allan_Zimmermann
I’ll definitely try to create an agent.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.