【问题标题】:Read CDPOS/CDHDR Sap tables using vbscript使用 vbscript 读取 CDPOS/CDHDR Sap 表
【发布时间】:2019-07-08 16:57:37
【问题描述】:

我正在尝试使用 rfc + vbs 作为缓冲区来读取 sap 更改日志。 我知道我需要使用 CHANGEDOCUMENT_READ_HEADERSCHANGEDOCUMENT_READ_POSITIONS 函数来执行此操作,但尚未找到任何研究如何在 vbscript 的帮助下正确执行此操作。

我已经知道如何使用BBP_RFC_READ_TABLE 读取普通表,但它不适用于 CDPOS...

有什么想法吗?

【问题讨论】:

    标签: vbscript saprfc


    【解决方案1】:

    首先,如果您想使用VBscript与SAP集成,您将使用SAP NWRFC库或SAP .Net Connector 3.0通过RFC通道,并且您可以调用的SAP函数或BAPI必须远程启用。不幸的是,CHANGEDOCUMENT_READ_HEADERSCHANGEDOCUMENT_READ_POSITIONS 这两个功能没有远程启用。我可以想象CDPOS 对你来说很难,因为CDPOS 的字段很广,BBP_RFC_READ_TABLE 无法处理。

    一旦我们与客观挑战保持一致,有两种选择可以帮助您前进:

    1. 编写自己的自定义“Z”函数模块,远程启用,函数内部调用CHANGEDOCUMENT_READ_HEADERSCHANGEDOCUMENT_READ_POSITIONS
    2. 使用第三方商业库(我们公司 AecorSoft 为 SAP 集成开发了这种符合 ADO.NET 的库)。

    我建议你先探索#1。您可以关注此博客https://blogs.sap.com/2017/02/09/how-to-use-dotnet-connector-nco-inside-vba/ 开始使用。

    【讨论】:

    • 我认为这行得通!但问题是,由于公司原因,我们不允许在 sap BAPI 中编写自己的函数...如果您知道任何其他访问 CDPOS 的方法,那将是完美的:)
    【解决方案2】:

    不知道BBP_RFC_READ_TABLE,但RFC_READ_TABLE 完美解读CDPOS

    如果您需要基于标头的查询,您将需要 2 次顺序读取:第一次用于 CDHDR 标头,第二次用于位置,从第一个构造第二个查询。

    【讨论】:

    • 为什么我应该将 FIELDS 留空?当然它会抛出 BUFFER_EXCEEDS。如果 OP 想要完成他的任务,他应该只阅读 necessary 字段和包。你在开发中总是使用SELECT *吗?如果是这样,你还是个小学生。不要如此激进地推广您的连接器,标准解决方案总是更可取
    • 点得好。你说的对。根据要求,OP 不必获取所有字段。我在想 VALUE_NEW 和 VALUE_OLD 将是理想的,但推测不应是假设。我将删除我之前的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多