我使用SAPSAPConnector3.0从.NET读取数据(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 - ID用于EDI供应商文本字段、PL - language.因此,我正在检索一些数据,但是字段TDLINE是空白的:

根据示例,该字段应该包含文本。
可能有些参数不正确。这里是一个很好的帖子,在这里我发现了如何为每个文本字段获取TDID参数。
我做错什么了?
更新:根据下面的答案,代码已经更改如下:
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仍然是空的。结果:

发布于 2014-01-03 15:17:51
该功能模块需要以下参数:
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参数,该参数可能包含一些消息,这些消息可能会告诉您发生了什么错误。
https://stackoverflow.com/questions/20906107
复制相似问题