Текущее время: Пт, май 24 2024, 04:37

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20
СообщениеДобавлено: Пт, апр 03 2020, 09:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Необходимо при сохранении в IW22 (Изменить сообщение ТОРО) в зависимости от наличия заданного статуса - выполнять свои действия. Возникла проблема - как определить этот самый заданный статус. Было предложение использовать ФМ STATUS_CHECK, но он читает значение статуса которое было на момент входа в транзакцию. Т.е. статус могли изменить, в в данном расширении COMMIT ещё не был выполнен и из БД его не вытащить.

Может кто-то знает рабочий метод как это сделать? Наверняка есть какие-то глобальные данные, до которых можно добраться, но какие, не понятно.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20
СообщениеДобавлено: Пт, апр 03 2020, 12:26 
Специалист
Специалист

Зарегистрирован:
Ср, янв 26 2005, 05:11
Сообщения: 185
Пол: Мужской
Попробуй
ASSIGN ('(SAPLBSVA)JEST_BUF_E[]') TO <fs_jest_buf_e>.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20
СообщениеДобавлено: Пт, апр 03 2020, 13:21 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Serge69 написал:
Попробуй
ASSIGN ('(SAPLBSVA)JEST_BUF_E[]') TO <fs_jest_buf_e>.

В (SAPLBSVA)JEST_BUF_E[] пусто при входе в расширение. :(


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20  Тема решена
СообщениеДобавлено: Пн, апр 06 2020, 06:55 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Вот правильная переменная
Code:
(SAPLBSVA)JEST_BUF_EO[]
В ней содержаться текущие статусы

Code:
*Чтение ТЕКУЩЕГО состояния статуса редактируемого объекта
* c_active = abap_true  - статус установлен
* c_active = abap_false - статус снят
*----------------------------------------------------------------------*
FORM check_status_current
       USING
         p_objnr         TYPE  jest-objnr
         p_stat          TYPE  jest-stat
       CHANGING
         c_active        TYPE  jest-inact
       .
  c_active = abap_undefined.
  "-- Определение взято из INCLUDE LBSVATOP
  TYPES:   BEGIN OF ty_jest_buf_e.
          INCLUDE STRUCTURE jestd.
  TYPES:     mod,mark,
             linep       LIKE  tj30-linep,
             statp       LIKE  tj30-statp,
             neveractive.
  TYPES:   END OF ty_jest_buf_e.
  TYPES tt_jest_buf_e TYPE TABLE OF ty_jest_buf_e.
  FIELD-SYMBOLS <lt_jest_buf_eo> TYPE tt_jest_buf_e.
  "--
  ASSIGN ('(SAPLBSVA)JEST_BUF_EO[]') TO <lt_jest_buf_eo>.
  IF sy-subrc = 0 AND NOT ( <lt_jest_buf_eo>[] IS INITIAL ).
    "-- Если статусы загружены, значяит они менялись и смотрим в списке
    FIELD-SYMBOLS <ls_jest_buf_eo> LIKE LINE OF <lt_jest_buf_eo>.
    READ TABLE <lt_jest_buf_eo> ASSIGNING <ls_jest_buf_eo>
      WITH KEY
        objnr = p_objnr
        stat = p_stat
    .
    IF sy-subrc = 0.
      IF <ls_jest_buf_eo>-inact IS INITIAL.
        c_active = abap_true.
      ELSE.
        c_active = abap_false.
      ENDIF.
    ENDIF.
  ELSE.
    "-- Если статусы не загружены, значит они не менялись, вытащим значение из БД
    CALL FUNCTION 'STATUS_CHECK'
      EXPORTING
        bypass_buffer     = 'X'
        objnr             = p_objnr
        status            = p_stat
      EXCEPTIONS
        object_not_found  = 1
        status_not_active = 2
        OTHERS            = 3.
    CASE sy-subrc.
      WHEN 0.
        c_active = abap_true.
      WHEN 2.
        c_active = abap_false.
    ENDCASE.
  ENDIF.
ENDFORM.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB