AXForum  
Вернуться   AXForum > Блоги > CRM, SharePoint и Черная Магия
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
  • Консалтинг
  • Проектирование
  • Разработка
  • Обучение


MVP 2010, 2011
Оценить эту запись

Вложение файлов. Замена системного диалога.

Запись от Артем Enot Грунин размещена 17.12.2009 в 10:10
Обновил(-а) Артем Enot Грунин 25.12.2009 в 16:47

Часто, при вложении файла к объекту, возникает желание снабдить его комментарием: например, указать версию документа, описание исправлений и т. п. Технически файлы вкладываются в Примечания (Annotation), которые позволяют это сделать, но стандартный диалог, вызываемый по нажатии "скрепки" имеет упрощенный вид, который скрывает нужные нам поля описания:

Нажмите на изображение для увеличения
Название: attSimple.JPG
Просмотров: 241
Размер:	19.9 Кб
ID:	29

В то время как уже готовое Примечание можно открыть правой кнопкой и внести необходимое описание:

Нажмите на изображение для увеличения
Название: attFull.JPG
Просмотров: 248
Размер:	33.2 Кб
ID:	30

Тут и возникает вопрос: а что если сразу открывать нормальный диалог вложения-примечания, чтобы не делать лишних действий? Почему бы и нет!
"Скрепка" вызывает JS функцию
Код:
locAddFileTo(5);
, которая описана в файле \CRMWeb\_static\_forms\addrelated.js и имеет следующий вид:
Код:
function locAddFileTo(iAttachmentType)
{
var sUrl = "/" + getObjUrl(iAttachmentType) + "?hideDesc=1&pId=" + CrmEncodeDecode.CrmUrlEncode(crmFormSubmit.crmFormSubmitId.value) + "&pType=" + CrmEncodeDecode.CrmUrlEncode(crmFormSubmit.crmFormSubmitObjectType.value);
openStdWin(prependOrgName(sUrl), buildWinName(), 500, 175);
}
iAttachmentType, судя по всему, всегда равен 5 (Annotation). Причина всех бед - ключ hideDesc=1, который и предписывает диалогу скрывать поля описания. Чтобы исправить это досадное недоразумение на OnLoad любого объекта поместите следующий скрипт:
Код:
var oAtachButton = document.all("_MBlocAddFileTo5");
if (oAtachButton != null)
{
    oAtachButton.action = "AddFileFull()";

    AddFileFull = function()
    {
        var iAttachmentType = 5;
        var sUrl = "/" + getObjUrl(iAttachmentType)
                + "?pId=" + CrmEncodeDecode.CrmUrlEncode(crmFormSubmit.crmFormSubmitId.value)
                + "&pType=" + CrmEncodeDecode.CrmUrlEncode(crmFormSubmit.crmFormSubmitObjectType.value);
        openStdWin(prependOrgName(sUrl), buildWinName(), 500, 350);
    }
}
Как я уже говорил iAttachmentType, судя по всему - константа, однако если вы найдете форму, где это не так, то вы легко сможете исправить код выше, так чтобы он снова работал. Этот код заменяет экшен по молчанию вызываемый по нажатии "скрепки". По сути, это тот же стандартный код, в котором удален ключ hideDesc и выставлен стандартный размер формы примечания. Теперь осталось распространить его на все формы стандартных и пользовательских объектов, для которых разрешены примечания...
Ну или вы можете просто внести изменения в файл ddrelated.js! Да да да. Ансапорт, да и черт бы с ним! Я так и сделал, чтобы не париться. Работает.
В моем случае совершенно точно можно спать спокойно: подобные модификации не затрагивают поведение бизнес логики или метаданные. В том случае, если ваши модификации это делают, будьте внимательны при установке обновлений. Фактически, пакет обновлений для версии 4.0 представляет собой полностью новую версию дистрибутива. Как раз для таких случаев, к описанию пакета прикладывается список файлов, которые будут обновлены в процессе инсталляции. После установки пакета в тестовой среде, вы можете просмотреть изменения, а так же мергевать исходный и обновленный файлы при помощи любого удобного для вас инструмента разработчика. Лично меня тошнит от недоразвитых средств Visual Studio, так что я предпочитаю им Word:

Нажмите на изображение для увеличения
Название: WordCVS.jpg
Просмотров: 288
Размер:	176.4 Кб
ID:	31

p.s. Ансапорт - это еще не конец света. Это лишь повод документировать проект еще более тщательно.
Размещено в CRM
Просмотров 19622 Комментарии 0
Всего комментариев 0

Комментарии

 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:13.