Asiakastaulukot (tili, yhteyshenkilö ja asiakastili)

Microsoft Dataverse asiakastaulukot (account, contactja customeraddress) tallentavat asiakassuhteet, yhteystiedot sekä osoite- ja toimitustiedot. Tässä artikkelissa kerrotaan, miten nämä taulukot liittyvät toisiinsa ja miten upotetut ja tyhjät asiakkaan osoitetietueet hallitaan.

Tili-taulukko

Tilitaulukko on yksi Dataverse-taulukoista, joihin useimmat muut taulukot on liitetty tai joilla on pääkohde. Dataversessa tili edustaa yritystä, johon liiketoimintayksiköllä on suhde. Tiliin sisällytetyt tiedot ovat kaikki olennaisia yhteystietoja, yrityksen tietoja, luokkaa, suhdetyyppiä ja osoitetietoja. Muita tietoja, joita sovelletaan, ovat seuraavat kohteet:

  • Tili voi olla useimpien taulukkotyyppien pääkohde, mukaan lukien toinen tili.
  • Tili voi olla erillinen taulukko.
  • Tilillä voi olla vain yksi tili päätilinään.
  • Tileillä voi olla useita alitilejä ja aliyhteystietoja.

Tilien hallinta on yksi tärkeimmistä liiketoiminta-yritys-asiakassuhteiden hallinnan käsitteistä (Dynamics 365), koska organisaatio haluaa nähdä kaikki heidän toisen yrityksen kanssa harjoittamansa toimet. Kaikki nämä toiminnot yhdistyvät tilitasolla. Tarkastele Tili-taulukon viittausta.

Yhteyshenkilötaulukko

Dataversessa yhteyshenkilö edustaa henkilöä, joka on yleensä henkilö, jonka kanssa liiketoimintayksiköllä on suhde, kuten asiakas, toimittaja tai työtoveri. Yhteystietotaulukko on yksi niistä taulukoista, joihin useimmat muut taulukot on linkitetty. Kontakti voi olla itsenäinen taulukko. Taulukkoon sisältyvät ammattimaiset, henkilökohtaiset ja perhetiedot sekä useita osoitteita. Tarkastele Contact-taulukon viittausta.

Sekä tilit että yhteyshenkilöt ovat osa asiakkaiden hallintaa ja liittyvät toisiinsa seuraavilla tavoilla:

  • Yhteyshenkilö voi olla kaikkien muiden taulukoiden vanhempi, paitsi tilien ja yhteyshenkilöiden.
  • Yhteyshenkilöllä voi olla vain yksi tili pääkohteenaan.
  • Yhteyshenkilö voidaan merkitä tilin ensisijaiseksi yhteyshenkilöksi määrittämällä Account.PrimaryContactId sarake.

Yhteystietotaulukko sisältää tietoja henkilöstä, esimerkiksi sähköpostiosoitteen, katuosoitteen ja puhelinnumerot. Se sisältää myös muita aiheeseen liittyviä tietoja, kuten henkilön syntymäpäivän tai vuosipäivän. Liiketoimintayksikön asiakastyypistä riippuen se tarvitsee joko vain yhteyshenkilöitä tai yhteyshenkilöitä ja tilejä, jotta se saa kokonaiskuvan asiakkaistaan.

Kun taulukkoja (esimerkiksi toimintoja ja muistiinpanoja contact ) linkitetään taulukkoon, käyttäjä näkee kaiken tiedonsiirron asiakkaaseen, toiminnot, jotka käyttäjä teki asiakkaan puolesta sekä kaikki tiedot, joita käyttäjä tarvitsee asiakkaasta.

CustomerAddress-taulukko

Tämä taulukko sisältää lisää asiakastietueiden (tili ja yhteyshenkilö) osoite- ja toimitustietoja. Oletusarvoisesti Dataverse luo vähintään kaksi customeraddress tietuetta tähän taulukkoon, kun luot uuden asiakastietueen, vaikka näistä tietueista ei olisi tietoja. Lue, miten voit muuttaa tätä toimintaa.

Voit käyttää kaikkia customeraddress tietueita, jotka liittyvät tili- ja yhteyshenkilötietueisiin - ja Contact_CustomerAddress -Account_CustomerAddresssuhteiden kautta. Molemmissa yhteyksissä käytetään parentid-hakua . Sarake parentidtypecode ilmaisee asiakastietueen tyypin, johon osoite liittyy.

Asiakastietueisiin sisältyvät tiedot

Voit noutaa tai muokata asiakastietueen kahden tai kolmen upotetun customeraddress tietueen tietoja.

  • Tilitietueilla on sarakkeet address1_addressid ja address2_addressid.
  • Yhteyshenkilötietueilla on sarakkeet address1_addressid, address2_addressidja address3_addressid.

Nämä sarakkeet tallentavat customeraddressid arvoja. Muut asiakassarakkeet, joiden etuliitteenä on address1*, address2*tai address3*, sisältävät vastaavat osoitetiedot taulukosta customeraddress .

Sarake customeraddressaddressnumber ilmaisee, mikä osoite koskee pääasiakastietuesarakkeita. Et voi määrittää sarakkeelle addressnumber arvoa, jota toinen customeraddress samaan pääasiakkaaseen liittyvä tietue käyttää. Voit määrittää olemassa addressnumber olevaksi arvoksi 0 tai tyhjäarvon ja muuttaa sitten toisen tietueen arvoa, jos haluat vaihtaa tietueiden suhteellisen sijainnin asiakastietueille. Vaikka addressnumber-arvo kasvaa kullekin asiakkaalle luotuun tietueeseen, lukuun ottamatta vastaavan upotetun osoitteen sijainnin hallintaa asiakastietueessa (joko 1, 2 tai 3), addressnumber-sarakkeen arvoa ei käytetä mihinkään muuhun tarkoitukseen.

Dataverse päivittää nämä customeraddress tietueet vain vastaavien asiakastietuesarakkeiden kautta sen sijaan, että customeraddress päivität rivit suoraan. Kuka tahansa voi kuitenkin muokata näitä tietueita tietueina customeraddress tai lisätä customeraddress - tai account -contacttietueeseen liittyviä tietueita, joita ei ole upotettu tili- ja yhteyshenkilötietueisiin.

Upotetun asiakkaan osoiterivien poistamista ei sallita

Oletusarvoisesti, jos yrität poistaa yhden upotetuista customeraddress tietueista, joita address1_addressidasiakastietueessa on , address2_addressidtai address3_addressid joihin viitataan, saat seuraavankaltaisen virheilmoituksen:

Nimi: CannotDeleteDueToAssociation
Koodi: 0x80040227
Numero: -2147220953
Viesti: 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

Lue, miten voit muuttaa tätä toimintaa

Poista tyhjän tietueen luonti käytöstä

Jokainen taulukon rivi customeraddress lasketaan mukaan Dataverse-kapasiteettiin, joista maksat, joten haluat ehkä minimoida tämän kustannuksen.

Voit määrittää Dataversen olemaan luomatta tyhjiä customeraddress taulukkorivejä kullekin asiakastietueelle muuttamalla Poista tyhjä osoitetietueiden luonti käytöstä -asetusta Power Platform -hallintakeskuksessa. Ennen kuin muutat tätä toimintaa, harkitse, onko sinulla olemassa olevia mukautuksia, jotka riippuvat oletustoiminnasta. Lue lisätietoja tästä asetuksesta.

Kun tämä asetus on käytössä, uusia tyhjiä customeraddress taulukon rivejä ei luoda, kun uusia asiakastietueita luodaan. Tietueet luodaan vain, jos saapuvat tiedot sisältävät osoitetietoja. Yleensä kuorma sisältää vain ne sarakkeet, joissa on tietoa. Jos sarakkeille ei ole tietoja, sarakkeet eivät sisälly hyötykuormaan ja arvot ovat tyhjäarvoisia, kun tietue tallennetaan. Jos tiedot sisältävät osoitesarakkeita, joiden arvoksi on asetettu tyhjäarvo, osoite luodaan tyhjäarvoilla. Jos näet edelleen tyhjien tietueiden luomisen, tarkista, miten ne luodaan ja lähettääkö asiakassovellus saraketietoja tyhjäarvoilla.

Jos Poista tyhjä osoite -tietueen luontiasetus on poistettu käytöstä, oletustoiminta jatkuu. Jos otat tämän asetuksen käyttöön, aiemmin luotuja customeraddress taulukon rivejä ei poisteta. Kun tämä asetus kytketään takaisin käyttöön sen poistamisen jälkeen, tietueita, joita ei ole luotu uudelleen, ei luoda uudelleen.

Tunnista, onko tyhjä osoitetietueen luonti poistettu käytöstä

Nämä esimerkkifunktiot näyttävät, miten voit tunnistaa, onko Poista tyhjä osoite -tietueen luonti -asetus käytössä ympäristössä.

Tämä Test-IsEmptyAddressRecordCreationDisabled PowerShell-funktio käyttää Microsoft Power Platform CLI -pac env list-settingskomentoa sarakkeen arvon tarkistamiseenOrganization.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')
}

Lue lisätietoja komentorivikäyttöliittymän Microsoft Power Platform

Upotetun osoitetietueen poistaminen

Oletusarvoisesti et voi poistaa upotettuja customeraddress taulukon rivejä, joihin address1_addressidasiakastaulukoiden -, address2_addressid- tai address3_addressid -sarakkeet viittaavat. Jos haluat lisätietoja, katso Upotettujen asiakasosoitteiden rivien poistaminen ei ole sallittua.

Ota osoitetietueiden poisto käyttöön-asetus Power Platform -hallintakeskuksessa muuttaa tätä toimintaa. Lue lisätietoja tästä asetuksesta.

Osoitetietueiden poistamisen havaitseminen on käytössä

Nämä esimerkkifunktiot näyttävät, miten voit tunnistaa, onko Ota osoitetietueiden poistaminen käyttöön -asetus käytössä ympäristössä.

Tämä Test-IsDeleteAddressRecordsEnabled PowerShell-funktio käyttää Microsoft Power Platform CLI -pac env list-settingskomentoa sarakkeen EnableDeleteAddressRecords arvon tarkistamiseenOrganization.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')
}

Lue lisätietoja komentorivikäyttöliittymän Microsoft Power Platform

Tyhjien asiakasosoitetietueiden joukkopoisto

Kun poistat tyhjän osoitetietueen luomisen käytöstä ja otat käyttöön osoitetietueiden poistamisen, käytä seuraavia esimerkkifunktioita poistamaan asynkronisesti tyhjiä customeraddress tietueita käyttämällä BulkDelete viestiä.

Koodiesimerkkien joukkopoisto

Nämä funktiot perustuvat Address (CustomerAddress) -määritteisiin , eivätkä ne sisällä ympäristössäsi mahdollisesti olevia mukautettuja sarakkeita. Haluat ehkä muuttaa näitä kyselyitä, jos haluat sisällyttää mukautettuja sarakkeita.

PowerShell-funktio Start-BulkDeleteEmptyCustomerAddressRecords luo järjestelmätyön tyhjien customeraddress tietueiden poistamiseen Microsoft Power Platform CLI -pac data bulk-delete schedulekomennolla.

Tämä funktio riippuu esimerkistä Test-IsDeleteAddressRecordsEnabled ja Test-IsEmptyAddressRecordCreationDisabled funktioista, jotka on kuvattu ohjeartikkelissa Osoitetietueiden poistamisen tunnistus jaTunnista, onko tyhjä osoitetietueen luominen poistettu käytöstä. Funktio luo työn vain, kun molemmat asetukset sallivat kaikkien tyhjien asiakasosoitetietueiden poistamisen ja estävät uusien tyhjien tietueiden luomisen.

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'
}