Disbalansas tarp sandėlio įrašų ir prekių knygos įrašų atsiranda, kai siunčiate rinkinio prekę, kurios žymės langelis "Automatinis kūrimo rinkinio KS" pažymėtas iš "„Microsoft“ Dynamics NAV 2009" vietos

Taikoma
Dynamics NAV 2009

Šis straipsnis taikomas "„Microsoft“ Dynamics NAV" visuose regionuose.

Požymiai

Tarkime, kad "„Microsoft“ Dynamics NAV 2009" dialogo lange Vietos kortelė pažymėjote žymės langelius Reikalauti paimti ir Privaloma Dėžė. Kai siunčiate rinkinio prekės, kurios vietoje pažymėtas žymės langelis Automatinio kūrimo rinkinio KS , pardavimo užsakymą, sandėlio įraše lieka neteisingas kiekis. Tačiau prekių knygos įraše rodomas teisingas pardavimo įrašo kiekis. Todėl tarp sandėlio įrašo ir prekių knygos įrašo yra disbalansas.
Ši problema kyla šiuose produktuose:

  • „„Microsoft“ Dynamics NAV 2009 R2‟
  • "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas

      

Sprendimas

Karštųjų pataisų informacija

Dabar palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau juo siekiama tik išspręsti šiame straipsnyje aprašytą problemą. Taikyti ją tik sistemoms, kuriose kilo ši konkreti problema. Ši karštoji pataisa gali būti papildomai patikrinta. Todėl, jei ši problema jūsų rimtai nepaveikė, rekomenduojame palaukti kito "„Microsoft“ Dynamics NAV 2009" pakeitimų paketo arba kitos "„Microsoft“ Dynamics NAV" versijos, kurioje yra ši karštoji pataisa.

Pastaba Ypatingais atvejais mokesčiai, kurie paprastai taikomi už palaikymo skambučius, gali būti atšaukti, jei "„Microsoft“ Dynamics" ir susijusių produktų techninio palaikymo specialistas nustato, kad konkretus naujinimas išspręs jūsų problemą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka atitinkamo konkretaus naujinimo reikalavimų.

            
          

Diegimo informacija

"„Microsoft“" pateikia programavimo pavyzdžių tik iliustracijai, be išreikštų ar numanomų garantijų. Tai apima, bet neapsiriboja, numanomas tinkamumo parduoti arba tinkamumo konkrečiam tikslui garantijas. Straipsnyje laikomasi nuomonės, kad esate susipažinę su demonstruojama programavimo kalba ir įrankiais, naudojamais kuriant ir derinant procedūras. "„Microsoft“" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcionalumą, bet jie nemodifikuos šių pavyzdžių, kad suteiktų papildomų funkcinių galimybių, ir nesukurs procedūrų, atitinkančių jūsų konkrečius reikalavimus.

Pastaba Prieš diegdami šią karštąją pataisą patikrinkite, ar visi "„Microsoft“ Navision" kliento vartotojai yra atsijungę nuo sistemos. Tai apima "„Microsoft“ Navision" programų tarnybų (NAS) kliento vartotojus. Turite būti vienintelis kliento vartotojas, kuris yra prisijungęs, kai įdiegiate šią karštąją pataisą.

Norėdami įdiegti šią karštąją pataisą, privalote turėti kūrėjo licenciją.

Rekomenduojame vartotojo paskyrai "Windows" prisijungimų lange arba duomenų bazės prisijungimų lange priskirti "SUPER" vaidmens ID. Jei vartotojo paskyrai negalima priskirti "SUPER" vaidmens ID, turite patikrinti, ar vartotojo paskyra turi šias teises:

  • Objekto, kurį keisite, modifikavimo teisė.
  • Sistemos objekto ID 5210 ir sistemos objekto ID 9015 objekto vykdymo teisės.

                
Pastaba: neturite turėti teisių į duomenų saugyklas, nebent turite atlikti duomenų taisymą.

Kodo keitimai

Pastaba Visada išbandykite kodo pataisas kontroliuojamoje aplinkoje prieš taikydami jas gamybos kompiuteriuose.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:

  1. Sukurkite naują visuotinį kintamąjį Item Jnl.-Post Line kodiniame vienete (22), tada nurodykite kintamąjį taip:

    • Pavadinimas: TempWhseJnlLine
    • Duomenų tipas: įrašas
    • Potipis: Sandėlio žurnalo eilutė
    • Laikinas: Taip
  2. Pakeiskite elemento Jnl.-Post Line kodo vieneto (22) funkcijos PostOutput kodą tokiu būdu:
    Esamas kodas

    ...
    "Invoiced Quantity" := 0;
    END;
    PostItem;
    IF NOT Kitting THEN
    UpdateProdOrderLine(ProdOrderLine,ReTrack);
    
    // Delete the following lines. 
    IF Location."Bin Mandatory" AND (NOT CalledFromInvtPutawayPick) THEN
    WhseJnlPostLine.RUN(WhseJnlLine);
    // End of the lines.
    
    END;
    END;
    END;
    ...
    

    Pakeitimo kodas

    ...
    "Invoiced Quantity" := 0;
    END;
    PostItem;
    IF NOT Kitting THEN
    UpdateProdOrderLine(ProdOrderLine,ReTrack);
    
    // Add the following lines.
    IF Location."Bin Mandatory" AND (NOT CalledFromInvtPutawayPick) THEN BEGIN
    TempWhseJnlLine := WhseJnlLine;
    WhseJnlPostLine.RUN(WhseJnlLine);
    END;
    // End of the lines.
    
    END;
    END;
    END;
    ...
    
  3. Sukurkite procedūrą GetOutputWhseJnlLine elemento Jnl.-Post eilutės kodo vienete (22) taip:

    1. Sukurkite parametro kintamąjį, tada nurodykite kintamąjį taip:

      • Pavadinimas: OutputWhseJnlLine
      • Duomenų tipas: įrašas
      • Potipis: Sandėlio žurnalo eilutė
      • Laikinas: Taip
    2. Įrašomas toks kodas:

      PROCEDURE GetOutputWhseJnlLine(VAR OutputWhseJnlLine);
      OutputWhseJnlLine := TempWhseJnlLine;
      OutputWhseJnlLine.INSERT;
      
  4. KS Jnl.-Post Line kodo vieneto (32) funkcijoje Kodas sukurkite naują vietinį kintamąjį ir nurodykite kintamąjį taip:

    • Pavadinimas: TempOutputWhseJnlLine
    • Duomenų tipas: įrašas
    • Potipis: Sandėlio žurnalo eilutė
    • Laikinas: Taip
  5. KS Jnl.-Post Line kodo vieneto (32) funkcijos Kodas kodą pakeiskite taip:
    Esamas kodas 1

    ...
    TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2); 
    ReserveBOMJnlLine.TransferBOMJnlToItemJnlLine(BOMJnlLine,ItemJnlLine,"Quantity (Base)");
    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim2);
    IF "Entry Type" = "Entry Type"::Assembly THEN BEGIN
    ProdOrderLine.DELETE;
    ProdOrderLine.Status := ProdOrderLine.Status::Finished;
    ProdOrderLine.INSERT;
    ...
    

    Pakeitimo kodas 1

    ...
    TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2); 
    ReserveBOMJnlLine.TransferBOMJnlToItemJnlLine(BOMJnlLine,ItemJnlLine,"Quantity (Base)");
    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim2);
    
    // Add the following line.
    ItemJnlPostLine.GetOutputWhseJnlLine(TempOutputWhseJnlLine);
    
    IF "Entry Type" = "Entry Type"::Assembly THEN BEGIN
    ProdOrderLine.DELETE;
    ProdOrderLine.Status := ProdOrderLine.Status::Finished;
    ProdOrderLine.INSERT;
    ...
    

    Esamas kodas 2

    ...
    OutputItemLedgEntryNo := ItemJnlLine."Item Shpt. Entry No.";
    END;
    PostWhseJnlLine(ItemJnlLine,TempHandlingSpecification,OriginalQuantity,OriginalQuantityBase);
    PostTempJnlLines;
    IF BOMReg."No." = 0 THEN BEGIN
    BOMReg.LOCKTABLE;
    IF BOMReg.FIND('+') THEN
    BOMReg."No." := BOMReg."No." + 1
    ...
    

    Pakeitimo kodas 2

    ...
    OutputItemLedgEntryNo := ItemJnlLine."Item Shpt. Entry No.";
    END;
    PostWhseJnlLine(ItemJnlLine,TempHandlingSpecification,OriginalQuantity,OriginalQuantityBase);
    PostTempJnlLines;
    
    // Add the following line.
    PostSalesWhseJnlLine(TempOutputWhseJnlLine);
    
    IF BOMReg."No." = 0 THEN BEGIN
    BOMReg.LOCKTABLE;
    IF BOMReg.FIND('+') THEN
    BOMReg."No." := BOMReg."No." + 1
    ...
    
  6. Sukurkite funkciją PostSalesWhseJnlLine KS Jnl.-Post Line kodo vienete (32) taip:

    1. Sukurkite naują parametrą, tada nurodykite jį taip:

      • Pavadinimas: TempOutputWhseJnlLine2
      • Duomenų tipas: įrašas
      • Potipis: Sandėlio žurnalo eilutė
      • Laikinas: Taip
    2. Įrašomas toks kodas:

      LOCAL PROCEDURE PostSalesWhseJnlLine(VAR TempOutputWhseJnlLine);
      BEGIN
      WITH TempOutputWhseJnlLine2 DO BEGIN
      IF FINDFIRST THEN BEGIN
      Quantity := -Quantity;
      "From Bin Code" := "To Bin Code";
      "From Zone Code" := "To Zone Code";
      "To Bin Code" := '';
      "To Zone Code" := '';
      WhseJnlPostLine.RUN(TempOutputWhseJnlLine2);
      END;
      END;
      END;
      

          

Būtinosios sąlygos

Norėdami taikyti šią karštąją pataisą, turite įdiegti vieną iš šių produktų:

  • „„Microsoft“ Dynamics NAV 2009 R2‟
  • "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas

Pašalinimo informacija

Šios karštosios pataisos pašalinti negalite.

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Pastaba: tai "SPARČIOJO PUBLIKAVIMO" straipsnis, sukurtas tiesiogiai iš "„Microsoft“" palaikymo organizacijos. Čia pateikta informacija pateikiama tokia, kokia yra, reaguojant į kylančias problemas. Dėl greito jos pateikimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrėta bet kuriuo metu be išankstinio įspėjimo. Dėl kitų aplinkybių žr. Naudojimo sąlygas .