Et voi luoda huoltotilausta palvelusopimuksen päättymispäivänä sen jälkeen, kun olet soveltanut hotfix-980577 Microsoft Dynamics NAV :ssa

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

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

Ongelman ilmenemistapa

Oletetaan, että käytät hotfix-korjausta 980577 Microsoft Dynamics NAV:ssa. Sen jälkeen lisäät huoltonimikkeen palvelusopimukseen, jonka päättymispäivä on määritetty. Tässä tilanteessa, kun lisäät huoltotilaukseen huoltonimikkeen, Sopimuksen nro -arvoa ei automaattisesti lisätä huoltotilausriville. Palvelutilaukseen ei myöskään voi lisätä manuaalisesti Sopimuksen nro -arvoa.
  Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jotta voit tarkastella artikkelia Microsoft Knowledge Base -tietokanta -tietokannassa:

980577 Microsoft Dynamics NAV 5.0 Service Pack 1 :n sopimuksen päättymispäivänä ei voi käyttää palvelutilauksen sopimusta:

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

      

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 toimintosarjan toiminnallisuuden. He eivät kuitenkaan muokkaa näitä esimerkkejä tarjotakseen lisätoimintoja tai luodakseen toimintosarjoja, jotka vastaavat tarpeitasi.

Huomautus Varmista ennen tämän hotfix-korjauksen asentamista, että kaikki Microsoft Dynamics NAV -asiakasohjelman käyttäjät ovat kirjautuneet ulos järjestelmästä. Tämä sisältää Microsoft Dynamics NAV -sovelluspalvelimen (NAS) palvelut. 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:n suoritusoikeus

    Objekti.

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 ominaisuuksien koodia Huoltokohteen rivi -taulukossa (5901) seuraavasti:
    Aiemmin luotu koodi

    ...
    ServContractLine.SETRANGE("Contract Type",ServContractLine."Contract Type"::Contract);
    ServContractLine.SETRANGE("Contract No.",ServHeader."Contract No.");
    ServContractLine.SETRANGE("Service Item No.","Service Item No.");
    ServContractLine.SETRANGE("Contract Status",ServContractLine."Contract Status"::Signed);
    ServContractLine.SETFILTER("Starting Date",'<=%1',ServHeader."Order Date");
    
    // Delete the following line.
    ServContractLine.SETFILTER("Contract Expiration Date",'>%1 | =%2',ServHeader."Order Date",0D);
    // End of the deleted line.
    
    IF ServContractLine.FIND('-') THEN
    "Contract No." := ServHeader."Contract No.";
    END;
    IF ("Contract No." <> '') AND ("Service Price Group Code" <> '') THEN
    VALIDATE("Service Price Group Code",'');
    ...
    

    Korvaava koodi

    ...
    ServContractLine.SETRANGE("Contract Type",ServContractLine."Contract Type"::Contract);
    ServContractLine.SETRANGE("Contract No.",ServHeader."Contract No.");
    ServContractLine.SETRANGE("Service Item No.","Service Item No.");
    ServContractLine.SETRANGE("Contract Status",ServContractLine."Contract Status"::Signed);
    ServContractLine.SETFILTER("Starting Date",'<=%1',ServHeader."Order Date");
    
    // Add the following line.
    ServContractLine.SETFILTER("Contract Expiration Date",'>=%1 | =%2',ServHeader."Order Date",0D);
    // End of the added line.
    
    IF ServContractLine.FIND('-') THEN
    "Contract No." := ServHeader."Contract No.";
    END;
    IF ("Contract No." <> '') AND ("Service Price Group Code" <> '') THEN
    VALIDATE("Service Price Group Code",'');
    ...
    
  2. Muuta kenttien koodia Huoltokohteen rivi -taulukossa (5901) seuraavasti:
    Olemassa oleva koodi 1

    ...
    ServContractLine.SETRANGE("Service Item No.",ServItem."No.");
    ServContractLine.SETRANGE("Contract Status",ServContractLine."Contract Status"::Signed);
    ServContractLine.SETRANGE("Contract Type",ServContractLine."Contract Type"::Contract);
    ServContractLine.SETRANGE("Customer No.",ServHeader."Customer No.");
    ServContractLine.SETFILTER("Starting Date",'<=%1',ServHeader."Order Date");
    
    // Delete the following line.
    ServContractLine.SETFILTER("Contract Expiration Date",'>%1 | =%2',ServHeader."Order Date",0D);
    // End of the deleted line.
    
    ServContractLine.FILTERGROUP(0);
    
    IF ServContractLine.FIND('-') THEN
    IF ServContractLine.NEXT > 0 THEN BEGIN
    IF CONFIRM(Text047,TRUE,"Service Item No.") THEN BEGIN
    ...
    

    Korvaava koodi 1

    ...
    ServContractLine.SETRANGE("Service Item No.",ServItem."No.");
    ServContractLine.SETRANGE("Contract Status",ServContractLine."Contract Status"::Signed);
    ServContractLine.SETRANGE("Contract Type",ServContractLine."Contract Type"::Contract);
    ServContractLine.SETRANGE("Customer No.",ServHeader."Customer No.");
    ServContractLine.SETFILTER("Starting Date",'<=%1',ServHeader."Order Date");
    
    // Add the following line.
    ServContractLine.SETFILTER("Contract Expiration Date",'>=%1 | =%2',ServHeader."Order Date",0D);
    // End of the added line.
    
    ServContractLine.FILTERGROUP(0);
    
    IF ServContractLine.FIND('-') THEN
    IF ServContractLine.NEXT > 0 THEN BEGIN
    IF CONFIRM(Text047,TRUE,"Service Item No.") THEN BEGIN
    ...
    

    Nykyinen koodi 2

    ...
    ServContractLine.SETRANGE("Contract Type",ServContractLine."Contract Type"::Contract);
    ServContractLine.SETRANGE("Customer No.",ServHeader."Customer No.");
    ServContractLine.SETRANGE("Service Item No.","Service Item No.");
    ServContractLine.SETRANGE("Contract Status",ServContractLine."Contract Status"::Signed);
    ServContractLine.SETFILTER("Starting Date",'<=%1',ServHeader."Order Date");
    
    // Delete the following line.
    ServContractLine.SETFILTER("Contract Expiration Date",'>%1 | =%2',ServHeader."Order Date",0D);
    // End of the deleted line.
    
    ServContractLine.FILTERGROUP(0);
    ServContractList.SETTABLEVIEW(ServContractLine);
    ServContractList.LOOKUPMODE(TRUE);
    IF ServContractList.RUNMODAL = ACTION::LookupOK THEN BEGIN
    ServContractList.GETRECORD(ServContractLine);
    ...
    

    Korvaava koodi 2

    ...
    ServContractLine.SETRANGE("Contract Type",ServContractLine."Contract Type"::Contract);
    ServContractLine.SETRANGE("Customer No.",ServHeader."Customer No.");
    ServContractLine.SETRANGE("Service Item No.","Service Item No.");
    ServContractLine.SETRANGE("Contract Status",ServContractLine."Contract Status"::Signed);
    ServContractLine.SETFILTER("Starting Date",'<=%1',ServHeader."Order Date");
    
    // Add the following line.
    ServContractLine.SETFILTER("Contract Expiration Date",'>=%1 | =%2',ServHeader."Order Date",0D);
    // End of the added line.
    
    ServContractLine.FILTERGROUP(0);
    ServContractList.SETTABLEVIEW(ServContractLine);
    ServContractList.LOOKUPMODE(TRUE);
    IF ServContractList.RUNMODAL = ACTION::LookupOK THEN BEGIN
    ServContractList.GETRECORD(ServContractLine);
    ...
    

          

Edellytykset

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

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 5.0 Service Pack 1

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 .