Пересмотр путаницы Дистрибьютор / Клиент в Microsoft Dynamics CRM 3.0
Я унаследовал реализацию MS CRM 3.0, в которой каждый контакт назначается определенному "дистрибьютору". К сожалению, дистрибьюторы не определены как какие-либо лица. Вместо этого форма контакта была изменена, чтобы включить дополнительные поля, содержащие имя и адрес дистрибьютора.
До сих пор каждый раз, когда менялся адрес дистрибьютора или изменялись регионы на основе почтового индекса для дистрибьюторов, внешнее пользовательское приложение и база данных извлекали и модифицировали каждый контакт, чтобы отразить эти изменения.
Я абсолютно новичок в MS CRM, и мне интересно узнать, есть ли у кого-нибудь идеи, которые позволили бы мне добавлять дистрибьюторов таким образом, чтобы их имя / адрес можно было изменить изнутри CRM в одном месте, и это может быть связанным с отдельными контактами.
Идеи?
2 ответа
К сожалению, единственный способ устранить эту неразбериху - это большая очистка и перенос данных. Я бы попытался использовать существующую учетную запись и просто разместить поле типа, чтобы пометить его как дистрибьютора. Таким образом вы получаете много полезных функций из коробки.
Какой бы вариант вы ни выбрали, будь то готовый объект или новый, вам потребуется использовать пакет миграции данных, такой как Scribe или DTS для SQL, чтобы переместить данные из контактов в их новую сущность.
Если честно, я не думаю, что будет тонна кода, чтобы разобраться в этой ситуации. Я буду псевдокод, если вы дадите вам основную идею - я думаю, что в конечном итоге это может оказаться лучшим долгосрочным решением.
Сначала создайте пользовательский объект Distributor. Создайте отношения между контактами / учетными записями по мере необходимости. Затем возьмите псевдокод, приведенный ниже, - заполните материал, соответствующий вашей ситуации. Запустить его. Тогда вы можете удалить эти ненужные свойства, и вы должны быть в порядке.
CRmService s = GetMyService();
BusinessEntityCollection objects_to_clean = s.RetrieveMultiple(...some query to get them all...);
foreach (BusinessEntity be in objects_to_clean.BusinessEntities)
{
DistributorEntity de = new DistributorEntity;
//set all necessary fields here...
de.field = be.field;
Guid distributorguid = s.Create(de);
be.distributorid = distributorguid ;
s.Update(be);
}