C# 使用RFC_READ_TEXT从销售订单检索文本
我正在使用SAP.NET Connector 3.0从SAP(R/3)读取数据。我需要从销售订单中获取一些标题文本: 我发现了很多关于READ_TEXT函数的信息,这些信息可以用于此目的。 在这里,您可以找到一些使用ERPConnect的方法。 我正在尝试做同样的事情,我有以下返回IRfcTable的函数: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
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这应该是一个单独的问题,我想-并且不会隐藏在一些评论中。。。