SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20 https://www.sapboard.ru/forum/viewtopic.php?f=13&t=98573 |
Страница 1 из 1 |
Автор: | Валерка [ Пт, апр 03 2020, 09:46 ] |
Заголовок сообщения: | Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20 |
Необходимо при сохранении в IW22 (Изменить сообщение ТОРО) в зависимости от наличия заданного статуса - выполнять свои действия. Возникла проблема - как определить этот самый заданный статус. Было предложение использовать ФМ STATUS_CHECK, но он читает значение статуса которое было на момент входа в транзакцию. Т.е. статус могли изменить, в в данном расширении COMMIT ещё не был выполнен и из БД его не вытащить. Может кто-то знает рабочий метод как это сделать? Наверняка есть какие-то глобальные данные, до которых можно добраться, но какие, не понятно. |
Автор: | Serge69 [ Пт, апр 03 2020, 12:26 ] |
Заголовок сообщения: | Re: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20 |
Попробуй ASSIGN ('(SAPLBSVA)JEST_BUF_E[]') TO <fs_jest_buf_e>. |
Автор: | Валерка [ Пт, апр 03 2020, 13:21 ] |
Заголовок сообщения: | Re: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20 |
Serge69 написал: Попробуй ASSIGN ('(SAPLBSVA)JEST_BUF_E[]') TO <fs_jest_buf_e>. В (SAPLBSVA)JEST_BUF_E[] пусто при входе в расширение. |
Автор: | Валерка [ Пн, апр 06 2020, 06:55 ] |
Заголовок сообщения: | Re: Транзакция IW22 расширение QQMA0014 INCLUDE ZXQQMU20 |
Вот правильная переменная 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. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |