java - 将 SAP IDoc 解析为 Java 对象

标签 java idoc

我正在尝试将 SAP IDoc XML 字符串解析为 Java 对象。我尝试在我的 Maven 项目中使用 com.sap.conn.idoc.sapidoc3 工件。我相信它确实拥有解析 XML 文件的所有正确工具,但这也希望我向我的代码添加存储库/目标。另外,我需要将一些我想避免的东西添加到我的类路径中。 IDoc 将在不使用任何 SAP 连接的情况下发送给我,因此我实际上只需要 IDocXMLParser。

仅仅创建 IDocXMLParser 实现是行不通的,因为需要检查存储库不为空并且每个构造函数都受到保护。

有没有一种方法可以只解析/解码接收到的 XML 字符串,而不必自己编写所有逻辑?

最佳答案

请您看一下我的回答:
Parsing an IDoc in XML format using SAP Java IDoc Class Library

我认为这也应该回答你的问题。 如果您的软件没有与 SAP 应用程序服务器的任何 RFC 连接,我只能劝阻您使用 SAP JCo以及 Java IDoc 类库附加组件。在这种情况下,它们不会提供任何好处。

为了解析而进行 IDoc-XML 解析没有意义,因此这取决于您进行此解析的目标。如果您只想确保 XML 有效且格式良好,则可以使用任何标准 XML 解析器。任何其他 XML 解析器也会创建一些 Java 对象 - 至少是 java.lang.String 对象。但是,如果您希望获取 com.sap.conn.idoc.IDocDocument 类型的 Java 对象,因为您打算随后使用其提供的便捷导航、访问器或修饰符方法,则 IDoc-XML 解析器需要访问其他 IDoc 元数据(IDoc-XML 本身不提供)来创建这些类型的对象。

如果您的目的不仅是检查 IDoc-XML 的 XML 有效性和格式良好性,而且还要检查它是否另外符合 SAP 的 IDoc-XML 规范,那么恐怕 SAP Java IDoc 类库的 IDocXMLProcessor 和 IDocXMLParser 无法用于此类单独的任务,在这种情况下,您确实必须编写自己的解析器。

顺便说一句,您也可以看看 SAP Business Connector它提供了适当的 API 来处理 IDoc 和 IDoc-XML。当然,这是一个用于在各个系统之间交换业务数据的集成平台,并没有包含在自己的Java应用程序项目中的开发库。但我认为,人们可以轻松地在那里开发工作流程,这将涵盖您的问题所需的功能。我不知道它是否适合您的一般项目要求,所以这只是遵循不同路径的另一个想法。

关于java - 将 SAP IDoc 解析为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205676/

相关文章:

java - JNLP 应用程序 - Lib 文件夹未发送到客户端

java - PreparedStatement 缓存 - 这是什么意思(它是如何工作的)

java - 如何让 Eclipse JPA(大理)使用另一个项目的 persistence.xml?

java - 如何更改已运行实例的 Java 类的代码?

java - 读取 IDOC 时如何控制事务(提交/回滚)

node.js - SAP信息与node.js的集成

java - 使用 SAP Java IDoc 类库解析 XML 格式的 IDoc

java - 如何在 Eclipse 中查看特定类的源代码?

sap-dotnet-connector - 将 'IDOCTYPE_READ_COMPLETE' 转换为 'RfcRepository' [.Net Connector 3]