如何找到通过C#应用程序自动化SAP GUI所需的连接字符串
本文关键字:GUI 字符串 连接 SAP 自动化 何找 应用程序 | 更新日期: 2023-09-27 18:00:53
我正试图通过C#连接到SAP GUI。作为参考,我使用的代码在这里找到:我如何用c#自动化SAP GUI
我添加了对sapfewse.ocx的引用和相应的using语句。这是我的代码:
using SAPFEWSELib;
private void OpenSAP()
{
GuiApplication Application;
GuiConnection Connection;
GuiSession Session;
Application = (GuiApplication)System.Activator.CreateInstance(Type.GetTypeFromProgID("SapGui.ScriptingCtrl.1"));
// How do I find the connection string that I use to connect to SAP?
Connection = Application.OpenConnectionByConnectionString("XXXXXXXXX", false, true);
Session = (GuiSession)Connection.Sessions.Item(0);
Session.TestToolMode = 1;
((GuiTextField)Session.ActiveWindow.FindByName("RSYST-MANDT", "GuiTextField")).Text = "XXX";
((GuiTextField)Session.ActiveWindow.FindByName("RSYST-BNAME", "GuiTextField")).Text = "XXXXXXXX";
((GuiTextField)Session.ActiveWindow.FindByName("RSYST-BCODE", "GuiPasswordField")).Text = "XXXXXXXX";
((GuiTextField)Session.ActiveWindow.FindByName("RSYST-LANGU", "GuiTextField")).Text = "XX";
}
当我运行这个代码说时,我得到了一个错误
连接中断
如何确定要使用的正确连接字符串?在哪里可以找到用于连接到SAP的连接字符串?或者有比使用OpenConnectionByConnectionString()
方法更好的方法吗?
使用这行代码:Connection=Application.OpenConnectionByConnectionString("/H/IP地址/S/3200",false,true(;
H: 主机IP地址S: 主机端口号。默认值为3200。检查你的。
以下是描述路由或连接字符串格式的官方文档的一部分:
定义
路由字符串描述在两个主机。路由字符串的语法为
(/H/host/S/service/W/pass)*
它由形式中任意数量的子字符串组成CCD_ 2。
注意:H、S和W必须大写!
结构
路由字符串包含每个SAProuter和目标服务器。每个子字符串包含在路由中设置连接的SAProuter:主机名、端口名称和密码(如果有(。
子字符串语法:
/H/
表示主机名。请注意,主机名的长度必须至少为两个字符/S/
用于指定服务(端口(;它是一个可选条目,默认值为3299/W/
表示路由上前任和继任者之间连接的密码,也是可选的(默认值为",无密码(
您的连接字符串是SAP区域的名称,如ERP、P56或DFQ
Connection = Application.OpenConnectionByConnectionString("ERP", false, true);
使用
"XXXXXXXXXX"参数("ConnectionString"(实际上是您可以在saplogon.ini文件中找到的连接字符串的描述,该文件位于%AppData''Roaming''SAP''Common