Epäyhtenäiset tiedot luodaan, kun suoritat sovelluslaskentataulukon lomakkeen kohteelle Microsoft Dynamics NAV :ssa

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, joka käyttää Microsoft Dynamics NAV:n Keskimääräinen kustannuslaskenta -menetelmää. Kun suoritat kohteelle Sovelluslaskentataulukko-lomakkeen, luodaan epäyhtenäisiä tietoja. Epäyhtenäiset tiedot voivat aiheuttaa silmukan, kun suoritat Säädä Cost-Item Tapahtumat-erätyön. 
Jos esimerkiksi luot kiinteän sovelluksen saapuvan nimiketapahtuman ja lähtevien nimiketapahtumien välille Sovelluslaskentataulukko-lomakkeessa, lähtevään nimiketapahtumaan liitetyt arvotapahtumat tilaavat Arvo keskiarvon mukaan -kentässä virheellisesti Kyllä.
Jos poistat kiinteän sovelluksen Sovelluslaskentataulukko-lomakkeesta, vastaavan kohdesovelluksen merkinnän Kustannussovellus-kentän arvo on edelleen Kyllä virheellisesti.
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 järjestelmä luo virheellisen arvon Arvostetun keskiarvon mukaan -kenttään Arvotapahtuma-taulukossa sen jälkeen, kun olet suorittanut Käytä-funktion tai Poista sovellus - funktion Sovelluslaskentataulukko-lomakkeessa.

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 vaikuta sinuun vakavasti, suosittelemme odottamaan seuraavaa Microsoft Dynamics NAV 2009 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 UnApply-funktion Koodi-funktion koodia Kohteessa Jnl.-Postirivikoodin yksikkö (22) seuraavasti:
    Aiemmin luotu koodi

    ...
    //Delete the following lines.
          IF Item."Costing Method" = Item."Costing Method"::Average THEN BEGIN
            IF Application.Fixed THEN BEGIN
              ValueEntry.SETCURRENTKEY("Item Ledger Entry No.");
              ValueEntry.SETRANGE("Item Ledger Entry No.",CostItemLedgEntry."Entry No.");
              ValueEntry.SETRANGE("Valued By Average Cost",FALSE);
              ValueEntry.MODIFYALL("Valued By Average Cost",TRUE);
            END;
          END;
    //End of the lines.
    

    Korvaava koodi

    //Add the following lines.
          IF Item."Costing Method" = Item."Costing Method"::Average THEN
            IF Application.Fixed THEN
              UpdateValuedByAverageCost(CostItemLedgEntry."Entry No.",TRUE);
    //End of the lines.
    
    ...
    
  2. Muuta Kohteen Jnl.-postinumeron (22) ReApply-funktion koodi seuraavasti:

    ...
          TotalAppliedQty := 0;
          CostApplication := FALSE;
          IF ApplyWith <> 0 THEN BEGIN
            ItemLedgEntry2.GET(ApplyWith);
    ...
              UpdateLinkedValuationDate(ValueEntry."Valuation Date",GlobalItemLedgEntry."Entry No.",GlobalItemLedgEntry.Positive);
            END;
    
    //Add the following lines.
            IF ItemApplnEntry.Fixed AND (ItemApplnEntry.CostReceiver <> 0) THEN    
              IF Item.GET(ItemLedgEntry."Item No.") THEN                           
                IF Item."Costing Method" = Item."Costing Method"::Average THEN     
                  UpdateValuedByAverageCost(ItemApplnEntry.CostReceiver,FALSE);    
    //End of the lines.
    
          END ELSE
          BEGIN  // ApplyWith is 0
    ...
    
  3. Luo uusi UpdateValuedByAverageCost-funktio Item Jnl.-Post Line -koodiunitissa (22). Voit luoda tämän funktion seuraavasti:

    1. Luo uusi funktio seuraavasti:

      UpdateValuedByAverageCost(CostItemLedgEntryNo : Integer;ValuedByAverage : Boolean);
      
    2. Lisää uusi paikallinen muuttuja ja määritä muuttuja seuraavasti:

      • Nimi: ValueEntry
      • Tietotyyppi: Tietue
      • Alatyyppi: Arvomerkintä (5802)
    3. Lisää koodi seuraavasti:

          BEGIN
            IF CostItemLedgEntryNo = 0 THEN
              EXIT;
      
            ValueEntry.SETCURRENTKEY("Item Ledger Entry No.");
            ValueEntry.SETRANGE("Item Ledger Entry No.",CostItemLedgEntryNo);
            ValueEntry.SETRANGE("Valued By Average Cost",NOT ValuedByAverage);
            ValueEntry.MODIFYALL("Valued By Average Cost",ValuedByAverage);
          END;
      ...
      
  4. Muuta CreateItemJNLLinefromEntry-funktion koodia Item Jnl.-Post Line codeunit (22) -toiminnossa seuraavasti:
    Aiemmin luotu koodi

    ...
    //Delete the following line.
    Quantity := NewQuantity;
     ...
    

    Korvaava koodi

    ...
    //Add the following line. 
    Quantity := Signed(NewQuantity); 
    
    ...
    

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 .