Ataskaitoje "KS kiekio išskleidimas" rodomos nebaigtos prekės, kai nustatote Nr. gamybos KS naudojant prekės numerį, esantį "„Microsoft“ Dynamics NAV 2009 SP1" arba "„Microsoft“ Dynamics NAV 2009 R2" lentelėje Prekė

Taikoma
Microsoft Dynamics NAV 2009 R2 Dynamics NAV 2009 Service Pack 1

Šis straipsnis taikomas "„Microsoft“ Dynamics NAV" visų kalbų lokalėms.

Požymiai

Programoje "„Microsoft“ Dynamics NAV", kai nustatote Nr. gamybos KS naudojant prekės numerį lentelėje Prekė ir vykdant ataskaitą "KS kiekio išskleidimas", ataskaitoje rodomos neužbaigtos prekės.
Ši problema kyla šiuose produktuose:

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

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. KS kiekio išskleidimo ataskaitos (99000753) funkcijoje Duomenų elemento numeris 2 pakeiskite kodą tokiu būdu:
    Esamas kodas 1

    ...
                               BomComponent[Level]."Production BOM No." := Item."Production BOM No.";
    
                              BomComponent[Level].SETRANGE("Production BOM No.",Item."Production BOM No.");
    
                              BomComponent[Level].SETRANGE("Version Code",VersionCode[Level]);
    
                              BomComponent[Level].SETFILTER("Starting Date",'%1|..%2',0D,CalculateDate);
    
                              BomComponent[Level].SETFILTER("Ending Date",'%1|%2..',0D,CalculateDate);
    
                              NoList[Level] := Item."No.";
    
                              Quantity[Level] :=
    
                                UOMMgt.GetQtyPerUnitOfMeasure(Item,Item."Base Unit of Measure") /
    
                                UOMMgt.GetQtyPerUnitOfMeasure(
    
                                  Item,
    ...
    

    Pakeitimo kodas 1

    ...
                             BomComponent[Level]."Production BOM No." := Item."Production BOM No.";
    
                              BomComponent[Level].SETRANGE("Production BOM No.",Item."Production BOM No.");
    
                              BomComponent[Level].SETRANGE("Version Code",VersionCode[Level]);
    
                              BomComponent[Level].SETFILTER("Starting Date",'%1|..%2',0D,CalculateDate);
    
                              BomComponent[Level].SETFILTER("Ending Date",'%1|%2..',0D,CalculateDate);
    
    // Add the following line.
                             NoListType[Level] := NoListType[Level]::Item;
    // End of the added line.
    
                              NoList[Level] := Item."No.";
    
                              Quantity[Level] :=
    
                                UOMMgt.GetQtyPerUnitOfMeasure(Item,Item."Base Unit of Measure") /
    
                                UOMMgt.GetQtyPerUnitOfMeasure(
    
                                  Item,
    ...
    

    Esamas kodas 2

    ...
                             BEGIN
    
                                 WHILE BomComponent[Level].NEXT = 0 DO BEGIN
    
                                   Level := Level - 1;
    
                                   IF Level <1 THEN
    
                                     CurrReport.BREAK;
    
    // Delete the following line.
                                  IF NOT UpperLevelItem.GET(NoList[Level]) THEN
    // End of the deleted line.
    
                                     UpperLevelItem."Production BOM No." := NoList[Level];
    
                                   BomComponent[Level].SETRANGE("Production BOM No.",UpperLevelItem."Production BOM No.");
    
                                   BomComponent[Level].SETRANGE("Version Code",VersionCode[Level]);
    
                                 END; 
    ...
    

    Pakeitimo kodas 2

    ...
                              BEGIN
    
                                 WHILE BomComponent[Level].NEXT = 0 DO BEGIN
    
                                   Level := Level - 1;
    
                                   IF Level <1 THEN
    
                                     CurrReport.BREAK;
    
    // Add the following line.
                                  IF NoListType[NextLevel] = NoListType[NextLevel]::"Production BOM" THEN
    // End of the added line.
    
                                     UpperLevelItem."Production BOM No." := NoList[Level];
    
                                   BomComponent[Level].SETRANGE("Production BOM No.",UpperLevelItem."Production BOM No.");
    
                                   BomComponent[Level].SETRANGE("Version Code",VersionCode[Level]);
    
                                 END;
    ...
    

    Esamas kodas 3

    ...
                                      BEGIN
    
                                       CompItem.GET(BomComponent[Level]."No.");
    
                                       IF CompItem."Production BOM No."<>'' THEN BEGIN
    
                                         NextLevel := Level + 1;
    
                                         CLEAR(BomComponent[NextLevel]);
    
                                         NoList[NextLevel] := CompItem."No.";
    
                                         VersionCode[NextLevel] :=
    
                                           VersionMgt.GetBOMVersion(CompItem."Production BOM No.",CalculateDate,FALSE);
    
                                         BomComponent[NextLevel].SETRANGE("Production BOM No.",CompItem."Production BOM No.");
    
                                         BomComponent[NextLevel].SETRANGE("Version Code",VersionCode[NextLevel]);
    ...
    

    3 pakeitimo kodas

    ...
                                      BEGIN
    
                                       CompItem.GET(BomComponent[Level]."No.");
    
                                       IF CompItem."Production BOM No."<>'' THEN BEGIN
    
                                         NextLevel := Level + 1;
    
                                         CLEAR(BomComponent[NextLevel]);
    
    // Add the following line.
                                        NoListType[NextLevel] := NoListType[NextLevel]::Item;
    // End of the added line.
    
                                         NoList[NextLevel] := CompItem."No.";
    
                                         VersionCode[NextLevel] :=
    
                                           VersionMgt.GetBOMVersion(CompItem."Production BOM No.",CalculateDate,FALSE);
    
                                         BomComponent[NextLevel].SETRANGE("Production BOM No.",CompItem."Production BOM No.");
    
                                         BomComponent[NextLevel].SETRANGE("Version Code",VersionCode[NextLevel]);
    ...
    

    Esamas kodas 4

    ...
                                            CompItem,
    
                                             VersionMgt.GetBOMUnitOfMeasure(
    
                                               CompItem."Production BOM No.",VersionCode[NextLevel]));
    
                                       END;
    
                                       IF Level > 1 THEN BEGIN
    
    // Delete the following lines.
                                        IF BomItem.GET(BomComponent[Level - 1]."No.") THEN BEGIN
    
                                          QtyPerUnitOfMeasure :=
    
                                            UOMMgt.GetQtyPerUnitOfMeasure(BomItem,BomComponent[Level - 1]."Unit of Measure Code") /
    
                                            UOMMgt.GetQtyPerUnitOfMeasure(
    
                                              BomItem,VersionMgt.GetBOMUnitOfMeasure(BomItem."Production BOM No.",VersionCode[Level]));
    // End of the deleted lines.
    
                                         END;
    
                                       END;
    
                                     END;
    
                                   BomComponent[Level].Type::"Production BOM":
    
                                     BEGIN
    ...
    

    4 pakeitimo kodas

    ...
                                           CompItem,
    
                                             VersionMgt.GetBOMUnitOfMeasure(
    
                                               CompItem."Production BOM No.",VersionCode[NextLevel]));
    
                                       END;
    
                                       IF Level > 1 THEN BEGIN
    
    // Add the following lines.
                                        IF (BomComponent[Level - 1].Type = BomComponent[Level - 1].Type::Item) THEN BEGIN
    
                                          IF BomItem.GET(BomComponent[Level - 1]."No.") THEN BEGIN
    
                                            QtyPerUnitOfMeasure :=
    
                                              UOMMgt.GetQtyPerUnitOfMeasure(BomItem,BomComponent[Level - 1]."Unit of Measure Code") /
    
                                              UOMMgt.GetQtyPerUnitOfMeasure(
    
                                                BomItem,VersionMgt.GetBOMUnitOfMeasure(BomItem."Production BOM No.",VersionCode[Level]));
    
                                          END;
    // End of the added lines.
    
                                         END;
    
                                       END;
    
                                     END;
    
                                   BomComponent[Level].Type::"Production BOM":
    
                                     BEGIN
    ...
    

    Esamas kodas 5

    ...
                                 BomComponent[Level].Type::"Production BOM":
    
                                     BEGIN
    
                                       ProdBOM.GET(BomComponent[Level]."No.");
    
                                       NextLevel := Level + 1;
    
                                       CLEAR(BomComponent[NextLevel]);
    
                                       NoList[NextLevel] := ProdBOM."No.";
    
                                       VersionCode[NextLevel] := VersionMgt.GetBOMVersion(ProdBOM."No.",CalculateDate,FALSE);
    
                                       BomComponent[NextLevel].SETRANGE("Production BOM No.",NoList[NextLevel]);
    
                                       BomComponent[NextLevel].SETRANGE("Version Code",VersionCode[NextLevel]);
    
                                       BomComponent[NextLevel].SETFILTER("Starting Date",'%1|..%2',0D,CalculateDate); 
    ...
    

    Pakeitimo kodas 5

    ...
                                BomComponent[Level].Type::"Production BOM":
    
                                     BEGIN
    
                                       ProdBOM.GET(BomComponent[Level]."No.");
    
                                       NextLevel := Level + 1;
    
                                       CLEAR(BomComponent[NextLevel]);
    
    // Add the following line.
                                      NoListType[NextLevel] := NoListType[NextLevel]::"Production BOM";
    // End of the added line.
    
                                       NoList[NextLevel] := ProdBOM."No.";
    
                                       VersionCode[NextLevel] := VersionMgt.GetBOMVersion(ProdBOM."No.",CalculateDate,FALSE);
    
                                       BomComponent[NextLevel].SETRANGE("Production BOM No.",NoList[NextLevel]);
    
                                       BomComponent[NextLevel].SETRANGE("Version Code",VersionCode[NextLevel]);
    
                                       BomComponent[NextLevel].SETFILTER("Starting Date",'%1|..%2',0D,CalculateDate);
    ...
    
  2. KS kiekio išskleidimo ataskaitos (99000753) visuotiniuose kintamuosiuose kodą pakeiskite tokiu būdu:
    Esamas kodas

    ...
          Quantity@1013 : ARRAY [99] OF Decimal;
    
            QtyPerUnitOfMeasure@1014 : Decimal;
    
            Level@1015 : Integer;
    
            NextLevel@1016 : Integer;
    
            BOMQty@1017 : Decimal;
    
    
    
          BEGIN
    
          END.
    
        }
    
        RDLDATA
    ...
    

    Pakeitimo kodas

    ...
           Quantity@1013 : ARRAY [99] OF Decimal;
    
            QtyPerUnitOfMeasure@1014 : Decimal;
    
            Level@1015 : Integer;
    
           NextLevel@1016 : Integer;
    
            BOMQty@1017 : Decimal;
    
    // Add the following line.
           NoListType@1018 : ARRAY [99] OF ' ,Item,Production BOM';
    // End of the added line.  
    
          BEGIN
    
          END.
    
        }
    
        RDLDATA
    ...
    

          

Būtinosios sąlygos

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

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

                
              

Pašalinimo informacija

Šios karštosios pataisos pašalinti negalite.

Būsena

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

Nuorodos

VSTF DynamicsNAV SE: 251802

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 .