Текущее время: Пт, апр 26 2024, 01:35

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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