Acest articol se aplică la Microsoft Dynamics NAV pentru toate țările și setările regionale de limbă.
Luați în considerare următorul scenariu din Microsoft Dynamics NAV 5.0:
- Aveți un compartiment în care se află un element care utilizează o altă unitate de măsură (UoM).
- Există o conversie între cele două UoM.
- Mutați elementul din coș în alt coș.
- O conversie UoM este necesară în mișcare.
- Rulați funcția de deplasare depozit în caseta de dialog Foi de lucru de deplasare pentru element.
În acest scenariu, liniile de conversie UO sunt create incorect în sugestia de mișcare a depozitului.
Simptome
Informații despre remedierea rapidă
O remediere rapidă acceptată este acum disponibilă de la Microsoft. Însă, scopul său este doar să corecteze problema descrisă în acest articol. Aplicați-o doar sistemelor care se confruntă cu această problemă specifică. Această remediere rapidă poate fi testată suplimentar. De aceea, dacă această problemă nu vă afectează grav, vă recomandăm să așteptați următorul pachet Service Pack Microsoft Dynamics NAV 2009 sau versiunea următoare Microsoft Dynamics NAV care conține această remediere rapidă.
Notă În cazuri speciale, costurile implicate de obicei pentru apelurile de asistență pot fi revocate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produsele asociate stabilește că o anumită actualizare va rezolva problema. Costurile uzuale de suport se vor aplica pentru întrebări suplimentare de suport și pentru probleme ce nu fac obiectul actualizării în chestiune.
Rezolvare
Informații despre instalare
Microsoft oferă exemple de programare numai în scop ilustrativ, fără nicio garanție explicită sau implicită. Aceasta include, dar nu se limitează la, garanțiile implicite de vandabilitate sau adecvare pentru un anumit scop. Acest articol presupune că sunteți familiarizat cu limbajul de programare prezentat și cu instrumentele utilizate pentru a crea și a depana proceduri. Inginerii de asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri, însă nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară și nu vor construi proceduri pentru a răspunde cerințelor dvs. specifice.
Notă Înainte de a instala această remediere rapidă, verificați dacă toți utilizatorii clientului Microsoft Navision sunt deconectați de la sistem. Printre aceștia se numără utilizatorii clienților Microsoft Navision Application Services (NAS). Ar trebui să fiți singurul utilizator client conectat atunci când implementați această remediere rapidă.
Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltator.
Recomandăm ca contului de utilizator din fereastra Conectări Windows sau din fereastra Conectări bază de date să primească ID-ul de rol "SUPER". În cazul în care contului de utilizator nu i se poate atribui ID-ul de rol "SUPER", trebuie să verificați dacă acel cont de utilizator are următoarele permisiuni:
- Permisiunea Modificare pentru obiectul pe care îl veți modifica.
- Permisiunea de executare pentru obiectul cu ID obiect de sistem 5210 și pentru obiectul ID obiect de sistem 9015.
Notă: nu trebuie să aveți drepturi asupra depozitelor de date decât dacă trebuie să efectuați repararea datelor.
Modificări de cod
Notă: testați întotdeauna remedierile de cod într-un mediu controlat înainte de a aplica remedierile la computerele de producție.
Pentru a rezolva această problemă, urmați acești pași:
Modificați codul din funcția CreateTempLine2 din unitatea de cod Create Pick (7312), după cum urmează:
Cod existent 1... IF QtytoPick > 0 THEN BEGIN QtytoPick := QtytoPick - ROUND( CalcPickQtyAssigned( //Delete the following line. LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine) ...Cod de înlocuire 1
... IF QtytoPick > 0 THEN BEGIN QtytoPick := QtytoPick - ROUND( CalcPickQtyAssigned( //Add the following line. LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine) ...Cod existent 2
... IF QtytoPick > 0 THEN BEGIN QtytoPick := QtytoPick - ROUND( CalcPickQtyAssigned( //Delete the following line. LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine) ...Codul de înlocuire 2
... IF QtytoPick > 0 THEN BEGIN QtytoPick := QtytoPick - ROUND( CalcPickQtyAssigned( //Add the following line. LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine) ...Cod existent 3
... QtyPerUnitofMeasure,0.00001); QtytoPickBase := QtytoPickBase - CalcPickQtyAssigned( //Delete the following line. LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine); ...Codul de înlocuire 3
... QtyPerUnitofMeasure,0.00001); QtytoPickBase := QtytoPickBase - CalcPickQtyAssigned( //Add the following line. LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine); ...Modificați codul din funcția InsertTmpActLnFromMovWkshLine din unitatea de cod Create Pick (7312), după cum urmează:
Cod existent... 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) ...Codul de înlocuire
... 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. ...Modificați codul din funcția FindBWPickBin din unitatea de cod Create Pick (7312) după cum urmează:
Cod existent... IF QtyToPickBase > 0 THEN BEGIN QtyToPickBase := QtyToPickBase - ROUND( CalcPickQtyAssigned( //Delete the following line. LocationCode,ItemNo,VariantCode,"Bin Code",TempWhseItemTrkgLine) ...Codul de înlocuire
... 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. ...Adăugați o variabilă locală nouă în funcția CalcPickQtyAssigned din unitatea de cod Creare alegere (7312) și specificați variabila după cum urmează:
- Nume: UOMCode@1004
- Tip de date: Cod
- Lungime: 10
Modificați codul din funcția CalcPickQtyAssigned din unitatea de cod Create Pick (7312) la următoarea:
... 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. ...Modificați codul din funcția CalcTotalAvailQtyToPick din unitatea de cod Create Pick (7312) după cum urmează:
Cod existent... QtyAssignedPick := //Delete the following line. CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine2);Codul de înlocuire
... QtyAssignedPick := //Add the following line. CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'','',TempWhseItemTrkgLine2);
Cerințe preliminare
Trebuie să aveți instalat Microsoft Dynamics NAV 5.0 pentru a aplica această remediere rapidă.
Eliminarea informațiilor
Nu puteți elimina această remediere rapidă.
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Stare
Notă: Acesta este un articol "PUBLICARE RAPIDĂ" creat direct din cadrul organizației de asistență Microsoft. Informațiile din acest document sunt furnizate ca atare ca răspuns la problemele apărute. Ca urmare a vitezei de punere la dispoziție, materialele pot include erori tipografice și pot fi revizuite în orice moment fără preaviz. Consultați Condițiile de utilizare pentru alte considerente.