【问题标题】:Connect Sap B1 hana with C# Application using DI API使用 DI API 将 Sap B1 hana 与 C# 应用程序连接起来
【发布时间】:2018-09-06 11:50:26
【问题描述】:

我正在尝试使用 DI API 在基于 C# Web 的应用程序上连接我的 Sap B1 HANA,但我的连接给了我错误。这是错误屏幕截图Failed to Connect SLD,make Sure Your SLD Server is Available and Connected。任何相关的帮助将不胜感激。

          try{

            oCompany.CompanyDB = "***";
            oCompany.Server = "***";
            oCompany.LicenseServer = "***:30015";

            oCompany.SLDServer = "***:40000";     //  
            oCompany.DbUserName = "****"; // 
            oCompany.DbPassword = "****"; //
            oCompany.UserName = "****"; //
            oCompany.Password = "****"; // 
            oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_HANADB;
            oCompany.UseTrusted = false;
            int res = oCompany.Connect();
            string errMsg = oCompany.GetLastErrorDescription();
            int ErrNo = oCompany.GetLastErrorCode();
            if (ErrNo != 0)
            {
                value1 = errMsg;
                return errMsg;
            }
            else {
                value1 = "Succes Connection To Sap B1 Hana";
                return value1;

            }

【问题讨论】:

  • 将 Hana 实例端口号添加到 oCompany.Server 的主机名(通常为 30015)。检查您的许可证服务器端口号(IIRC 应该是 40000)。服务器主机名必须与 SLD 中的内容匹配(例如,如果 SLD 中是这样定义的,则使用 IP 地址)。

标签: c# hana sapb1 sap-business-one-di-api


【解决方案1】:

您必须在服务器中包含端口号。通常,端口号为 30015。

【讨论】:

    【解决方案2】:

    你也可以使用下面提到的代码。

    SAPbobsCOM.Company oCompany = new SAPbobsCOM.Company();
    oCompany = (SAPbobsCOM.Company)Application.SBO_Application.Company.GetDICompany();
    

    【讨论】:

    • 只有在使用 UI API 时才有效。如果它是外部应用程序,我们无权访问 Application 对象。
    【解决方案3】:

    以下连接代码应该让您更进一步:

    // The actual database host
    // With HANA the single-tenancy port 30015 needs to be provided together with the host (not so with MSSQL)
    // When using HANA multi-tenancy the instance is prefixed and the port changed: INSTANCE@DB-HOST:30013
    // OR the correct instance port needs to be provided, eg. DB-HOST:30017
    sboCompany.Server = "DB-HOST:30015";
    
    // The company database/schema name
    // With MSSQL the instance is provided here like: INSTANCE\DB_NAME
    sboCompany.CompanyDB = "SCHEMA";
    
    // SLDServer is the new LicenseServer, don't forget the port with HANA
    // Be aware: use either hostname or IP of SLD everywhere
    sboCompany.SLDServer = "SLD-HOST:40000";
    
    // Hell knows why the version needs to be provided for MSSQL...
    sboCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_HANADB;
    
    // DB credentials when using MSSQL authentication or HANA
    sboCompany.UseTrusted = false;
    sboCompany.DbUserName = "SYSTEM";
    sboCompany.DbPassword = "password";
    
    // SBO credentials
    sboCompany.UserName = "manager";
    sboCompany.Password = "password";
    

    下一个问题可能是缺少或错误的 HANA 驱动程序...您的旅程才刚刚开始 ;-)

    【讨论】:

      猜你喜欢
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      相关资源
      最近更新 更多