Az alkalmazás bejegyzései nem törlődnek a várt módon, amikor a Microsoft Dynamics NAV 2009 görög verziójában szállító vagy vevő számláira alkalmazott szimulációs bejegyzéseket törli

Hatókör
Dynamics NAV 2009

Ez a cikk a Microsoft Dynamics NAV görög (gr) területi beállításra használt verziójára vonatkozik.

Tünetek

Tegyük fel, hogy töröl egy olyan szimulációs bejegyzést, amely a Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) görög verziójának Szimulációs regisztrációk párbeszédpaneljén egy szállító vagy vevő számlájára lett alkalmazva. Ebben az esetben a megfelelő alkalmazásbejegyzés nem törlődik. Emiatt amikor próbamérleg-jelentést futtat a szállítóhoz vagy a vevőhöz, az alkalmazásbejegyzés váratlanul bekerül a számításba. Emellett ez a probléma akkor is előfordul, amikor főkönyvi jelentést futtat a szállító vagy a vevő számára.
Ez a probléma a következő termékekben fordul elő:

  • A Microsoft Dynamics NAV 2009 R2 görög verziója
  • A Microsoft Dynamics NAV 2009 Service Pack (SP1) görög verziója

      

Megoldás

Gyorsjavítással kapcsolatos információk

A Microsoft már elérhető egy támogatott gyorsjavítást kínál. Ez azonban csak a cikkben ismertetett probléma megoldására szolgál. Csak olyan rendszerekre alkalmazza, amelyek tapasztalják ezt a problémát. Előfordulhat, hogy a gyorsjavítás további tesztelésen eshet át. Ezért ha nem érinti súlyosan ez a probléma, azt javasoljuk, hogy várja meg a Microsoft Dynamics NAV 2009 következő szervizcsomagját, illetve a Microsoft Dynamics NAV következő olyan verzióját, amely tartalmazza ezt a gyorsjavítást.

Megjegyzés: Különleges esetekben a támogatási hívások szokásos díjai törölhetők, ha a Microsoft Dynamics és a kapcsolódó termékek terméktámogatási szakértője úgy ítéli meg, hogy egy adott frissítés megoldja a problémát. A szokásos támogatási költségek olyan további támogatási kérdések és problémák esetén merülnek fel, amelyek nem felelnek meg a kérdéses frissítés feltételeinek.

            
          

Telepítési információk

A Microsoft csak illusztrációs céllal kínál programozási példákat, kifejezett vagy vélelmezett garancia nélkül. Ez magában foglalja, de nem kizárólagosan a forgalmazhatóságra vagy az adott célra való alkalmasságra vonatkozó vélelmezett garanciát. Ez a cikk feltételezi, hogy ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek elmagyarázni egy adott eljárás funkcionalitását, de nem módosítják a példákat, hogy további funkciókat biztosítsanak, és nem építenek ki eljárásokat az egyéni igényekre.

Megjegyzés: A gyorsjavítás telepítése előtt győződjön meg arról, hogy a Microsoft Navision-ügyfél összes felhasználója kijelentkezett a rendszerről. Ide tartoznak a Microsoft Navision Application Services (NAS) kliens felhasználói is. A gyorsjavítás telepítésekor csak Ön lehet az, aki be van jelentkezve.

A gyorsjavítás implementálásához fejlesztői licenccel kell rendelkeznie.

Javasoljuk, hogy a Windows Bejelentkezések ablakában vagy az Adatbázis-bejelentkezések ablakban látható felhasználói fiókhoz rendelje a "SUPER" szerepkörazonosítót. Ha a felhasználói fiókhoz nem rendelhető a "SUPER" szerepkörazonosító, ellenőriznie kell, hogy a felhasználói fiók rendelkezik-e az alábbi engedélyekkel:

  • A módosítani kívánt objektum Módosítás engedélye.
  • Végrehajtási engedély az 5210-es rendszerazonosítójú objektumhoz és a 9015-ös rendszerobjektum-azonosítójú objektumhoz.

                
Megjegyzés: Az adattárakhoz csak akkor kell jogokkal rendelkeznie, ha adatokat kell javítást végeznie.

Kódváltozások

Megjegyzés: Mindig ellenőrzött környezetben tesztelje a kódjavításokat, mielőtt telepítené őket az üzemi számítógépekre.
A probléma megoldásához hajtsa végre az alábbi lépéseket:

  1. Hozzon létre egy új helyi változót a DeleteReg függvényben a szimulációkezelési kódegységben (16755), majd adja meg a változót az alábbiak szerint:

    • Név: SimCust2
    • DataType: Record
    • Altípus: 16757
  2. Hozzon létre egy új helyi változót a DeleteReg függvényben a szimulációkezelési kódegységben (16755), majd adja meg a változót az alábbiak szerint:

    • Név: SimVend2
    • DataType: Record
    • Altípus: 16759
  3. Hozzon létre egy új helyi változót a DeleteReg függvényben a szimulációkezelési kódegységben (16755), majd adja meg a változót az alábbiak szerint:

    • Név: SimDtldCust2
    • DataType: Record
    • Altípus: 16758
  4. Hozzon létre egy új helyi változót a DeleteReg függvényben a szimulációkezelési kódegységben (16755), majd adja meg a változót az alábbiak szerint:

    • Név: SimDtldVend2
    • DataType: Record
    • Altípus: 16760
  5. Módosítsa a kódot a DeleteReg függvényben a szimulációkezelési kódegységben (16755) a következők szerint:
    Meglévő kód: 1

    ...
    IF SimCust.FIND('-') THEN BEGIN
    REPEAT
    WITH SimDtldCust DO BEGIN
    
    // Delete the following lines. 
    SimDtldCust.SETRANGE("Cust. Ledger Entry No.",SimCust."Entry No.");
    IF SimDtldCust.FIND('-') THEN BEGIN
    REPEAT
    SimDtldCust.DELETE;
    UNTIL SimDtldCust.NEXT = 0;
    END;
    // End of the lines. 
    
    END;
    WITH LedgEntryDim DO BEGIN
    LedgEntryDim.SETRANGE("Table ID",16757);
    ...
    

    Helyettesítő kód 1

    ...
    IF SimCust.FIND('-') THEN BEGIN
    REPEAT
    WITH SimDtldCust DO BEGIN
    
    // Add the following lines.
    RESET;
    SETCURRENTKEY("Cust. Ledger Entry No.","Entry Type","Posting Date");
    SETRANGE("Cust. Ledger Entry No.",SimCust."Entry No.");
    IF FINDSET THEN
    REPEAT
    IF "Entry Type" = "Entry Type"::"Initial Entry" THEN
    DELETE
    ELSE BEGIN
    SimDtldCust2.SETRANGE("Transaction No.","Transaction No.");
    SimDtldCust2.SETFILTER("Entry Type",'>%1',"Entry Type"::"Initial Entry");
    IF SimDtldCust2.FINDSET THEN
    REPEAT
    IF (SimDtldCust2."Cust. Ledger Entry No." <> SimCust."Entry No.") AND
    (SimDtldCust2."Entry Type" = SimDtldCust2."Entry Type"::Application) 
    THEN BEGIN
    SimCust2.GET(SimDtldCust2."Cust. Ledger Entry No.");
    SimCust2."Accepted Payment Tolerance" := 0;
    IF NOT SimCust2.Open THEN BEGIN
    SimCust2.Open := TRUE;
    SimCust2."Closed by Entry No." := 0;
    SimCust2."Closed at Date" := 0D;
    SimCust2."Closed by Amount" := 0;
    SimCust2."Closed by Amount (LCY)" := 0;
    SimCust2."Closed by Currency Code" := '';
    SimCust2."Closed by Currency Amount" := 0;
    SimCust2."Pmt. Disc. Given (LCY)" := 0;
    SimCust2."Pmt. Tolerance (LCY)" := 0;
    END;
    SimCust2.MODIFY;
    END;
    SimDtldCust2.DELETE;
    UNTIL SimDtldCust2.NEXT = 0;
    END;
    UNTIL NEXT = 0;
    // End of the lines. 
    
    END;
    WITH LedgEntryDim DO BEGIN
    LedgEntryDim.SETRANGE("Table ID",16757);
    ...
    

    Meglévő 2. kód

    ...
    IF SimVend.FIND('-') THEN BEGIN
    REPEAT
    WITH SimDtldVend DO BEGIN
    
    // Delete the following lines.
    SimDtldVend.SETRANGE("Vendor Ledger Entry No.",SimVend."Entry No.");
    IF SimDtldVend.FIND('-') THEN BEGIN
    REPEAT
    SimDtldVend.DELETE;
    UNTIL SimDtldVend.NEXT = 0;
    END;
    // End of the lines.
    
    END;
    WITH LedgEntryDim DO BEGIN
    LedgEntryDim.SETRANGE("Table ID",16759);
    ...
    

    2-es helyettesítő kód

    ...
    IF SimVend.FIND('-') THEN BEGIN
    REPEAT
    WITH SimDtldVend DO BEGIN
    
    // Add the following lines.
    RESET;
    SETCURRENTKEY("Vendor Ledger Entry No.","Entry Type","Posting Date");
    SETRANGE("Vendor Ledger Entry No.",SimVend."Entry No.");
    IF FINDSET THEN
    REPEAT
    IF "Entry Type" = "Entry Type"::"Initial Entry" THEN
    DELETE
    ELSE BEGIN
    SimDtldVend2.SETRANGE("Transaction No.","Transaction No.");
    SimDtldVend2.SETFILTER("Entry Type",'>%1',"Entry Type"::"Initial Entry");
    IF SimDtldVend2.FINDSET THEN
    REPEAT
    IF (SimDtldVend2."Vendor Ledger Entry No." <> SimVend."Entry No.") AND
    (SimDtldVend2."Entry Type" = SimDtldVend2."Entry Type"::Application)
    THEN BEGIN
    SimVend2.GET(SimDtldVend2."Vendor Ledger Entry No.");
    SimVend2."Accepted Payment Tolerance" := 0;
    IF NOT SimVend2.Open THEN BEGIN
    SimVend2.Open := TRUE;
    SimVend2."Closed by Entry No." := 0;
    SimVend2."Closed at Date" := 0D;
    SimVend2."Closed by Amount" := 0;
    SimVend2."Closed by Amount (LCY)" := 0;
    SimVend2."Closed by Currency Code" := '';
    SimVend2."Closed by Currency Amount" := 0;
    SimVend2."Pmt. Disc. Rcd.(LCY)" := 0;
    SimVend2."Pmt. Tolerance (LCY)" := 0;
    END;
    SimVend2.MODIFY;
    END;
    SimDtldVend2.DELETE;
    UNTIL SimDtldVend2.NEXT = 0;
    END;
    UNTIL NEXT = 0;
    // End of the lines.
    
    END;
    WITH LedgEntryDim DO BEGIN
    LedgEntryDim.SETRANGE("Table ID",16759);
    ...
    

            
          

Előfeltételek

A gyorsjavítás alkalmazásához az alábbi termékek egyikének telepítve kell lennie:

  • A Microsoft Dynamics NAV 2009 R2 görög verziója
  • A Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) görög verziója

Eltávolítással kapcsolatos információk

Ez a gyorsjavítás nem távolítható el.

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.

Megjegyzés: Ez egy "GYORS KÖZZÉTÉTELŰ" cikk, amelyet közvetlenül a Microsoft támogatási szervezete készített. A dokumentumban szereplő információkat adott formában bocsátjuk rendelkezésre, a felmerülő problémákra adott válaszként. A rendelkezésre bocsátás gyorsasága következtében az anyagok sajtóhibákat tartalmazhatnak, és bármikor, előzetes értesítés nélkül felülvizsgálhatók. További szempontokat a használati feltételekben talál.