Trikčių šalinimas pradinio sinchronizavimo metu
Šiame straipsnyje pateikiama trikčių diagnostikos informacija, skirta dvigubo rašymo integravimui tarp finansų ir operacijų programėlių ir jų Dataverse. Tiksliau sakant, pateikiama informacija, kuri gali padėti išspręsti problemas, kurios gali kilti pradinio sinchronizavimo metu.
Svarbu
Kai kurioms šio straipsnio adresams gali reikėti sistemos administratoriaus vaidmens arba "Microsoft Azure Active Directory (" () nuomininkųAzure AD administratoriaus kredencialų. Kiekvienai problemai skirtoje dalyje paaiškinama, ar reikia konkretaus vaidmens ar kredencialų.
Patikrinti, ar yra pradinių sinchronizavimo klaidų finansų ir operacijų programoje
Kai įgalinate susiejimo šablonus, žemėlapių būsena turi būti Vykdoma. Jei būsena Nepaleidžiant , pirminio sinchronizavimo metu įvyko klaidų. Norėdami peržiūrėti klaidas, dvigubo rašymo puslapyje pasirinkite skirtuką Pradinio sinchronizavimo informacija.
Negalite užbaigti pradinio sinchronizavimo: 400 netinkama užklausa
Būtinas vaidmuo problemai išspręsti:Sistemos administratorius
Kai bandote vykdyti susiejimą ir pradinį sinchronizavimą, galite gauti tokį klaidos pranešimą:
**Netinkama užklausa], nuotolinis serveris grąžino klaidą: (400) netinkama užklausa.), AX eksportuojant įvyko klaida.
Čia pateikiamas viso klaidos pranešimo pavyzdys.
Dual write Initial Sync completed with status: Error. Following are the details:
Executed leg: From AX Financial dimensions to CRM msdyn_dimensionattributes
with exported records count: 0, ImportRecordsErrorCount: 0,
ImportRecordsInsertedCount: 0 and ImportRecordsUpdatedCount: 0
ErrorsDetails:
Dual write Initial sync failed
Message: ([Bad Request], The remote server returned an error: (400) Bad Request.), AX export encountered an error
Stacktrace: at
Microsoft.Dynamics.Integrator.QueryGenerator.AxClient.\<ExportAxPackage\>d__16.MoveNext()
in X:\\bt\\1024532\\repo\\src\\Core\\QueryGenerator\\AxClient.cs:line 265
\--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.D365.ServicePlatform.Context.ServiceContext.Activity.\<ExecuteAsync\>d__11\`2.MoveNext()
\--- End of stack trace from previous location where exception was thrown ---
Jei šį klaida įvyksta nuolat ir negalite užbaigti pradinio sinchronizavimo, atlikite šiuos veiksmus, kad išspręstumėte problemą.
- Prisiregistruokite prie virtualiosios mašinos (VM) finansų ir operacijų programai.
- Atidarykite „Microsoft“ valdymo konsolę.
- Paslaugų srityje įsitikinkite , kad paleista Microsoft Dynamics 365 duomenų importavimo / eksportavimo sistemos tarnyba. Jeigu ji buvo sustabdyta, paleiskite ją iš naujo, nes ji yra reikalinga pradiniam sinchronizavimui atlikti.
Pradinio sinchronizavimo klaida: 403 draudžiama
Pradinio sinchronizavimo metu galite gauti tokį klaidos pranešimą:
**Draudžiama], nuotolinis serveris grąžino klaidą: (403) Draudžiama.), AX eksportuojant įvyko klaida
Norėdami ištaisyti klaidą, atlikite toliau nurodytus veiksmus.
- Prisiregistruokite finansų ir operacijų programoje.
- Programų puslapyje Azure Active Directory panaikinkite DtAppID klientą , tada pridėkite jį dar kartą.
Nepavykusi auto-nuoroda arba ciklinių nuorodų klaidos pradinio sinchronizavimo metu
Jeigu bet kurie iš jūsų susiejimų turi nuorodų į save ar ciklinių nuorodų, galite gauti klaidos pranešimų. Klaidos skirstomos į toliau pateiktas kategorijas.
Išspręskite klaidas susiejant lenteles Tiekėjai V2–msdyn_vendors susiejime
Gali kilti pradinių sinchronizavimo klaidų susiejant tiekėjus V2su msdyn_vendors,jei lentelėse yra eilučių, kuriose yra stulpeliuose PrimaryContactPersonIdir InvoiceVendorAccountNumber verčių. Šios klaidos įvyksta dėl to, kad InvoiceVendorAccountNumber yra save nurodantis stulpelis, o PrimaryContactPersonId yra ciklinė nuoroda tiekėjo susiejime.
Gauti klaidos pranešimai bus šios formos.
Nepavyko nustatyti lauko : <field GUID>. Peržvalga nerasta: <vertė>. Pabandykite šiuos URL patikrinti, ar yra nuorodos duomenų: https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/<entity>?$select=<field>&$filter=<field> eq <value>
Štai keletas pavyzdžių:
- Nepavyko nustatyti lauko GUID: msdyn_vendorprimarycontactperson.ms²_contactpersonid. Peržvalga nerasta: 000056. Pabandykite šiuos URL patikrinti, ar yra nuorodos duomenų:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/contacts?$select=msdyn_contactpersonid.contactid&$filter=msdyn_contactpersonid eq '000056'
- Nepavyko nustatyti lauko GUID: msdyn_invoicevendoraccountnumber.ms²_vendoraccountnumber. Peržvalga nerasta: V24-1. Pabandykite šiuos URL patikrinti, ar yra nuorodos duomenų:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/msdn_vendors?$select=msdyn_vendoraccountnumber,msdyn_vendorid&$filter=msdyn_vendoraccountnumber eq 'V24-1'
Jei kurios nors tiekėjo lentelės eilutės stulpeliuose PrimaryContactPersonIdir InvoiceVendorAccountNumber yra vertės, atlikite šiuos veiksmus, norėdami atlikti pradinį sinchronizavimą.
Finansų ir operacijų programoje panaikinkite stulpelius PrimaryContactPersonIdir InvoiceVendorAccountNumber iš susiejimo, tada įrašykite susiejimą.
Tiekėjų V2 (msdyn_vendors) dvigubo rašymo susiejimo puslapio kairiojo filtro lentelių susiejimuose pasirinkite finansų ir operacijų programėles. Tiekėjai V2. Dešiniajame filtre pasirinkite Pardavimas. Tiekėjas.
Ieškokite primarycontactperson, kad būtų galima rasti šaltinio stulpelį PrimaryContactPersonId .
Pasirinkite Veiksmai, tada pasirinkite Naikinti.
Pakartokite šiuos veiksmus, norėdami panaikinti stulpelį InvoiceVendorAccountNumber .
Įrašykite savo pakeitimus susiejime.
Išjungti keitimų sekimą tiekėjų V2 lentelėje.
Duomenų valdymo darbo srityje pasirinkite duomenų lentelių išklotinę lentelę.
Pasirinkite lentelę Tiekėjai V2 .
Veiksmų srityje pasirinkite Pasirinktys , tada pasirinkite Keitimų sekimas.
Pasirinkite Išjungti keitimų sekimą.
Vykdykite pradinę tiekėjo V2 (msdyn_vendors) sinchronizavimą . Pradinė sinchronizacija turėtų pavykti sėkmingai be klaidų.
Vykdyti pradinę CDS kontaktų V2 (kontaktų) susiejimo sinchronizavimą . Turite sinchronizuoti šį susiejimą, jei norite sinchronizuoti pirminių kontaktų stulpelį tiekėjų lentelėje, nes taip pat turite atlikti kontaktų eilučių sinchronizavimą.
Įtraukite Stulpelius PrimaryContactPersonIdir InvoiceVendorAccountNumberatgal į tiekėjų V2 (msdyn_vendors) susiejimą, tada įrašykite susiejimą.
Dar kartą vykdykite pradinį tiekėjo V2 (msdyn_vendors) sinchronizavimą . Kadangi keitimų sekimas išjungtas, visos eilutės bus sinchronizuotos.
Įjungti keitimų sekimą tiekėjų V2 lentelėje .
Išspręskite klaidas lentelės Klientai V3–Į sąskaitas susiejime
Jei lentelėse yra eilučių, kuriose yra stulpeliuose ContactPersonIDir InvoiceAccount, gali kilti pradinių sinchronizavimo klaidų, kai V3klientai susiejami su sąskaitomis. Šios klaidos įvyksta, nes InvoiceAccount yra save nurodantis stulpelis, o ContactPersonID yra ciklinė tiekėjo susiejimo nuoroda.
Gauti klaidos pranešimai bus šios formos.
Nepavyko nustatyti lauko : <field GUID>. Peržvalga nerasta: <vertė>. Pabandykite šiuos URL patikrinti, ar yra nuorodos duomenų: https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/<entity>?$select=<field>&$filter=<field> eq <value>
Štai keletas pavyzdžių:
- Nepavyko nustatyti lauko GUID: primarycontactid.msdyn_contactpersonid. Peržvalga nerasta: 000056. Pabandykite šiuos URL patikrinti, ar yra nuorodos duomenų:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/contacts?$select=msdyn_contactpersonid.contactid&$filter=msdyn_contactpersonid eq '000056'
- Nepavyko nustatyti lauko GUID: msdyn_billingaccount.accountnumber. Peržvalga nerasta: 1206–1. Pabandykite šiuos URL patikrinti, ar yra nuorodos duomenų:
https://focdsdevtest2.crm.dynamics.com/api/data/v9.0/accounts?$select=accountnumber.account&$filter=accountnumber eq '1206-1'
Jei kurios nors klientų lentelės eilutės turi verčių Stulpeliuose ContactPersonIDir InvoiceAccount , atlikite šiuos veiksmus, kad būtų atlikta pradinė sinchronizacija. Šį būdą galima naudoti bet kuriai atėjimo į dėžę lentelei, pvz. , Sąskaitoms ir Kontaktams .
Finansų ir operacijų programoje panaikinkite ContactPersonID ir InvoiceAccount stulpelius iš klientų V3 (sąskaitų) susiejimo, tada įrašykite susiejimą .
Klientų V3 (sąskaitų ) dvigubo rašymo susiejimo puslapio, skirtuko Lentelės susiejimai kairiajame filtre, pasirinkite finansų ir operacijų programą. Klientai V3. Dešiniajame filtre pasirinkite Dataverse. Sąskaita.
Ieškoti kontaktinio asmens, kad būtų galima rasti ContactPersonID šaltinio stulpelį.
Pasirinkite Veiksmai, tada pasirinkite Naikinti.
Norėdami panaikinti stulpelį InvoiceAccount, pakartokite šiuos veiksmus.
Įrašykite savo pakeitimus susiejime.
Išjunkite klientų V3 lentelės keitimų sekimą .
Duomenų valdymo darbo srityje pasirinkite duomenų lentelių išklotinę lentelę.
Pasirinkite lentelę Klientai V3 .
Veiksmų srityje pasirinkite Pasirinktys , tada pasirinkite Keitimų sekimas.
Pasirinkite Išjungti keitimų sekimą.
Vykdykite pradinį sinchronizavimą, kad būtų susieti klientai V3 (sąskaitos ). Pradinė sinchronizacija turėtų pavykti sėkmingai be klaidų.
Vykdyti pradinę CDS kontaktų V2 (kontaktų) susiejimo sinchronizavimą .
Banknotas
Yra du tokiu pačiu pavadinimu žemėlapiai. Įsitikinkite, kad skirtuke Išsamiai pasirinkite schemą, kurios aprašas pateiktas : Dvigubo rašymo šablonas, skirtas sinchronizuoti tarp FO. CDS tiekėjų kontaktai V2 į CDS. Kontaktai. Reikia naujos pakuotės [Dynamics365SupplyChainExtended].
Įtraukite SFAccount ir ContactPersonId stulpelius atgal į klientų V3 (sąskaitų) susiejimą, tada įrašykite susiejimą. Ir InvoiceAccount stulpelis , ir ContactPersonId dabar yra tiesioginio sinchronizavimo režimo dalis dar kartą. Kitame veiksme atliksite šių stulpelių sinchronizavimą.
Dar kartą vykdykite pradinį klientų V3 (sąskaitų) susiejimo sinchronizavimą . Kadangi keitimų sekimas išjungtas, SFAccountir ContactPersonId duomenys bus sinchronizuoti iš finansų ir operacijų programos į Dataverse.
Norėdami sinchronizuoti SFAccount ir ContactPersonId duomenis iš Dataverse finansų ir operacijų programos, turite naudoti duomenų integravimo projektą.
Įkurkite Power Apps duomenų integravimo projektą tarp Pardavimo sąskaitos ir finansų ir operacijų programėlių. Klientai V3 lentelės. Duomenų kryptis turi būti iš finansų Dataverse ir operacijų programos. Kadangi InvoiceAccount yra naujas dvigubo rašymo atributas, galite norėti praleisti jo pradinę sinchronizaciją. Daugiau informacijos ieškokite Integruoti duomenis į Dataverse.
Šis pavyzdys rodo projektą, kuris atnaujina CustomerAccount irContactPersonId.
Įtraukite įmonės kriterijus į filtravimo Dataverse programą, kad finansų ir operacijų programoje būtų atnaujintos tik tas eilutes, kurios atitinka filtro kriterijus. Norėdami pridėti filtrą, pažymėkite filtro mygtuką. Tada į dialogo langą Redaguoti užklausą galite įtraukti filtro užklausą, pvz _msdyn_company_value eq "<guid>".
[PASTABA] Jei filtro mygtuko nėra, sukurkite palaikymo kvitą, kad paprašytumėte duomenų integravimo komandos įjungti filtro funkciją jūsų nuomotojui.
Jei neįvesite filtro užklausos_msdyn_company_value eilutės bus sinchronizuojamos.
Pradinė eilučių sinchronizacija baigta.
Finansų ir operacijų programoje įjunkite keitimų sekimą V3 klientų lentelėje.
Pradinio sinchronizavimo klaidos schemose su daugiau nei 10 peržvalgos laukų
Galite gauti toliau nurodytą klaidos pranešimą, kai bandote vykdyti pradines sinchronizavimo klaidas klientams V3 – sąskaitos, pardavimo užsakymų susiejimas ar bet kokia schema su daugiau nei 10 peržvalgos laukų:
CRMExport: paketo vykdymas baigtas. 5 klaidos aprašas bando gauti duomenis iš https://xxxxx//datasets/yyyyy/tables/accounts/items?$select=accountnumber, address2_city, address2_country, ... (msdyn_company/cdm_companyid pvz., id)& $orderby= accountnumber asc nepavyko.
Dėl užklausos peržvalgų apribojimo pradinis sinchronizavimas nepavyksta, kai objekto susiejime yra daugiau kaip 10 peržvalgų. Daugiau informacijos rasite Informacijos apie susijusios lentelės įrašų nuskaitykite naudodami užklausą.
Norėdami ištaisyti šią problemą, vykdykite toliau nurodytus veiksmus.
- Pašalinkite pasirinktinius peržvalgos laukus iš dvigubo rašymo objekto schemos, kad peržvalgų būtų 10 ar mažiau.
- Įrašykite schemą ir atlikite pradinį sinchronizavimą.
- Kai pirmo veiksmo pradinė sinchronizacija pavyks, pridėkite likusius peržvalgos laukus ir pašalinkite peržvalgos laukus, kuriuos sinchronizavote atlikdami pirmą veiksmą. Įsitikinkite, kad peržvalgos laukų yra 10 ar mažiau. Įrašykite schemą ir vykdykite pradinį sinchronizavimą.
- Kartokite šiuos veiksmus, kol visi peržvalgos laukai bus sinchronizuoti.
- Įtraukite visus peržvalgos laukus atgal į schemą, įrašykite schemą ir paleiskite schemą naudodami Praleisti pradinį sinchronizavimą.
Šiuo procesu įjungiamas schemos tiesioginis sinchronizavimo režimas.
Žinoma klaida, kylanti šalies pašto adresų ir šalies elektroninių adresų pradinio sinchronizavimo metu
Bandydami paleisti šalies pašto adresų ir šalies elektroninių adresų pradinį sinchronizavimą galite gauti toliau pateikiamą klaidos pranešimą.
Nepavyko rasti šalies numerio Dataverse.
Finansų ir operacijų programose nustatytas DirPartyCDSEntity diapazonas, filtruojantis asmens ir organizacijos tipo šalis. Todėl pirminis CDS šalių sinchronizavimas – msdyn_parties susiejimas nesinchronizuos kitų tipų šalių, įskaitant juridinį subjektą ir valdymo vienetą. Kai paleidžiamas pradinis CDS įrašo pašto adresų (msdyn_partypostaladdresses) arba šalių kontaktų V3 (msdyn_partyelectronicaddresses) sinchronizavimas, gali būti, kad gausite klaidą.
Mes dirbame su pataisa, kad pašalintumėte finansų ir operacijų objektų įrašų tipų diapazoną, kad visų tipų šalys galėtų sėkmingai sinchronizuoti Dataverse .
Ar vykdant klientų ir kontaktų duomenų pradinį sinchronizavimą kyla našumo problemų?
Jei paleidote pradinį kliento duomenų sinchronizavimą, o tada paleidžiate kliento schemas, o tada vykdote pradinį kontaktų duomenų sinchronizavimą, gali kilti efektyvumo problemų įterpiant ir atnaujinus kontaktinių adresų lenteles LogisticsPostalAddress ir LogisticsElectronicAddress. Tos pačios visuotinės pašto adresų ir elektroninių adresų lentelės sekamos CustCustomerV3Entityir VendVendorV2Entity ir dvigubo rašymo bandymai kurti daugiau užklausų duomenims kitoje pusėje rašyti. Jei jau vykdote pradinį kliento sinchronizavimą, sustabdykite atitinkamą schemą paleisdami pradinį kontaktų duomenų sinchronizavimą. Atlikite tuos pačius tiekėjo duomenis . Kai pradinis sinchronizavimas baigtas, galite paleisti visas schemas praleisdami pradinį sinchronizavimą.
Float duomenų tipo, kuriame yra nulinė reikšmė, sinchronizuoti negalima
Gali nepavykti sinchronizuoti įrašų, kurių kainos lauke yra nulinė vertė, pvz., Fiksuoto mokėjimosuma arba Suma operacijos valiuta. Šiuo atveju gausite klaidos pranešimą, kuris yra panašus į šį pavyzdį:
Įvyko klaida bandant nustatyti įvesties parametrus: Microsoft.OData.ODataException: literalo 000000 negalima konvertuoti į numatomą tipą Edm. Dešimtainis,...
Problema susijusi su kalbos lokalės reikšme duomenų valdymo modulio šaltinio duomenų formatuose . Pakeiskite lauko Kalbos lokalė reikšmę į en-us ir bandykite dar kartą.