Разобрать SAP idoc в объект Java - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь проанализировать строку XML idoc SAP в объект Java. Я попытался использовать артефакт com.sap.conn.idoc.sapidoc3 в своем проекте Maven. Это действительно все необходимые инструменты для анализа XML-файла, но я также хочу, чтобы я добавил репозиторий / место назначения в мой код. Также мне нужно добавить материал в мой classpath, который я хотел бы избежать. Идентификаторы будут отправлены мне без использования каких-либо соединений SAP, поэтому мне нужен только IDocXMLParser.

Простое создание реализации IDocXMLParser не сработает, потому что есть проверки, что хранилище не является нулевым, и каждый конструктор защищен.

Есть ли способ просто разобрать / разархивировать полученную строку XML без необходимости писать всю логику самостоятельно?

1 Ответ

0 голосов
/ 08 ноября 2018

Пожалуйста, посмотрите мой ответ здесь:
Анализ IDoc в формате XML с использованием библиотеки классов SAP Java IDoc ?

Я думаю, что это должно ответить и на ваш вопрос. Если у вас нет какого-либо RFC-соединения с сервером приложений SAP с вашим программным обеспечением, я могу только отговорить вас использовать SAP JCo и надстройку Java IDoc Class Library. Они не дают никакой пользы в этом случае.

Синтаксический анализ IDoc-XML не имеет смысла, поэтому он зависит от цели, которую вы ставите перед этим анализом. Если вы хотите только убедиться, что XML корректен и корректен, вы можете использовать любой стандартный синтаксический анализатор XML для этого. Любой другой синтаксический анализатор XML также создает некоторые объекты Java - по крайней мере, java.lang.String объекты. Но если вы хотите получить объекты Java типа com.sap.conn.idoc.IDocDocument, потому что вы намерены впоследствии использовать предлагаемые им удобные методы навигации, доступа или модификатора, то анализатор IDoc-XML должен иметь доступ к дополнительным метаданным IDoc (которые Сам IDoc-XML не предоставляет) для создания объектов такого типа.

Если вы намереваетесь проверить IDoc-XML не только на предмет правильности и корректности XML, но также и в том случае, если он дополнительно соответствует спецификации SAP IDoc-XML, я боюсь, что в Библиотеке классов Java IDoc SAP 1014 * и IDocXMLParser не может использоваться для такой отдельной задачи, и вам действительно нужно написать свой собственный синтаксический анализатор в этом случае.

Кстати, вы также можете взглянуть на SAP Business Connector , который предлагает соответствующие API для работы с IDoc и IDoc-XML. Конечно, это платформа интеграции для обмена бизнес-данными между различными системами, и нет библиотеки разработки для включения в собственные проекты приложений Java. Но я думаю, что можно легко разработать рабочие процессы, которые бы охватывали желаемую функциональность из вашего вопроса. Я не знаю, будет ли это соответствовать вашим общим требованиям проекта, так что это просто еще одна идея - идти другим путем.

...