Текущее время: Вс, июл 20 2025, 21:55

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


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

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


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

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