Текущее время: Вс, июн 29 2025, 23:13

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Подробный текст сообщения
СообщениеДобавлено: Пн, дек 06 2004, 18:12 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Интересует: если кто сталкивался с подобной проблемой – как решали.
Интересует принципиальное решение.

Есть некая стандартная ошибка с переменными частями (плэйсхолдерами, параметрами – как хотите).
Встречаться она может в нескольких сотнях случаев, каждый раз переменные части свои.
Приложение многоязыковое.
В общем, как обычно.

Но эти переменные части – текстовые описания. Скажем, они хранятся в какой-то таблице, для каждого случая (например, подтягиваются из словаря данных).
И, естественно, возникает проблема с падежами.
Например: ‘Вы не можете удалить этот «Группа документов», т.к. для него уже определены «Состояние документа»’.
Можно перестроить формат сообщений так, чтобы не возникало этих проблем:
‘Вы не можете удалить запись таблицы «Группа документов», т.к. для нее уже существуют зависимые записи в связанной таблице «Состояние документа»’ .
Но такое сообщение будет слишком длинным для короткого текста.
Заказчик вроде бы непротив, чтобы в коротком сообщении указывался абстрактный текст вида «Вы не можете удалить запись, т.к. существуют зависимые записи в связанных таблицах». А вот конкретная расшифровка (что именно нельзя удалить, откуда и почему) содержалась в подробном тексте. Но, к сожалению, SAP так и не ввел возможности использовать параметры в подробных текстах.

В общем – что делать?
Самое лобовое решение – лепить несколько сот сообщений, для каждого случая – неинтересно. Я о нем знаю, ищется другое.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 06 2004, 21:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Возможность использовать переменные в длинном тексте сообщения точно есть. Сейчас у меня к системе доступа нет, но завтра обязательно посмотрю, как. Рекомендовал бы поглядеть в SE91 какие-нибудь подробные тексты к саповским сообщениям в режиме редактирования, думаю будет ясно, как вставлять переменные.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 06 2004, 21:30 
Гость
По идее, должны поддерживаться все стандартные фичи SAP-Scripta.
Только вот как их передавать?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 06 2004, 21:42 
Гость
Anonymous написал(а):
По идее, должны поддерживаться все стандартные фичи SAP-Scripta.
Только вот как их передавать?


В смысле - как передавать значения параметров и прочего?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 06 2004, 21:44 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Под Гостем я был.
Что-то наш файервол, похоже, чудит. Кукисы то рубит, то не рубит.

И наконец увидел кнопку "Правка". Буду пользоваться :-).

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 07 2004, 10:11 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Интересный вопрос!

После непродолжительного копания выявлен следующий способ:
1. Создаем в таблице TTDTG (ведение записей поддерживается) запись типа
SPRAS = RU
VARNAME = ZMYVAR
VARVALUE = 'Initial value'

2. Вставляем в документацию к сообщению строку типа
'Данное сообщение вызвано причиной № &ZMYVAR&'

3. В самой программе которая "кидает" сообщение делаем что нибудь вроде
Code:
...
UPDATE dbtab SET VARVALUE = ReasonCode
   WHERE SPRAS EQ 'RU' AND
              VARNAME EQ 'ZMYVAR'. 


Итог: я проверил - работает! Конечно корявовастенько, но как говорит нам хелп, да продлит Аллах его страницы, в документации можно вставлять системные, стандартные и программные переменные. Системные - упаси Боже , программные - сообщение формирует стандартная САПовская программа, а ее модификация - отдельный вопрос, так что остаются только стандартные. Что и реализовано выше приведенным кодом.

_________________
- Ничего не поделаешь, - возразил Кот. - Все мы здесь не в своем уме - и ты, и я!
- Откуда вы знаете, что я не в своем уме? - спросила Алиса.
- Конечно, не в своем, - ответил Кот. - Иначе как бы ты здесь оказалась? :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 07 2004, 10:19 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Ага, спасибо - буду пробовать.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 07 2004, 18:01 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Ага, работает.
Причем, делаю все гораздо проще.

В программе:

message e001(ztest) with 1 2 3 .

Краткий текст сообщения:
"Тестовое сообщение." (безо всяких параметров).

В подробном тексте использую переменные
&SYST-MSGV1& ... &SYST-MSGV4&

Все работает (пишет 1, 2, 3).
Хотя, сначала почему-то упорно отказывалась работать, непонятно почему. Вставлял все, что можно вставить :-).
Потом вдруг заработала - что изменилось, я не понял.

Причем, можно вставлять и не только стандартные переменные типа SYST-... , но и любые переменные из программы.
Например, объявить в программе переменную MY_VAR, и использовать ее под именем &MY_VAR&. В общем, все как в обычном форумляре. Работает - проверил.

Так что был неправ по поводу того, что SAP этого не сделал :-).

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 08 2004, 18:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Извините за задержку!
По стандарту для переменных сообщения в подробных текстах можно использовать &Vn&, где n - от 1 до 4.
Вот так выглядит подробный текст для сообщения PG 054:
Code:
U1   &CAUSE&                                                                 
AS   You have tried to access infotype &V1& (&V2&) in list entry using a     
     transaction other than "maintain".                                       
U1   &SYSTEM_RESPONSE&                                                       
AS   The infotype can only be processed in fast entry using the "maintain"   
     transaction. No other mode of processing is possible.                   
U1   &WHAT_TO_DO&                                                             
AS   Check your entries. If necessary, use individual maintenance to process 
     the data.                                                               

_________________
С уважением, Сергей Королев


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

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


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

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


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

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