MS CRM Сохранить + Копировать как новый (Пользовательский объект) - PullRequest
0 голосов
/ 10 июля 2009

У меня есть пользовательский объект в Microsoft CRM (4.0). Пользователь должен вводить записи, однако обычно они имеют пакет из 20+ записей, которые почти одинаковы, за исключением 2 или 3 полей, которые необходимо изменить. Я знаю, что мне нужно написать собственный код, чтобы включить это функционально. Однако кто-нибудь может порекомендовать любые методы, чтобы сделать это.

В идеале должна быть кнопка, которая сохранит и создаст копию как новый объект.

Мой нынешний способ мышления - передать все детали как часть URL-адреса и использовать javascript для их удаления в событии загрузки страницы. Любые идеи приветствуются.

Спасибо Люк

Ответы [ 3 ]

2 голосов
/ 17 июля 2009

Я нашел ответ здесь:

http://mscrm4ever.blogspot.com/2008/06/cloning-entity-using-javascript.html

Я использовал его, и, похоже, он работает хорошо.

0 голосов
/ 10 июля 2009

Я бы создал собственный веб-сервис, который принимал бы тип сущности и идентификатор записи, которую я клонирую. Ваша кнопка «Сохранить и клонировать» будет вызывать службу, а служба будет обрабатывать детали извлечения текущей записи и принятия решения, какие поля установить в новой записи. Служба создает запись и отправляет Guid записи обратно на вашу кнопку, которая затем открывает вновь созданную запись.

Таким образом, вы избегаете путаницы установки / получения значений в JavaScript и привязки, какие поля устанавливать / извлекать непосредственно к вашим OnLoads, а также избегаете возможности слишком длинной строки запроса.

Сервис легко может быть достаточно обобщен, так что все, что вам нужно сделать, это добавить свою кнопку к любому объекту, и он будет работать, если вы настроите свой сервис для обработки этого конкретного объекта.

Одним из возможных недостатков является то, что, поскольку кнопка клонирования записи фактически создаст запись, пользователь будет вынужден удалить клонированную запись, если он решит, что не хочет клонировать запись в конце концов.

0 голосов
/ 10 июля 2009

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

В моем подходе я подключу функцию javascript при загрузке экрана ввода данных формы и использую подход XmlHttp / Ajax, чтобы подключить пользовательский веб-сервис для извлечения / получения значений по умолчанию для каждого поля. Или вы можете установить эти значения в самой функции javascript, но недостатком этого является то, что позже его сложно настроить. Поэтому я выберу подход для подключения к пользовательскому веб-сервису и получения этих значений из некоторой сущности параметра приложения.

Ваша идея предоставить кнопку "клонировать" также является отличной идеей, которая означает, что она скопирует все атрибуты предыдущей записи в новую запись, так что это сэкономит время для ввода данных пользователем, чтобы настроить другое значение

РЕДАКТИРОВАТЬ

Поскольку вы вводите записи в пакетном режиме, как насчет настройки экрана .ASPX для ввода записей. Настраивая экран .ASPX, вы можете использовать вкладку, чтобы пользователи могли просматривать вкладки, чтобы настроить значение / атрибут каждой записи.

Там будет кнопка "сохранить", а также кнопка "клонировать", чтобы клонировать какой-либо общий атрибут или значение.

...