Автор Тема: Не сохраняются изменения в ракурсе ведения после программной модификации данных  (Прочитано 3732 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн knopix

  • Newbie
  • *
  • Сообщений: 34
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Здравствуйте!

В соответствии с You are not allowed to view links. Register or Login написал вот такой код:
Код: You are not allowed to view links. Register or Login
  FORM modification.

  DATA: tmp     TYPE i,
        wa      TYPE zvsz0002,
        t_index TYPE sytabix,
        e_index TYPE sytabix.

  LOOP AT total.

    IF <action> EQ neuer_eintrag OR
       <action> EQ aendern.

      t_index = sy-tabix.
      MOVE-CORRESPONDING total TO wa.

      IF wa-szkls IS INITIAL.

        READ TABLE extract WITH KEY <vim_xtotal_key>.

        IF sy-subrc IS INITIAL.
          e_index = sy-tabix.
        ELSE.
          CLEAR e_index.
        ENDIF.

        CASE wa-szkod.
         
          " тут осуществляется модификация данных

        ENDCASE.

        CHECK t_index  GT 0.
        CHECK e_index GT 0.

        total   = wa.
        MODIFY total   INDEX t_index.
        extract = wa.
        MODIFY extract INDEX e_index.
      ENDIF.
    ENDIF.
  ENDLOOP.
  CLEAR sy-subrc.
ENDFORM.                    " MODIFICATION

Соответственно, вношу изменения в таблицы "extract" и "total".

После нажатия на кнопку "Сохранить" выводится сообщение об успешном сохранении данных, но по факту изменения в таблицу не вносятся и при перезапуске транзакции ракурса ведения новые строчки не отображаются, а модифицированные выводятся со старыми значениями. При тестировании выяснил, что если внести изменения в ещё какое-нибудь поле, то запись сохраняется. Видимо взводится какой-то флаг на сохранение данных. (например, попробовал использовать "UPDATE_FLAG" но безрезультатно)

Подскажите, пожалуйста, что я делаю не так и почему не сохраняются данные?..

Оффлайн knopix

  • Newbie
  • *
  • Сообщений: 34
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Разобрался с вопросом. Думал, думал, а оказывается случайно потёр поле "ACTION" в "total" и "extract" операторами
Код: You are not allowed to view links. Register or Login
total   = wa.
MODIFY total   INDEX t_index.
extract = wa.
MODIFY extract INDEX e_index.
Структуры-то у них не совпадают. Исправил на "MOVE-CORRESPONDING" и всё заработало. Тема закрыта.