Pogrešan prijedlog za premještanje skladišta stvara se kada postoji pretvorba mjernih jedinica u kretanju u sustavu Microsoft Dynamics NAV 5.0

Ovaj se članak odnosi na NAV sustava Microsoft Dynamics za sve države i regionalne sheme na svim jezicima.

Razmotrite sljedeći scenarij u sustavu Microsoft Dynamics NAV 5.0:

  • Imate skladište u kojem se nalazi stavka koja koristi drugu mjernu jedinicu (UoM).
  • Postoji pretvorba između dva UOM-a.
  • Stavku premjestite iz koša za smeće u drugi interval.
  • U pokretu je potrebna UoM konverzija.
  • Funkciju premještanja skladišta pokrećete u dijaloškom okviru Radni listovi za premještanje za stavku.

U ovom se scenariju reci pretvorbe UOM nepravilno stvaraju u prijedlogu za kretanje skladišta.

Simptomi

Informacije o hitnom popravku

Microsoft sada nudi podržani hitni popravak. No njegova je namjena samo ispravljanje problema opisanog u ovom članku. Primijenite ga samo na sustave koji imaju taj specifični problem. Ovaj hitni popravak može proći dodatna testiranja. Stoga, ako se ovaj problem ne odnosi ozbiljno, preporučujemo da pričekate sljedeći servisni paket za Microsoft Dynamics NAV 2009 ili sljedeću verziju sustava Microsoft Dynamics NAV koja sadrži ovaj hitni popravak.

Napomena: U posebnim slučajevima, ako stručnjak tehničke podrške za Microsoft Dynamics i povezane proizvode utvrdi da određeno ažuriranje može riješiti problem, poziv službi podrške može biti besplatan. Uobičajene cijene poziva službi za podršku primjenjuju se na dodatna pitanja i probleme koje nemaju veze s pripadnom nadopunom.

Rješenje

Informacije o instalaciji

Microsoft daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam pomoći objasniti funkcionalnost određene procedure, no neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati procedure koji zadovoljavaju vaše specifične zahtjeve.

Napomena Prije nego što instalirate ovaj hitni popravak, provjerite jesu li svi korisnici Microsoft Navision klijenta odjavljeni sa sustava. To obuhvaća korisnike klijentskih usluga Microsoft Navision Application Services (NAS). Trebali biste biti jedini klijentski korisnik prijavljen na vrijeme implementacije ovog hitnog popravka.

Da biste implementirali ovaj hitni popravak, morate imati licencu za razvojne inženjere.

Preporučujemo da se korisničkom računu u prozoru Prijave u sustav Windows ili u prozoru Prijave u bazu podataka dodijeli ID uloge "SUPER". Ako korisničkom računu nije moguće dodijeliti ID uloge "SUPER", morate provjeriti ima li korisnički račun sljedeće dozvole:

  • Dozvola za izmjenu objekta koji ćete mijenjati.
  • Dozvola za izvršavanje za objekt System Object ID 5210 i za objekt System Object ID 9015

            
Napomena: nemate pravo na spremišta podataka, osim ako morate popraviti podatke.

Promjene koda

Napomena: uvijek testirajte popravke koda u kontroliranom okruženju prije primjene popravaka na proizvodnim računalima.
Da biste riješili taj problem, učinite sljedeće:

  1. Promijenite kod u funkciji CreateTempLine2 u jedinici koda naredbe Create Pick (7312) na sljedeći način:
    Postojeći kod 1

         ...
    
               IF QtytoPick > 0 THEN BEGIN
    
                 QtytoPick :=
    
                   QtytoPick -
    
                   ROUND(
    
                     CalcPickQtyAssigned(
    
    //Delete the following line.
                      LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine) 
    
    
         ...
    

    Zamjenski kod 1

         ...
    
               IF QtytoPick > 0 THEN BEGIN
    
                 QtytoPick :=
    
                   QtytoPick -
    
                   ROUND(
    
                     CalcPickQtyAssigned(
    
    //Add the following line.
                      LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine) 
    
         ...
    

    Postojeći kod 2

         ...
    
             IF QtytoPick > 0 THEN BEGIN
    
               QtytoPick :=
    
                 QtytoPick -
    
                 ROUND(
    
                   CalcPickQtyAssigned(
    
    //Delete the following line.
                    LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine) 
    
    
         ...
    

    Zamjenski kod 2

         ...
    
             IF QtytoPick > 0 THEN BEGIN
    
               QtytoPick :=
    
                 QtytoPick -
    
                 ROUND(
    
                   CalcPickQtyAssigned(
    
    //Add the following line.
                    LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine) 
    
         ...
    

    Postojeći kod 3

         ...
    
                     QtyPerUnitofMeasure,0.00001);
    
               QtytoPickBase := QtytoPickBase -
    
                 CalcPickQtyAssigned(
    
    //Delete the following line.
                  LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine);
    
    
         ...
    

    Zamjenski kod 3

         ...
    
                     QtyPerUnitofMeasure,0.00001);
    
               QtytoPickBase := QtytoPickBase -
    
                 CalcPickQtyAssigned(
    
    //Add the following line.
                  LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine);
    
         ...
    
  2. Promijenite kod u funkciji InsertTmpActLnFromMovWkshLine u jedinici koda za stvaranje odabira (7312) na sljedeći način:
    Postojeći kod

         ...
    
               LocationCode,FromBinCode,ItemNo,VariantCode,WhseWkshLine."From Unit of Measure Code");
    
             FromBinContent.CALCFIELDS(Quantity,"Pick Qty.","Neg. Adjmt. Qty.");
    
             PickQtyAssigned :=
    
               ROUND(
    
                 CalcPickQtyAssigned(
    
    //Delete the following line.
                  LocationCode,ItemNo,VariantCode,WhseWkshLine."From Bin Code",TempWhseItemTrkgLine) 
    
         ...
    

    Zamjenski kôd

         ...
    
               LocationCode,FromBinCode,ItemNo,VariantCode,WhseWkshLine."From Unit of Measure Code");
    
             FromBinContent.CALCFIELDS(Quantity,"Pick Qty.","Neg. Adjmt. Qty.");
    
             PickQtyAssigned :=
    
               ROUND(
    
                 CalcPickQtyAssigned(
    
    //Add the following lines.
                  LocationCode,ItemNo,VariantCode,
    
                  WhseWkshLine."From Unit of Measure Code",
    
                  WhseWkshLine."From Bin Code",TempWhseItemTrkgLine) 
    //End of the lines.
         ...
    
  3. Promijenite kod u funkciji FindBWPickBin u jedinici koda za stvaranje odabira (7312) na sljedeći način:
    Postojeći kod

         ...
    
                 IF QtyToPickBase > 0 THEN BEGIN
    
                   QtyToPickBase :=
    
                     QtyToPickBase -
    
                     ROUND(
    
                       CalcPickQtyAssigned(
    
    //Delete the following line.
                        LocationCode,ItemNo,VariantCode,"Bin Code",TempWhseItemTrkgLine) 
    
         ...
    

    Zamjenski kôd

         ...
    
                 IF QtyToPickBase > 0 THEN BEGIN
    
                   QtyToPickBase :=
    
                     QtyToPickBase -
    
                     ROUND(
    
                       CalcPickQtyAssigned(
    
    //Add the following lines.
                        LocationCode,ItemNo,VariantCode,"Bin Code","Unit of Measure Code",
    
                        TempWhseItemTrkgLine) 
    //End of the lines.
         ...
    
  4. Dodajte novu lokalnu varijablu u funkciju CalcPickQtyAssigned u kodnoj jedinici za stvaranje izbora (7312) i odredite varijablu na sljedeći način:

    • Ime: UOMCode@1004
    • DataType: Kod
    • Duljina: 10
  5. Promijenite kod u funkciji CalcPickQtyAssigned u jedinici koda za stvaranje izbora (7312) u sljedeći način:

         ...
    
             END ELSE BEGIN
    
               SETRANGE("Action Type","Action Type"::" ");
    
               SETRANGE("Bin Code",'');
    
             END;
    
             SETRANGE("Variant Code",VariantCode);
    
    //Add the following lines.
            IF UOMCode <> '' THEN
    
              SETRANGE("Unit of Measure Code",UOMCode);
    //End of the lines.
         ...
    
  6. Promijenite kod u funkciji CalcTotalAvailQtyToPick u jedinici koda za stvaranje izbora (7312) na sljedeći način:
    Postojeći kod

         ...
    
           QtyAssignedPick :=
    
    //Delete the following line.
            CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine2);
    
    
    

    Zamjenski kôd

         ...
    
           QtyAssignedPick :=
    
    //Add the following line.
            CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'','',TempWhseItemTrkgLine2);
    

Preduvjeti

Morate imati instaliran Microsoft Dynamics NAV 5.0 da biste primijenili ovaj hitni popravak.

Podaci o uklanjanju

Ovaj hitni popravak ne možete ukloniti.

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Status

Napomena: Ovo je članak "FAST PUBLISH" stvoren izravno u Microsoftovoj ustanovi za podršku. Ovdje sadržane informacije pružaju se takve kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske pogreške i mogu se revidirati u bilo kojem trenutku bez prethodne najave. Dodatne napomene potražite u Uvjetima korištenja .