На самом деле тут два вопроса.
Первая ошибка активации таблицы QMEL
:
Поле ZZCLUSTD
не имеет предшествующего поля длины типа INT4.
Таблица DDIC, содержащая столбец типа LCHR и LRAW, требует, чтобы ей всегда непосредственно предшествовал столбец типа INT2 или INT4 (хотя в сообщении указано только INT4).
Второй вопрос о том, как читать такое поле. Оба столбца всегда должны считываться одновременно, а столбец INT2/INT4 должен быть "прочитан до" столбца LCHR/LRAW. Единственная ссылка, которую я смог найти, чтобы объяснить это ограничение, находится в примечании 302788 - LCHR/ Поля LRAW в таблицах логических кластеров.
Столбец INT2 таблицы STXL
с именем CLUSTR
работает следующим кодом:
TYPES: BEGIN OF ty_viqmel_iflos,
clustr TYPE stxl-clustr, "INT2
zzclustd TYPE stxl-clustd, "LCHR
END OF ty_viqmel_iflos.
DATA lt_viqmel_iflos TYPE TABLE OF ty_viqmel_iflos.
SELECT S~CLUSTR, S~CLUSTD AS ZZCLUSTD
INTO CORRESPONDING FIELDS OF TABLE @lt_viqmel_iflos
FROM viqmel AS v
INNER JOIN stxl AS S
ON s~tdname = v~qmnum
UP TO 100 ROWS.
NB: в вашем вопросе есть путаница, когда вы ссылаетесь как на CLUSTD
из STXL
, так и на ZZCLUSTD
из QMEL
. Я не понимаю, чего именно вы пытаетесь достичь.
NB: если вы хотите прочитать тексты из таблицы STXL
, есть другое решение, вызывающее функциональный модуль READ_TEXT_TABLE
или READ_MULTIPLE_TEXTS
, если хотите. Они были доступны в примечании 2261311. Если у вас нет или вы не можете установить эти функциональные модули, вы можете попробовать это суть, которая делает то же самое. Он также содержит ссылку на другое обсуждение.
NB: для информации, если быть более точным, LRAW содержит байты, а не символы, и для кластеров данных (в случае STXL
) эти байты соответствуют любым значениям (символы в случае STXL
), заархивированным оператором EXPORT
и должны быть распакованы с помощью IMPORT
`.
person
Sandra Rossi
schedule
16.03.2020