Microsoft Dynamics NAV :n nimiketapahtumalle luodaan useita määriä

Käytetään kohteeseen
Dynamics NAV 2009

Nopeasti julkaistut artikkelit antavat tietoja suoraan Microsoftin tukiorganisaatiosta. Tässä esitetyt tiedot luodaan vastauksena uusiin tai yksilöllisiä aiheita varten, tai ne on tarkoitettu täydentämään muita Knowledge Base -tietoja.
 Microsoft Business Solutions-Navision 4.0 ja Microsoft Navision 4.0 ovat nyt osa Microsoft Dynamics NAV 4.0:aa. Kaikki viittaukset Microsoft Business Solutions-Navision tai Microsoft Navision 4.0:aan liittyvät Microsoft Dynamics NAV -ohjelmaan.

Tämä artikkeli koskee Microsoft Dynamics NAV -ohjelmaa kaikilla alueilla.

Ongelman ilmenemistapa

Mieti seuraavaa tilannetta:

  • Voit luoda kaksi kohteen seurantariviä, joiden sarjanumerot on määritetty SNALL-kohteelle Kohteiden seurantarivit -valintaikkunassa.
  • Rivin sarjanumeroksi muutetaan sama kuin toisen rivin sarjanumero.
  • Sulje Kohteiden seurantarivit -valintaikkuna poistumatta Sarjanumero-kentästä .

Tässä skenaariossa Microsoft Dynamics NAV hyväksyy järjestysnumeron kaksoiskappaleen ja sarjanumeron määräksi muutetaan kaksi. Siksi nimiketapahtumalle luodaan useita määriä.

Tämä ongelma ilmenee seuraavissa tuotteissa:

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

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 Microsoft Dynamics NAV 2009 SP1:ssä muuttamalla koodia OnModifyRecord-käynnistimessä Kohteen seurantarivit -lomakkeessa (6510) ja Kohteen seurantarivit -sivulla (6510) seuraavasti:

Aiemmin luotu koodi

...
// Delete the following line.
                     IF NOT TestTempSpecificationExists THEN

                       MODIFY;

                     IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                       xTempTrackingSpec := xRec;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                     END;

                     IF TempItemTrackLineModify.GET("Entry No.") THEN
                       TempItemTrackLineModify.DELETE;
                     IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                       TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                       TempItemTrackLineInsert.MODIFY;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END ELSE BEGIN
                       TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                       TempItemTrackLineModify.INSERT;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END;
                     CalculateSums;
...

Korvaava koodi

...
// Add the following line.
                     IF NOT TestTempSpecificationExists THEN BEGIN          

                       MODIFY;

                       IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                         xTempTrackingSpec := xRec;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                       END;

                       IF TempItemTrackLineModify.GET("Entry No.") THEN
                         TempItemTrackLineModify.DELETE;
                       IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                         TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                         TempItemTrackLineInsert.MODIFY;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END ELSE BEGIN
                         TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                         TempItemTrackLineModify.INSERT;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END;

// Add the following line.
                     END;                                                                                                 

// Tab over two space to the left for the following line.
                     CalculateSums; 
...

Voit ratkaista tämän ongelman Microsoft Dynamics NAV 5.0 SP1:ssä muuttamalla koodia Kohteen seurantarivit -lomakkeen (6510) OnModifyRecord-käynnistimessä seuraavasti:

Aiemmin luotu koodi

...
// Delete the following line.
                     IF NOT TestTempSpecificationExists THEN

                       MODIFY;

                     IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                       xTempTrackingSpec := xRec;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                     END;

                     IF TempItemTrackLineModify.GET("Entry No.") THEN
                       TempItemTrackLineModify.DELETE;
                     IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                       TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                       TempItemTrackLineInsert.MODIFY;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END ELSE BEGIN
                       TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                       TempItemTrackLineModify.INSERT;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END;
                     CalculateSums;
...

Korvaava koodi

...
// Add the following line.
                     IF NOT TestTempSpecificationExists THEN BEGIN          

                       MODIFY;

                       IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                         xTempTrackingSpec := xRec;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                       END;

                       IF TempItemTrackLineModify.GET("Entry No.") THEN
                         TempItemTrackLineModify.DELETE;
                       IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                         TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                         TempItemTrackLineInsert.MODIFY;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END ELSE BEGIN
                         TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                         TempItemTrackLineModify.INSERT;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END;

// Add the following line.
                     END;                                                                                                 

// Tab over two space to the left for the following line.
                     CalculateSums;    
...

Voit ratkaista tämän ongelman Microsoft Dynamics NAV 4.0 SP3:ssa muuttamalla koodia Kohteen seurantarivit -lomakkeen (6510) OnModifyRecord-käynnistimessä seuraavasti:

Aiemmin luotu koodi

...
// Delete the following line.
IF NOT TestTempSpecificationExists THEN

    TempTrackingSpec.MODIFY;

IF TempItemTrackLineModify.GET(TempTrackingSpec."Entry No.") THEN
  TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET(TempTrackingSpec."Entry No.") THEN BEGIN
  TempItemTrackLineInsert.TRANSFERFIELDS(TempTrackingSpec);
  TempItemTrackLineInsert.MODIFY;
END ELSE BEGIN
  TempItemTrackLineModify.TRANSFERFIELDS(TempTrackingSpec);
  TempItemTrackLineModify.INSERT;
END;

CalculateSums;
...

Korvaava koodi

...
// Add the following line.
IF NOT TestTempSpecificationExists THEN BEGIN

    TempTrackingSpec.MODIFY;

// Tab over two spaces for the following lines.
  IF TempItemTrackLineModify.GET(TempTrackingSpec."Entry No.") THEN
    TempItemTrackLineModify.DELETE;
  IF TempItemTrackLineInsert.GET(TempTrackingSpec."Entry No.") THEN BEGIN
    TempItemTrackLineInsert.TRANSFERFIELDS(TempTrackingSpec);
    TempItemTrackLineInsert.MODIFY;
  END ELSE BEGIN
    TempItemTrackLineModify.TRANSFERFIELDS(TempTrackingSpec);
    TempItemTrackLineModify.INSERT;
  END;
// End of the lines.

// Add the following line.
END;

CalculateSums;
...

Edellytykset

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

  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 5.0 Service Pack 1
  • Microsoft Dynamics NAV 4.0 Service Pack 3

              

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.

MICROSOFT JA/TAI SEN TOIMITTAJAT EIVÄT TEE MITÄÄN ESITYKSIÄ TAI TAKUITA ASIAKIRJOJEN JA TÄSSÄ SIVUSTOSSA JULKAISTUJEN AIHEESEEN LIITTYVIEN KUVIEN ("MATERIAALIT") SOVELTUVUUDESTA, LUOTETTAVUUDESTA TAI OIKEELLISUUDESTA.

MATERIAALIT VOIVAT SISÄLTÄÄ TEKNISIÄ EPÄTARKKUUKSIA TAI TYPOGRAFISIA VIRHEITÄ, JA NIITÄ VOIDAAN MUUTTAA MILLOIN TAHANSA ILMAN ENNAKKOILMOITUSTA. SOVELLETTAVAN LAIN SALLIMISSA MÄÄRIN MICROSOFT JA/TAI SEN TOIMITTAJAT EIVÄT HYVÄKSY KAIKKIA ESITYKSIÄ, TAKUITA JA EHTOJA RIIPPUMATTA SIITÄ, OVATKO NE NIMENOMAISIA, EPÄSUORIA TAI LAKISÄÄTEISIÄ, MUKAAN LUKIEN MUTTA EI RAJOITTUEN MATERIAALEIHIN LIITTYVÄT KUVAUKSET, TAKUUT TAI OMISTUSEHDOT, RIKKOMATTA JÄTTÄMINEN, TYYDYTTÄVÄ EHTO TAI LAATU, SOVELTUVUUS KAUPANKÄYNNIN KOHTEEKSI JA SOVELTUVUUS TIETTYYN TARKOITUKSEEN.