Pri objavljanju računov za storitve v orodju Microsoft Dynamics NAV je učinkovitost delovanja slaba

Velja za
Microsoft Dynamics NAV 5.0 Microsoft Dynamics NAV 5.0 Service Pack 1 Dynamics NAV 2009 Dynamics NAV 2009 Service Pack 1

ČLANKI ZA HITRO OBJAVLJANJE ZAGOTAVLJAJO INFORMACIJE NEPOSREDNO V MICROSOFTOVI ORGANIZACIJI ZA PODPORO. INFORMACIJE, KI SO V TEM DOKUMENTU, SO USTVARJENE KOT ODZIV NA NOVE ALI EDINSTVENE TEME ALI PA SO NAMENJENE DOPOLNJEVANJU DRUGIM INFORMACIJAM IZ ZBIRKE ZNANJA.

Ta članek velja za Microsoft Dynamics NAV za vse države in jezikovne območne nastavitve.

Znaki

Ko objavljate račune storitve v storitvi Microsoft Dynamics NAV, je učinkovitost delovanja počasna.

Do te težave pride, če imate veliko število vnosov v tabeli »Vnos v knjigo storitev«, preden objavite račune storitev.

Do te težave pride pri teh izdelkih:

  • Microsoft Dynamics NAV 5.0
  • Servisni paket SP1 za Microsoft Dynamics NAV 5.0
  • Microsoft Dynamics NAV 2009
  • Servisni paket SP1 za Microsoft Dynamics NAV 2009

Rešitev

Informacije o sprotnih popravkih

Microsoft zdaj ponuja podprt sprotni popravek. Vendar pa je njegov namen le odpraviti težavo, ki je opisana v tem članku. Uporabite ga samo v sistemih, v katerih se je spopadalo s to določeno težavo. Ta sprotni popravek bo morda dodatno pretestiran. Če ta težava na vas ne vpliva resno, priporočamo, da počakate na naslednji servisni paket za Microsoft Dynamics NAV ali naslednjo različico, ki vsebuje ta hitri popravek.

Opomba V posebnih primerih so klici za podporo, v katere so običajno vključeni stroški, lahko brezplačni, če strokovnjak za tehnično podporo za Microsoft Dynamics in sorodne izdelke ugotovi, da neka posodobitev lahko odpravi vašo težavo. Običajni stroški podpore veljajo za dodatna vprašanja o podpori in težavah, ki niso povezana z določeno posodobitvijo.

            
          

Informacije o namestitvi

Microsoft ponuja primere programiranja samo za ponazoritev, brez izrecnega ali naznačenega jamstva. To vključuje, vendar ni omejeno na, naznačena jamstva glede primernosti za prodajo ali določen namen. V tem članku predvidevamo, da poznate programski jezik, ki je predstavljen, in orodja, ki se uporabljajo za ustvarjanje postopkov in njihovo odpravljanje napak. Microsoftovi inženirji za podporo vam lahko pomagajo razložiti delovanje določenega postopka, vendar teh primerov ne bodo spremenili, da bi zagotovili dodatno funkcionalnost ali ustvarili postopke, ki izpolnjujejo vaše določene zahteve.

Opomba Preden namestite ta hitri popravek, preverite, ali so vsi uporabniki odjemalca Microsoft Navision odjavljeni iz sistema. To vključuje uporabnike odjemalskih storitev Microsoft Navision Application Services (NAS). Ko uvedete ta sprotni popravek, morate biti edini odjemalski uporabnik, ki je prijavljen.

Če želite uvesti ta sprotni popravek, morate imeti licenco za razvijalce.

Priporočamo, da uporabniškemu računu v oknu »Prijave v Windows« ali »Prijave v zbirko podatkov« dodelite ID vloge »SUPER«. Če uporabniškemu računu ni mogoče dodeliti ID-ja vloge »SUPER«, morate preveriti, ali ima uporabniški račun ta dovoljenja:

  • Dovoljenje »Spremeni« za predmet, ki ga boste spreminjali.
  • Dovoljenje za izvajanje za predmet »Sistemski predmet z ID-jem 5210« in za predmet »Sistemski predmet z ID-jem 9015«.

                
Opomba: Če morate popraviti podatke, vam ni treba imeti pravic do podatkovnih shramb.

Spremembe kode

Opomba: Popravke kode vedno preskusite v nadzorovanem okolju, preden jih uporabite v produkcijskih računalnikih.

Če želite namestiti ta sprotni popravek, spremenite kodo v sprožilcu »InsertServLedgerEntrySale« kodne enote »ServLedgerEntries – Post« (5912).

Obstoječa koda

...
IF ApplyToServLedgEntry.GET(ServLine."Appl.-to Service Entry") THEN BEGIN
  IF ApplyToServLedgEntry.Type = ApplyToServLedgEntry.Type::"Service Contract" THEN BEGIN
    ServLedgEntry.RESET;
    ServLedgEntry.SETCURRENTKEY(
      "Service Contract No.","Entry No.","Entry Type",Type,"Moved from Prepaid Acc.");  
    ServLedgEntry.SETRANGE("Service Contract No.",ApplyToServLedgEntry."Service Contract No.");
    ServLedgEntry.SETRANGE("Entry Type",ApplyToServLedgEntry."Entry Type");
    ServLedgEntry.SETRANGE(Type,ApplyToServLedgEntry.Type);
    ServLedgEntry.SETRANGE("Moved from Prepaid Acc.",ApplyToServLedgEntry."Moved from Prepaid Acc.");
    IF ApplyToServLedgEntry."Apply Until Entry No." = 0 THEN
      ServLedgEntry.SETRANGE("Entry No.",ApplyToServLedgEntry."Entry No.")
    ELSE
      ServLedgEntry.SETRANGE("Entry No.",ApplyToServLedgEntry."Entry No.",ApplyToServLedgEntry."Apply Until Entry No.");
    IF ServLedgEntry.FIND('-') THEN
      REPEAT
        servledgentry.Open := FALSE;  
        IF ServHeader."Document Type" = ServHeader."Document Type"::Invoice THEN BEGIN
          servledgentry."Document Type" := ServLedgEntry."Document Type"::Invoice;
          servledgentry."Document No." := GenJnlLineDocNo;
        END;
        servledgentry.MODIFY;
      UNTIL ServLedgEntry.NEXT = 0;
    EXIT;
...

Nadomestna koda

...
IF ApplyToServLedgEntry.GET(ServLine."Appl.-to Service Entry") THEN BEGIN
  IF ApplyToServLedgEntry.Type = ApplyToServLedgEntry.Type::"Service Contract" THEN BEGIN
    ServLedgEntry.RESET;
    ServLedgEntry.SETCURRENTKEY(
      "Service Contract No.","Entry No.","Entry Type",Type,"Moved from Prepaid Acc.");  
    ServLedgEntry.SETRANGE("Service Contract No.",ApplyToServLedgEntry."Service Contract No.");
    ServLedgEntry.SETRANGE("Entry Type",ApplyToServLedgEntry."Entry Type");
    ServLedgEntry.SETRANGE(Type,ApplyToServLedgEntry.Type);
    ServLedgEntry.SETRANGE("Moved from Prepaid Acc.",ApplyToServLedgEntry."Moved from Prepaid Acc.");
    IF ApplyToServLedgEntry."Apply Until Entry No." = 0 THEN
      ServLedgEntry.SETRANGE("Entry No.",ApplyToServLedgEntry."Entry No.")
    ELSE
      ServLedgEntry.SETRANGE("Entry No.",ApplyToServLedgEntry."Entry No.",ApplyToServLedgEntry."Apply Until Entry No.");
    IF ServLedgEntry.FIND('-') THEN BEGIN
       ServLedgEntry.MODIFYALL(Open,FALSE);
        IF ServHeader."Document Type" = ServHeader."Document Type"::Invoice THEN BEGIN
          ServLedgEntry.MODIFYALL("Document Type",ServLedgEntry."Document Type"::Invoice);
          ServLedgEntry.MODIFYALL("Document No.",GenJnlLineDocNo);
        END;  
    END;
  EXIT;

...

Pogoji

Če želite uporabiti ta sprotni popravek, morate imeti nameščenega enega od teh izdelkov:

  • Microsoft Dynamics NAV 5.0
  • Servisni paket SP1 za Microsoft Dynamics NAV 5.0
  • Microsoft Dynamics NAV 2009
  • Servisni paket SP1 za Microsoft Dynamics NAV 2009

Informacije o odstranitvi

Tega sprotnega popravka ne morete odstraniti.

Stanje

Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.

MICROSOFT IN/ALI NJEGOVI DOBAVITELJI NE DAJEJO ZAGOTOVIL ALI JAMSTEV GLEDE PRIMERNOSTI, ZANESLJIVOSTI ALI TOČNOSTI INFORMACIJ, KI SO V DOKUMENTIH IN POVEZANIH GRAFIKAH, OBJAVLJENIH NA TEM SPLETNEM MESTU (»GRADIVA«), ZA KAKRŠEN KOLI NAMEN.

GRADIVO LAHKO VSEBUJE TEHNIČNE NETOČNOSTI ALI TIPKARSKE NAPAKE IN GA JE MOGOČE KADARKOLI PREGLEDATI BREZ OBVESTILA. MICROSOFT IN/ALI NJEGOVI DOBAVITELJI V NAJVEČJI MERI, KI JO DOVOLJUJE UPOŠTEVNA ZAKONODAJA, ZAVRAČAJO IN IZKLJUČUJEJO VSA ZAGOTOVILA, JAMSTVA IN POGOJE, BODISI IZRECNE, NAZNAČENE ALI ZAKONSKE, VKLJUČNO Z, VENDAR NE OMEJENO NANJE, ZAGOTOVILA, JAMSTVA ALI POGOJE LASTNIŠTVA, NEKRŠITVE PRAVIC INTELEKTUALNE LASTNINE, ZADOVOLJIVEGA STANJA ALI KAKOVOSTI, PRIMERNOSTI ZA PRODAJO IN PRIMERNOSTI ZA DOLOČEN NAMEN V ZVEZI Z MATERIALI.