A Szállítói Kifizetések javaslata jelentés (393) váratlanul kifizetést javasol egy negatív egyenleggel rendelkező szállító számára, amikor a Szállítói prioritások beállítás engedélyezve van a Microsoft Dynamics NAV 2009 R2 rendszerben

Hatókör
Dynamics NAV 2009

Ez a cikk a Microsoft Dynamics NAV-ra vonatkozik minden országban és minden nyelvi beállításban.

Tünetek

Feltételezzük, hogy a Microsoft Dynamics NAV 2009 R2 rendszerben 2623584 gyorsjavítást alkalmaz. Ha futtatja a Szállítói Kifizetések javaslata jelentést (393), amelyben engedélyezve van a Szállítói prioritások beállítás, a Szállítói Kifizetések javaslata jelentés (393) kifizetést javasol egy olyan szállító számára, amelynek az egyenlege váratlanul negatív lesz.
  A 2623584 gyorsjavításról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2623584 A "Szállítói Kifizetések javasolása" jelentés (393) váratlanul negatív egyenleget javasol kifizetésként, ha a Microsoft Dynamics NAV szállítói prioritásait használja

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 következő szervizcsomagját, illetve a Microsoft Dynamics NAV következő 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. Vegyen fel egy globális változót a Szállítói Kifizetések javaslata jelentésbe (393), majd adja meg a változót az alábbiak szerint:

    • Név: VendorBalance@1065
    • DataType: Decimal
  2. Módosítsa a kódot a Szállítói - UtánutániBeszerzésRekord eseményindítóban a Szállítói Kifizetések javaslata jelentésben (393) a következők szerint:
    Meglévő kód

    ...
    // Delete the following lines.
    IF StopPayments THEN
    CurrReport.BREAK;
    Window.UPDATE(1,"No.");
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    // End of the lines.
    ...
    

    Helyettesítő kód

    ...
    // Add the following lines.
    CLEAR(VendorBalance);
    CALCFIELDS("Balance (LCY)");
    VendorBalance := "Balance (LCY)";
    IF StopPayments THEN
    CurrReport.BREAK;
    Window.UPDATE(1,"No.");
    IF VendorBalance > 0 THEN BEGIN
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    END;
    // End of the lines.
    ...
    
  3. Módosítsa a kódot a Szállító - OnPostDataItem eseményindítóban a Szállítói Kifizetések javaslata jelentésben (393) a következők szerint:
    Meglévő kód

    ...
    COPYFILTERS(Vend2);
    SETCURRENTKEY(Priority);
    SETRANGE(Priority,0);
    IF FIND('-') THEN
    REPEAT
    
    // Delete the following lines.
    Window.UPDATE(1,"No.");
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    // End of the lines.
    
    UNTIL (NEXT = 0) OR StopPayments;
    END;
    IF UsePaymentDisc AND NOT StopPayments THEN BEGIN
    RESET;
    COPYFILTERS(Vend2);
    Window.OPEN(Text007);
    IF FIND('-') THEN
    REPEAT
    
    // Delete the following lines.
    Window.UPDATE(1,"No.");
    PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
    GetVendLedgEntries(TRUE,TRUE);
    GetVendLedgEntries(FALSE,TRUE);
    CheckAmounts(TRUE);
    UNTIL (NEXT = 0) OR StopPayments;
    END;
    ClearNegative;
    // End of the lines.
    
    JnlLineDim.LOCKTABLE;
    ...
    

    Helyettesítő kód

    ...
    COPYFILTERS(Vend2);
    SETCURRENTKEY(Priority);
    SETRANGE(Priority,0);
    IF FIND('-') THEN
    REPEAT
    
    // Add the following lines.
    CLEAR(VendorBalance);
    CALCFIELDS("Balance (LCY)");
    VendorBalance := "Balance (LCY)";
    IF VendorBalance > 0 THEN BEGIN
    Window.UPDATE(1,"No.");
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    END;
    // End of the lines.
    
    UNTIL (NEXT = 0) OR StopPayments;
    END;
    IF UsePaymentDisc AND NOT StopPayments THEN BEGIN
    RESET;
    COPYFILTERS(Vend2);
    Window.OPEN(Text007);
    IF FIND('-') THEN
    REPEAT
    
    // Add the following lines.
    CLEAR(VendorBalance);
    CALCFIELDS("Balance (LCY)");
    VendorBalance := "Balance (LCY)";
    Window.UPDATE(1,"No.");
    PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
    IF VendorBalance > 0 THEN BEGIN
    GetVendLedgEntries(TRUE,TRUE);
    GetVendLedgEntries(FALSE,TRUE);
    CheckAmounts(TRUE);
    ClearNegative;
    END;
    UNTIL (NEXT = 0) OR StopPayments;
    END ELSE
    IF FIND('-') THEN
    REPEAT
    ClearNegative;
    UNTIL NEXT = 0;
    // End of the lines.
    
    JnlLineDim.LOCKTABLE;
    ...
    
  4. Módosítsa a ClearNegative függvény kódját a Szállítói Kifizetések javaslata jelentésben (393) a következők szerint:
    Meglévő kód

    ...
    CLEAR(PayableVendLedgEntry);
    PayableVendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
    WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
    TempCurrency.Code := PayableVendLedgEntry."Currency Code";
    CurrencyBalance := 0;
    
    // Delete the following line.
    PayableVendLedgEntry2 := PayableVendLedgEntry;
    
    IF TempCurrency.INSERT THEN BEGIN
    PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
    REPEAT
    CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
    UNTIL PayableVendLedgEntry.NEXT = 0;
    IF CurrencyBalance < 0 THEN
    PayableVendLedgEntry.DELETEALL;
    PayableVendLedgEntry.SETRANGE("Currency Code");
    PayableVendLedgEntry := PayableVendLedgEntry2;
    END;
    END;
    PayableVendLedgEntry.RESET;
    ...
    

    Helyettesítő kód

    ...
    CLEAR(PayableVendLedgEntry);
    PayableVendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
    WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
    TempCurrency.Code := PayableVendLedgEntry."Currency Code";
    CurrencyBalance := 0;
    IF TempCurrency.INSERT THEN BEGIN
    PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
    REPEAT
    CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
    UNTIL PayableVendLedgEntry.NEXT = 0;
    IF CurrencyBalance < 0 THEN
    PayableVendLedgEntry.DELETEALL;
    PayableVendLedgEntry.SETRANGE("Currency Code");
    PayableVendLedgEntry := PayableVendLedgEntry2;
    END;
    END;
    PayableVendLedgEntry.RESET;
    ...
    

Előfeltételek

A gyorsjavítás alkalmazásához a Microsoft Dynamics NAV 2009 R2 rendszernek telepítve kell lennie.

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.