Az Árfolyam-különbségek kiszámítása jelentés (12302) váratlanul futtatható, miután futtatta az Árfolyam módosítása kötegelt feladatot egy bankszámlán a Microsoft Dynamics NAV 2009 R2 lengyel verziójában

Hatókör
Microsoft Dynamics NAV 2009 R2

Ez a cikk a lengyel (pl.) területi beállításhoz használt Microsoft Dynamics NAV szolgáltatásra vonatkozik.

Tünetek

Feltételezzük, hogy egy bankszámla Árfolyam módosítása kötegelt feladatát a Microsoft Dynamics NAV 2009 R2 lengyel verziójában futtatja. Ebben az esetben váratlanul futtathatja az Árfolyameltérés kiszámítása jelentést (12302) a bankszámlára.

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. Módosítsa a kódot a Bankszámla tábla Mezők csoportjában (270) a következők szerint:
    Meglévő kód

    ...
    { 111 ; ;SWIFT Code ;Code20 ;CaptionML=ENU=SWIFT Code }
    
    // Delete the following lines.
    { 12301; ;Cash/Bank Report Mandatory;Boolean ;OnValidate=VAR
    CashBankReport@1170000 : Record 12300;
    BEGIN
    IF NOT "Cash/Bank Report Mandatory" THEN BEGIN
    BankAccLedgEntry.SETCURRENTKEY("Bank Account No.","Cash/Bank Report Cons. No.","Cash/Bank Report Position");
    BankAccLedgEntry.SETRANGE("Bank Account No.","No.");
    BankAccLedgEntry.SETFILTER("Cash/Bank Report Cons. No.",'<>0');
    IF BankAccLedgEntry.FIND('-') THEN
    ERROR(Text12300,"Cash/Bank Report Mandatory",FIELDNAME("Cash/Bank Report Mandatory"),
    BankAccLedgEntry.TABLENAME,CashBankReport.TABLENAME);
    END;
    // End of the lines.
    
    END;
    ...
    

    Helyettesítő kód

    ...
    { 111 ; ;SWIFT Code ;Code20 ;CaptionML=ENU=SWIFT Code }
    
    // Add the following lines.
    { 12301; ;Cash/Bank Report Mandatory;Boolean ;OnValidate=BEGIN
    CheckCashBankRepMandatory;
    // End of the lines.
    
    END;
    ...
    
  2. Módosítsa a kódot a Bankszámla táblában (270) a CheckCashBankRepMandatory függvényben a következők szerint:
    Meglévő kód

    ...
    BEGIN
    ...
    

    Helyettesítő kód

    ...
    // Add the following lines.
    LOCAL PROCEDURE CheckCashBankRepMandatory@1170000();
    VAR
    CashBankReport@1170000 : Record 12300;
    ExchRateAdjmtReg@1170001 : Record 86;
    BEGIN
    IF "Cash/Bank Report Mandatory" THEN BEGIN
    IF HasExchRateAdjmtReg THEN
    RaiseCashBankRepErr(ExchRateAdjmtReg.TABLECAPTION)
    END ELSE
    IF HasCashBankLedgEntries THEN
    RaiseCashBankRepErr(CashBankReport.TABLECAPTION);
    END;
    LOCAL PROCEDURE HasExchRateAdjmtReg@1170006() : Boolean;
    VAR
    ExchRateAdjmtReg@1170000 : Record 86;
    BEGIN
    ExchRateAdjmtReg.SETRANGE("Account Type",ExchRateAdjmtReg."Account Type"::"Bank Account");
    ExchRateAdjmtReg.SETRANGE("Account No.","No.");
    EXIT(NOT ExchRateAdjmtReg.ISEMPTY);
    END;
    LOCAL PROCEDURE HasCashBankLedgEntries@1170007() : Boolean;
    VAR
    BankAccLedgEntry@1170000 : Record 271;
    BEGIN
    IF NOT BankAccLedgEntry.RECORDLEVELLOCKING THEN
    BankAccLedgEntry.SETCURRENTKEY("Bank Account No.","Cash/Bank Report Cons. No.","Cash/Bank Report Position");
    BankAccLedgEntry.SETRANGE("Bank Account No.","No.");
    BankAccLedgEntry.SETFILTER("Cash/Bank Report Cons. No.",'<>0');
    EXIT(NOT BankAccLedgEntry.ISEMPTY);
    END;
    LOCAL PROCEDURE RaiseCashBankRepErr@1170001(RelatedTableCaption@1170000 : Text[80]);
    BEGIN
    ERROR(
    Text12300,"Cash/Bank Report Mandatory",FIELDCAPTION("Cash/Bank Report Mandatory"),
    BankAccLedgEntry.TABLECAPTION,RelatedTableCaption)
    END;
    // End of the lines.
    
    BEGIN
    ...
    
  3. Módosítsa a kódot az Árfolyamok módosítása jelentés (595) 3. tételszám szakaszában a következők szerint:
    Meglévő kód

    ...
    DataItemTable=Table270;
    
    // Delete the following line.
    DataItemTableView=SORTING(Bank Acc. Posting Group);
    
    OnPreDataItem=BEGIN
    ...
    

    Helyettesítő kód

    ...
    DataItemTable=Table270;
    
    // Add the following lines.
    DataItemTableView=SORTING(Bank Acc. Posting Group)
    WHERE(Cash/Bank Report Mandatory=FILTER(No));
    // End of the lines.
    
    OnPreDataItem=BEGIN
    ...
    
  4. Módosítsa az Árfolyam-különbségek kiszámítása jelentés (12302) 1. adattétel szakaszában szereplő kódot a következők szerint:
    Meglévő kód

    ...
    DataItemTable=Table270;
    OnPreDataItem=BEGIN
    ...
    

    Helyettesítő kód

    ...
    DataItemTable=Table270;
    
    // Add the following lines.
    DataItemTableView=SORTING(No.)
    WHERE(Cash/Bank Report Mandatory=FILTER(Yes));
    // End of the lines.
    
    OnPreDataItem=BEGIN
    ...
    

          

Előfeltételek

A gyorsjavítás alkalmazásához a Microsoft Dynamics NAV 2009 R2 lengyel verziójának kell telepítve 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.