C#Excel VSTO执行SAP RFC

时间:2018-01-09 07:34:32

标签: c# vsto sap

我已经能够通过使用VBA将RFC调用到Excel工作簿来从SAP获取数据。 但是现在我喜欢在带有c#的Excel AddIn(VSTO)中做同样的事情。 关于此,几乎没有任何信息。 microsoft.data.sapclient实际上不起作用: https://msdn.microsoft.com/en-us/library/cc185499(v=bts.10).aspx

我首先认识到必须更改RFC Exec命令(令牌预期:执行函数..)。所以我想知道这个文档是旧的还是其他的改变了? (这里也在这个问题中解释:C# SapDataReader cmd.ExecuteReader() Error

在此更改之后,我执行了一个更新表的简单RFC - 没有导入/导出参数,没有表 即使只是执行这个简单的RFC结束于"没有可用于给定查询命令的结果"

那里有人解决了这个问题吗?任何人都有适当的工作榜样吗?

我的代码目前是自定义任务窗格上的按钮:

using System;
using System.Collections.Generic;
//using System.ComponentModel;
//using System.Drawing;
//using System.Data;
//using System.Linq;
using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Data.SapClient;

namespace SupplierEvaluation
{
public partial class CTP_Uster_SupplierEvaluation : UserControl
{
    public CTP_Uster_SupplierEvaluation()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string connstr = "ASHOST=Hostname; SYSNR=sysnr; CLIENT=client; LANG=EN; USER=username; PASSWD=password;";
        using (SapConnection conn = new SapConnection(connstr))
        {
            conn.Open();

            using (SapCommand cmd = (SapCommand)conn.CreateCommand())
            {
                cmd.CommandText = "EXECUTE Function ZTEST_RHE ";


                using (SapDataReader dr = (SapDataReader)cmd.ExecuteReader())
                {

                }

            conn.Close();
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

您可以尝试使用SQL Server Profiler跟踪对SQL Server的所有调用,它将需要服务器上的权限,影响服务器性能,并且您需要在所有其他调用中过滤掉您的调用。

enter image description here