首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RFC_READ_TEXT从销售订单中检索文本

使用RFC_READ_TEXT从销售订单中检索文本
EN

Stack Overflow用户
提问于 2014-01-03 14:42:04
回答 1查看 4.2K关注 0票数 4

我使用SAPSAPConnector3.0从.NET读取数据(R/3)。我需要从销售订单中得到一些标题信息:

我发现了很多关于READ_TEXT函数的信息,这些信息可以用于这个目的。在这里,您可以找到一些示例如何使用ERPConnect来实现它。我也在尝试这样做,我有以下函数,它返回IRfcTable:

代码语言:javascript
复制
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参数。

我做错什么了?

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

代码语言:javascript
复制
        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仍然是空的。结果:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-03 15:17:51

该功能模块需要以下参数:

代码语言:javascript
复制
  TDOBJECT    TDNAME       TDID       TDSPRAS
  ----------- ------------ ---------- -------
1 VBRK        3147856016   Z019       PL

您使用以下参数调用它:

代码语言:javascript
复制
  TDOBJECT    TDNAME       TDID       TDSPRAS
  ----------- ------------ ---------- -------
1 VBRK        
2             3147856016   
3                          Z019       
4                                     L

这是行不通的--函数模块将接受包含TDNAME的行,添加TDBOJECT = 'DRAD'TDID = 'LTXT'TDSPRAS = SY-LANGU,并尝试读取文本。这可能会失败,导致您看到的空行。还请注意,您需要提供内部语言指示符,这是一个单一的字符。

此外,您完全忽略了MESSAGES参数,该参数可能包含一些消息,这些消息可能会告诉您发生了什么错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20906107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档