Deila með


Úrræðaleit í beinni samstillingarvandamál

Þessi grein veitir upplýsingar um úrræðaleit um samþættingu á tvöföldum skrifum á milli forrita fjármála- og reksturs og Microsoft Dataverse. Einkum veitir það upplýsingar sem geta hjálpað þér að laga vandamál með beinni samstillingu.

Mikilvægt

Nokkur þeirra atriða sem þessa grein fjallar um geta krafist annað hvort kerfisstjórans eða Azure Active Directory (Azure AD) Leyfisupplýsingar leigjanda. Í hverjum hluta er útskýrt hvort þörf sé á ákveðnu hlutverki eða tilteknum innskráningarupplýsingum.

Samstilling í rauntíma sýnir villu þegar þú býrð til línu

Eftirfarandi villuboð kunna að birtast þegar lína er stofnuð í forriti fjármála- og reksturs:

[{\"villa\":{\"kóði\":\"0x80072560\",\"skilaboð\":\"Notandinn er ekki meðlimur fyrirtækisins .\"}}], Ytri þjónn skilaði villu: (403) Bannað."}}".

Til að laga málið skaltu fylgja skrefunum í Kerfiskröfur og forsendur. Til að ljúka þessum skrefum verða notendur forrita tvöfaldrar skráningar sem voru búnir til í Dataverse að hafa kerfisstjórarhlutverkið. Sjálfgefið eigendateymi verður einnig að hafa kerfisstjórarhlutverkið.

Samstilling í rauntíma sýnir villu þegar þú reynir að vista töflugögn

Áskilið hlutverk til að laga málið: Kerfisstjóri

Þú gætir fengið eftirfarandi villuboð þegar þú reynir að vista töflugögn í forriti fjármála- og reksturs:

Ekki er hægt að vista breytingarnar á gagnagrunninum. Vinnueining getur ekki staðfest færslu. Ekki er hægt að skrifa gögn til eininga uoms. Mistókst að skrifa á UnitOfMeasureEntity með villuskilaboðum Ekki hægt að samstilla við einingum.

Til að laga vandamálið skaltu ganga úr skugga um að forsendur tilvísunargagna séu til í bæði forriti fjármála- og reksturs og Dataverse. Ef til dæmis viðskiptavinafærsla tilheyrir ákveðnum viðskiptavinahópi skaltu ganga úr skugga um að færsla viðskiptavinahópsins sé til í Dataverse.

Fylgdu þessum skrefum ef gögn eru til á báðum stöðum og þú hefur staðfest að vandamálið tengist ekki gögnum.

  1. Opnaðu DualWriteProjectConfigurationEntity eininguna með því að nota Excel viðbótina. Til að nota viðbótina, virkjaðu hönnunarham í Finance and Operations Excel viðbótinni og bættu DualWriteProjectConfigurationEntity við vinnublað. Fyrir frekari upplýsingar, sjá Skoða og uppfæra einingagögn með Excel.
  2. Veldu og eyddu færslunum þar sem vandamál koma upp í vörpun tvöfaldrar skráningar og verki. Það verða tvær færslur fyrir hverja vörpun tvöfaldrar skráningar.
  3. Birtu breytingarnar með því að nota Excel-innbótina. Þetta skref er mikilvægt vegna þess að það eyðir færslunum úr einingunni og undirliggjandi töflum.

Meðhöndla villur til að lesa eða skrifa réttindi þegar þú býrð til gögn í forriti fjármála- og reksturs

Þú gætir fengið villuboðin „Villa í beiðni“ þegar þú býrð til gögn í forriti fjármála- og reksturs.

Dæmi um villuboðin Bad Request.

Til að laga vandamálið verður þú að virkja réttindin sem vantar með því að úthluta réttu öryggishlutverki til teymis í vörpuðum viðskiptaeiningum Dynamics 365 Sales eða Dynamics 365 Customer Service.

  1. Í forriti fjármála- og reksturs finnurðu viðskiptaeininguna sem er varpað í gagnasamsetningar tengingarsettinu.

    Fyrirtækjavörpun.

  2. Í forritinu fyrir þátttöku viðskiptavina, skráðu þig inn í umhverfið, farðu í Stilling > Öryggi og finndu teymi kortlagðu rekstrareiningarinnar.

    Hópur varpaðrar viðskiptaeiningar.

  3. Opnaðu síðuna fyrir teymið til að breyta og veldu síðan Stjórna hlutverkum.

    Hnappurinn Stjórna hlutverkum.

  4. Í glugganum Stjórna liðshlutverkum úthlutarðu hlutverkinu sem hefur lestur/skrifaréttindi fyrir viðkomandi töflur og velur síðan Í lagi.

Laga samstillingarvandamál í umhverfi sem er með nýlega breytt Dataverse umhverfi

Áskilið hlutverk til að laga málið: Kerfisstjóri

Eftirfarandi villuboð kunna að birtast þegar gögn er stofnuð í forriti fjármála- og reksturs:

{"entityName":"CustCustomerV3Entity","executionStatus":2,"fieldResponses":[],"recordResponses":[{"errorMessage":"Unable to generate payload for entity CustCustomerV3Entity","logDateTime":"2019-08-27T18:51:52.5843124Z","verboseError":"Payload creation failed with error Invalid URI: The URI is empty."}],"isErrorCountUpdated":true}

Svona líta villuboðin út í forriti viðskiptavinar:

Óvænt villa kom upp í ISV-kóða. (ErrorType = ClientError) Óvænt undantekning frá viðbót (Keyra): Microsoft.Dynamics.Integrator.DualWriteRuntime.Plugins.PostCommitPlugin: System.Exception: tókst ekki að vinna úr einingareikningi - (Tengingartilraun mistókst vegna þess að tengdur aðili svaraði ekki á fullnægjandi hátt eftir nokkurn tíma, eða ekki tókst að koma á tengingu vegna þess að tengdur hýsill svaraði ekki.

Þessi villa kemur upp ef Dataverse umhverfið er endurstillt á rangan hátt þegar reynt er að búa til gögn í forriti fjármála- og reksturs.

Mikilvægt

Ef þú hefur tengt umhverfin aftur verður þú að stöðva allar varpanir á einingum áður en þú getur haldið áfram með bragarbótaskrefin.

Til að leysa úr vandamálinu þarf að ljúka skrefum í bæði Dataverse og forriti fjármála- og reksturs.

  1. Í forriti fjármála- og reksturs skaltu fylgja þessum skrefum:

    1. Opnaðu DualWriteProjectConfigurationEntity eininguna með því að nota Excel viðbótina. Til að nota viðbótina, virkjaðu hönnunarham í Finance and Operations Excel viðbótinni og bættu DualWriteProjectConfigurationEntity við vinnublað. Fyrir frekari upplýsingar, sjá Skoða og uppfæra einingagögn með Excel.
    2. Veldu og eyddu færslunum þar sem vandamál koma upp í vörpun tvöfaldrar skráningar og verki. Það verða tvær færslur fyrir hverja vörpun tvöfaldrar skráningar.
    3. Birtu breytingarnar með því að nota Excel-innbótina. Þetta skref er mikilvægt vegna þess að það eyðir færslunum úr einingunni og undirliggjandi töflum.
    4. Til að hjálpa til við að koma í veg fyrir villur þegar þú endurtengir fjármál- og rekstur eða Dataverse umhverfin skaltu ganga úr skugga um að engar stillingar tvöfaldrar skráningar séu lengur til staðar.
  2. Í Dataverse skal fylgja eftirfarandi skrefum:

    1. Skráðu þig inn í Dataverse umhverfið þitt (til dæmis https://*****.crm.dynamics.com/).
    2. Farðu í Ítarlegar stillingar>Ítarlegri leit.
    3. Veldu DualWrite Runtime Configuration.
    4. Veldu dálkinn til að skoða.
    5. Veldu Niðurstöður til að skoða stillingarnar.
    6. Eyddu öllum tilvikum.
  3. Í forriti fjármála- og reksturs skaltu fylgja þessum skrefum:

    1. Opnaðu DualWriteProjectConfigurationEntity eininguna með því að nota Excel viðbótina. Til að nota viðbótina, virkjaðu hönnunarham í Finance and Operations Excel viðbótinni og bættu DualWriteProjectConfigurationEntity við vinnublað. Fyrir frekari upplýsingar, sjá Skoða og uppfæra einingagögn með Excel.
    2. Veldu og eyddu færslunum þar sem vandamál koma upp í vörpun tvöfaldrar skráningar og verki. Það verða tvær færslur fyrir hverja vörpun tvöfaldrar skráningar.
    3. Birtu breytingarnar með því að nota Excel-innbótina. Þetta skref er mikilvægt vegna þess að það eyðir færslunum úr einingunni og undirliggjandi töflum.
    4. Til að hjálpa til við að koma í veg fyrir villur þegar þú endurtengir fjármál- og rekstur eða Dataverse umhverfin skaltu ganga úr skugga um að engar stillingar tvöfaldrar skráningar séu lengur til staðar.

Villa í samstillingu í rauntíma eftir að full afritun gagnagrunns hefur verið gerð

Þú gætir fengið eftirfarandi villuboð eftir að þú hefur keyrt fulla afritun gagnagrunns úr einu kerfi í annað og síðan reynt að keyra gagnagrunnsaðgerð:

SecureConfig skipulag (???) passar ekki við raunverulegt CRM skipulag (???).

Villuboðin eru sýnd úr keyrsluviðbót tvöfaldrar skráningar til að tryggja að skilgreining tvöfaldrar skráningar sem er sett upp í einu kerfi geti ekki verið notuð í öðru kerfi.

Til að laga málið skaltu eyða öllum færslum í msdyn_dualwriteruntimeconfig töflunni eftir að þú hefur endurheimt gagnagrunninn. Fyrir frekari upplýsingar, sjá Aftengja og endurtengja tvöfalt skrif umhverfi.

Vandamál við samstillingu í rauntíma sem koma upp vegna rangrar málskipunar í fyrirspurnarsíu í vörpunum tvöfaldra skrifa

Þótt segð fyrirspurnar fyrir vörpunarsíu tvöfaldra skrifa er setningafræðilega rétt er ekki víst að hún virki sem skyldi. Segð síunnar er í einingu, ekki í einstökum gagnagjafa fyrirspurnarhluta. Því skilar SQL-fyrirspurnin sem er mynduð ekki væntum niðurstöðum.

Eftirfarandi er dæmi.

Query entity = PROJECTENTITY
Query expression = (ParentProject == "")

Þú gætir átt von á því að verk sem eru ekki með neina yfireiningu verði síuð frá. Hinsvegar virkar sían ekki vegna þess að henni er breytt í fyrirspurn sem líkist eftirfarandi dæmi.

SELECT T1.RECID,T1.MODIFIEDDATETIME,T1.RECVERSION,T1.RECID,T1.DIMENSION,
T1.LOCATION,T1.PROJECTCONTROLLER,T1.PROJECTID,T1.PROJECTMANAGER,T1.REFERENCE,
T1.SALESMANAGER,T1.SCHEDULED,T1.RECVERSION#8,T1.RECVERSION#7,
T1.RECVERSION#6,T1.RECVERSION#5,T1.RECVERSION#4,T1.RECVERSION#3,
T1.RECVERSION#2,T1.RECID#8,T1.RECID#7,T1.RECID#6,T1.RECID#5,
T1.RECID#4,T1.RECID#3,T1.RECID#2,T1.PARTITION FROM PROJECTENTITY T1 
WHERE(((((((((((PARTITION=5637144576) AND (DATAAREAID=N'usmf')) AND 
((PARTITION#2=5637144576) OR (PARTITION#2 IS NULL))) AND 
((PARTITION#3=5637144576) OR (PARTITION#3 IS NULL))) AND 
((PARTITION#4=5637144576) OR (PARTITION#4 IS NULL))) AND 
((PARTITION#5=5637144576) OR (PARTITION#5 IS NULL))) AND 
((PARTITION#6=5637144576) OR (PARTITION#6 IS NULL))) AND 
((PARTITION#7=5637144576) OR (PARTITION#7 IS NULL))) AND 
((PARTITION#8=5637144576) OR (PARTITION#8 IS NULL))) AND 
((DATAAREAID#8=N'usmf') OR (DATAAREAID#8 IS NULL))) AND 
(PARENTPROJECT='')) 
ORDER BY T1.PROJECTID

Raunveruleg niðurstaða er sú að parentProject reiturinn er metinn til null. Hins vegar er null ekki það sama og tómi strengurinn. Vegna þessa misræmis skilar fyrirspurnarsían ekki gildum niðurstöðum.

Til að laga úr vandamálið skal fylgja þessum skrefum.

  1. Bættu við reiknuðum dálki sem hægt er að bæta við í framlengingarlíkani og sem er studdur af rökfræði sem breytir null í tóma strenginn.

    SysComputedColumn::if(SysComputedColumn::isNullExpression(ParentProject), SysComputedColumn::returnLiteral(""), fieldName);
    
  2. Notaðu síuna á nýja reiknaða dálkinn í stað sjálfgefna dálksins.

Til að meta síuna í þróunarumhverfi er hægt að nota eftirfarandi X++ kóða til að staðfesta niðurstöðurnar. Keyra þennan kóða sem sjálfstætt forrit. Hægt er að nota hann til að meta mismunandi gerðir af síum sem eiga við um einingu áður en síurnar eru notaðar í vörpunum tvöfaldra skrifa. Hægt er að keyra fyrirspurnina gagnvart gagnagrunninum til að meta misræmi.

var entityName = "PROJECTENTITY";
var filterExpression = '(ParentProject == "")';
Query query = new Query();
query.literals(NoYes::Yes); 
QueryBuildDataSource qbd = query.addDataSource(tablename2id(entityName));
qbd.addRange(fieldname2id(qbd.table(),identifierStr(RecVersion))).value(filterExpression);
qbd.addSelectionField(fieldname2id(qbd.table(),identifierStr(RecId)));
QueryRun qRun = new QueryRun(query);
// This provides the actual sql statement to execute
var actualSqlStatement = query.getSQLStatement();
while(qRun.next())
{
    var rec = qRun.get(tableName2Id(entityName));
}

Gögn úr forritum fjármála- og reksturs eru ekki samstillt við Dataverse

Við samstillingu í rauntíma gæti komið upp vandamál þar sem aðeins hluti gagnanna eru samstillt úr forritum fjármála- og reksturs í Dataverse eða gögn eru yfirhöfuð ekki samstillt.

Nóta

Þú verður að laga þetta vandamál meðan á þróun stendur.

Áður en hafist er handa við að laga vandamálið skal fara yfir eftirfarandi forsendur:

  • Gakktu úr skugga um að sérsniðnu breytingarnar séu skrifaðar í einni færslu.
  • Viðskiptaviðburðir og tvöfaldur skriframmi höndla ekki doinsert(), doUpdate() og recordset() aðgerðir eða færslur þar sem skipBusinessEvents(true) er merkt. Ef kóðinn þinn er inni í þessum aðgerðum verða tvöföld skrif ekki ræst.
  • Viðskiptatilvik verða að vera skráð fyrir gagnagjafann sem er varpað. Sumir gagnagjafar gætu notað ytri tengingu og verið merktir sem skrifvarðir í forritum fjármála- og reksturs. Gagnaveiturnar eru ekki rekjanlegar.
  • Breytingar verða aðeins gerðar ef breytingarnar eru gerðar á vörpuðum reitum. Breytingum á óvörpuðum reitum setja ekki tvöföld skrif af stað.
  • Gakktu úr skugga um að mat á síum gefi gilda niðurstöðu.

Úrræðaleitarskref

  1. Farðu yfir reitavarpanir á stjórnandasíðu tvöfaldra skrifa. Ef reit er ekki varpað úr forritum fjármála- og reksturs í Dataverse verða hann ekki rakinn. Til dæmis, í eftirfarandi mynd, er Description reiturinn rakinn frá Dataverse, en ekki frá fjármála- og rekstraröppum. Ekki verður hægt að fylgjast með breytingum á þessum reit í forritum fjármála- og reksturs.

    Raktir reitir.

  2. Ákvarðaðu hvort gagnagjafinn er rakinn í skilgreiningu viðskiptatilvika. Til dæmis, í eftirfarandi mynd, verður enginn reitur úr DefaultDimensionDAVs töflunni og undirliggjandi töflum rakinn fyrir breytingar. Gagnagjafar sem nota ytri tengingu og eru merktir sem skrifvarðir verða ekki raktir.

    Reitur sem er ekki rakinn.

  3. Ákvarðaðu hvort kortlögðu töflureitirnir birtast í BUSINESSEVENTSDEFINITION töflunni, eins og sýnt er á eftirfarandi mynd. Ef þú finnur ekki reitinn sem leitað er að í niðurstöðu fyrirspurnarinnar verður hann ekki ræstur með tvöföldum skrifum.

    Rakinn reitur í töflunni.

Dæmi

Í forritum fjármála- og reksturs er uppfærsla á aðsetrinu fyrir tengiliðafærslu, en breyting á aðsetri er ekki samstillt við Dataverse. Þessi atburðarás gerist vegna þess að engin færsla í BusinessEventsDefinition töflunni hefur samsetningu töflunnar sem hefur áhrif á og einingarinnar. Nánar tiltekið er LogisticsPostalAddress taflan ekki bein gagnagjafi fyrir smmContactpersonCDSV2Entity eininguna. smmContactpersonCDSV2Entity einingin hefur smmContactPersonV2Entity sem gagnagjafa og smmContactPersonV2Entity hefur aftur á móti LogisticsPostalAddressBaseEntity sem gagnagjafa. LogisticsPostalAddress taflan er gagnagjafinn fyrir LogisticsPostalAddressBaseEntity.

Svipaðar aðstæður geta komið upp í sumum óhefðbundnum mynstrum á borð við mál þar sem taflan sem verið er að breyta í forritum fjármála- og reksturs er ekki augljóslega tengd við eininguna sem geymir hana. Til dæmis eru aðal heimilisfangsgögnin reiknuð út á smmContactPersonCDSV2Entity einingunni. Rammi tvöfaldra skrifa reynir að ákvarða hvernig breyting í undirliggjandi töflu er varpað aftur í einingar. Oftast nægir þessi aðferð. Í sumum tilvikum er tengillinn svo flókinn að maður þarf að vera nákvæmur. Þú verður að ganga úr skugga um að RecId í tengdu töflunni sé beint aðgengilegt á einingunni. Síðan skal bæta við ákveðinni aðferð til að fylgjast með breytingum á töflunni.

Skoðaðu til dæmis smmContactPersonCDSV2Entity::getEntityDataSourceToFieldMapping() aðferðina. CustomerCustomerV3entity og VendVendorV2Entity hefur verið breytt til að takast á við þetta ástand.

Til að laga úr vandamálið skal fylgja þessum skrefum.

  1. Bættu PrimaryPostalAddressRecId reitnum við smmContactPersonV2Entity eininguna. Gerðu hann að innri reit.

    Reit bætt við smmContactPersonV2Entity eininguna.

  2. Bættu sama reit við smmContactPersonCDSV2Entity eininguna.

    Reit bætt við smmContactPersonCDSV2Entity eininguna.

  3. Bættu eftirfarandi aðferð við smmContactPersonCDSV2Entity flokkinn.

    public static container getEntityDataSourceToFieldMapping(container mapping)
    {
        mapping += [[tablestr(smmContactPersonCDSV2Entity), tablenum(LogisticsPostalAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryPostalAddressRecId)]];
        return mapping;
    }
    
  4. Samstilltu gagnagrunninn og smíðaðu forritið.

  5. Stöðvaðu öll tvískrifa kortin sem eru búin til á smmContactPersonCDSV2Entity einingunni.

  6. Opna kortið. Þú ættir að sjá nýju töfluna (LogisticsPostalAddress í þessu dæmi) sem þú hefur byrjað að rekja með því að nota RefTableName dálkur fyrir línuna þar sem refentityname gildið er jafnt smmContactPersonCDSV2Entity í BusinessEvents Definition tafla.

Villa þegar þú stofnar færslu þar sem margar færslur eru sendar úr forriti fjármála- og reksturs til Dataverse í sömu rununni

Fyrir allar færslur býr forrit fjármála- og reksturs til gögn í runu og sendir þau sem runu til Dataverse. Ef tvær færslur eru búnar til sem hluti af sömu færslunni, og þær vísa hvor á aðra, gætir þú fengið villuboð sem líkjast eftirfarandi dæmi í forriti fjármála- og reksturs:

Ekki er hægt að skrifa gögn til aðila aaa_fundingsources. Ekki er hægt að fletta upp ebecsfs_contracts með gildum {PC00...}. Ekki er hægt að fletta upp aaa_fundingsources með gildum {PC00...}. Mistókst að skrifa til aaa_fundingsources með villuskilaboðum Undantekningaskilaboð: Ytri þjónn skilaði villu: (400) Slæm beiðni.

Til að laga vandamálið skaltu búa til einingavensl í forriti fjármála- og reksturs til að gefa til kynna að einingarnar tvær séu tengdar hvor annarri og að tengdu færslurnar séu meðhöndlaðar í sömu færslunni.

Virkja fjölorða skráningu villuboða

Í forriti fjármála- og reksturs gætir þú rekist á villur sem tengjast Dataverse umhverfinu. Villuboðin innihalda ekki endilega heildartexta skilaboðanna eða önnur viðeigandi gögn. Til að fá frekari upplýsingar geturðu virkjað nákvæma skráningu með því að stilla IsDebugMode fánann sem er til staðar á DualWriteProjectConfigurationEntity einingunni í öllum verkefnastillingum í fjármála- og rekstraröppum.

  1. Opnaðu DualWriteProjectConfigurationEntity eininguna með því að nota Excel viðbótina. Til að nota viðbótina, virkjaðu hönnunarham í Finance and Operations Excel viðbótinni og bættu DualWriteProjectConfigurationEntity við vinnublað. Fyrir frekari upplýsingar, sjá Skoða og uppfæra einingagögn með Excel.
  2. Stilltu IsDebugMode fánann á á verkefninu.
  3. Keyra aðstæður.
  4. Hinar margræðu annálar eru fáanlegar í DualWriteErrorLog töflunni. Til að fletta upp gögnum með því að nota töfluvafrann skaltu nota eftirfarandi vefslóð: https://XXXaos.cloudax.dynamics.com/?mi=SysTableBrowser&tableName=DualWriteErrorLog.
  5. Til að fanga fleiri annála í villuleitarstillingu skaltu setja upp uppfærsluna í KB 4595434 (lagað fyrir auð gildi sem dreifast í Dual write live sync).

Villa þegar þú bætir við aðsetri fyrir viðskiptavin eða tengilið

Þú gætir fengið eftirfarandi villuboð þegar þú reynir að bæta aðsetri fyrir viðskiptavin eða tengilið í forritum fjármála- og reksturs eða Dataverse:

Ekki er hægt að skrifa gögn á eininguna msdyn_partypostaladdresses. Skrifar til DirPartyPostalAddressLocationCDSEntity mistókst með villuskilaboðum Beiðni mistókst með stöðukóða BadRequest og CDS villukóði: 0x80040265 svarskilaboð: Villa kom upp í viðbótinni. Færsla sem hefur eiginleikagildin Staðsetningarauðkenni er þegar til. Einingalykill Staðsetningarauðkennislykill krefst þess að þetta sett af eiginleikum innihaldi einstök gildi. Veldu einstök gildi og reyndu aftur.

Til að laga málið skaltu setja upp tvískrifaða hljómsveitarpakkann (2.2.2.60), þannig að takkarnir á Address töflunni séu skilgreindir eins og sýnt er í eftirfarandi töflu.

Eiginleiki Virði
Birtingarheiti Staðsetningarlykill
Nafn msdyn_locationkey
Svæði msdyn_locationid, parentid
Staða Virkt
Kerfisverk Autt

Villa þegar viðskiptavini er bætt við í Dataverse

Þú gætir fengið eftirfarandi villuboð þegar þú reynir að bæta við viðskiptavini í Dataverse:

"RecordError0":"Skrifning mistókst fyrir entity Customers V3 með óþekktri undantekningu - Partýskrá fannst ekki fyrir flokksgerð 'Organization'"}.

Þegar viðskiptavinur er stofnaður í Dataverse er nýtt aðilanúmer búið til. Villuboðin eru sýnd þegar færsla viðskiptavinar ásamt aðilanum er samstillt í forritum fjármála- og reksturs, en þegar er til staðar færsla viðskiptavinar sem er með annað aðilanúmer.

Til að leysa úr vandamálinu skaltu finna viðskiptavininn í gegnum uppflettingu aðila. Ef viðskiptavinurinn er ekki til skaltu búa til nýja færslu viðskiptavinar. Ef viðskiptavinurinn er ekki til skaltu nota núverandi aðila til að stofna nýja færslu viðskiptavinar.

Villa þegar nýr viðskiptavinur, lánardrottinn eða tengiliður í Dataverse er búinn til

Þú gætir fengið eftirfarandi villuboð þegar þú reynir að búa til nýjan viðskiptavin, lánardrottin eða tengilið í Dataverse:

Ekki er hægt að uppfæra tegund aðila úr 'DirOrganization' í 'DirPerson', í staðinn ætti að eyða núverandi aðila og síðan innskot með nýju gerðinni.

Í Dataverse er töluröð á msdyn_party töflunni. Þegar reikningur er stofnaður í Dataverse er nýr aðili búinn til (til dæmis Party-001stofnunarinnar gerð). Þessi gögn eru send til forrits fjármála- og reksturs. Ef Dataverse umhverfið er endurstillt eða fjármála- og rekstrarumhverfið er tengt öðru Dataverse umhverfi og þá er ný tengiliðaskrá búin til í Dataverse, er búið til nýtt flokksgildi sem byrjar á Party-001 . Að þessu sinni verður partýskráin sem er búin til Party-001 af gerðinni Person . Þegar þessi gögn eru samstillt sýna fjármála- og rekstrarforrit fyrri villuboð, vegna þess að aðilaskrá Party-001stofnunarinnar gerð er þegar til.

Til að laga málið skaltu breyta sjálfvirku númeraröðinni fyrir msdyn_partynumber reitinn í msdyn_party töflunni í Dataverse í aðra sjálfvirka númeraröð.

Vandamál með afköst vegna vörpunar viðskiptavinar eða tengiliðar

Þú gætir verið fær um að bæta lítillega frammistöðu samstillingar í beinni fyrir viðskiptavini og tengiliði með því að sérsníða getEntityDataSourceToFieldMapping aðferðina (í CustCustomerV3Entity entity) aðferð og getEntityDataSourceToFieldMapping aðferðin (í smmContactPersonCDSV2Entity einingunni). Þessar sérstillingar fækka færslum í BusinessEventsDefinition töflunni. Þessi fækkun á fjölda færslna fækkar fjölda tilvika sem koma upp.

getEntityDataSourceToFieldMapping aðferðin í CustCustomerV3Entity einingunni tryggir að uppfærsla á rafrænu heimilisfangi eða póstfangi viðskiptavinarins kveiki viðskipti atburðir, þannig að uppfærð gögn verða send til Dataverse. Ef þú notar ekki alla reitina og þarft ekki upplýsingarnar í tvöföldum skrifum skaltu setja inn athugasemd í viðeigandi línur í aðferðinni. Sérhver rakinn reiti og tafla sem er bætt við með þessari aðferð bætir við færslu í BusinessEventsDefinition töflunni fyrir samsetningu rakaðrar töflu og rakaðrar einingu.

public static container getEntityDataSourceToFieldMapping(container mapping)
{
    mapping += [
        [tablestr(DirPartyBaseEntity), tablenum(LogisticsPostalAddress), fieldstr(CustCustomerV3Entity, AddressRecordId)],
        [identifierstr(DirPartyBaseEntity), tablenum(LogisticsElectronicAddress), fieldstr(CustCustomerV3Entity, PrimaryContactURLRecordId)],
        [identifierstr(DirPartyBaseEntity1), tablenum(LogisticsElectronicAddress), fieldstr(CustCustomerV3Entity, PrimaryContactPhoneRecordId)],
        [identifierstr(DirPartyBaseEntity2), tablenum(LogisticsElectronicAddress), fieldstr(CustCustomerV3Entity, PrimaryContactEmailRecordId)],
        [identifierstr(DirPartyBaseEntity3), tablenum(LogisticsElectronicAddress), fieldstr(CustCustomerV3Entity, PrimaryContactFaxRecordId)],
        [identifierstr(DirPartyBaseEntity4), tablenum(DirPartyLocation), fieldstr(CustCustomerV3Entity, DirPartyLocationRecordId)],
        [identifierstr(DirPartyBaseEntity5), tablenum(LogisticsPostalAddress), fieldstr(CustCustomerV3Entity, InvoiceAddressRecordId)],
        [identifierstr(DirPartyBaseEntity6), tablenum(LogisticsPostalAddress), fieldstr(CustCustomerV3Entity, DeliveryAddressRecordId)],
        [identifierStr(DirPartyBaseEntity7), tablenum(DirPartyTable), fieldstr(CustCustomerV3Entity, PartyRecordId)]];
    return mapping;
}

Á svipaðan hátt tryggir getEntityDataSourceToFieldMapping aðferðin í smmContactPersonCDSV2Entity einingunni að allar uppfærslur á rafrænu heimilisfangi tengiliðsins eða póstfang kallar á viðskiptaatburði, þannig að uppfærð gögn verða send til Dataverse. Í aðferðinni er hægt að skrifa athugasemdir í línurnar fyrir alla reiti sem ekki eru notaðir.

public static container getEntityDataSourceToFieldMapping(container mapping)
{
    mapping += [
        [tablestr(DirPartyBaseEntity), tablenum(LogisticsPostalAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryPostalAddressRecId)],
        [identifierStr(DirPartyBaseEntity), tablenum(DirPartyTable), fieldstr(smmContactPersonCDSV2Entity, PrimaryAddressLocation)],
        [identifierStr(DirPartyBaseEntity1), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactEmailRecordId)],
        [identifierStr(DirPartyBaseEntity2), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactFaxRecordId)],
        [identifierStr(DirPartyBaseEntity3), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactPhoneRecordId)],
        [identifierStr(DirPartyBaseEntity4), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactFacebookRecordId)],
        [identifierStr(DirPartyBaseEntity5), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactTwitterRecordId)],
        [identifierStr(DirPartyBaseEntity6), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactURLRecordId)],
        [identifierStr(DirPartyBaseEntity7), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactLinkedInRecordId)],
        [identifierStr(DirPartyBaseEntity8), tablenum(LogisticsElectronicAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryContactTelexRecordId)],
        [identifierStr(DirPartyBaseEntity9), tablenum(DirPartyTable), fieldstr(smmContactPersonCDSV2Entity, PartyRecordId)]];
    return mapping;
}

Eftir að aðferðirnar hafa verið uppfærðar skal fylgja þessum skrefum.

  1. Samstilltu gagnagrunninn og smíðaðu forritið.
  2. Stöðvaðu öll tvískrifuð kort á smmContactPersonCDSV2Entity og CustCustomerV3Entity einingunum.
  3. Opna kortin. You should see fewer records in the smmContactPersonCDSV2Entity and CustCustomerV3Entity entities and the BusinessEventsDefinition table, and performance might marginally improve.