Napomena
Za pristup ovoj stranici potrebna je autorizacija. Možete se pokušati prijaviti ili promijeniti direktorije.
Za pristup ovoj stranici potrebna je autorizacija. Možete pokušati promijeniti direktorije.
Postoji nekoliko načina za otkrivanje duplikata nakon što ga omogućite i objavite pravila otkrivanja duplikata.
Dohvaćanje i otkrivanje duplikata za određeni zapis
Otkrijte i dohvatite duplikate:
- Prije stvaranja entiteta
- Za postojeći subjekt
- Za ostale entitete koji odgovaraju dupliciranim pravilima u svim entitetima. Na primjer, bilo koji entitet potencijalnog klijenta koji odgovara entitetu kontakta.
Mogućnosti:
- Web API: funkcija RetrieveDuplicates
- Organizacijska usluga: RetrieveDuplicatesRequest
Primjer: Otkrivanje duplikata za određeni zapis pomoću web-API-ja
Sljedeći primjer pokazuje kako otkriti duplikate određenog zapisa pomoću RetrieveDuplicates
funkcije.
Zahtjev
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
Odgovor
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>
]
}
Otkrivanje duplikata za vrstu entiteta
Pošaljite asinkroni zadatak otkrivanja duplikata koji se izvodi u pozadini. Duplikati se otkrivaju u skladu s objavljenim pravilima duplikata za vrstu entiteta. Otkriveni duplikati pohranjuju se kao DuplicateRecord
zapisi u sustavu Dynamics 365 Customer Engagement (on-premises).
Posao otkrivanja duplikata vraća najviše 5000 duplikata.
Mogućnosti
- Web API: Akcija BulkDetectDuplicates
- Organizacijska usluga: BulkDetectDuplicatesRequest
Primjer: Otkrivanje duplikata za vrstu entiteta pomoću web-API-ja
Sljedeći primjer pokazuje kako otkriti duplikate za vrstu entiteta stvaranjem asinkronog posla pomoću BulkDetectDuplicates
akcije.
Zahtjev
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"
}
Odgovor
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"
}
Gornji zahtjev stvara asinkroni posao otkrivanja duplikata čiji se JobID vraća u odgovoru. JobID vraćen iz gornjeg zahtjeva može se koristiti za dohvaćanje dupliciranih zapisa u vrsti entiteta, kao što je prikazano u primjeru u nastavku.
Zahtjev
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
FetchXML ekvivalent gornjeg zahtjeva prikazan je u nastavku.
<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>
Odgovor
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
}
]
}
GUID osnovnog zapisa pohranjuje se kao baserecordid
u zapisima DuplicateRecord
.
duplicateid
, u prethodnom odgovoru jedinstveni identifikator dupliciranog zapisa.
asyncoperationid
je jedinstveni idenitifikator posla sustava koji je stvorio taj zapis. I ownerid
jedinstveni identifikator korisnika ili tima koji posjeduje duplicirani zapis. Dodatne informacije potražite u odjeljku DuplicateRecord entiteta .
Napomena
Prije stvaranja i izvršavanja poslova otkrivanja duplikata provjerite postoje li odgovarajuća pravila otkrivanja duplikata. Dynamics 365 Customer Engagement uključuje zadana pravila otkrivanja duplikata za račune, kontakte i potencijalne klijente, ali ne i za druge vrste zapisa. Ako želite da sustav otkrije duplikate za druge vrste zapisa, morat ćete stvoriti novo pravilo. Informacije o stvaranju pravila otkrivanja duplikata potražite u članku Pravila otkrivanja duplikata.
Otkrivanje duplikata tijekom operacija stvaranja i ažuriranja
Prema zadanim postavkama, otkrivanje duplikata potiskuje se prilikom stvaranja ili ažuriranja zapisa pomoću web-API-ja. Koristite MSCRM.SuppressDuplicateDetection
zaglavlje i postavite njegovu vrijednost na tijekom false
stvaranja ili ažuriranja zapisa. Otkrivanje duplikata primjenjuje se samo kada je u tvrtki ili ustanovi omogućeno otkrivanje duplikata, entitetu je omogućeno otkrivanje duplikata i primjenjuju se aktivna pravila otkrivanja duplikata.
Pogledajte više o tome kako otkriti duplikate tijekom operacije stvaranja i ažuriranja u odjeljku Upravljanje otkrivanjem duplikata tijekom operacije stvaranja i ažuriranja pomoću web-API-ja
Primjer: Otkrivanje duplikata pomoću usluge tvrtke ili ustanove
Sljedeći primjer pokazuje kako proslijediti mogućnost otkrivanja duplikata kao dio CreateRequest
UpdateRequest
i poruka:
// 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);
}
Pogledajte
Otkrivanje duplikata
Omogućivanje i onemogućavanje otkrivanja duplikata
Koristite poruke (klase zahtjeva i odgovora) s metodom izvršavanja
Poruke za otkrivanje duplikata