Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Microsoft Dataverse kundetabeller (account, contactog customeraddress) gemmer kunderelationer, kontaktoplysninger og adresse- og forsendelsesoplysninger. I denne artikel forklares det, hvordan disse tabeller er relateret, og hvordan du administrerer integrerede og tomme kundeadresseposter.
Kontotabel
Kontotabellen er en af de tabeller i Dataverse, som de fleste andre tabeller er knyttet til eller overordnet til. I Dataverse repræsenterer en konto et firma, som forretningsenheden har en relation til. Oplysninger, der er inkluderet i en konto, er alle relevante kontaktoplysninger, firmaoplysninger, kategori, relationstype og adresseoplysninger. Andre oplysninger, der gælder, omfatter følgende elementer:
- En konto kan være overordnet i forhold til de fleste tabeltyper, herunder en anden konto.
- En konto kan være en separat tabel.
- En konto kan kun have én konto som overordnet konto.
- Konti kan have flere underordnede konti og underordnede kontakter.
Kontostyring er et af de vigtige begreber for styring af kunderelationer mellem virksomheder (Dynamics 365), fordi en organisation ønsker at se alle de aktiviteter, de har med en anden virksomhed. Alle disse aktiviteter samles på kontoniveau. Få vist referencen til tabellen Konto.
Kontakttabel
I Dataverse repræsenterer en kontakt en person, normalt en person, med hvem en forretningsenhed har en relation, f.eks. en kunde, en leverandør eller en kollega. Kontakttabellen er en af de tabeller, som de fleste andre tabeller er sammenkædet med. En kontakt kan være en separat tabel. Inkluderet i denne tabel er professionelle, personlige og familieoplysninger og flere adresser. Få vist referencen til tabellen Contact.
Både konti og kontakter er en del af administrationen af kunder og er relateret til hinanden på følgende måder:
- En kontakt kan være overordnet i forhold til alle andre tabeller undtagen konti og kontakter.
- En kontakt kan kun have én konto som overordnet konto.
- En kontakt kan markeres som den primære kontakt for en konto ved at angive kolonnen
Account.PrimaryContactId.
I kontakttabellen gemmes oplysninger om en person, f.eks. en mailadresse, en gadeadresse og telefonnumre. Den indeholder også andre relaterede oplysninger, f.eks. personens fødselsdag eller jubilæumsdato. Afhængigt af hvilken type kunder en forretningsenhed har, skal den enten kun bruge kontakter eller kontakter og konti for at give et fuldt overblik over sine kunder.
Ved at sammenkæde tabeller, f.eks. aktiviteter og noter med contact tabellen, kan brugeren se al den kommunikation, brugeren havde med en kunde, alle handlinger, som brugeren har truffet på vegne af kunden, og alle oplysninger, som brugeren har brug for om kunden.
Tabellen CustomerAddress
Denne tabel indeholder flere adresse- og forsendelsesoplysninger for kundeposter (konto og kontakt). Dataverse opretter som standard mindst to customeraddress poster i denne tabel, når du opretter en ny kundepost, også selvom der ikke er nogen data for disse poster.
Få mere at vide om, hvordan du kan ændre denne funktionsmåde.
Du kan få adgang til alle customeraddress poster, der er relateret til konto- og kontaktposter, via relationerne Account_CustomerAddress og Contact_CustomerAddress . Begge relationer bruger parentid-opslaget . Kolonnen parentidtypecode angiver, hvilken type kundepost adressen er relateret til.
Adressedata, der er integreret i kundeposter
Du kan hente eller redigere dataene for de to eller tre integrerede customeraddress poster med kundeposten.
- Kontoposter har kolonner
address1_addressidogaddress2_addressid. - Kontaktposter har kolonnerne
address1_addressid,address2_addressidogaddress3_addressid.
Disse kolonner gemmer customeraddressid værdier. Andre kundekolonner, der hver især har præfikset address1*, address2*eller address3*, indeholder de tilsvarende adresseoplysninger fra tabellen customeraddress .
Kolonnen customeraddressaddressnumber angiver, hvilken adresse der gælder for kolonnerne med den overordnede kundepost. Du kan ikke angive kolonnen addressnumber til en værdi, der bruges af en anden customeraddress post, der er relateret til den samme overordnede kunde. Du kan angive en eksisterende addressnumber værdi til 0 eller null og derefter ændre værdien af en anden post, hvis du vil bytte om på den relative placering af posterne for kundeposterne.
addressnumber Mens værdien øges for hver post, der er oprettet for en kunde, bortset fra at kontrollere den respektive integrerede adresseposition i kundeposten (enten 1, 2eller 3), addressnumber bruges kolonneværdien ikke til andre formål.
Dataverse opdaterer kun disse customeraddress poster via de tilsvarende kundepostkolonner i stedet for at opdatere rækkerne customeraddress direkte. Alle kan dog redigere disse poster som customeraddress poster eller tilføje flere customeraddress poster, der er knyttet til den account eller contact post, der ikke er integreret med firma- og kontaktposterne.
Det er ikke tilladt at slette integrerede rækker med kundeadresser
Hvis du forsøger at slette en af de integrerede customeraddress poster, som address1_addressid, address2_addressideller address3_addressid henviser til for en kundepost, får du som standard vist en fejl som følgende fejlmeddelelse:
Navn:
CannotDeleteDueToAssociation
Kode:0x80040227
Tal:-2147220953
Meddelelse:Customer Address can not be deleted because it is associated with another object. Address Id = 4f33c2e4-d5a3-4b03-b050-21984c0e4c15, AddressNumber=2, ParentId=4b757ff7-9c85-ee11-8179-000d3a9933c9, ObjectTypeCode=1
Få mere at vide om, hvordan du kan ændre denne funktionsmåde
Deaktiver oprettelse af tomme records
Hver række i tabellen customeraddress tæller i forhold til den Dataverse-kapacitet, du betaler for, så det kan være en god idé at minimere disse omkostninger.
Du kan bede Dataverse om ikke at oprette tomme customeraddress tabelrækker for hver kundepost ved at ændre indstillingen Deaktiver oprettelse af tomme adresseposter i Power Platform Administration. Før du ændrer denne funktionsmåde, skal du overveje, om du har eksisterende tilpasninger, der afhænger af standardfunktionsmåden.
Få mere at vide om denne indstilling.
Mens denne indstilling er slået til, oprettes der ingen nye tomme customeraddress tabelrækker, når der oprettes nye kundeposter. Poster oprettes kun, hvis de indgående nyttedata indeholder adresseoplysninger. Normalt indeholder datapakkerne kun kolonner, som har data. Hvis der ikke er nogen data for kolonnerne, medtages kolonnerne ikke i nyttedataene, og værdierne er null, når posten gemmes. Men hvis nyttedataene indeholder adressekolonner med værdier, der er angivet til null, oprettes adressen med null-værdier. Hvis du fortsætter med at se, at der oprettes tomme poster, skal du kontrollere, hvordan de oprettes, og om dette klientprogram sender kolonnedata med null-værdier.
Hvis indstillingen Deaktiver oprettelse af tom adressepost er slået fra, fortsætter standardfunktionsmåden. Hvis du aktiverer denne indstilling, slettes ingen eksisterende customeraddress tabelrækker. Hvis du slår denne indstilling til igen, når den er slået fra, oprettes der ikke poster, der ikke blev oprettet, igen.
Registrer, om oprettelsen af en tom adressepost er deaktiveret
Disse eksempelfunktioner viser, hvordan du registrerer, om indstillingen Deaktiver oprettelse af tom adressepost er aktiveret i miljøet.
Denne Test-IsEmptyAddressRecordCreationDisabled PowerShell-funktion bruger kommandoen Microsoft Power Platform kommandolinjegrænsefladepac env list-settings til at kontrollere en værdi i kolonnenOrganization.OrgDbOrgSettings.
function Test-IsEmptyAddressRecordCreationDisabled {
$orgdborgsettings = pac env list-settings `
--filter orgdborgsettings `
| Where-Object { $_ -match '^orgdborgsettings\s+' } `
| ForEach-Object { $_ -replace '^orgdborgsettings\s+', '' }
$xml = [xml]$orgdborgsettings
$element = $xml.SelectSingleNode("//CreateOnlyNonEmptyAddressRecordsForEligibleEntities")
# Return true only when the element exists and has the value of 'true'
return ($null -ne $element) -and ($element.InnerText -eq 'true')
}
Få mere at vide om den Microsoft Power Platform kommandolinjegrænseflade
Slet integrerede adresseposter
Du kan som standard ikke slette rækker i en integreret customeraddress tabel, som kolonnerne address1_addressid, address2_addressideller address3_addressid i kundetabeller refererer til. Du kan finde flere oplysninger under Sletning af integrerede kundeadresserækker er ikke tilladt.
Indstillingen Aktivér sletning af adresseposter i Power Platform Administration ændrer denne funktionsmåde. Få mere at vide om denne indstilling.
Registrer, om sletning af adresseposter er aktiveret
Disse eksempelfunktioner viser, hvordan du registrerer, om indstillingen Aktivér sletning af adresseposter er aktiveret i miljøet.
Denne Test-IsDeleteAddressRecordsEnabled PowerShell-funktion bruger kommandoen Microsoft Power Platform kommandolinjegrænsefladepac env list-settings til at kontrollere en EnableDeleteAddressRecords værdi i kolonnenOrganization.OrgDbOrgSettings.
function Test-IsDeleteAddressRecordsEnabled {
$orgdborgsettings = pac env list-settings `
--filter orgdborgsettings `
| Where-Object { $_ -match '^orgdborgsettings\s+' } `
| ForEach-Object { $_ -replace '^orgdborgsettings\s+', '' }
$xml = [xml]$orgdborgsettings
$element = $xml.SelectSingleNode("//EnableDeleteAddressRecords")
# Return true only when the element exists and has the value of 'true'
return ($null -ne $element) -and ($element.InnerText -eq 'true')
}
Få mere at vide om den Microsoft Power Platform kommandolinjegrænseflade
Massesletning af tomme kundeadresseposter
Når du har deaktiveret oprettelse af tomme adresseposter og aktiveret sletning af adresseposter, skal du bruge følgende eksempelfunktioner til asynkront at slette tomme customeraddress poster ved hjælp BulkDelete af meddelelsen.
Eksempler på massesletning af kode
Disse funktioner er baseret på kolonner/attributter, der kan skrives til Adresse (CustomerAddress), og indeholder ikke brugerdefinerede kolonner, der kan være i dit miljø. Det kan være en god idé at ændre disse forespørgsler, hvis du vil medtage dine brugerdefinerede kolonner.
Funktionen Start-BulkDeleteEmptyCustomerAddressRecords PowerShell opretter et systemjob til sletning af tomme customeraddress poster ved hjælp af kommandoen Microsoft Power Platform kommandolinjegrænsefladepac data bulk-delete schedule.
Denne funktion afhænger af det eksempel Test-IsDeleteAddressRecordsEnabled og Test-IsEmptyAddressRecordCreationDisabled de funktioner, der er beskrevet i Registrer, om sletning af adresseposter er aktiveret , og Registrer, om oprettelse af tomme adresseposter er deaktiveret. Funktionen opretter kun jobbet, når begge indstillinger gør det muligt at slette alle tomme kundeadresseposter og forhindre, at der oprettes nye tomme poster.
function Start-BulkDeleteEmptyCustomerAddressRecords {
if (!(Test-IsDeleteAddressRecordsEnabled)) {
Write-Host 'Enable deletion of address records before running this function.'
return
}
if (!(Test-IsEmptyAddressRecordCreationDisabled)) {
Write-Host 'Disable empty address record creation before running this function.'
return
}
$fetchXml = @(
'<fetch>'
"<entity name='customeraddress'>"
"<attribute name='customeraddressid' />"
"<filter type='and'>"
"<condition attribute='city' operator='null' />"
"<condition attribute='country' operator='null' />"
"<condition attribute='county' operator='null' />"
"<condition attribute='fax' operator='null' />"
"<condition attribute='freighttermscode' operator='null' />"
"<condition attribute='latitude' operator='null' />"
"<condition attribute='line1' operator='null' />"
"<condition attribute='line2' operator='null' />"
"<condition attribute='line3' operator='null' />"
"<condition attribute='longitude' operator='null' />"
"<condition attribute='postalcode' operator='null' />"
"<condition attribute='postofficebox' operator='null' />"
"<condition attribute='primarycontactname' operator='null' />"
"<condition attribute='shippingmethodcode' operator='null' />"
"<condition attribute='stateorprovince' operator='null' />"
"<condition attribute='telephone1' operator='null' />"
"<condition attribute='telephone2' operator='null' />"
"<condition attribute='telephone3' operator='null' />"
"<condition attribute='upszone' operator='null' />"
"<condition attribute='utcoffset' operator='null' />"
'</filter>'
'</entity>'
'</fetch>'
) -join ''
pac data bulk-delete schedule `
--entity customeraddress `
--fetchxml $fetchXml `
--job-name 'Delete Empty Customer Address Records'
}