Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Es gibt mehrere Möglichkeiten, Duplikaterkennung auszuführen, nachdem Sie sie aktiviert und die Duplikaterkennungsregeln veröffentlicht haben.
Abrufen und Erkennen von Duplikaten für einen bestimmten Datensatz
Duplikate erkennen und abrufen:
- Bevor Sie eine Entität erstellen
- Für eine vorhandene Entität
- Für andere Entitäten, die den Duplikat-Regeln über Entitäten hinweg entsprechen. Zum Beispiel jede Lead-Entität, die mit einer Kontaktentität übereinstimmt.
Optionen:
- Web-API: Funktion "RetrieveDuplicates"
- Organisationsservice: RetrieveDuplicatesRequest
Beispiel: Erkennen von Duplikaten für einen angegebenen Datensatz mithilfe der Web-API
Das folgende Beispiel zeigt, wie Duplikate eines angegebenen Datensatzes mithilfe RetrieveDuplicates
der Funktion erkannt werden.
Anforderung
GET [Organization URI]/api/data/v9.1/RetrieveDuplicates(BusinessEntity=@p1,MatchingEntityName=@p2,PagingInfo=@p3)?@p1={'@odata.type':'Microsoft.Dynamics.CRM.account','accountid':'0d1156d2-1598-e711-80e8-00155db64062'}&@p2='account'&@p3={'PageNumber':1,'Count':50} HTTP/1.1
If-None-Match: null
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json
Accept: application/json
Antwort
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.1/$metadata#accounts",
"value": [
<Omitted for brevity: JSON data for any matching accounts including all properties>
]
}
Erkennen von Duplikaten für einen Entitätstyp
Übermitteln Sie einen asynchronen Duplikaterkennungsauftrag, der im Hintergrund ausgeführt wird. Die Duplikate werden gemäß den veröffentlichten Duplikatsregeln für den Entitätstyp erkannt. Die erkannten Duplikate werden als DuplicateRecord
Datensätze in Dynamics 365 Customer Engagement (on-premises) gespeichert.
Maximal 5000 Duplikate werden durch den Duplikaterkennungsauftrag zurückgegeben.
Optionen
- Web-API: BulkDetectDuplicates-Aktion
- Organisationsservice: BulkDetectDuplicatesRequest
Beispiel: Erkennen von Duplikaten für einen Entitätstyp mithilfe der Web-API
Im folgenden Beispiel wird gezeigt, wie Duplikate für einen Entitätstyp erkannt werden, indem ein asynchroner Auftrag mithilfe BulkDetectDuplicates
von action erstellt wird.
Anforderung
POST [Organization URI]/api/data/v9.1/BulkDetectDuplicates HTTP/1.1
If-None-Match: null
OData-Version: 4.0
Content-Type: application/json
Accept: application/json
OData-MaxVersion: 4.0
{
"Query": {
"@odata.type": "#Microsoft.Dynamics.CRM.QueryExpression",
"EntityName": "lead"
},
"JobName": "jobname1",
"SendEmailNotification": false,
"TemplateId": "07B94C1D-C85F-492F-B120-F0A743C540E6",
"ToRecipients": [],
"CCRecipients": [],
"RecurrencePattern": "",
"RecurrenceStartTime": "2015-07-15T05:30:00Z"
}
Antwort
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.BulkDetectDuplicatesResponse",
"JobId": "efaff068-7598-e711-80e8-00155db64062"
}
Mit der obigen Anforderung wird ein asynchroner Duplikaterkennungsauftrag erstellt, dessen JobID in der Antwort zurückgegeben wird. Die von der obigen Anforderung zurückgegebene JobID kann zum Abrufen doppelter Datensätze in einem Entitätstyp verwendet werden, wie im folgenden Beispiel gezeigt.
Anforderung
GET [Organization URI]/api/data/v9.1/asyncoperations(efaff068-7598-e711-80e8-00155db64062)/AsyncOperation_DuplicateBaseRecord
If-None-Match: null
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json
Accept: application/json
Das FetchXML-Äquivalent der obigen Anforderung ist unten dargestellt.
<fetch>
<entity name="duplicaterecord">
<attribute name="owninguser" />
<attribute name="ownerid" />
<attribute name="baserecordid" />
<attribute name="duplicateid" />
<attribute name="owningbusinessunit" />
<attribute name="createdon" />
<attribute name="asyncoperationid" />
<filter>
<condition attribute="asyncoperationid" operator="eq" value="efaff068-7598-e711-80e8-00155db64062" />
</filter>
</entity>
</fetch>
Antwort
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context":"[Organization URI]/api/data/v9.1/$metadata#duplicaterecords",
"value":[
{
"owninguser":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
"_ownerid_value":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
"_baserecordid_value":"3a6fc65b-3f9c-e711-811c-000d3a75ce72",
"duplicateid":"489a879c-019b-4c28-8539-51ebc850d18f",
"createdon":"2017-09-19T03:34:25Z",
"owningbusinessunit":"20a44144-6d9a-e711-811c-000d3a75ce72",
"_asyncoperationid_value":"efaff068-7598-e711-80e8-00155db64062",
"_duplicateruleid_value":null,
"_duplicaterecordid_value":null
},
{
"owninguser":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
"_ownerid_value":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
"_baserecordid_value":"406fc65b-3f9c-e711-811c-000d3a75ce72",
"duplicateid":"0a4a7dea-1488-4e05-b5eb-c2925ad2925a",
"createdon":"2017-09-19T03:34:25Z",
"owningbusinessunit":"20a44144-6d9a-e711-811c-000d3a75ce72",
"_asyncoperationid_value":"efaff068-7598-e711-80e8-00155db64062",
"_duplicateruleid_value":null,
"_duplicaterecordid_value":null
}
]
}
Die GUID des Basis-Datensatzes wird als baserecordid
in Datensätzen DuplicateRecord
gespeichert. duplicateid
, in der obigen Antwort ist der eindeutige Bezeichner des doppelten Datensatzes. asyncoperationid
ist der eindeutige Identifikator des Systemauftrags, der diesen Datensatz erstellt hat. Und, ownerid
ist die eindeutige Kennung des Benutzers oder Teams, dem der doppelte Datensatz gehört. Weitere Informationen finden Sie unter DuplicateRecord-Entität.
Hinweis
Stellen Sie vor dem Erstellen und Ausführen von Duplikaterkennungsaufträgen sicher, dass geeignete Regeln für die Duplikaterkennung vorhanden sind. Dynamics 365 Customer Engagement enthält vordefinierte Duplikaterkennungsregeln für Kundenkonten, Kontakte und Leads, jedoch nicht für andere Arten von Datensätzen. Wenn Sie möchten, dass das System Duplikate für andere Datensatztypen erkennt, müssen Sie eine neue Regel erstellen. Informationen zum Erstellen einer Regel zur Erkennung von Duplikaten finden Sie unter Regeln zur Erkennung von Duplikaten.
Erkennen von Duplikaten während Erstellungs- und Aktualisierungsvorgängen
Standardmäßig wird die Duplikaterkennung unterdrückt, wenn Sie einen Datensatz mithilfe der Web-API erstellen oder aktualisieren. Verwenden Sie den Header MSCRM.SuppressDuplicateDetection
und legen Sie seinen Wert auf false
fest, während Sie einen Datensatz erstellen oder aktualisieren. Die Duplikaterkennung wird nur angewendet, wenn in der Organisation die Duplikaterkennung aktiviert ist, die Entität für die Duplikaterkennung aktiviert ist und aktive Duplikaterkennungsregeln angewendet werden.
Weitere Informationen zum Erkennen von Duplikaten während des Erstellungs- und Aktualisierungsvorgangs finden Sie unter Verwalten der Duplikaterkennung während des Erstellungs- und Aktualisierungsvorgangs mithilfe der Web-API
Beispiel: Duplikaterkennung mit dem Organisationsdienst
Das folgende Beispiel zeigt, wie die Option zur Duplikaterkennung als Teil von Nachrichten wie CreateRequest
und UpdateRequest
übergeben werden kann.
// Connect to the Organization service.
// The using statement assures that the service proxy will be properly disposed.
using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials))
{
// This statement is required to enable early-bound type support.
_serviceProxy.EnableProxyTypes();
_service = (IOrganizationService)_serviceProxy;
CreateRequiredRecords();
// Create and account record with the named Proseware, Inc. and already existing Account Number.
Account account = new Account
{
Name = "Proseware, Inc.",
AccountNumber = "ACC005"
};
// Create operation by suppressing duplicate detection
CreateRequest reqCreate = new CreateRequest();
reqCreate.Target = account;
reqCreate.Parameters.Add("SuppressDuplicateDetection", true); // Change to false to activate the duplicate detection.
CreateResponse createResponse = (CreateResponse)_service.Execute(reqCreate);
_dupAccountId = createResponse.id;
Console.Write("Account: {0} {1} created with SuppressDuplicateDetection to true, ",
account.Name, account.AccountNumber);
// Retrieve the account containing with its few attributes.
ColumnSet cols = new ColumnSet(
new String[] { "name", "accountnumber"});
Account retrievedAccount = (Account)_service.Retrieve("account", _dupAccountId, cols);
Console.Write("retrieved, ");
// Update the existing account with new account number.
retrievedAccount.AccountNumber = "ACC006";
// Update operation – update record, if a duplicate is not found.
UpdateRequest reqUpdate = new UpdateRequest();
reqUpdate.Target = retrievedAccount;
reqUpdate["SuppressDuplicateDetection"] = false; // Duplicate detection is activated.
// Update the account record.
UpdateResponse updateResponse = (UpdateResponse)_service.Execute(reqUpdate);
Console.WriteLine("and updated.");
DeleteRequiredRecords(promptforDelete);
}
Siehe auch
Erkennung von Duplikaten
Aktivieren und Deaktivieren der Duplikaterkennung
Verwenden von Nachrichten (Anforderungs- und Antwortklassen) mit der Execute-Methode
Doppelte Erkennungsmeldungen