Я испытал очень странное поведение моего API CRM 2011. Когда я пытаюсь обновить поле контакта originatingleadid
от одного значения к другому, ничего не происходит. Никаких ошибок в коде, поэтому при выполнении кода все выглядит идеально. Но значение действительно не меняется.CRM: невозможно обновить OriginatingLeadId of Contact
Я написал простой способ проверить его и получил тот же результат. Вот оно.
class Program
{
private static IOrganizationService service;
static void Main(string[] args)
{
var contactId = Guid.Parse("B5A832D6-93DD-E611-ABAC-005056810E95");
var leadId = Guid.Parse("8306E695-94DD-E611-ABAC-005056810E95");
getService("admin", "password", "domain");
SetOriginatingLead(contactId, leadId);
}
private static void SetOriginatingLead(Guid contactId, Guid leadId)
{
var entity = service.Retrieve("contact", contactId,
new ColumnSet("originatingleadid"));
var targetlead = new EntityReference("lead", leadId);
entity["originatingleadid"] = targetlead;
service.Update(entity);
return;
}
private static void getService(string login, string password, string domain)
{
if (service != null)
return;
var cred = new ClientCredentials();
cred.Windows.ClientCredential =
new NetworkCredential(login, password, domain);
service = new OrganizationServiceProxy(new
Uri(@"http://crm/organisation/XRMServices/2011/Organization.svc"), null, cred, null);
return;
}
}
Пожалуйста, скажите, где я ошибаюсь.
Возможно, вы модифицируете первичный ключ. Таким образом, вы можете создать другую запись с исправлением, или база данных не позволяет изменить первичный ключ. – jdweng
@jdweng, нет, это не первичный ключ в объекте Contact. –