Stavka nije rezervirana za stavke u glavnoj knjizi stavki koje su stvorene za stavku na očekivani način ako postavite vrijednost Uvijek u polju Rezerva u stavci u sustavu Microsoft Dynamics NAV

Primjenjuje se na
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1 Microsoft Dynamics NAV 5.0

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

Simptomi

Pretpostavimo da imate stavku za koju je vrijednost rezerve postavljena na Uvijek u sustavu Microsoft Dynamics NAV. Kada stvorite proizvodni nalog za stavku, stavka nije rezervirana za stavke u knjizi stavki koje su stvorene za stavku prema očekivanjima.
Napomena U toj je situaciji artikl rezerviran za narudžbenice stvorene za stavku.
Taj se problem pojavljuje u sljedećim proizvodima:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 5.0

      

Uzrok

Taj se problem pojavljuje jer se rezervirana količina u stavkama knjige stavki ne izračunava kada sustav automatski rezervira redak.

Rješenje

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 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.

            
          

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 SetSalesLine u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    SetPointerFilter(CalcReservEntry2);
    
    // Delete the following lines.
    IF (CalcReservEntry."Location Code" <> '') AND
    Location.GET(CalcReservEntry."Location Code") AND
    (Location."Bin Mandatory" OR Location."Require Pick")
    THEN
    CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse);
    // End of the lines.
    
    END;
    
    PROCEDURE SetReqLine@13(NewReqLine@1000 : Record 246);
    ...
    

    Zamjenski kôd

    ...
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetReqLine@13(NewReqLine@1000 : Record 246);
    ...
    
  2. Kod u funkciji SetReqLine u jedinici koda za upravljanje rezervacijama (99000845) promijenite na sljedeći način:
    Postojeći kod

    ...
    GetItemSetup(CalcReservEntry);
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetPurchLine@2(NewPurchLine@1000 : Record 39);
    ...
    

    Zamjenski kôd

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetPurchLine@2(NewPurchLine@1000 : Record 39);
    ...
    
  3. Kod u funkciji SetPurchLine u jedinici koda za upravljanje rezervacijama (99000845) promijenite na sljedeći način:
    Postojeći kod

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForPurchLine."Outstanding Qty. (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetItemJnlLine@3(NewItemJnlLine@1000 : Record 83);
    ...
    

    Zamjenski kôd

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForPurchLine."Outstanding Qty. (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetItemJnlLine@3(NewItemJnlLine@1000 : Record 83);
    
  4. Promijenite kod u funkciji SetItemJnlLine u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForItemJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetProdOrderLine@9(NewProdOrderLine@1000 : Record 5406);
    ...
    

    Zamjenski kôd

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForItemJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetProdOrderLine@9(NewProdOrderLine@1000 : Record 5406);
    ...
    
  5. Promijenite kod u funkciji SetProdOrderLine u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    Positive := ForProdOrderLine."Remaining Qty. (Base)" < 0;
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetProdOrderComponent@11(NewProdOrderComp@1000 : Record 5407);
    ...
    

    Zamjenski kôd

    ...
    Positive := ForProdOrderLine."Remaining Qty. (Base)" < 0;
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetProdOrderComponent@11(NewProdOrderComp@1000 : Record 5407);
    
  6. Promijenite kod u funkciji SetProdOrderComponent u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    Positive := ForProdOrderComp."Remaining Qty. (Base)" > 0;
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetPlanningComponent@12(NewPlanningComponent@1000 : Record 99000829);
    ...
    

    Zamjenski kôd

    ...
    Positive := ForProdOrderComp."Remaining Qty. (Base)" > 0;
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetPlanningComponent@12(NewPlanningComponent@1000 : Record 99000829);
    ...
    
  7. Kod u funkciji SetPlanningComponent u jedinici koda za upravljanje rezervacijama (99000845) promijenite na sljedeći način:
    Postojeći kod

    ...
    Positive := ForPlanningComponent."Net Quantity (Base)" > 0;
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetItemLedgEntry@34(NewItemLedgEntry@1000 : Record 32);
    ...
    

    Zamjenski kôd

    ...
    Positive := ForPlanningComponent."Net Quantity (Base)" > 0;
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetItemLedgEntry@34(NewItemLedgEntry@1000 : Record 32);
    ...
    
  8. Promijenite kod u funkciji SetItemLedgEntry u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetTransferLine@47(NewTransLine@1000 : Record 5741;Direction@1001 : 'Outbound,Inbound');
    ...
    

    Zamjenski kôd

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetTransferLine@47(NewTransLine@1000 : Record 5741;Direction@1001 : 'Outbound,Inbound');
    ...
    
  9. Kod u funkciji SetTransferLine u jedinici koda za upravljanje rezervacijama (99000845) promijenite na sljedeći način:
    Postojeći kod

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetServLine@48(NewServiceInvLine@1000 : Record 5902);
    ...
    

    Zamjenski kôd

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetServLine@48(NewServiceInvLine@1000 : Record 5902);
    ...
    
  10. Kod u funkciji SetServLine u jedinici koda za upravljanje rezervacijama (99000845) promijenite na sljedeći način:
    Postojeći kod

    ...
    SetPointerFilter(CalcReservEntry2);
    
    // Delete the following lines.
    IF (CalcReservEntry."Location Code" <> '') AND
    Location.GET(CalcReservEntry."Location Code") AND
    (Location."Bin Mandatory" OR Location."Require Pick")
    THEN
    CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse);
    // End of the lines.
    
    END;
    
    PROCEDURE SetBOMJnlLine@61(NewBOMJnlLine@1000 : Record 89);
    

    Zamjenski kôd

    ...
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetBOMJnlLine@61(NewBOMJnlLine@1000 : Record 89);
    ...
    
  11. Promijenite kod u funkciji SetBOMJnlLine u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForBOMJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SetJobJnlLine@20(NewJobJnlLine@1000 : Record 210);
    ...
    

    Zamjenski kôd

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForBOMJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetJobJnlLine@20(NewJobJnlLine@1000 : Record 210);
    ...
    
  12. Promijenite kod u funkciji SetJobJnlLine u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForJobJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    END;
    
    PROCEDURE SalesLineUpdateValues@54(VAR CurrentSalesLine@1000 : Record 37;VAR QtyToReserve@1001 : Decimal;VAR QtyReservedThisLine@1002 : Decimal);
    ...
    

    Zamjenski kôd

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForJobJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SalesLineUpdateValues@54(VAR CurrentSalesLine@1000 : Record 37;VAR QtyToReserve@1001 : Decimal;VAR QtyReservedThisLine@1002 : Decimal);
    ...
    
    
  13. Promijenite kod u funkciji CallCalcReservedQtyOnPick u jedinici koda za upravljanje rezervacijama (99000845) na sljedeći način:
    Postojeći kod

    ...
    CreateReservEntry2.CreateRemainingReservEntry(SurplusEntry,QtyToSave);
    END;
    
    BEGIN
    END.
    }
    ...
    

    Zamjenski kôd

    ...
    CreateReservEntry2.CreateRemainingReservEntry(SurplusEntry,QtyToSave);
    END;
    
    // Add the following lines.
    PROCEDURE CallCalcReservedQtyOnPick@104();
    BEGIN
    IF Positive AND
    (CalcReservEntry."Location Code" <> '') AND
    Location.GET(CalcReservEntry."Location Code") AND
    (Location."Bin Mandatory" OR Location."Require Pick")
    THEN
    CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse);
    END;
    // End of the lines.
    
    BEGIN
    END.
    }
    ...
    

Preduvjeti

Da biste primijenili ovaj hitni popravak, morate imati instaliran neki od sljedećih proizvoda:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 5.0

Podaci o uklanjanju

Ovaj hitni popravak ne možete ukloniti.

Status

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

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 .