Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: knopix от Февраль 12, 2013, 09:03:22 am

Название: Не сохраняются изменения в ракурсе ведения после программной модификации данных
Отправлено: knopix от Февраль 12, 2013, 09:03:22 am
Здравствуйте!

В соответствии с http://help.sap.com/saphelp_nw04s/helpdata/en/91/ca9f0ba9d111d1a5690000e82deaaa/frameset.htm (http://help.sap.com/saphelp_nw04s/helpdata/en/91/ca9f0ba9d111d1a5690000e82deaaa/frameset.htm) написал вот такой код:
Код: 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" но безрезультатно)

Подскажите, пожалуйста, что я делаю не так и почему не сохраняются данные?..
Название: Re: Не сохраняются изменения в ракурсе ведения после программной модификации данных
Отправлено: knopix от Февраль 12, 2013, 11:16:29 am
Разобрался с вопросом. Думал, думал, а оказывается случайно потёр поле "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" и всё заработало. Тема закрыта.