如何找到通过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()方法更好的方法吗?

如何找到通过C#应用程序自动化SAP GUI所需的连接字符串

使用这行代码: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