Dynamics CRM Zusammenführen von Zwei Kontakte mit C# - code, modifiziert Beispiel aus dem SDK

Ich habe versucht, das Merge-Beispiel in Dynamics CRM 2011 SDK zu arbeiten.
http://msdn.microsoft.com/en-us/library/hh547408.aspx

Ich habe Sie ein bisschen verändert. Ich habe zwei Kontakte statt-Konten (obwohl einige Namen der Variablen im code-sonst schlagen könnte. Zum Beispiel _account1Id ist in der Tat eine GUID für contact1.)

Den ersten Kontakt-Datensatz mit name, Vorname und Telefon-Felder gefüllt.
Der zweite Kontakt-Datensatz mit name, Vorname und E-Mail-Felder gefüllt.

Dem Teil, wo der merge erfolgt ist unten. Der ursprüngliche code kann Biene gesehen aus dem link oben.

Wenn ich das Beispiel mit den folgenden änderungen, die e-mail-Adresse nicht erhalten, eingebunden in die neuen Kontakt-Datensatz. Was ich bekomme ist eine zusammengeführte Kontakt mit den Werten aus einem der Datensätze mit Adressdaten Hinzugefügt, aber keine e-mail. Ich dachte, dies sollte füllen die leeren Felder der primär-Datensatz mit dem nicht-leeren Felder aus dem zweiten Datensatz.

Sehr neue Ms Dynamics CRM, konnte ich nicht den Grund verstehen, nach viel googlen und Debuggen. Ich werde froh sein, wenn jemand kann mir ein feedback über das, was das problem sein könnte.

Vielen Dank im Voraus.

      _serviceProxy.EnableProxyTypes();
            CreateRequiredRecords(); //created two contacts with same name, surname. first record has telephone1 filled, second record has emailaddress filled.
            EntityReference target = new EntityReference();
            target.Id = _account1Id;
            target.LogicalName = Contact.EntityLogicalName;
            MergeRequest merge = new MergeRequest();
            merge.SubordinateId = _account2Id;
            merge.Target = target;
            merge.PerformParentingChecks = false;
            Contact updateContent = new Contact();
            updateContent.Address1_Line1 = "test";
            merge.UpdateContent = updateContent;
            MergeResponse merged = (MergeResponse)_serviceProxy.Execute(merge);
            Contact mergeeAccount =
                (Contact)_serviceProxy.Retrieve(Contact.EntityLogicalName,
                _account2Id, new ColumnSet(allColumns: true));
            if (mergeeAccount.Merged == true)
            {
                Contact mergedAccount =
                    (Contact)_serviceProxy.Retrieve(Contact.EntityLogicalName,
                    _account1Id, new ColumnSet(allColumns: true));
            }
Schreibe einen Kommentar