我正在尝试使用 SAP GUI 脚本通过 SNC 连接以及用户名和密码(不是自动)登录到 SAP。在我的连接列表中,我的目标服务器的自动登录设置为 true。我知道可以再次添加相同的服务器并将自动登录设置为 false 并选择它,但客户端不想添加另一个位置到列表中。通常(没有 SNC)我只是使用
CSapROTWrapper 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 connection = GuiApp.OpenConnection("My server name", true, true);
Run Code Online (Sandbox Code Playgroud)
然后我可以输入用户名和密码。但是,使用 SNC 和自动登录,我已经使用 SNC 中的凭据登录(并且我想使用不同的凭据而不对 SNC 执行任何操作)。我尝试使用
var connection = GuiApp.OpenConnectionByConnectionString("my.server.address", true, true);
Run Code Online (Sandbox Code Playgroud)
但它失败了,因为它没有使用 SNC(这是必需的)进行连接。我试图以java客户端的方式构建连接字符串,我在互联网上的某个地方找到了它:
/H/ip.add.res.s/S/3200&sncon=true&sncname=properName&sncqop=4
Run Code Online (Sandbox Code Playgroud)
但每次没有建立连接的信息:
无法实例化“Sapgui 组件”
我浏览了多个 SAP 文档,但没有发现有关传递 SNC 参数的信息。
最后一个问题是:有没有办法使用带有 SNC 但没有自动登录的代码连接到 SAP GUI?