Перейти к содержимому

Фотография

Проблема с EmailNotification 1.3 ClearQuest


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 LKU

LKU

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Локшин Константин

Отправлено 01 марта 2006 - 10:09

Добрый день!
Чтобы избавиться от проблем с кодировкой, установил EmailNotification 1.3.
Проблемы возникли, когда я начал создавать правила.

У меня часть полей в ClearQuest имеют русское название.
Пишу так: $Ответственный.email
Беда в том, что если после доллара идут русские буквы, то EmailNotification не распознает что это пременная! Причем проверял - стоит переименовать это поле на Otvetstvenniy и код $Otvetstvenniy.email прекрасно работает

Может, кто-нибудь подскажет, что с этим делать? Как добиться, чтобы EmailNotification понимал переменные с рускими буквами?
  • 0

#2 globe

globe

    Постоянный участник

  • Members
  • PipPipPip
  • 216 сообщений
  • ФИО:Богданова Ирина
  • Город:Москва


Отправлено 01 марта 2006 - 10:15

Стукнись в аську, есть решение.
Просто в перловом скрипте, отвечающем за преобразование/распознавание, жестко прошиты латинские символы.
ICQ 37992765

Сообщение отредактировал globe: 01 марта 2006 - 13:11

  • 0

#3 LKU

LKU

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Локшин Константин

Отправлено 03 марта 2006 - 08:38

С переменными на русском разобрался.

Народ, а кто-нибудь писал для EmailNotification функцию, котора выдает e-mail всех юзеров, которые засветились в history дефекта?
Если да, поделитесь, пожалуста.
  • 0

#4 uncle_Pasha

uncle_Pasha

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 10 марта 2006 - 22:18

С переменными на русском разобрался.

    Народ, а кто-нибудь писал для EmailNotification функцию, котора выдает e-mail всех юзеров, которые засветились в history дефекта?
    Если да, поделитесь, пожалуста.

Просмотр сообщения

это достаточно простой SQL. Например, для типа записи Defect:
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 вернет емейлы пользователей, которые засветились в хистори данного дефекта. Потенцияальная проблема в том, что пользователь в истории - это текстовое поле, в котором сохраняется имя пользователя на тот момент, когда он производил какое-либо действие.
Если имя пользователя по какой-то причине поменяли - емейл найти невозможно.
Удачи!
  • 0

#5 preal

preal

    Новый участник

  • Members
  • Pip
  • 14 сообщений

Отправлено 21 марта 2006 - 04:04

Всем добрый день!
У меня тоже проблемы с нотификацией в схеме с русским названиями полей. Для нотификации использую пакет EmailNotification 1.3
Может быть поделитесь решением этой проблемы, а то у меня с Perl как-то не очень...
  • 0

#6 LKU

LKU

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Локшин Константин

Отправлено 21 марта 2006 - 06:56

Добрый день!
Я решил проблему так.
1. Открыл на редактирование пакет. Как это сделать - см. здесь: http://forums.softwa...opic=3304&st=15
2. Идем в Global Scripts - Perl - EnNotification. Нужно поправить две строчки в функции sub EN_get_token. Полный текст функции я выложу в файле к этому вложению. Строки, которые я изменял - выделю синим.

Прикрепленные файлы


  • 0

#7 preal

preal

    Новый участник

  • Members
  • Pip
  • 14 сообщений

Отправлено 21 марта 2006 - 09:35

Все заработало!!!
Огромнейшее спасибо! ;)
  • 0

#8 LKU

LKU

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Локшин Константин

Отправлено 21 марта 2006 - 14:20

Да не за что. Спасибо Uncle_Pasha.
  • 0

#9 uncle_Pasha

uncle_Pasha

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 31 марта 2006 - 13:05

Добрый день!
  Я решил проблему так.

Альтернативный вариант, который не требует редактирования пакета (и не потребует последующего редактирования при установке обновлений пакета) - определить user-defined function в проперти, например,
name: RT_GetFieldValue
value:
return $entity->GetFieldValue($_[0])->GetValue();

После этого можно ее использовать в параметризованных полях Email_Notification_Rule для извлечения значений полей с русскими (украинскими, немецкими и т.д.) именами:

бла-бла-бла RT_GetFieldValue("название_поля.что-то_еще.еще_что-то") бла-бла-бла

К сожалению cqperl - это урезанная версия perl, из которого выкинули много чего полезного, в том числе и локализацию. Общего решения, которое бы годилось для всех языков (чтоб \w, к примеру, матчил символы в т.ч. иного языка) я пока не нашел.

Удачи!
  • 0

#10 uncle_Pasha

uncle_Pasha

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 31 марта 2006 - 13:09

С переменными на русском разобрался.

    Народ, а кто-нибудь писал для EmailNotification функцию, котора выдает e-mail всех юзеров, которые засветились в history дефекта?
    Если да, поделитесь, пожалуста.

Просмотр сообщения

это достаточно простой SQL. Например, для типа записи Defect:
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 можно сделать и попроще:
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 гостей, 0 анонимных