169 похожих чатов

Кто-Нибудь пробовал упаковывать произвольную структуру глубокой вложенности для передачи по

RFC? Чтобы на принимающей стороне можно было её восстановить не зная её типа.

16 ответов

12 просмотров

JSON?

Alexander-Nosov Автор вопроса
Dmitriy Ryb
JSON?

Не, нужно восстановить тип из отправляющей стороны. Иными словами нужно сериализовать CL_ABAP_TYPEDESCR

Alexander Nosov
Не, нужно восстановить тип из отправляющей стороны...

Не пробовал именно такое, но в целом юзал класс /UI2/CL_JSON в котором есть метод с говорящим названием GENERATE

Alexander-Nosov Автор вопроса
Dmitry B
Не пробовал именно такое, но в целом юзал класс /U...

Какая у него сигнатура? Нет системы под рукой(

Передавай одним параметром описание структуры, а вторым - значение структуры

Alexander-Nosov Автор вопроса
Iurii Slobodchikov
Передавай одним параметром описание структуры, а в...

Собственно сложность в формировании описания и его восстановление

Alexander-Nosov Автор вопроса
Iurii Slobodchikov
Например, фиелдкаталог...

Много нюансов, например структура не имеет полей, или глубокая вложенность

Alexander-Nosov Автор вопроса

Судя по сигнатуре информация о структуре будет не полная.

Alexander Nosov
Судя по сигнатуре информация о структуре будет не ...

А тебе прямо словарные типы нужно восстановить?

Alexander Nosov
Собственно сложность в формировании описания и его...

Формирование точно не сложное. Берёшь CL_ABAP_TYPEDESCR, рекурсивно по элементам опрашиваешь и собираешь в строку какого-то формата, желательно выбрать какой-нибудь существующий. Восстановить наверное чуть сложнее, не сильно много с динамическими типами работал.

Алексей Селявский
Формирование точно не сложное. Берёшь CL_ABAP_TYPE...

есть cl_abap_structdescr=>create и cl_abap_tabledescr=>create. Добавляешь им немного рекурсии и вот он, десерелизатор.

Alexander Nosov
Да

Попробуй тогда упаковать в data cluster: export ... to data buffer . А распаковать можно методом CL_ABAP_EXPIMP_UTILITIES=>DBUF_IMPORT_CREATE_DATA. в возвратном параметре по идее должны быть ссылки с полноценными словарными типами ( но не уверен 100% т.к. в моей задаче не было такого требования)

Alexander-Nosov Автор вопроса
Dmitry B
Попробуй тогда упаковать в data cluster: export .....

А разве экспорт в датакластер сохраняет метаданные?

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Hello dear devs I have a problem with Flutter web and iframe element consider I have a scrollable widget in flutter web with different widgets inside of it. I want to freely ...
M
4
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Можно ли написать свою библиотеку "socket" на каком либо языке ассемблера с нуля не используя сишние библиотеки ? Или это самоубийство ?
123🪐
15
Карта сайта