Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
Вложение файлов. Замена системного диалога.
Запись от Артем Enot Грунин размещена 17.12.2009 в 10:10
Обновил(-а) Артем Enot Грунин 25.12.2009 в 16:47
Обновил(-а) Артем Enot Грунин 25.12.2009 в 16:47
Теги attachment, dom, file, java script, unsupport
Часто, при вложении файла к объекту, возникает желание снабдить его комментарием: например, указать версию документа, описание исправлений и т. п. Технически файлы вкладываются в Примечания (Annotation), которые позволяют это сделать, но стандартный диалог, вызываемый по нажатии "скрепки" имеет упрощенный вид, который скрывает нужные нам поля описания:
В то время как уже готовое Примечание можно открыть правой кнопкой и внести необходимое описание:
Тут и возникает вопрос: а что если сразу открывать нормальный диалог вложения-примечания, чтобы не делать лишних действий? Почему бы и нет!
"Скрепка" вызывает JS функцию
, которая описана в файле \CRMWeb\_static\_forms\addrelated.js и имеет следующий вид:
iAttachmentType, судя по всему, всегда равен 5 (Annotation). Причина всех бед - ключ hideDesc=1, который и предписывает диалогу скрывать поля описания. Чтобы исправить это досадное недоразумение на OnLoad любого объекта поместите следующий скрипт:
Как я уже говорил iAttachmentType, судя по всему - константа, однако если вы найдете форму, где это не так, то вы легко сможете исправить код выше, так чтобы он снова работал. Этот код заменяет экшен по молчанию вызываемый по нажатии "скрепки". По сути, это тот же стандартный код, в котором удален ключ hideDesc и выставлен стандартный размер формы примечания. Теперь осталось распространить его на все формы стандартных и пользовательских объектов, для которых разрешены примечания...
Ну или вы можете просто внести изменения в файл ddrelated.js! Да да да. Ансапорт, да и черт бы с ним! Я так и сделал, чтобы не париться. Работает.
В моем случае совершенно точно можно спать спокойно: подобные модификации не затрагивают поведение бизнес логики или метаданные. В том случае, если ваши модификации это делают, будьте внимательны при установке обновлений. Фактически, пакет обновлений для версии 4.0 представляет собой полностью новую версию дистрибутива. Как раз для таких случаев, к описанию пакета прикладывается список файлов, которые будут обновлены в процессе инсталляции. После установки пакета в тестовой среде, вы можете просмотреть изменения, а так же мергевать исходный и обновленный файлы при помощи любого удобного для вас инструмента разработчика. Лично меня тошнит от недоразвитых средств Visual Studio, так что я предпочитаю им Word:
p.s. Ансапорт - это еще не конец света. Это лишь повод документировать проект еще более тщательно.
В то время как уже готовое Примечание можно открыть правой кнопкой и внести необходимое описание:
Тут и возникает вопрос: а что если сразу открывать нормальный диалог вложения-примечания, чтобы не делать лишних действий? Почему бы и нет!
"Скрепка" вызывает JS функцию
Код:
locAddFileTo(5);
Код:
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); }
Код:
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); } }
Ну или вы можете просто внести изменения в файл ddrelated.js! Да да да. Ансапорт, да и черт бы с ним! Я так и сделал, чтобы не париться. Работает.
В моем случае совершенно точно можно спать спокойно: подобные модификации не затрагивают поведение бизнес логики или метаданные. В том случае, если ваши модификации это делают, будьте внимательны при установке обновлений. Фактически, пакет обновлений для версии 4.0 представляет собой полностью новую версию дистрибутива. Как раз для таких случаев, к описанию пакета прикладывается список файлов, которые будут обновлены в процессе инсталляции. После установки пакета в тестовой среде, вы можете просмотреть изменения, а так же мергевать исходный и обновленный файлы при помощи любого удобного для вас инструмента разработчика. Лично меня тошнит от недоразвитых средств Visual Studio, так что я предпочитаю им Word:
p.s. Ансапорт - это еще не конец света. Это лишь повод документировать проект еще более тщательно.
Всего комментариев 0