C# 使用RFC_READ_TEXT从销售订单检索文本

C# 使用RFC_READ_TEXT从销售订单检索文本,c#,saprfc,sap-dotnet-connector,sap-r3,C#,Saprfc,Sap Dotnet Connector,Sap R3,我正在使用SAP.NET Connector 3.0从SAP(R/3)读取数据。我需要从销售订单中获取一些标题文本: 我发现了很多关于READ_TEXT函数的信息,这些信息可以用于此目的。 在这里,您可以找到一些使用ERPConnect的方法。 我正在尝试做同样的事情,我有以下返回IRfcTable的函数: static IRfcTable ReadFunction(string destName, int rowCount) { // get the

我正在使用SAP.NET Connector 3.0从SAP(R/3)读取数据。我需要从销售订单中获取一些标题文本:

我发现了很多关于READ_TEXT函数的信息,这些信息可以用于此目的。 在这里,您可以找到一些使用ERPConnect的方法。 我正在尝试做同样的事情,我有以下返回IRfcTable的函数:

static IRfcTable ReadFunction(string destName, int rowCount)
        {
            // get the destination
            RfcDestination dest = RfcDestinationManager.GetDestination(destName);

            IRfcFunction func = dest.Repository.CreateFunction("RFC_READ_TEXT");

            IRfcTable table = func.GetTable("TEXT_LINES");
            table.Insert();
            table.Insert();
            table.Insert();
            table.Insert();
            table[0].SetValue("TDOBJECT", "VBBK");
            table[1].SetValue("TDNAME", "3147856016");
            table[2].SetValue("TDID", "Z019");
            table[3].SetValue("TDSPRAS", "PL");
            func.Invoke(dest);
            return table;
        }
VBBK
-表示标题对象,
3147856016
-销售订单号,
Z019
-EDI供应商文本字段的ID,
PL
-语言。 因此,我正在检索一些数据,但字段TDLINE为空:


根据示例,此字段应包含文本。
可能有些参数不正确是一篇很好的文章,在这里我找到了如何获取每个文本字段的TDID参数。
我做错了什么

更新:根据下面的
vwegert
答案,代码已更改如下:

        IRfcTable table = func.GetTable("TEXT_LINES");
        table.Insert();
        table[0].SetValue("TDOBJECT", "VBBK");
        table[0].SetValue("TDNAME", "3147856016");
        table[0].SetValue("TDID", "Z019");
        table[0].SetValue("TDSPRAS", "PL");
        func.Invoke(dest);
        return table;
现在参数是正确的。但是
TDLINE
仍然是空的。结果:

功能模块需要以下参数:

  TDOBJECT    TDNAME       TDID       TDSPRAS
  ----------- ------------ ---------- -------
1 VBRK        3147856016   Z019       PL
  TDOBJECT    TDNAME       TDID       TDSPRAS
  ----------- ------------ ---------- -------
1 VBRK        
2             3147856016   
3                          Z019       
4                                     L
您正在使用以下参数调用它:

  TDOBJECT    TDNAME       TDID       TDSPRAS
  ----------- ------------ ---------- -------
1 VBRK        3147856016   Z019       PL
  TDOBJECT    TDNAME       TDID       TDSPRAS
  ----------- ------------ ---------- -------
1 VBRK        
2             3147856016   
3                          Z019       
4                                     L
这将不起作用-功能模块将使用包含
TDNAME
的行,添加
TDBOJECT='DRAD'
TDID='LTXT'
TDSPRAS=SY-LANGU
并尝试读取该文本。这可能会失败,导致出现空行。还要注意,您需要提供内部语言指示符,它是一个字符


此外,您完全忽略了
MESSAGES
参数,该参数可能包含一些消息,这些消息可能会告诉您很多错误所在。

非常感谢您的重播!实际上,不需要创建新行来放置每个参数。但是
TDLINE
仍然是空的。我已经更新了我的问题。关于
消息
-它是像
文本行
那样的单独表格吗?我检查了
消息
,然后在那里出现系统错误
文本3147856016 ID Z019语言PT未找到
。我假设,某些搜索参数不正确。我还注意到,这个错误包含语言
PT
,而不是
PL
。是的<由于语言原因,代码>TDLIN为空。在我的例子中,
TDSPRAS=PL
,系统只取第一个符号。我已经更改了
TDSPRAS=L
,现在我检索到了这篇文本。我真的很感激你的帮助。你为我节省了很多时间。没有此错误消息,我无法识别问题。现在它工作了!哪些功能可用于创建或更改现有SAP文本?假设我在销售订单标题上有相同的TDID=Z019,并希望为其分配新文本。请你重新编译一些支持RFC的函数好吗?@mbigun这应该是一个单独的问题,我想-并且不会隐藏在一些评论中。。。