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

时间:2013-02-22 21:16:50

标签: c# automation connection-string sap

我正在尝试通过C#建立与SAP的连接。作为参考,我使用的代码如下:How do I automate SAP GUI with c#

我添加了对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()方法更好的方法吗?

4 个答案:

答案 0 :(得分:2)

Here is a part of the official documentation,描述路由或连接字符串的格式:

  

<强>定义

     

路由字符串描述了两者之间所需连接的站点   两个主人。路由字符串的语法为

(/H/host/S/service/W/pass)*
     

它由表单中的任意数量的子字符串组成   /H/host/S/service/W/pass

     

警告: H,S和W必须为大写!

     

<强>结构

     

路由字符串包含每个SAProuter的子字符串和   目标服务器。每个子字符串都包含所需的信息   SAProuter在路由中建立连接:主机名,端口   名称和密码,如果有的话。

     

子串的语法:

     
      
  • /H/表示主机名。请注意,主机名长度必须至少为两个字符。
  •   
  • /S/用于指定服务(端口);它是一个可选条目,默认值为3299
  •   
  • /W/表示路由上的前任和后继之间的连接密码,也是可选的(默认值)   是“”,没有密码)
  •   

答案 1 :(得分:2)

使用以下代码行: Connection = Application.OpenConnectionByConnectionString(&#34; / H / IP Address / S / 3200&#34;,false,true);

H:主机IP地址 S:主机端口号。默认值是3200.检查你的。

答案 2 :(得分:0)

您的连接字符串是SAP区域的名称,例如ERP,P56或DFQ

Connection = Application.OpenConnectionByConnectionString("ERP", false, true);

使用

答案 3 :(得分:0)

&#34; XXXXXXXXX&#34;参数(&#34; ConnectionString&#34;)实际上是您可以在saplogon.ini文件中找到的连接字符串的 description ,该文件位于%AppData%\ Roaming \ SAP \ Common < / p>