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

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

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

16 ответов

23 просмотра

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 .....

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта