Megosztás a következőn keresztül:


Élő szinkronizálási problémák elhárítása

Ez a témakör hibaelhárítási információkat tartalmaz a pénzügyi és műveleti alkalmazások, valamint a két írásos integrációval kapcsolatban Microsoft Dataverse. Pontosabban, olyan információkat tartalmaz, amelyek segítségével javíthatók az élő szinkronizálás problémái.

Fontos

A témakörben említett bizonyos problémák megoldásához vagy a rendszergazdai szerepkör, vagy Azure Active Directory (Azure AD) a bérlő rendszergazdai hitelesítő adatainak megadása lehet szükséges. Az egyes szakaszok leírják, hogy szükség van-e konkrét szerepkörre vagy hitelesítő adatokra.

Az élő szinkronizálás hibát jelez sor létrehozásakor

Előfordulhat, hogy a következő hibaüzenet jelenik meg, amikor sort hoz létre a Pénzügy és műveletek alkalmazásban:

[{\"error\\{"code\"\"0x80072560\"\"message\":\"A felhasználó nem tagja a szervezetnek.\"}}], a távoli kiszolgáló a következő hibát adott vissza: (403) Tiltott."}}".

A probléma megoldásához kövesse a rendszerkövetelmények és -előfeltételek lépéseit. Ezeknek a lépéseknek a végrehajtásához a Dataverse szolgáltatásban létrehozott kettős írású felhasználóknak rendelkezniük kell a rendszergazda szerepkörrel. Az alapértelmezett tulajdonos csapatnak is rendelkeznie kell a rendszeradminisztrátori szerepkörrel.

Az élő szinkronizálás hibát jelez, amikor táblaadatokat próbál menteni

A probléma megoldásához szükséges szerepkör: Rendszergazda

Amikor táblaadatokat próbál menteni egy pénzügyi és műveleti alkalmazásban, a következő hibaüzenet jelenik meg:

A módosítások nem menthetők az adatbázisba. Munkaegység nem véglegesítheti a tranzakciót. Nem lehet adatokat írni az entitás uoms.-ökbe. Nem sikerült az UnitOfMeasureEntity függvénybe írása, mert hibaüzenet nem szinkronizálható az entitás mértékegységekkel.

A probléma megoldásához győződjön meg arról, hogy az előfeltétel hivatkozási adatai mind a pénzügyi, mind az üzemeltetési alkalmazásban Dataverse és. Ha például egy vevői rekord egy adott vevőcsoporthoz tartozik, győződjön meg arról, hogy a vevő csoport rekordja létezik a Dataverse szolgáltatásban.

Ha mindkét helyen szerepel az adat, és megerősítette, hogy a probléma nem az adatokkal kapcsolatos, kövesse ezeket a lépéseket.

  1. Nyissa meg a DualWriteProjectConfigurationEntity entitást az Excel-bővítmény használatával. A bővítmény alkalmazásához engedélyezze a tervező módot a pénzügyek és műveletek Excel bővítményében, és adja hozzá a DualWriteProjectConfigurationEntity adatokat egy munkalaphoz. További tájékoztatás az entitásadatok megtekintése és frissítése az Excel alkalmazással.
  2. Válassza ki és törölje azokat a rekordokat, amelyek problémákat okozhatnak a kettős írásos leképezésben és a projektben. Két rekord lesz minden kettős írásos leképezéshez.
  3. Tegye közzé a módosításokat az Excel bővítmény segítségével. Ez a lépés azért fontos, mert törli a rekordokat az entitásból és a mögöttes táblákból.

Olvasási vagy írási jogosultsági hibák kezeléséhez, amikor adatokat hoz létre a pénzügyi és műveleti alkalmazásban

Ha adatokat hoz létre egy pénzügyi és műveleti alkalmazásban, akkor "Rossz kérés" hibaüzenet jelenik meg.

Példa a Hibás kérés hibaüzenetére.

A hiba elhárításához a megfelelő biztonsági szerepkörnek a megfeleltetett Dynamics 365 Sales vagy Dynamics 365 Customer Service üzleti egység csapatához történő társításával engedélyeznie kell a hiányzó jogosultságot.

  1. A Pénzügy és műveletek alkalmazásban keresse meg az adatintegrációs kapcsolatkészletben beállított üzleti egységet.

    Szervezet leképezése.

  2. A vevői együttműködés alkalmazásba jelentkezzen be a környezetbe, > lépjen a Biztonság beállítása alkalmazásba, és keresse meg a hozzárendelt üzleti egység csapatát.

    A hozzárendelt üzleti egység csapata.

  3. Nyissa meg szerkesztésre a csapat lapját, és válassza a Szerepkörök kezelése lehetőséget.

    Szerepkörök kezelése gomb.

  4. A Csoportszerepkepek kezelése párbeszédpanelen rendelje hozzá a szerepkört, amely a megfelelő táblák olvasási/írási jogosultsággal rendelkezik, majd válassza az OK gombra való jogosultságot.

A szinkronizálási problémák javítása egy környezetben egy közelmúltban módosított Dataverse környezetben

A probléma megoldásához szükséges szerepkör: Rendszergazda

Amikor a pénzügyi és műveleti alkalmazásban adatokat hoz létre, a következő hibaüzenet jelenik meg:

{"entityName":"CustCustomerV3Entity","executionStatus":2,"fieldResponses":[],"recordResponses":[{"errorMessage":"Nem lehet rakományt generálni a CustCustomer entitáshoz.V3Entity","logDateTime":"2019-08-27T18:51:52.5843124Z","verboseError""Payload creation failed with error URI: Az URI üres."]},"isErrorCountUpdated:true":true}

Ez a hibaüzenet jelenik meg az ügyfélkapcsolati alkalmazásában:

Váratlan hiba történt az ISV-kódból. (ErrorType = ClientError) Váratlan kivétel a bővítménytől (végrehajtás): Microsoft.Dynamics.Integrator.DualWriteRuntime.Plugins.PostCommitPlugin: System.Exception: nem sikerült feldolgozni az entitás fiókját (Egy kapcsolódási kísérlet nem sikerült, mert a kapcsolódó fél egy adott időt követően nem válaszolt helyesen, vagy a létrejött kapcsolat megszakadt, mert a csatlakoztatott állomás nem válaszolt.

Ez a hiba akkor fordul elő Dataverse , ha a környezet alaphelyzetbe állítása helytelenül történik, amikor adatokat próbál létrehozni a Pénzügy és műveletek alkalmazásban.

Fontos

Ha újra összekapcsolta a környezeteket, akkor az összes entitásleképezést le kell állítania, mielőtt folytatja a kockázatcsökkentés lépéseit.

A probléma megoldásához lépéseket kell végrehajtani mind Dataverse a Pénzügy, mind a Műveletek alkalmazásban.

  1. A Pénzügy és műveletek alkalmazásban kövesse az alábbi lépéseket:

    1. Nyissa meg a DualWriteProjectConfigurationEntity entitást az Excel-bővítmény használatával. A bővítmény alkalmazásához engedélyezze a tervező módot a pénzügyek és műveletek Excel bővítményében, és adja hozzá a DualWriteProjectConfigurationEntity adatokat egy munkalaphoz. További tájékoztatás az entitásadatok megtekintése és frissítése az Excel alkalmazással.
    2. Válassza ki és törölje azokat a rekordokat, amelyek problémákat okozhatnak a kettős írásos leképezésben és a projektben. Két rekord lesz minden kettős írásos leképezéshez.
    3. Tegye közzé a módosításokat az Excel bővítmény segítségével. Ez a lépés azért fontos, mert törli a rekordokat az entitásból és a mögöttes táblákból.
    4. A pénzügyek és műveletek Dataverse és környezetek összekapcsolása során előforduló hibák elkerülése érdekében győződjön meg arról, hogy nem marad két írásos konfiguráció.
  2. A Dataverse-ben kövesse az alábbi lépéseket:

    1. Jelentkezzen be a környezetbe Dataverse (például https://*****.crm.dynamics.com/).
    2. Ugrás a Speciális beállítások –>Speciális keresés elemre.
    3. Válassza a DualWrite futásidejű konfigurációt.
    4. Jelölje ki a megtekinteni kívánt oszlopot.
    5. Válassza ki az eredményeket a konfigurációk megtekintéséhez.
    6. Törölje az összes példányt.
  3. A Pénzügy és műveletek alkalmazásban kövesse az alábbi lépéseket:

    1. Nyissa meg a DualWriteProjectConfigurationEntity entitást az Excel-bővítmény használatával. A bővítmény alkalmazásához engedélyezze a tervező módot a pénzügyek és műveletek Excel bővítményében, és adja hozzá a DualWriteProjectConfigurationEntity adatokat egy munkalaphoz. További tájékoztatás az entitásadatok megtekintése és frissítése az Excel alkalmazással.
    2. Válassza ki és törölje azokat a rekordokat, amelyek problémákat okozhatnak a kettős írásos leképezésben és a projektben. Két rekord lesz minden kettős írásos leképezéshez.
    3. Tegye közzé a módosításokat az Excel bővítmény segítségével. Ez a lépés azért fontos, mert törli a rekordokat az entitásból és a mögöttes táblákból.
    4. A pénzügyek és műveletek Dataverse és környezetek összekapcsolása során előforduló hibák elkerülése érdekében győződjön meg arról, hogy nem marad két írásos konfiguráció.

Élő szinkronizálási hiba a teljes adatbázis-másolás után

Ha az adatbázis teljes másolatát az egyik rendszerből a másikba futtatja, majd egy adatbázis-műveletet próbál futtatni, akkor a következő hibaüzenet jelenik meg:

A SecureConfig szervezet (???) nem egyezik meg a tényleges CRM-szervezettel (???).

A hibaüzenet a kettős írású futásidejű beépülő modulban látható, így garantálható, hogy az egyik rendszerben beállított kettős írásos konfiguráció nem használható egy másik rendszerben.

A probléma megoldásához törölje az adatbázis-visszaállítási tábla msdyn_dualwriteruntimeconfig rekordjait. A további tudnivalókat lásd a két írásos környezet leválasztása és összekapcsolása érdekében.

Élő szinkronizálási problémák, amelyeket a kettős írású leképezések lekérdezésszűrői helytelen szintaxisa okozott

Bár a kettős írású leképezésszűrő lekérdezési kifejezése szintaktikailag helyes, lehet, hogy nem a várt módon működik. A szűrőkifejezés egy entitáson van, nem pedig egy lekérdezésobjektum egyéni adatforrásán. Ebből következően a generált SQL-lekérdezés nem a várt eredményt küldi vissza.

Íme, egy példa.

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

Előfordulhat, hogy az olyan projekteket, amelyeknél nincs szülő, kiszűri a rendszer. A szűrő azonban nem működik, mert a következő példához hasonló lekérdezésre fordítja le a rendszer.

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

A tényleges eredmény az, hogy parentProject a mező kiértékelése történik null. Nem ugyanaz, null mint az üres karakterlánc. Az eltérés miatt a lekérdezésszűrő nem küld vissza érvényes eredményt.

Egy hiba javításához kövesse az alábbi lépéseket.

  1. Adjon hozzá egy számított oszlopot, amelyet hozzá lehet adni egy bővítménymodellhez, null és amelyet az üres karakterlánccikként átváltó logika mögöttes.

    SysComputedColumn::if(SysComputedColumn::isNullExpression(ParentProject), SysComputedColumn::returnLiteral(""), fieldName);
    
  2. Használja az új számított oszlop szűrőjét az alapértelmezett oszlop helyett.

A szűrő fejlesztői környezetben való kiértékeléséhez a következő X++ kóddal ellenőrizheti az eredményeket. Futtassa ezt a kódot különálló programként. Segítségével kiértékelheti a különböző szűrőket, amelyek egy entitáshoz alkalmazhatók, mielőtt ezeket a szűrőket kettős írású leképezéseken használná. Az eltérések kiértékelése érdekében a lekérdezés az adatbázison futtatható.

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));
}

A Pénzügyi és műveleti alkalmazások adatai nincs szinkronizálva a Dataverse

Az élő szinkronizálás során problémák merülhetnek fel, Dataverse amikor az adatoknak csak egy része szinkronizálható pénzügyi alkalmazásokból és műveleti alkalmazásokból, vagy egyáltalán nem.

Jegyzet

A problémát a fejlesztés során kell kijavítani.

Mielőtt elkezdené kijavítani a problémát, ellenőrizze a következő előfeltételeket:

  • Győződjön meg róla, hogy az egyéni módosítások egyetlen tranzakció-hatókörbe kerülnek.
  • Az üzleti események és a kettős írásos doinsert()doUpdate() keretrendszer nem kezeli, recordset() és a műveleteket, skipBusinessEvents(true) illetve a megjelölt rekordokat nem kezeli. Ha a kód ezeken a funkciókon belül van, a rendszer nem indít kettős írást.
  • A leképezett adatforráshoz üzleti eseményeket kell regisztrálni. Egyes adatforrások külső illesztéseket használhatnak, és a pénzügyi és műveleti alkalmazásokban írásra megjelöltek lehetnek. Ezeket az adatforrásokat nem követi nyomon a rendszer.
  • A módosítások csak akkor aktiválódnak, ha a leképezett mezőkben vannak. A nem leképezett mezőmódosítások nem váltják ki a kettős írást.
  • Ellenőrizze, hogy a szűrőértékelések érvényes eredményt adnak-e.

A hibaelhárítás lépései

  1. Tekintse át a kettős írású rendszergazdai lapon található mezőleképezéseket. Ha egy mező nincs megfeleltetve a pénzügyi Dataverse és az üzemeltetési alkalmazásoknak, akkor a rendszer nem követi nyomon. Az alábbi példában a Leírás mezőt a program innen követi nyomon, Dataverse nem pedig a pénzügyi és műveleti alkalmazásokból. A program nem követi nyomon a pénzügyi alkalmazásokban található mező módosításait.

    Nyomon követéses mező.

  2. Határozza meg, hogy az adatforrást nyomon követi-e a rendszer az üzleti események definíciójában. Az alábbi példában a Program nem követi nyomon a DefaultDimensionDAVs tábla egyetlen mezőjét sem, és a mögöttes táblákat sem. Azok az adatforrások, amelyek külső illesztést használnak, és csak olvashatóként vannak megjelölve, nem követhetők nyomon.

    Nem nyomon követhető mező.

  3. Annak meghatározása, hogy a leképezett táblamezők megjelenjenek-e a BUSINESSEVENTSDEFINITION táblában , az alábbi ábra szerint. Ha nem találja azt a mezőt, amelyet a lekérdezés eredményében keres, akkor a kettős írás nem fog aktiválódni.

    Nyomon követett mező a táblában.

Mintaforgatókönyv

A pénzügyek és az üzemeltetés alkalmazásokban frissítés van a kapcsolattartó-rekord címében, de a címváltozás nem lesz szinkronizálva Dataverse. Ez az eset azért fordul elő, mert a BusinessEventsDefinition tábla egyetlen rekordja sem tartalmazza az érintett tábla és az entitás kombinációját. Pontosabban a LogisticsPostalAddresstábla nem a smmContactpersonCDSV2Entity entitás közvetlen adatforrása . Az smmContactpersonCDSV2Entityentitás adatforrása smmContactPersonV2Entity , és az smmContactPersonV2Entity adatforrása pedig LogisticsPostalAddressBaseEntity . A LogisticsPostalAddress tábla a LogisticsPostalAddressBaseEntity adatforrása.

Hasonló helyzet fordulhat elő bizonyos nem szabványos sémákban is, például amikor a pénzügyi alkalmazásokban módosított tábla és a műveleti alkalmazások nem kötődnek az entitáshoz. Például az elsődleges címadatok számítása az smmContactPersonCDSV2Entity entitás alapján történt. A kettős írású keretrendszer megpróbálja meghatározni, hogy egy alapul szolgáló tábla módosítása hogyan van leképezve az entitásokra. Ez a megközelítés általában elegendő. Bizonyos esetekben azonban a kapcsolat olyan bonyolult, hogy Önnek pontosabb megközelítést kell alkalmaznia. Meg kell győződnie arról, hogy a kapcsolódó tábla RecId-azonosítója közvetlenül elérhető az entitáshoz. Ezután adjon meg egy statikus metódust a tábla változásának figyelése érdekében.

Példaként tekintse át az smmContactPersonCDSV2Entity::getEntityDataSourceToFieldMapping()metódust . A CustCustomerV3entityés a VendVendorV2Entity módosítása megtörtént az ilyen helyzet kezelésével.

Egy hiba javításához kövesse az alábbi lépéseket.

  1. PrimaryPostalAddressRecId mezőhozzáadása a smmContactPersonV2Entity entitáshoz . Legyen belső mező.

    Az smmContactPersonV2Entity entitáshoz hozzáadott mező.

  2. Adja hozzá ugyanazt a mezőt az smmContactPersonCDSV2Entity entitáshoz .

    Az smmContactPersonCDSV2Entity entitáshoz hozzáadott mező.

  3. Adja hozzá a következő metódust az smmContactPersonCDSV2Entity osztályhoz .

    public static container getEntityDataSourceToFieldMapping(container mapping)
    {
        mapping += [[tablestr(smmContactPersonCDSV2Entity), tablenum(LogisticsPostalAddress), fieldstr(smmContactPersonCDSV2Entity, PrimaryPostalAddressRecId)]];
        return mapping;
    }
    
  4. Szinkronizálja az adatbázist, és hozza létre az alkalmazást.

  5. Az smmContactPersonCDSV2Entity entitáson létrehozott kétírásos leképezések leállítása.

  6. Indítsa el a leképezést. Ebben a példában az új táblát (LogisticsPostalAddress) kell látnia, amelyet a RefTableName oszlop használatával elindított annak a sornak a RefTableName oszlopában, ahol a refentityname értéke megegyezik a BusinessEventsDefinition táblában található smmContactPersonCDSV2Entity értékkel.

Hiba olyan rekord létrehozásakor, amelyben egy pénzügyi alkalmazás és a műveleti alkalmazás több rekordot küld ugyanannak a Dataverse kötegnek.

A pénzügyek és a műveletek alkalmazás minden tranzakcióhoz egy kötegben adatokat hoz létre és küld el kötegként Dataverse. Ha ugyanannak a tranzakciónak két rekordja van létrehozva, és egymásra hivatkoznak, akkor egy hibaüzenet jelenik meg, amely hasonlít a pénzügyek és műveletek alkalmazás következő példához:

Nem lehet adatokat írni az entitás aaa_fundingsources. Nem lehet keresni ebecsfs_contracts értékekkel {PC00...}. Az értékeket aaa_fundingsources nem lehet keresni {PC00...}. A írás aaa_fundingsources hibaüzenettel, kivétellel: a távoli kiszolgáló hibát adott vissza: (400) Hibás kérés.

A probléma megoldásához hozza létre az entitáskapcsolatokat a Pénzügy és műveletek alkalmazásban, ezzel jelezve, hogy a két entitás egymással kapcsolatban van, és a kapcsolódó rekordokat ugyanabban a tranzakcióban kezeli a rendszer.

Hibaüzenetek részletes naplózásának engedélyezése

A pénzügyek és műveletek alkalmazásában a környezettel kapcsolatos hibák előfordulhatnak Dataverse . Lehet, hogy a hibaüzenet nem tartalmazza az üzenet teljes szövegét vagy más fontos adatokat. Ha további információkat is meg szeretné kapni, a részletes naplózás engedélyezéséhez be lehet állítani a DualWriteProjectConfigurationEntity entitásban a pénzügyi és műveleti alkalmazások minden projektkonfigurációjában jelen van az IsDebugMode jelzőt.

  1. Nyissa meg a DualWriteProjectConfigurationEntity entitást az Excel-bővítmény használatával. A bővítmény alkalmazásához engedélyezze a tervező módot a pénzügyek és műveletek Excel bővítményében, és adja hozzá a DualWriteProjectConfigurationEntity adatokat egy munkalaphoz. További tájékoztatás az entitásadatok megtekintése és frissítése az Excel alkalmazással.
  2. Állítsa Az IsDebugMode jelzőt Igen beállításra a projektben.
  3. Futtassa a forgatókönyvet.
  4. A részletes naplók a DualWriteErrorLog táblában érhetők el. Az adatoknak a táblaböngészőben való ki- és leásásához használja a következő URL-címet: https://XXXaos.cloudax.dynamics.com/?mi=SysTableBrowser&tableName=DualWriteErrorLog
  5. Ha több naplót is rögzítenie kell hibakeresési módban, telepítse a frissítést a KB 4595434 (Fix for blank values being propagated in Dual write live sync).

Hiba a vevő vagy kapcsolattartó címének hozzáadásakor

Előfordulhat, hogy a következő hibaüzenet jelenik meg, amikor megpróbál címet adni egy vevőnek vagy kapcsolattartónak a pénzügyi és műveleti alkalmazásokban, Dataverse illetve:

Nem lehet adatokat írni az entitás msdyn_partypostaladdresses. A DirPartyPostalAddressLocationCDSEntity írása sikertelen volt a Kérés hibaüzenettel, badRequest állapotkóddal és CDS-hibakóddal: 0x80040265 válaszüzenet: Hiba történt a könyvtárban. Már létezik olyan rekord, amely rendelkezik a Helyazonosító attribútumértékekkel. Az entitáskulcs Helyazonosító kulcsához az attribútumok ezen halmaza egyedi értékeket kell tartalmazni. Válassza ki az egyedi értékeket, majd próbálkozzon újra.

A probléma megoldásához telepítse a kettős írású csomagverziót (2.2.2.60), hogy a címtáblában található kulcsokat a következő táblázatban látható módon definiálja a program.

Tulajdonság Érték
Megjelenítendő név Helykulcs
Név msdyn_locationkey
Mezők msdyn_locationid,szülőazonosító
Állapot Aktív
Rendszerfeladat Üres

Hiba történt a vevő hozzáadásakor a következőben: Dataverse

A következő hibaüzenet jelenhet meg, amikor vevőt próbál hozzáadni a Dataverse alkalmazáshoz:

"RecordError0":"Írási hiba történt a V3 entitás esetében, ismeretlen kivétellel - Nem található félrekord a "Szervezet" típusú félhez}.

Amikor létrejön egy vevő a Dataverse alkalmazásban, új félszámot generál a rendszer. A hibaüzenet akkor jelenik meg, amikor az ügyfélrekord és a fél együtt szinkronizálva van a pénzügyi és műveleti alkalmazásokkal, de már van egy olyan vevőrekord, amelynél más félszám van.

A probléma megoldásához keresse meg a vevőt a félre vonatkozó kereséssel. Ha a vevő nem létezik, hozzon létre egy új vevőrekordot. Ha a vevő létezik, a meglévő féllel hozza létre az új vevőrekordot.

Hiba történt az új vevő, szállító vagy kapcsolattartó létrehozásakor a Dataverse alkalmazásban

Amikor a Dataverse alkalmazáshoz egy új vevő, szállító vagy kapcsolattartó címét próbálja meg hozzáadni, a következő hibaüzenet jelenhet meg:

Egy fél típusa nem frissíthető "DirOrganization" típusról "DirPerson" típusra. Ehelyett a meglévő fél törlését, majd az új típussal végrehajtott beszúrásokat kell végrehajtani.

A Dataverse tábla egy számsorozatot msdyn_party . Amikor létrehoznak egy számlát Dataverse, új fél jön létre ( például Szervezet típusú Fél-001 ). Ezt az adatot a pénzügyi és műveleti alkalmazásnak küldi a rendszer. Ha alaphelyzetbe Dataverse állítja a környezetet, Dataverse vagy a pénzügyi és műveleti környezet másik környezethez kapcsolódik, Dataverse majd létrejön egy új kapcsolattartó-rekord, akkor a Fél-001 jelű új érték jön létre. A létrehozott félrekord most a Személy típusú Fél-001lesz . Az adatok szinkronizálása során a pénzügyi és műveleti alkalmazások a megelőző hibaüzenetet mutatják, mivel a Szervezet típusú Fél-001 félrekord már létezik.

A probléma megoldásához Dataverse módosítsa másik msdyn_partynumber tábla msdyn_party automatikus számsorozatra az automatikus számsorozatot.

Vevői vagy kapcsolattartói leképezések teljesítményével kapcsolatos probléma

Lehet, hogy a getEntityDataSourceToFieldMapping metódus ( a CustCustomerV3Entity entitásban) és a getEntityDataSourceToFieldMapping metódus ( smmContactPersonCDSV2Entityentitás) testreszabásával kis mértékben javíthatja a vevők és kapcsolattartók élő szinkronizálásának teljesítményét. Ezek a testreszabások csökkentik a BusinessEventsDefinition táblában található rekordok számát. A rekordok számának ez a csökkenése viszont csökkenti a bekövetkező események számát.

A CustCustomerV3Entity entitás getEntityDataSourceToFieldMapping metódusa ellenőrzi, hogy a vevő e-mail címének vagy postai címének frissítése üzleti eseményeket vált ki, és így a frissített adatokat el kell küldeni Dataverse. Ha nem használ minden mezőt, és nincs szüksége az információra kettős írásban, fűzzön hozzászólást a metódus megfelelő soraihoz. Minden, ezzel a módszerrel hozzáadott mező és tábla rekordot ad hozzá a BusinessEventsDefinition táblához a nyomon követhető tábla és a nyomon követhető entitás kombinációjához.

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

Hasonló módon a getEntityDataSourceToFieldMapping metódus az smmContactPersonCDSV2Entity entitásban győződjön meg róla, hogy a kapcsolattartó e-mail címének vagy postai címének bármilyen frissítése üzleti eseményeket vált ki, Dataverse így a frissített adatokat el kell küldeni. A metódusban hozzászólhat a nem használt mezők soraihoz.

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

A módszerek frissítése után kövesse az alábbi lépéseket.

  1. Szinkronizálja az adatbázist, és hozza létre az alkalmazást.
  2. Állítsa le az összes kettős írású leképezését az smmContactPersonCDSV2Entity ésCustCustomerV3Entity entitáson.
  3. Indítsa el a leképezéseket. Az smmContactPersonCDSV2Entityés CustCustomerV3Entityentitásban és a BusinessEventsDefinition táblában kevesebb rekordnak kell lennie, és a teljesítmény kis mértékben javítható.