Microsoft Dynamics NAV nezaznamenává žádné změny do protokolu změn, když použijete funkci Dimensions-Multiple ve skupině účtů

Platí pro
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1

ČLÁNKY S RYCHLÝM PUBLIKOVÁNÍM POSKYTUJÍ INFORMACE PŘÍMO OD ORGANIZACE PODPORY MICROSOFTU. ZDE OBSAŽENÉ INFORMACE JSOU VYTVÁŘENY JAKO REAKCE NA NOVÁ NEBO JEDINEČNÁ TÉMATA NEBO JSOU URČENY K DOPLNĚNÍ DALŠÍCH INFORMACÍ ZNALOSTNÍ BÁZE KNOWLEDGE BASE.

Tento článek platí pro Microsoft Dynamics NAV pro všechny země a všechna jazyková národní prostředí.

Příznaky

Předpokládejme, že povolíte funkci Aktivovaný protokol změn k zaznamenání operace vložení, operace úpravy a operace zrušení pro všechna pole v tabulce Výchozí dimenze (352) v aplikaci Microsoft Dynamics NAV 2009. Pokud určíte výchozí dimenze a hodnoty dimenzí pro skupinu účtů pomocí funkce Dimenze-násobek , Microsoft Dynamics NAV nezaznamená změny do protokolu změn.

K tomuto problému dochází u následujících produktů:

  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1

Řešení

Informace o opravě hotfix

Od Microsoftu je teď k dispozici podporovaná oprava hotfix. Účelem je však pouze vyřešení problému, který je popsán v tomto článku. Aplikujte ho jenom na systémy, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může projít dalším testováním. Pokud se vás tedy tento problém vážně netýká, doporučujeme počkat na další aktualizaci Service Pack pro produkt Microsoft Dynamics NAV 2009 nebo další verzi aplikace Microsoft Dynamics NAV, která tuto opravu hotfix obsahuje.

Poznámka: Ve zvláštních případech mohou být poplatky, které jsou obvykle účtovány za telefonická hovory podpory, zrušeny, pokud pracovník technické podpory pro řešení Microsoft Dynamics a související produkty zjistí, že konkrétní aktualizace vyřeší váš problém. Další dotazy a problémy týkající se podpory, které se netýkají této konkrétní opravy, podléhají běžným sazbám za podporu.

            
          

Informace o instalaci

Společnost Microsoft poskytuje příklady programování pouze pro ilustraci, bez záruky, ať už vyjádřené nebo předpokládané. To zahrnuje, ale není omezeno na, předpokládané záruky prodejnosti nebo vhodnosti pro konkrétní účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předváděn, a s nástroji, které se používají k vytváření a ladění procedur. Pracovníci technické podpory Microsoftu vám můžou pomoct vysvětlit funkčnost určitého postupu, ale nebudou tyto příklady upravovat za účelem poskytování dalších funkcí nebo konstrukce procedur, které by splňovaly vaše konkrétní požadavky.

Poznámka: Před instalací této opravy hotfix ověřte, zda jsou všichni uživatelé klienta Microsoft Navision odhlášeni ze systému. To zahrnuje i uživatele klienta Microsoft Navision Application Services (NAS). Měli byste být jediným klientským uživatelem, který je přihlášen při implementaci této opravy hotfix.

K implementaci této opravy hotfix musíte mít vývojářskou licenci.

Doporučujeme, aby uživatelské účtu v okně Windows Přihlášení nebo v okně Přihlášení k databázi bylo přiřazeno ID role "SUPER". Pokud nelze uživatelskému účtu přiřadit ID role "SUPER", je nutné ověřit, zda má uživatelský účet následující oprávnění:

  • Oprávnění k úpravám objektu, který budete měnit.
  • Oprávnění ke spuštění pro objekt s ID systémového objektu 5210 a pro objekt s ID systémového objektu 9015.

                
Poznámka: K úložištím dat nemusíte mít práva, ledaže byste museli provádět opravu dat.

Změny kódu

Poznámka: Před použitím oprav v produkčních počítačích vždy otestujte opravy kódu v kontrolovaném prostředí.
Chcete-li nainstalovat tuto opravu hotfix, postupujte takto:

  1. Přidejte následující místní proměnnou do triggeru SetCommonDefaultDim ve formuláři "Default Dimensions-Multiple" (542) a poté zadejte proměnnou takto:

    • Název: ChangeLogMgt
    • Datový typ: Codeunit
    • Podtyp: Správa protokolu změn
  2. Přidejte následující místní proměnnou do triggeru SetCommonDefaultDim ve formuláři "Default Dimensions-Multiple" (542) a poté zadejte proměnnou takto:

    • Název: RecRef
    • Datový typ: RecordRef
  3. Přidejte následující místní proměnnou do triggeru SetCommonDefaultDim ve formuláři "Default Dimensions-Multiple" (542) a poté zadejte proměnnou takto:

    • Název: xRecRef
    • Datový typ: RecordRef
  4. Změňte kód v triggeru SetCommonDefaultDim ve formuláři "Default Dimensions-Multiple" (542) následujícím způsobem:
    Existující kód

    ...
    SETRANGE(
    "Multi Selection Action","Multi Selection Action"::Delete);
    IF FIND('-') THEN
    REPEAT
    IF TempDefaultDim3.FIND('-') THEN
    REPEAT
    IF DefaultDim.GET(
    TempDefaultDim3."Table ID",TempDefaultDim3."No.","Dimension Code")
    
    // Delete the following line.
    THEN
    
    DefaultDim.DELETE(TRUE);
    UNTIL TempDefaultDim3.NEXT = 0;
    UNTIL NEXT = 0;
    SETRANGE(
    "Multi Selection Action","Multi Selection Action"::Change);
    IF FIND('-') THEN
    REPEAT
    IF TempDefaultDim3.FIND('-') THEN
    REPEAT
    IF DefaultDim.GET(
    TempDefaultDim3."Table ID",TempDefaultDim3."No.","Dimension Code")
    THEN BEGIN
    DefaultDim."Dimension Code" := "Dimension Code";
    DefaultDim."Dimension Value Code" := "Dimension Value Code";
    DefaultDim."Value Posting" := "Value Posting";
    DefaultDim.MODIFY(TRUE);
    END ELSE BEGIN
    DefaultDim.INIT;
    DefaultDim."Table ID" := TempDefaultDim3."Table ID";
    DefaultDim."No." := TempDefaultDim3."No.";
    DefaultDim."Dimension Code" := "Dimension Code";
    DefaultDim."Dimension Value Code" := "Dimension Value Code";
    DefaultDim."Value Posting" := "Value Posting";
    DefaultDim.INSERT(TRUE);
    END;
    UNTIL TempDefaultDim3.NEXT = 0;
    UNTIL NEXT = 0;
    ...
    
    

    Náhradní kód

    ...
    SETRANGE(
    "Multi Selection Action","Multi Selection Action"::Delete);
    IF FIND('-') THEN
    REPEAT
    IF TempDefaultDim3.FIND('-') THEN
    REPEAT
    IF DefaultDim.GET(
    TempDefaultDim3."Table ID",TempDefaultDim3."No.","Dimension Code")
    
    // Add the following lines.
    THEN BEGIN
    xRecRef.GETTABLE(DefaultDim);
    
    DefaultDim.DELETE(TRUE);
    
    // Add the following lines.
    ChangeLogMgt.LogDeletion(xRecRef);
    END;
    
    UNTIL TempDefaultDim3.NEXT = 0;
    UNTIL NEXT = 0;
    SETRANGE(
    "Multi Selection Action","Multi Selection Action"::Change);
    IF FIND('-') THEN
    REPEAT
    IF TempDefaultDim3.FIND('-') THEN
    REPEAT
    IF DefaultDim.GET(
    TempDefaultDim3."Table ID",TempDefaultDim3."No.","Dimension Code")
    THEN BEGIN
    
    // Add the following line.
    xRecRef.GETTABLE(DefaultDim);
    
    DefaultDim."Dimension Code" := "Dimension Code";
    DefaultDim."Dimension Value Code" := "Dimension Value Code";
    DefaultDim."Value Posting" := "Value Posting";
    DefaultDim.MODIFY(TRUE);
    
    // Add the following lines.
    RecRef.GETTABLE(DefaultDim); 
    ChangeLogMgt.LogModification(RecRef,xRecRef); 
    
    END ELSE BEGIN
    DefaultDim.INIT;
    DefaultDim."Table ID" := TempDefaultDim3."Table ID";
    DefaultDim."No." := TempDefaultDim3."No.";
    DefaultDim."Dimension Code" := "Dimension Code";
    DefaultDim."Dimension Value Code" := "Dimension Value Code";
    DefaultDim."Value Posting" := "Value Posting";
    DefaultDim.INSERT(TRUE);
    
    // Add the following lines.
    RecRef.GETTABLE(DefaultDim); 
    ChangeLogMgt.LogInsertion(RecRef);
    
    END;
    UNTIL TempDefaultDim3.NEXT = 0;
    UNTIL NEXT = 0;
    ...
    
    

Požadavky

Chcete-li nainstalovat tuto opravu hotfix, musíte mít nainstalovaný jeden z následujících produktů:

  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1

Informace o restartování

Po použití této opravy kódu není nutné restartovat počítač.

Informace o odebrání

Tuto opravu hotfix nelze odebrat.

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

SPOLEČNOST MICROSOFT A JEJÍ DODAVATELÉ NENESOU ŽÁDNOU ZODPOVĚDNOST A NEPOSKYTUJÍ ŽÁDNÉ ZÁRUKY ZA VHODNOST, SPOLEHLIVOST NEBO PŘESNOST INFORMACÍ OBSAŽENÝCH V DOKUMENTECH A SOUVISEJÍCÍ GRAFICE PUBLIKOVANÝCH NA TOMTO WEBU ("MATERIÁLY") PRO ŽÁDNÝ ÚČEL.

MATERIÁLY MOHOU OBSAHOVAT TECHNICKÉ NEPŘESNOSTI NEBO TYPOGRAFICKÉ CHYBY A MOHOU BÝT KDYKOLI BEZ UPOZORNĚNÍ OPRAVENY. V MAXIMÁLNÍM ROZSAHU POVOLENÉM PLATNÝMI ZÁKONY SE MICROSOFT A JEJÍ DODAVATELÉ ZŘÍKAJÍ A VYLUČUJÍ VEŠKERÁ PROHLÁŠENÍ, ZÁRUKY A PODMÍNKY, AŤ UŽ VÝSLOVNÉ, PŘEDPOKLÁDANÉ NEBO ZÁKONNÉ, VČETNĚ, ALE NIKOLI VÝHRADNĚ, PROHLÁŠENÍ, ZÁRUK NEBO PODMÍNEK VLASTNICTVÍ, NEPORUŠENÍ PRÁV, USPOKOJIVÉHO STAVU NEBO KVALITY, PRODEJNOSTI A VHODNOSTI PRO URČITÝ ÚČEL VE VZTAHU K MATERIÁLŮM.