Nimikettä ei ole varattu nimiketapahtumille, jotka luodaan nimikkeelle odotetulla tavalla, jos määrität Aina-arvon Microsoft Dynamics NAV -kohteen Varaa-kentässä

Käytetään kohteeseen
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1 Microsoft Dynamics NAV 5.0

Tämä artikkeli koskee Microsoft Dynamics NAV -ohjelmaa kaikissa maissa ja kaikilla kielialueilla.

Ongelman ilmenemistapa

Oletetaan, että sinulla on kohde, jonka Varaus-arvoksi on määritetty Aina Microsoft Dynamics NAV :ssa. Kun luot nimikkeelle tuotantotilauksen, nimikettä ei varata nimiketapahtumille, jotka luodaan nimikkeelle odotetulla tavalla.
Huomautus Tässä tilanteessa kohde on varattu nimikkeelle luoduille ostotilauksille.
Tämä ongelma ilmenee seuraavissa tuotteissa:

  • 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

      

Syy

Tämä ongelma ilmenee, koska nimiketapahtumien varattua määrää ei lasketa, kun järjestelmä varaa rivin automaattisesti.

Ratkaisu

Hotfix-tiedot

Tuettu hotfix-korjaus on nyt saatavilla Microsoftilta. Sen tarkoituksena on kuitenkin korjata vain tässä artikkelissa kuvattu ongelma. Käytä sitä vain järjestelmissä, joissa on tämä ongelma. Tämä hotfix-korjaus voi saada lisätestejä. Jos ongelma ei siis vakavasti vaikuta sinuun, suosittelemme odottamaan seuraavaa Microsoft Dynamics NAV Service Pack -pakettia tai seuraavaa Microsoft Dynamics NAV -versiota, joka sisältää tämän hotfix-korjauksen.

Huomautus Erityistapauksissa tukipuheluista tavallisesti aiheutuvat maksut voidaan peruuttaa, jos Microsoft Dynamicsin ja siihen liittyvien tuotteiden teknisen tuen asiantuntija määrittää, että tietty päivitys ratkaisee ongelmasi. Tavanomaiset tukikustannukset koskevat muita tukikysymyksiä ja -ongelmia, jotka eivät ole oikeutettuja kyseiseen päivitykseen.

            
          

Asennustiedot

Microsoft tarjoaa ohjelmointiesimerkkejä vain havainnollistamista varten ilman ilmaistua tai oletettua takuuta. Tämä sisältää muun muassa oletetut takuut soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että tunnet ohjelmointikielen, jota esitellään, sekä työkalut, joita käytetään toimintosarjojen luomiseen ja virheenkorjaukseen. Microsoftin tukihenkilöt voivat auttaa selittämään tietyn menettelyn toiminnallisuuden, mutta he eivät muokkaa näitä esimerkkejä niin, että ne tarjoaisivat lisätoimintoja tai laativat menetelmiä erityisvaatimusten täyttämiseksi.

Huomautus Varmista ennen tämän hotfix-korjauksen asentamista, että kaikki Microsoft Navision -asiakasohjelman käyttäjät ovat kirjautuneet ulos järjestelmästä. Tämä koskee myös Microsoft Navision Application Services (NAS) -asiakaskäyttäjiä. Sinun pitäisi olla ainoa asiakaskäyttäjä, joka on kirjautunut sisään, kun otat tämän hotfix-korjauksen käyttöön.

Jotta voit ottaa tämän hotfix-korjauksen käyttöön, sinulla on oltava kehittäjän käyttöoikeus.

Suosittelemme, että käyttäjätilille, joka on Windowsin kirjautumisikkunassa tai Tietokannan kirjautumiset -ikkunassa, määritetään "SUPER"-roolitunnus. Jos käyttäjätilille ei voi määrittää "SUPER"-roolitunnusta, sinun on varmistettava, että käyttäjätilillä on seuraavat käyttöoikeudet:

  • Muutettavan objektin Muokkaa-käyttöoikeus.
  • System Object ID 5210 -objektin ja System Object ID 9015 -objektin Suoritus-oikeus.

                
Huomautus Sinulla ei tarvitse olla oikeuksia tietosäilöihin, ellei sinun tarvitse korjata tietoja.

Koodin muutokset

Huomautus Testaa koodikorjaukset aina valvotussa ympäristössä, ennen kuin otat korjaukset käyttöön tuotantotietokoneissasi.
Voit ratkaista tämän ongelman seuraavasti:

  1. Muuta SetSalesLine-funktion koodia varausten hallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetReqLine@13(NewReqLine@1000 : Record 246);
    ...
    
  2. Muuta SetReqLine-funktion koodia varauksenhallinnan koodiosassa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetPurchLine@2(NewPurchLine@1000 : Record 39);
    ...
    
  3. Muuta SetPurchLine-funktion koodia varauksenhallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForPurchLine."Outstanding Qty. (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetItemJnlLine@3(NewItemJnlLine@1000 : Record 83);
    
  4. Muuta SetItemJnlLine-funktion koodia varauksenhallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForItemJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetProdOrderLine@9(NewProdOrderLine@1000 : Record 5406);
    ...
    
  5. Muuta SetProdOrderLine-funktion koodia varauksenhallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    Positive := ForProdOrderLine."Remaining Qty. (Base)" < 0;
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetProdOrderComponent@11(NewProdOrderComp@1000 : Record 5407);
    
  6. Muuta SetProdOrderComponent-funktion koodia varausten hallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    Positive := ForProdOrderComp."Remaining Qty. (Base)" > 0;
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetPlanningComponent@12(NewPlanningComponent@1000 : Record 99000829);
    ...
    
  7. Muuta SetPlanningComponent-funktion koodia varausten hallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    Positive := ForPlanningComponent."Net Quantity (Base)" > 0;
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetItemLedgEntry@34(NewItemLedgEntry@1000 : Record 32);
    ...
    
  8. Muuta SetItemLedgEntry-funktion koodia varausten hallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetTransferLine@47(NewTransLine@1000 : Record 5741;Direction@1001 : 'Outbound,Inbound');
    ...
    
  9. Muuta SetTransferLine-funktion koodia varauksenhallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    GetItemSetup(CalcReservEntry);
    
    SetPointerFilter(CalcReservEntry2); 
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetServLine@48(NewServiceInvLine@1000 : Record 5902);
    ...
    
  10. Muuta SetServLine-funktion koodia varauksenhallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetBOMJnlLine@61(NewBOMJnlLine@1000 : Record 89);
    ...
    
  11. Muuta SetBOMJnlLine-funktion koodia varausten hallinnan koodiosassa (99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

    ...
    ((CreateReservEntry.SignFactor(CalcReservEntry) * ForBOMJnlLine."Quantity (Base)") < 0);
    
    SetPointerFilter(CalcReservEntry2);
    
    // Add the following line.
    CallCalcReservedQtyOnPick;
    
    END;
    
    PROCEDURE SetJobJnlLine@20(NewJobJnlLine@1000 : Record 210);
    ...
    
  12. Muuta SetJobJnlLine-funktion koodia varauksenhallinnan koodissa (99000845) seuraavasti:
    Aiemmin luotu koodi

    ...
    ((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);
    ...
    

    Korvaava koodi

    ...
    ((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. Muuta CallCalcReservedQtyOnPick-funktion koodia varausten hallinnan codeunit(99000845) seuraavasti:
    Aiemmin luotu koodi

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

    Korvaava koodi

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

Edellytykset

Sinulla on oltava asennettuna jokin seuraavista tuotteista, jotta voit käyttää tätä hotfix-korjausta:

  • 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

Poistotiedot

Et voi poistaa tätä hotfix-korjausta.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Huomautus Tämä on FAST PUBLISH -artikkeli, joka on luotu suoraan Microsoftin tukiorganisaatiosta. Tässä annetut tiedot annetaan sellaisenaan vastauksena uusiin ongelmiin. Koska materiaalit ovat nopeasti käytettävissä, ne voivat sisältää typografisia virheitä, ja niitä voidaan muuttaa milloin tahansa ilman ennakkoilmoitusta. Lisätietoja on ohjeaiheessa Käyttöehdot .