AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.05.2010, 14:53   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
! Редактор сообщений электронной почты.
В DAX 2009 SP1 нашел пару глюков, хотелось бы узнать как поправить?

1) Основное --> Настройка --> Шаблоны сообщений эл. почты
Создаю шаблон:


Переключаясь между вкладками "Обычный" и "Предварительный просмотр" текст в окне сохраняет изначальную кодировку и стиль.
Но стоит переключится на вкладку "HTML", кодировка меняется.


вернувшись на вкладку "Обычный", вижу


Как исправить кодировку?

2) На почту приходит сообщение.
Cтрока: "Запись создана в Поставщики" произошло в 25.05.2010 10:38:30 в компании dem.

Элемент данных слияния %occurred% показывает странное время = 25.05.2010 10:38:30 , а должно быть 25.05.2010 14:38:30

Куда исчезли 6 часов? (Дату и время сеанса в аксапте проверял. Системное время настроено правильно, часовой пояс тоже)


P.S. Связанные темы Ссылка на Аксапту, Шаблоны сообщений эл. почты
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.

Последний раз редактировалось Poleax; 25.05.2010 в 15:06. Причина: Связанные темы
Старый 25.05.2010, 15:10   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
1. Встречалось еще в 4.0. Пока так и не понял от чего зависит. На разных компьютерах - разное поведение.
2. Возможно, некорректные настройки UTC-времени? Поле заполняется так: datetime2str(_inbox.AlertCreatedDateTime, DateFlags::FormatAll)
__________________
Ivanhoe as is..
Старый 25.05.2010, 15:36   #3  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
2. Посмотрел внимательнее:
Дата и время inbox задается в методе execute класса EventActionAlert:
X++:
alertCreatedDateTime = DateTimeUtil::newDateTime(systemdateget(),timenow(),DateTimeUtil::getUserPreferredTimeZone())
Т.е. хранится время UT0, на формах в новом типе поля оно автоматически смещается на зону пользователя. А при рассылке оповещений, похоже, не подумали. Надо, наверное, поменять так (EventActionEmail.createEmailParameterMap()):

X++:
datetime2str(DateTimeUtil::applyTimeZoneOffset(_inbox.AlertCreatedDateTime, DateTimeUtil::getUserPreferredTimeZone), DateFlags::FormatAll)
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Poleax (1).
Старый 25.05.2010, 15:52   #4  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
2. Возможно, некорректные настройки UTC-времени? Поле заполняется так: datetime2str(_inbox.AlertCreatedDateTime, DateFlags::FormatAll)
Похожие темы со смещением времени:
The time is incorrect on an email alert in Axapta General Discussions
Time stored in the EventCUD table
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 25.05.2010, 16:17   #5  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
2. Посмотрел внимательнее:
Дата и время inbox задается в методе execute класса EventActionAlert:
X++:
alertCreatedDateTime = DateTimeUtil::newDateTime(systemdateget(),timenow(),DateTimeUtil::getUserPreferredTimeZone())
Т.е. хранится время UT0, на формах в новом типе поля оно автоматически смещается на зону пользователя. А при рассылке оповещений, похоже, не подумали. Надо, наверное, поменять так (EventActionEmail.createEmailParameterMap()):

X++:
datetime2str(DateTimeUtil::applyTimeZoneOffset(_inbox.AlertCreatedDateTime, DateTimeUtil::getUserPreferredTimeZone), DateFlags::FormatAll)
Спасибо разобрался.
\Classes\EventActionEmail\createEmailParameterMap
X++:
    parameterMap.insert('occurred',datetime2str(DateTimeUtil::applyTimeZoneOffset(_inbox.AlertCreatedDateTime,DateTimeUtil::getUserPreferredTimeZone()), DateFlags::FormatAll));
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
За это сообщение автора поблагодарили: Raven Melancholic (2), wojzeh (1).
Старый 25.05.2010, 16:24   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
П.1. Открываем форму SysInetHTMLEditor, метод parseHTML, находим в конце строку:
X++:
 retVal = '{\\rtf1\\ansi' + /*generateFontTable() +*/ element.generateColorTable() + '\r\n';
меняем на (для русской кодовой страницы):
X++:
 retVal = '{\\rtf1\\ansi\\ansicpg1251' + /*generateFontTable() +*/ element.generateColorTable() + '\r\n';
Как сделать, чтобы работало универсально?
__________________
Ivanhoe as is..

Последний раз редактировалось Ivanhoe; 25.05.2010 в 16:29.
За это сообщение автора поблагодарили: NataLee (1).
Старый 25.05.2010, 16:53   #7  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
....
X++:
 retVal = '{\\rtf1\\ansi\\ansicpg1251' + /*generateFontTable() +*/ element.generateColorTable() + '\r\n';
Как сделать, чтобы работало универсально?
Может быть для РФ в \Forms\SysInetHTMLEditor\Methods\parseHTML
X++:
    retVal = '{\\rtf1\\ansi\\ansicpg1251\\deff0\\deflang1049' + /*generateFontTable() +*/ element.generateColorTable() + '\r\n';
Теперь все красиво на вкладке "HTML"
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
За это сообщение автора поблагодарили: BOAL (2), NataLee (1), sukhanchik (4), demoded (1), Comandante (0), Cathome (1).
Старый 25.05.2010, 17:08   #8  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
В моем варианте тоже работает. Вопрос про универсальность критичен, если у вас Аксапта стоит в нескольких странах и несколько пользователей (с разной кодовой страницей) работают с шаблонами почты.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Poleax (5).
Старый 10.05.2011, 16:58   #9  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
\Classes\EventActionEmail\createEmailParameterMap
подправили в Rollup 7
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 15.07.2011, 19:59   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
По поводу п.2

Не уверен, что предложено правильное исправление (в том числе и Майкрософтом в RU7)

Ведь все эти классы (EventAction*) запускаются на батч сервере и, соответственно, пользователь, для которого формируется оповещение, не является в общем случае тем же пользователем, который выполняет задание.
И если они будут находиться в разных временных зонах, то результат будет неверным

По идее, надо делать выборку из настроек пользователя, для которого отправляется оповещение
__________________
Axapta v.3.0 sp5 kr2
Старый 15.07.2011, 22:16   #11  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Не согласен. Посмотрите класс EventJobCUD.run() - обработка событий изначально запускается от имени пользователя, который получит сообщение.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: AndyD (5).
Старый 15.07.2011, 22:28   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Да, точно, был нерав, умолкаю
__________________
Axapta v.3.0 sp5 kr2
Теги
ax2009, email, notification, template, электронная почта, шаблон

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование изображения в шаблоне электронной почты Vhaldemar DAX: Программирование 8 07.06.2012 18:04
CRM:отправка почты на Outlook fialka DAX: Функционал 2 17.06.2008 16:09
Редактор X++ - обращение к методу объекта Swetik DAX: Программирование 9 04.04.2005 14:32
Редактор веб-приложений Venera DAX: Программирование 5 24.01.2005 16:57
Параметры почты - не работает... soin DAX: Функционал 3 09.01.2004 01:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:22.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.