我正在使用SAP .NET Connector 3.0从SAP(R / 3)读取数据。我需要从销售订单中获取一些标题文本:
我发现了很多关于READ_TEXT功能的信息,可以用于此目的。 在这里,您可以使用ERPConnect找到一些 sample 如何执行此操作。 我正在尝试做同样的事情,我有以下函数返回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是空白的:
根据示例,该字段应包含文本
可能有些参数不正确。 Here 是一个很好的帖子,我找到了如何获取每个文本字段的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
仍然是空的。结果:
答案 0 :(得分:1)
功能模块需要以下参数:
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
参数,该参数可能包含一些可能会告诉您错误的消息。