gpt4 book ai didi

c# - 使用 SNC/SSO 的 SAP GUI 脚本

转载 作者:行者123 更新时间:2023-11-30 12:19:57 25 4
gpt4 key购买 nike

我正在尝试使用 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);

然后我可以输入用户名和密码。然而,使用 SNC 和自动登录,我已经使用 SNC 中的凭据登录(我想使用不同的凭据而不对 SNC 做任何事情)。我尝试使用

var connection = GuiApp.OpenConnectionByConnectionString("my.server.address", true, true);

但它失败了,因为它没有使用 SNC(这是必需的)进行连接。我尝试以 java 客户端方式构建连接字符串,这是我在 Internet 上的某个地方找到的:

/H/ip.add.res.s/S/3200&sncon=true&sncname=properName&sncqop=4

但每次都没有建立连接信息:

The 'Sapgui Component' could not be instantiated

我查看了多个 SAP 文档,但没有找到有关传递 SNC 参数的信息。

最后一个问题是:有没有办法通过 SNC 使用代码连接到 SAP GUI 但没有自动登录?

最佳答案

问题比我预期的要容易解决。我想我花了太多时间,没有检查最简单的选项。使用连接字符串是正确的,但我找不到我的连接字符串。要找到它,我只需要使用正确的设置启动 SAP 并读取如下所示的连接字符串:

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);

现在我可以在没有 SSO 的情况下将 SAP 与 SNC 结合使用。

关于c# - 使用 SNC/SSO 的 SAP GUI 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com