这个问题比我预料的要容易解决。我想我花了太多的时间,我没有检查最简单的选择。
使用连接字符串是正确的,但我找不到我的连接字符串。
var sapROTWrapper = new CSapROTWrapper();
var sapGuilRot = sapROTWrapper.GetROTEntry("SAPGUI");
var engine = sapGuilRot.GetType().InvokeMember("GetScriptingEngine", System.Reflection.BindingFlags.InvokeMethod, null, sapGuilRot, null);
var guiApp = (GuiApplication)engine;
var existingConnection = (GuiConnection)guiApp.Connections.ElementAt(0);
var properConnectionString = existingConnection.ConnectionString;
然后我所需要做的就是保存这个连接字符串并重新登录以使用它。
var sapROTWrapper = new CSapROTWrapper();
var sapGuilRot = sapROTWrapper.GetROTEntry("SAPGUI");
var engine = sapGuilRot.GetType().InvokeMember("GetScriptingEngine", System.Reflection.BindingFlags.InvokeMethod, null, sapGuilRot, null);
var guiApp = (GuiApplication)engine;
var connectionString = "connection string read from previous run";
var connection = guiApp.OpenConnectionByConnectionString(connectionString, true, true);