Просмотр нерешенных тем
Сообщения без ответов | Активные темы
Правила форума
Вопросы по ППМ (MRP) — сюда.
Вопросы по классификации — сюда.
Вопросы по входящим поставкам — сюда.
Автор | Сообщение | |||
---|---|---|---|---|
Заголовок сообщения: Сменить тип сообщения. Добавлено: Ср, сен 29 2010, 15:11 |
||||
|
Коллеги, добрый день! Где ( СПРО или транзакция) можно сменить тип сообщения ММ? В частности ОЧЕНЬ интересует: Нужно закрывать месяц….. Это срочно очень.
|
|||
Вернуться к началу |
|
|||
Abral |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Ср, сен 29 2010, 15:37 |
|
Транзакция OMCQ
|
Вернуться к началу |
|
Marya |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Чт, сен 30 2010, 08:18 |
|
|
Вернуться к началу |
|
TigRina |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Ср, апр 20 2011, 14:45 |
||
|
Коллеги, возник такой вопрос — можно где-то изменить тип сообщения M7 043?
|
||
Вернуться к началу |
|
||
DED_MOROZ |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Ср, апр 20 2011, 15:29 |
|
1) Зачем это нужно?
|
Вернуться к началу |
|
Glam Station |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Ср, апр 20 2011, 17:12 |
|
Если сообщение стандартное, то его можно убрать!
|
Вернуться к началу |
|
TigRina |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Чт, апр 21 2011, 06:12 |
||
|
DED_MOROZ написал: 1) Зачем это нужно? 1) Пользователь при переносе материала между складами сделал вместо перемещения
|
||
Вернуться к началу |
|
||
DimKu |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Чт, апр 21 2011, 07:17 |
||
|
В данном случае тип сообщения указан в программе и изменить его нельзя. И система ругается правильно! PS. Необходимо учесть, что стандартная оборотная ведомость (если её используете) не очень жалует ВДв340. Чтобы она корректно обрабатывала такие документы необходимо:
|
||
Вернуться к началу |
|
||
TigRina |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Чт, апр 21 2011, 12:08 |
||
|
DimKu написал(а): Варианты решения следующие: Огромное спасибо! Помогла комбинация этих двух методов, а вот по-отдельности никак не получалось =)
|
||
Вернуться к началу |
|
||
DimKu |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Чт, апр 21 2011, 12:13 |
||
|
Не получалось скорее всего, из-за того, что необходимый вид оценки не был создан. Когда перенесли в новую партию, вид оценки создался, после этого соответственно удалось поменять и в предыдущей партии. А можно было создать вид оценки через MM01.
|
||
Вернуться к началу |
|
||
TigRina |
Заголовок сообщения: Re: Сменить тип сообщения. Добавлено: Пн, апр 25 2011, 05:58 |
||
|
DimKu написал(а): Не получалось скорее всего, из-за того, что необходимый вид оценки не был создан. На наличие вида оценки я первым делом материал проверила. Даже запасы материала с данным видом оценки были =)
|
||
Вернуться к началу |
|
||
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
При работе с сообщениями иногда может возникнуть необходимость настройки типов выводимых сообщений (было информационным, а захотели сделать сообщением об ошибке, либо вообще отключить вывод сообщения). Ниже будет подробнее разобрано как это реализовать.
Рассмотрим небольшой пример. Есть следующий класс сообщений ZMESSAGES (транзакция SE91):
Программа:
PARAMETERS: p_param TYPE char10. START-OF-SELECTION. IF p_param IS INITIAL. MESSAGE e000(ZMESSAGES). ENDIF. WRITE: ‘Параметр:’, p_param. |
Если на экране выбора не задать входной параметр, программа сообщит нам об этом и прекратит дальнейшее выполнение:
Сделаем нашу программу более универсальной позволив настраивать тип выводимого сообщения через стандартные транзакции. Запускаем транзакцию OBMSG и добавляем новую прикладную область (класс сообщений):
Для прикладной области настраиваем сообщение. На данном шаге необходимо указать допустимые типы сообщений (индикатор выключить убирает возможность ограничения допустимых сообщений в последующей настройке OBA5):
Далее необходимо переопределить сообщение в транзакции OBA5 (можем определить сообщение для конкретного пользователя, а так же отдельно для пакетного ввода и диалогового режима):
Изменяем программу следующим образом:
PARAMETERS: p_param TYPE char10. START-OF-SELECTION. IF p_param IS INITIAL. CALL FUNCTION ‘CUSTOMIZED_MESSAGE’ EXPORTING i_arbgb = ‘ZMESSAGES’ i_msgnr = ‘000’ i_dtype = ‘E’. » Необходимо указание, если не настроено в OBA5 ENDIF. WRITE: ‘Параметр:’, p_param. |
Модуль CUSTOMIZED_MESSAGE вызывает сообщение с настроенным типом, либо не вызывает вовсе если в качестве типа установлен «-». Для того чтобы определить тип сообщения, без его вызова можно использовать ФМ: READ_CUSTOMIZED_MESSAGE.
Для того чтобы пользователь знал о том, что можно перенастроить сообщение, в подробный текст необходимо вставить следующую команду (INCLUDE ‘CUSTOMIZED_MESSAGE_INFO’ OBJECT DOKU ID TX):
Тогда при выводе сообщения в подробном тексте пользователь увидит следующее:
Оператор MESSAGE служит для диалогового взаимодействия с пользователем. Существует шесть типов сообщения.
Тип | Описание |
---|---|
S | Status (Success). Сообщение отображается в статусной строке и не влияет на работу программы. Данный вид сообщения применяется для информирования об успешной выполнении операции. |
W | Warning. Предупредительные сообщения отображаются в статусной строке. При возникновении сообщения работа программы прерывается, а пользователю предоставляется возможность вносить исправления в полях для ввода. При нажатии на Enter в диалоговом режиме, работа программы будет восстановлена. |
E | Error. Сообщение отображается в статусной строке. При возникновении данного вида сообщения обработка программы останавливается. |
I | Information. Информационное сообщение отображается в отдельном модальном окне. При возникновении сообщения работа программы прерывается. После закрытия диалога работа программы восстанавливается. |
A | Abend (Abort). Сообщение отображается в модальном окне. При возникновении сообщения программа завершается, а система возвращается в меню более высокого уровня. Сообщения стоит применять только в крайних ситуациях. |
X | Exception. Сообщение инициирует дамп MESSAGE_TYPE_X. Данный вид сообщения стоит применять в ситуациях, когда нужно проанализировать что именно привело к ошибке во время выполнения. |
Синтаксис
MESSAGE { msg | text | exception }
{ { [DISPLAY LIKE dtype] [WITH dobj1 … dobj4] }
| { [DISPLAY LIKE dtype] [WITH dobj1 … dobj4] RAISING exception }
| { [WITH dobj1 … dobj4] INTO text } }.
После вызова оператора MESSAGE заполняются системные поля
Поле | Значение |
---|---|
sy-msgid | Содержит класс сообщения |
sy-msgno | Содержит номер сообщения |
sy-msgty | Содержит тип сообщения (S,I,W,E,A,X) |
sy-msgv1 .. sy-msgv4 | Содержит данные сообщения, указанные после добавления WITH |
Для вывода сообщений используются классы сообщений, которые создаются в тр. SE91
MESSAGE — msg
При выводе сообщений нужно указать: класс, номер и тип сообщения
MESSAGE tn(id)
MESSAGE tn
MESSAGE ID mid TYPE mtype NUMBER num.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
*&———————————————————————* *& Report Z_MESSAGE *& Возможности оператора MESSAGE *&———————————————————————* *& Примеры использования оператора MESSAGE *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message MESSAGE-ID 00. START-OF-SELECTION. PERFORM main. FORM main. » Краткая запись MESSAGE s002(00). » Краткая запись. Класс сообщения указывается в MESSAGE-ID программы MESSAGE s002. » Полная запись с указанием класса, типа и номера в отдельных полях MESSAGE ID ’00’ TYPE ‘S’ NUMBER ‘002’. ENDFORM. |
Результат работы программы
MESSAGE — text
MESSAGE text TYPE mtype.
В также MESSAGE можно передать свободный текст. В этом случае класс сообщения будет 00, номер сообщения 001. Данный вариант обычно используют когда нет возможности определить сообщения в SAP, например когда текст сообщения формируется во внешних системах.
*&———————————————————————* *& Пример вывода текста *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message. START-OF-SELECTION. PERFORM main. FORM main. MESSAGE ‘Текст сообщения’ TYPE ‘I’. ENDFORM. |
Результат работы программы
В системных полях будет сообщение базисного класса 001(00)
MESSAGE — exception
MESSAGE oref TYPE mtype.
В также MESSAGE можно передать исключение. Результат будет аналогичен выводу исключения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
*&———————————————————————* *& Пример вывода исключения *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message. START-OF-SELECTION. PERFORM main. FORM main. DATA lr_root TYPE REF TO cx_root. DATA lv_value TYPE i. TRY . lv_value = 1 / 0. CATCH cx_root INTO lr_root. MESSAGE lr_root TYPE ‘I’. ENDTRY. ENDFORM. |
Результат работы программы
Значения системных полей
MESSAGE — WITH
MESSAGE … WITH dobj1 … dobj4.
Сообщения могут содержать параметры, которые передаются через дополнение WITH. Пример вывода сообщения 076(va) с двумя параметрами.
*&———————————————————————* *& Вывод сообщения с параметрами *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message. START-OF-SELECTION. PERFORM main. FORM main. MESSAGE i076(va) WITH ‘TESTVAR’ sy—repid. ENDFORM. |
Результат работы программы
MESSAGE — DISPLAY LIKE
MESSAGE … DISPLAY LIKE dtype.
При использовании дополнения DISPLAY LIKE, происходит замена иконки на специфичную для типа, указанного в dtype. В dtype можно передать одно из следующих значений: A, E, I, S или W. Данное дополнение нельзя использовать для сообщения типа X, оно всегда вызывает дамп. DISPLAY LIKE обычно используется в ситуациях, когда нужно отобразить ошибку, но не прерывать выполнение программы.
*&———————————————————————* *& Пример использования DISPLAY LIKE *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message. START-OF-SELECTION. PERFORM main. FORM main. MESSAGE ‘Ошибка в модальном окне’ TYPE ‘I’ DISPLAY LIKE ‘E’. ENDFORM. |
Результат работы программы
MESSAGE — INTO
MESSAGE … INTO text.
При использовании дополнения INTO, в переменную text записывается короткий текст сообщения. Само сообщение при этом, не отображается. Данное дополнение обычно применяют в двух случаях: когда нужно получить текст сообщения; когда нужно заполнить системные переменные для дальнейшего использования, например, для журнала приложений.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
*&———————————————————————* *& Пример использования MESSAGE INTO *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message. START-OF-SELECTION. PERFORM main. FORM main. DATA lv_text TYPE text120. MESSAGE e036(60) WITH ‘2100’ INTO lv_text. » Балансовая единица «&» неизвестна (ввести существующую БЕ). WRITE: / ‘TEXT: ‘, lv_text. WRITE: / ‘SY-MSGID: ‘, sy—msgid. WRITE: / ‘SY-MSGTY: ‘, sy—msgty. WRITE: / ‘SY-MSGNO: ‘, sy—msgno. WRITE: / ‘SY-MSGV1: ‘, sy—msgv1. WRITE: / ‘SY-MSGV2: ‘, sy—msgv2. WRITE: / ‘SY-MSGV3: ‘, sy—msgv3. WRITE: / ‘SY-MSGV4: ‘, sy—msgv4. ENDFORM. |
MESSAGE — RAISING
MESSAGE … RAISING exception.
Оператор MESSAGE вместе с дополнением RAISING представляет собой комбинацию операторов MESSAGE и RAISE. Данное дополнение имеет смысл только во время обработки методов и функциональных модулей, в которых определено исключение старого типа (основанного не на классах). Если вызывающий метод или функциональный модуль обрабатывает данное исключение в EXCEPTIONS, то MESSAGE .. RAISING работает аналогично оператору RAISE. Если же вызывающей стороне исключение не обрабатывается, то RAISING игнорируется.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
*&———————————————————————* *& Пример использования MESSAGE RAISING *& http://abap4.ru/?p=360 *&———————————————————————* REPORT z_message. CLASS c1 DEFINITION. PUBLIC SECTION. CLASS-METHODS m1 EXCEPTIONS exc1. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD m1. MESSAGE ‘Сообщение с RAISING’ TYPE ‘I’ RAISING exc1. ENDMETHOD. ENDCLASS. START-OF-SELECTION. PERFORM main. FORM main. c1=>m1( ). » Отработает MESSAGE c1=>m1( EXCEPTIONS exc1 = 4 ). » Отработает RAISING IF sy—subrc = 4. ENDIF. ENDFORM. |
В настоящей статье показана настройка статусов системных сообщений в бизнес-процессе закупок и использование различных версий сообщений. С помощью данного функционала можно назначить уникальный статус сообщений для каждого пользователя. Например, сообщение «Самая поздняя дата поставки – YYYY.MM.DD»для одного пользователя может иметь статус предупреждения, а для другого – запрещения (при назначении этой же даты поставки в тот же день).
Необходимые для написания этой статьи знания я получил, пройдя самостоятельно курс обучения в электронной академии SAP«Управление цепочкой поставок – Снабжение» (TSCM52 – ProcurementII).
В настоящей статье показана настройка статусов системных сообщений в бизнес-процессе закупок и использование различных версий сообщений. С помощью данного функционала можно назначить уникальный статус сообщений для каждого пользователя. Например, сообщение «Самая поздняя дата поставки – YYYY.MM.DD»для одного пользователя может иметь статус предупреждения, а для другого – запрещения (при назначении этой же даты поставки в тот же день).
Настройка системных сообщений в бизнес-процессе закупок
Настройка системных сообщений для документов закупки выполняется в меню SPRO->Управление материальными потоками -> Закупки -> Данные среды -> Определение атрибутов системных сообщений ->выбираем пункт Системные сообщения.
Рис.1 Путь к настройке системных сообщений в меню SPRO
Рис.2 Переход к ведению системных сообщений для документов закупок
В меню (см. Рис. 3) представлен перечень сообщений с их текстами и статусами.
Рис.3 Перечень сообщений в закупках со статусами
Стандартный перечень возможных статусов:
- E – error (запрещающее сообщений),
- W–warning (предупреждающее сообщение),
- «Null» — отсутствие сообщения.
Статус сообщения определяет, является ли сообщение запрещающим или предупреждающим (информативным). Если сообщение запрещающее, то пользователю, чтобы сохранить данные, необходимо устранить причины сообщения.
Рис.4 Перечень возможных статусов для сообщений
Для настройки сообщения (см. Рис. 3) нужно задать:
Версию сообщения – значение параметра MSV в основных данных пользователя; этот параметр позволяет назначить версию основной записи пользователю. Если параметр не указан в основных данных пользователя, то он по умолчанию составляет 00, т.е. пользователи с неуказанным значением параметра MSV получают сообщения версии «00».
Код прикладной области – код прикладной области, к которой относится данное сообщение. Например, сообщение «Счёт расхода материала определить не удалось» относится к прикладной области «06» (Документы закупки / PurchasingDocuments) (показано на рисунке 3).
Номер сообщения – номер сообщения в рамках прикладной области. Например, всё то же сообщение «Счёт расхода материала определить не удалось» в прикладной области 06 имеет номер 138.
Рис.5 Запрещающее сообщение
Рис.6 Прикладная область и номер сообщения, а также вызывающая программа
Пример запрещающего сообщения представлен на Рис.5, а его прикладная область и номер на Рис.6.
Рис.7 Предупреждающее сообщение
Рис.8 Прикладная область и номер сообщения, представленного на рисунке 7
Чтобы узнать код прикладной области и номер сообщения нужно дважды щёлкнуть по сообщению и в появившемся окне ассистента нажать на кнопку «Техническая информация»
Рис.9 Кнопка «Техническая информация»
Рассмотрим сообщение ME 051 («Материал помечен для удаления»). По умолчанию данное сообщение предупреждающее. Чтобы сделать его запрещающим нужно в настройках сообщения (см. рис. 3)установить статус E. Это можно сделать в меню SPRO->Управление материальными потоками -> Закупки -> Данные среды -> Определение атрибутов системных сообщений ->выбираем пункт Системные сообщения.
Рис.10 Установка статуса Eдля сообщения ME 051 версии 00
Теперь при попытке создать заказ на поставку с удаленным (помеченным для удаления) материалом система сообщит, что материал помечен на удаление и не позволит сохранить заказ с этим материалом.
Рис.11 Запрещающее сообщение «Материал &помечен для удаления» в заказе на поставку
При этом, варьируя значение параметров«версия сообщения» и «статус сообщения», мы можем обеспечить, чтобы для одних пользователей текст сообщения был предупреждающим, а для других запрещающим.
Для этого проделаем следующие шаги.
Создадим версию сообщения ME051 –ZZ0, где укажем статус для данного сообщения W, то есть предупреждение.
Выделим сообщение и нажмём кнопку «Скопировать».
Рис.12 Копирование сообщения
В поле версия укажем произвольный код; в данном случае я указываю ZZ0
Рис.13 Создание версии ZZ0 для сообщения ME 051 со статусом W(предупреждение)
Затем
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Зарегистрироваться
У вас уже есть учетная запись?
Войти