Проблема с EmailNotification 1.3 ClearQuest
#1
Отправлено 01 марта 2006 - 10:09
Чтобы избавиться от проблем с кодировкой, установил EmailNotification 1.3.
Проблемы возникли, когда я начал создавать правила.
У меня часть полей в ClearQuest имеют русское название.
Пишу так: $Ответственный.email
Беда в том, что если после доллара идут русские буквы, то EmailNotification не распознает что это пременная! Причем проверял - стоит переименовать это поле на Otvetstvenniy и код $Otvetstvenniy.email прекрасно работает
Может, кто-нибудь подскажет, что с этим делать? Как добиться, чтобы EmailNotification понимал переменные с рускими буквами?
#2
Отправлено 01 марта 2006 - 10:15
Просто в перловом скрипте, отвечающем за преобразование/распознавание, жестко прошиты латинские символы.
ICQ 37992765
Сообщение отредактировал globe: 01 марта 2006 - 13:11
#3
Отправлено 03 марта 2006 - 08:38
Народ, а кто-нибудь писал для EmailNotification функцию, котора выдает e-mail всех юзеров, которые засветились в history дефекта?
Если да, поделитесь, пожалуста.
#4
Отправлено 10 марта 2006 - 22:18
это достаточно простой SQL. Например, для типа записи Defect:С переменными на русском разобрался.
Народ, а кто-нибудь писал для EmailNotification функцию, котора выдает e-mail всех юзеров, которые засветились в history дефекта?
Если да, поделитесь, пожалуста.
SQL("select distinct T2.email
from defect T1, users T2, history T4
where T1.dbid = T4.entity_dbid
and T2.login_name = T4.user_name
and T4.entitydef_id = (select T11.id from entitydef T11 where T11.name = 'Defect' )
and (T1.dbid=$dbid)
and (T1.dbid <> 0) ")
Это SQL вернет емейлы пользователей, которые засветились в хистори данного дефекта. Потенцияальная проблема в том, что пользователь в истории - это текстовое поле, в котором сохраняется имя пользователя на тот момент, когда он производил какое-либо действие.
Если имя пользователя по какой-то причине поменяли - емейл найти невозможно.
Удачи!
#5
Отправлено 21 марта 2006 - 04:04
У меня тоже проблемы с нотификацией в схеме с русским названиями полей. Для нотификации использую пакет EmailNotification 1.3
Может быть поделитесь решением этой проблемы, а то у меня с Perl как-то не очень...
#6
Отправлено 21 марта 2006 - 06:56
Я решил проблему так.
1. Открыл на редактирование пакет. Как это сделать - см. здесь: http://forums.softwa...opic=3304&st=15
2. Идем в Global Scripts - Perl - EnNotification. Нужно поправить две строчки в функции sub EN_get_token. Полный текст функции я выложу в файле к этому вложению. Строки, которые я изменял - выделю синим.
Прикрепленные файлы
#7
Отправлено 21 марта 2006 - 09:35
Огромнейшее спасибо! ;)
#8
Отправлено 21 марта 2006 - 14:20
#9
Отправлено 31 марта 2006 - 13:05
Альтернативный вариант, который не требует редактирования пакета (и не потребует последующего редактирования при установке обновлений пакета) - определить user-defined function в проперти, например,Добрый день!
Я решил проблему так.
name: RT_GetFieldValue
value:
return $entity->GetFieldValue($_[0])->GetValue();
После этого можно ее использовать в параметризованных полях Email_Notification_Rule для извлечения значений полей с русскими (украинскими, немецкими и т.д.) именами:
бла-бла-бла RT_GetFieldValue("название_поля.что-то_еще.еще_что-то") бла-бла-бла
К сожалению cqperl - это урезанная версия perl, из которого выкинули много чего полезного, в том числе и локализацию. Общего решения, которое бы годилось для всех языков (чтоб \w, к примеру, матчил символы в т.ч. иного языка) я пока не нашел.
Удачи!
#10
Отправлено 31 марта 2006 - 13:09
К стати, SQL можно сделать и попроще:это достаточно простой SQL. Например, для типа записи Defect:С переменными на русском разобрался.
Народ, а кто-нибудь писал для EmailNotification функцию, котора выдает e-mail всех юзеров, которые засветились в history дефекта?
Если да, поделитесь, пожалуста.
SQL("select distinct T2.email
from defect T1, users T2, history T4
where T1.dbid = T4.entity_dbid
and T2.login_name = T4.user_name
and T4.entitydef_id = (select T11.id from entitydef T11 where T11.name = 'Defect' )
and (T1.dbid=$dbid)
and (T1.dbid <> 0) ")
Это SQL вернет емейлы пользователей, которые засветились в хистори данного дефекта. Потенцияальная проблема в том, что пользователь в истории - это текстовое поле, в котором сохраняется имя пользователя на тот момент, когда он производил какое-либо действие.
Если имя пользователя по какой-то причине поменяли - емейл найти невозможно.
Удачи!
SQL("select distinct T2.email
from defect T1, users T2, history T4
where T1.dbid = T4.entity_dbid
and T2.login_name = T4.user_name
and T1.dbid=$dbid ")
Удачи!
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных