ABAP, доступ к заранее не известному компоненту в field symbol

uaha1979

Добрый день.
Исходные данные:
Таблицы выгружаются на локальный комп в txt файлах в следующем формате:
uniqueKey # tableName # rowNum # fieldName
те берем строку с n полями и превращаем ее в n строк с одинаковым rowNum, берем следующую строку увеличиваем rowNum повторяем.
Задача: восстановить все данные обратно в таблицы.
Как я решаю:
Считываем файл в таблицу,
создаем динамически таблицу, нужно типа

create data commonTableRef type table of (name).
assign commonTableRef->* to <table>.

name содержит имя таблицы
далее считываем наименования полей нашей таблицы

select *
from dd03l
into table fldNameTable
where tabName = name
.

создаем field symbol - строка таблицы.

create data commonLineRef like line of <table>."FIXME to name
assign commonLineRef->* to <line>.

делаем цикл по наименованию полей
Считываем строку
  парсим строку
  берем наименование поля и его значение,
  fieldName = ...
  data = ...
  <line>-fieldName = data "!?
  берем следующую строку,
  если rowNum не изменился идем в начало цикла.
иначе выход с цикла.
аппендим <line> к таблице
В итоге у меня есть <table>, которым я заменяю таблицу в базе.
Далее проблема:
как мне положить считанные данные в <line> по нужному смещению?
чтобы считать компонет я юзаю assign component COMPONENT_NAME of structure <line> to <text>,
а обратно как положить? :confused:

Fragaria

учитывая специфику SAP, тебе тут щаз за правильный ответ выкатят счет на полтора миллиона и контракт на годовую поддержку в нагрузку

uaha1979

Проблему решил =)

assign component fieldName of structure <line> to <text>.
<text> = data_read.

вместо = то ли write то ли move поставить надо

dava

а теперь тебя засудят
Оставить комментарий
Имя или ник:
Комментарий: