:::: МЕНЮ ::::
Просмотр публикаций с меткой: XML

ZIF_GUI_DATA_VIEW — Интерфейс отображения данных

В предыдущих статьях мы рассматривали использование библиотеки ZCA_GUI на примерах использования текстового редактора, вывода таблицы ALV и вызова экрана с контейнером.

Сейчас рассмотрим инструменты отображения произвольных данных в разных форматах. Для этого в библиотеке используется интерфейс ZIF_GUI_DATA_VIEW и его имплементации:

  • ZCL_GUI_DATA_VIEW_XML — Класс для отображения данных в XML-представлении
  • ZCL_GUI_DATA_VIEW_JSON — Класс для отображения данных в JSON-формате
  • ZCL_GUI_DATA_VIEW_TREE — Класс для отображения данных в виде дерева
  • ZCL_GUI_DATA_VIEW_COMPOSITE — Класс для отображения данных во всех перечисленных форматах
Читать дальше…

Структурная печать XML документа

На ABAP уровне XML документы обычно не содержат разделители между тэгами, т.е. содержимое XML представлено в виде одной строки. Это не мешает работать программе, но если потребуется вывести XML на просмотр или сохранить в файл, то он будет не читаемый. Повысить читаемость можно если каждый новый тэг писать на новой строке и делать отступ, соответствующий уровню иерархии тэга. Ниже представлен код, который делает структурную печать XML строки.

Читать дальше…

Передача INITIAL значений в ABAP Proxy

Недавно я настраивал интеграцию одного сервиса, где из SAP необходимо было передать набор полей, часть из которых были необязательны к заполнению. На стороне ABAP использовался класс, сгенерированный на основе WSDL поставщика. До определенного момента все работало хорошо. Проблемы начались, когда потребовалось передать в опциональном параметре значение по умолчанию (INITIAL). В этом случае сгенерированная полезная нагрузка не содержала нужных тегов в окончательном XML-документе. Из-за отсутствия тэгов, сервер возвращал ошибку передачи данных.

Читать дальше…

Сериализация данных и типов данных

Существует несколько способов сериализации и десериализации данных. Самые популярные из них:

  • В формате XML через CALL TRANSFORMATION
  • В формате JSON через класс /UI2/CL_JSON
  • В кластер данных через оператор EXPORT

В некоторых случаях, помимо самих данных, требуется сериализовать тип данных (например, если тип сериализуемых данных определяется в рантайме). Сделать это можно через класс CL_SALV_BS_DDIC.

Читать дальше…