Dnevnik BOM ali prodajno naročilo lahko nepravilno knjižite, če se koda vrednosti dimenzije komponente kompleta razlikuje od kode nadrejenega elementa kompleta v servisnem paketu SP1 za Microsoft Dynamics NAV 2009

Velja za
Dynamics NAV 2009 Service Pack 1

Hitro objavljeni članki zagotavljajo informacije neposredno iz Microsoftove organizacije za podporo. Informacije, ki jih vsebuje ta dokument, so ustvarjene kot odziv na nastajajoče ali edinstvene teme ali pa so namenjene dopolnitvi drugih informacij iz zbirke znanja.

Ta članek velja za Microsoft Dynamics NAV 2009 za vse države in vse jezikovne nastavitve.

Znaki

Predpostavimo, da se koda vrednosti dimenzije elementa komponente kompleta razlikuje od kode nadrejenega elementa kompleta v servisnem paketu SP1 za Microsoft Dynamics NAV 2009. Ko knjižite dnevnik BOM ali prodajno naročilo, servisni paket SP1 za Microsoft Dynamics NAV 2009 nepravilno omogoča knjiženje dnevnika BOM ali prodajnega naročila brez sporočila o napaki. Do te težave pride, čeprav je knjižna koda vrednosti dimenzije opredeljena kot »ista koda« za komponento kompleta in nadrejeni element kompleta.

Pričakujete, da je »dimenzija, uporabljena v vrstici dnevnika izdelkov, privzeto, 10000 povzročila napako. Izbrana koda vrednosti dimenzije [Vrednost dimenzije code_Number] za sporočilo o napaki kode dimenzije [Dimenzija code_Number] za izdelek [Item_Number]", ki se prikaže pri knjiženju dnevnika BOM ali prodajnega naloga v tem primeru.

Do te težave pride v izdelkih, ki imajo vključeno funkcijo Kitting za te države:

  • Avstralija
  • Avstrija
  • Francija
  • Indonezija
  • Malezija
  • Nova Zelandija
  • Severna Amerika
  • Filipini
  • Singapur
  • Tajska

Rešitev

Informacije o sprotnem popravku

Podprt sprotni popravek je zdaj na voljo pri Microsoftu. Vendar pa je namenjen le odpravljanju težave, ki je opisana v tem članku. Uporabite ga samo za sisteme, ki imajo to težavo. Ta sprotni popravek bo morda dodatno preučen. Če vas ta težava ne prizadene, priporočamo, da počakate na naslednji servisni paket za Microsoft Dynamics NAV 2009 ali naslednjo različico storitve Microsoft Dynamics NAV, ki vsebuje ta sprotni popravek.

Opomba V posebnih primerih se lahko stroški, ki običajno nastanejo za klice podpore, prekličejo, če strokovnjak za tehnično podporo za Microsoft Dynamics in sorodne izdelke ugotovi, da bo določena posodobitev odpravila vašo težavo. Običajni stroški podpore bodo veljali za dodatna vprašanja o podpori in težave, ki ne izpolnjujejo pogojev za določeno zadevno posodobitev.

            
          

Informacije o namestitvi

Microsoft ponuja primere programiranja samo za ponazoritev, brez izrecnega ali implicitnega jamstva. To vključuje, vendar ni omejeno na, implicitna jamstva primernosti za prodajo ali primernost za določen namen. V tem članku je predvideno, da ste seznanjeni s programskim jezikom, ki je prikazan, in z orodji, ki se uporabljajo za ustvarjanje in odpravljanje napak v postopkih. Microsoftovi inženirji za podporo vam lahko pomagajo razložiti funkcionalnost določenega postopka, vendar teh primerov ne bodo spremenili, da bi zagotovili dodano funkcionalnost ali ustvarili postopke, ki ustrezajo vašim posebnim zahtevam.

Opomba Preden namestite ta sprotni popravek, preverite, ali so vsi uporabniki odjemalca Microsoft Navision odjavljeni iz sistema. To vključuje uporabnike odjemalcev Microsoft Navision Application Services (NAS). Pri uvedbi tega sprotnega popravka bi morali biti edini uporabnik odjemalca, ki je prijavljen.

Če želite izvesti ta sprotni popravek, morate imeti licenco za razvijalce.

Priporočamo, da se uporabniškemu računu v oknu »Prijave v sistem Windows« ali v oknu »Prijave v zbirko podatkov« dodeli ID vloge »SUPER«. Če uporabniškemu računu ni mogoče dodeliti ID-ja vloge »SUPER«, morate preveriti, ali ima uporabniški račun ta dovoljenja:

  • Dovoljenje »Spremeni« za predmet, ki ga boste spremenili.
  • Dovoljenje za izvajanje za predmet ID sistemskega objekta 5210 in za predmet ID sistemskega objekta 9015.

                
Opomba Ni vam treba imeti pravic do shramb podatkov, razen če morate opraviti popravilo podatkov.

Spremembe kode

Opomba Popravke kode vedno preskusite v nadzorovanem okolju, preden jih uporabite v proizvodnih računalnikih.
Če želite odpraviti to težavo, spremenite kodo v funkciji Koda v enoti kode BOM Jnl.-Post Line (32) na naslednji način:

Obstoječa koda

...
          ELSE
            BuildTotalDisassemblyCost(BOMJnlLine,ItemJnlLine.Amount - "Total Cost");

          TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2,FALSE);

          ReserveBOMJnlLine.TransferBOMJnlToItemJnlLine(BOMJnlLine,ItemJnlLine,"Quantity (Base)");
...

Nadomestna koda

...
          ELSE
            BuildTotalDisassemblyCost(BOMJnlLine,ItemJnlLine.Amount - "Total Cost");

// Add the following line.
          TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2);
// End of the added line.

          ReserveBOMJnlLine.TransferBOMJnlToItemJnlLine(BOMJnlLine,ItemJnlLine,"Quantity (Base)");
...

spremenite kodo v funkciji PostTempJnlLines v enoti kode BOM Jnl.-Post Line (32), kot sledi:

Obstoječa koda

...
             IF TempItemJnlLine.FIND('-') THEN
          REPEAT
            TempItemJnlLine2 := TempItemJnlLine;
            TransferDimToItemJnlLine(TempItemJnlLine,TempJnlLineDim2,TRUE);
            ItemJnlPostLine.RunWithCheck(TempItemJnlLine,TempJnlLineDim2);
            WITH TempItemJnlLine DO BEGIN
              Quantity := TempItemJnlLine2.Quantity;
...

Nadomestna koda

...
            IF TempItemJnlLine.FIND('-') THEN
          REPEAT
            TempItemJnlLine2 := TempItemJnlLine;

// Add the following line.
            TransferDimToItemJnlLine(TempItemJnlLine,TempJnlLineDim2);
// End of the added line.

            ItemJnlPostLine.RunWithCheck(TempItemJnlLine,TempJnlLineDim2);
            WITH TempItemJnlLine DO BEGIN
              Quantity := TempItemJnlLine2.Quantity;  
...

                
spremenite kodo v funkciji TransferDimToItemJnlLine v enoti kode BOM Jnl.-Post Line (32), kot sledi:

Obstoječa koda

...
            TempJnlLineDim2."Journal Line No." := ItemJnlLine2."Line No.";
            TempJnlLineDim2."Allocation Line No." := 0;
            TempJnlLineDim2."Dimension Code" := TempJnlLineDim."Dimension Code";
            IF Consumption THEN
              IF DefDim.GET(DATABASE::Item,ItemJnlLine2."Item No.",TempJnlLineDim."Dimension Code") THEN BEGIN
                TempJnlLineDim2."Dimension Value Code" := DefDim."Dimension Value Code";
                CASE DefDim."Dimension Code" OF
                  GLSetup."Global Dimension 1 Code":
                    ItemJnlLine2."Shortcut Dimension 1 Code" := DefDim."Dimension Value Code";
                  GLSetup."Global Dimension 2 Code":
                    ItemJnlLine2."Shortcut Dimension 2 Code" := DefDim."Dimension Value Code";
                END;
              END ELSE
                TempJnlLineDim2."Dimension Value Code" := TempJnlLineDim."Dimension Value Code"
            ELSE
              TempJnlLineDim2."Dimension Value Code" := TempJnlLineDim."Dimension Value Code";
            TempJnlLineDim2.INSERT;
          UNTIL TempJnlLineDim.NEXT = 0;
        END;
...

Nadomestna koda

...
            TempJnlLineDim2."Journal Line No." := ItemJnlLine2."Line No.";
            TempJnlLineDim2."Allocation Line No." := 0;
            TempJnlLineDim2."Dimension Code" := TempJnlLineDim."Dimension Code";

// Add the following line.
            TempJnlLineDim2."Dimension Value Code" := TempJnlLineDim."Dimension Value Code";
// End of the added line.
            TempJnlLineDim2.INSERT;
          UNTIL TempJnlLineDim.NEXT = 0;
        END;    
...

spremenite kodo v funkciji PostResourceCost v enoti kode BOM Jnl.-Post Line (32), kot sledi:

Obstoječa koda

...          
           ItemJnlLine.Kitting := TRUE;
          TotalCost := "Total Cost";
          UnitCost := "Unit Cost";
          TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2,TRUE);
         IF OutputItemLedgEntryNo <> 0 THEN BEGIN
         ItemJnlLine."Item Shpt. Entry No." := OutputItemLedgEntryNo;
...

Nadomestna koda

...
          ItemJnlLine.Kitting := TRUE;
          TotalCost := "Total Cost";
          UnitCost := "Unit Cost";

// Add the following line.
          TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2);
// End of the added line.

         IF OutputItemLedgEntryNo <> 0 THEN BEGIN
         ItemJnlLine."Item Shpt. Entry No." := OutputItemLedgEntryNo;
...

Pogoji

Če želite uporabiti ta sprotni popravek, morate imeti nameščen servisni paket SP1 za Microsoft Dynamics NAV 2009.

Podatki o odstranitvi

Tega sprotnega popravka ne morete odstraniti.

Stanje

Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.

MICROSOFT IN/ALI NJEGOVI DOBAVITELJI NE DAJEJO NOBENIH ZAGOTOVIL ALI JAMSTEV GLEDE PRIMERNOSTI, ZANESLJIVOSTI ALI TOČNOSTI INFORMACIJ, KI SO VSEBOVANE V DOKUMENTIH IN POVEZANIH GRAFIKAH, OBJAVLJENIH NA TEM SPLETNEM MESTU (»GRADIVO«), ZA KAKRŠEN KOLI NAMEN.

GRADIVO LAHKO VSEBUJE TEHNIČNE NETOČNOSTI ALI TIPOGRAFSKE NAPAKE IN JIH JE MOGOČE KADAR KOLI PREGLEDATI BREZ PREDHODNEGA OBVESTILA. V NAJVEČJEM OBSEGU, KI GA DOVOLJUJE UPOŠTEVNA ZAKONODAJA, MICROSOFT IN/ALI NJEGOVI DOBAVITELJI ZAVRAČAJO IN IZKLJUČUJEJO VSA ZAGOTOVILA, JAMSTVA IN POGOJE, IZRECNE, IMPLICITNE ALI ZAKONSKE, VKLJUČNO Z ZAGOTOVILI, JAMSTVI ALI POGOJI LASTNIŠTVA, NEKRŠITVE, ZADOVOLJIVEGA STANJA ALI KAKOVOSTI, PRIMERNOSTI ZA PRODAJO IN PRIMERNOSTI ZA DOLOČEN NAMEN V ZVEZI Z GRADIVI, VENDAR NE OMEJENO NANJE.