Именно так и делаю. Вставка записей в таблицу сt_finchdel типа FINCHDEL_T - это хеш-таблица с типом строки FINCHDEL. Его структура:
Code:
VBELN VBELN_VL Поставка
PRUEFUNG PRUEFUNG Выполненная проверка
MSGTY SYMSGTY Сообщения, тип сообщения
MSGNO SYMSGNO Сообщения, номер сообщения
MSGID SYMSGID Сообщения, класс сообщений
MSGV1 SYMSGV Сообщения, переменная сообщения
MSGV2 SYMSGV Сообщения, переменная сообщения
MSGV3 SYMSGV Сообщения, переменная сообщения
MSGV4 SYMSGV Сообщения, переменная сообщения
Вставка в таблицу:
Code:
LOOP AT it_xlips ASSIGNING <f_xlips>.
pikmg = <f_xlips>-pikmg.
LOOP AT it_ylips FROM ind ASSIGNING <f_ylips>.
IF <f_ylips>-vbeln = <f_ylips>-vbeln AND <f_ylips>-posnr = <f_ylips>-posnr.
<f_xlips>-pikmg = <f_ylips>-pikmg.
IF <f_xlips> NE <f_ylips>.
wa_finchdel-vbeln = <f_ylips>-vbeln.
wa_finchdel-pruefung = 99.
wa_finchdel-msgty = 'E'.
wa_finchdel-msgno = '020'.
wa_finchdel-msgid = 'ZOSN'.
wa_finchdel-msgv1 = <f_xlips>-posnr.
INSERT wa_finchdel INTO сt_finchdel.
ELSE.
<f_xlips>-pikmg = pikmg.
ENDIF.
ind = sy-tabix + 1.
EXIT.
ENDIF.
ENDLOOP.
ENDLOOP.
Здесь таблица it_xlips отображает текущее сост. позиции, уt_xlips - состояние в БД (т.е., сохраненное состояние). На этот код выдается ошибка:
Code:
You cannot use explicit or implicit index operations on tables with types "HASHED TABLE" or "ANY TABLE". "CT_FINCHDEL" has the type "HASHED TABLE".