Sistem nepričakovano posodobi datum objave, ko zaženete funkcijo »Post Batch« za prodajni račun ali nakupni račun v portugalski različici programa Microsoft Dynamics NAV 2009

Velja za
Dynamics NAV 2009

Ta članek velja za Microsoft Dynamics NAV za območne nastavitve portugalščine (pt).

Znaki

Oglejte si naslednji scenarij v portugalski različici programske opreme Microsoft Dynamics NAV 2009 R2 in Microsoft Dynamics NAV 2009 s servisnim paketom SP1:

  • Imate številsko serijo, ki omogoča nastavitev datumskega zaporedja .
  • Imate račun o prodaji ali račun za nakup, ki uporablja številske serije.
  • Sistem dodeli številko objave prodajnemu računu ali računu za nakup.
  • Za ta račun zaženete funkcijo paketne objave in zamenjate datum objave na zavihku »Možnosti « v pogovornem oknu » Paketni prodajni račun « ali v pogovornem oknu » Paketna objava nakupovnih računov «.

V tem primeru sistem nepričakovano posodobi datum knjiženja tega računa in ne preveri datumskega vrstnega reda. Vendar pa sistem preveri datumski vrstni red, če zamenjate vrednost v polju » Datum knjiženja « na zavihku » Splošno « tega računa.

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 ne vpliva resno, priporočamo, da počakate na naslednji servisni paket za Microsoft Dynamics NAV 2009 ali naslednjo različico Microsoft Dynamics NAV, 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 pa teh primerov ne bodo spremenili z namenom zagotavljanja dodatne funkcionalnosti ali oblikovali postopkov, ki ustrezajo vašim posebnim zahtevam.

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.
To težavo odpravite tako:

  1. Spremenite kodo v tabeli »Glava prodaje« (36). To naredite tako:

    1. Spremenite kodo v poljih tako:
      Obstoječa koda

      ...
      END;
      
      CaptionML=[ENU=Order Date;
      PTG=Data Encomenda] }
      { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN
      
      // Delete the following lines.
       TestNoSeriesDate(
       "Posting No.","Posting No. Series",
       FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series"));
       TestNoSeriesDate(
       "Prepayment No.","Prepayment No. Series",
       FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series"));
       TestNoSeriesDate(
       "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series",
       FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series"));
      
       VALIDATE("Document Date","Posting Date");
      
       IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND
       NOT ("Posting Date" = xRec."Posting Date")
       THEN
       PriceMessageIfSalesLinesExist(FIELDCAPTION("Posting Date"));
      
       IF "Currency Code" <> '' THEN BEGIN
       UpdateCurrencyFactor;
       IF "Currency Factor" <> xRec."Currency Factor" THEN
       ConfirmUpdateCurrencyFactor;
       END;
      // End of the deleted lines.
      
      END;
      
      CaptionML=[ENU=Posting Date;
      PTG=Data Registo] }
      { 21 ; ;Shipment Date ;Date ;OnValidate=BEGIN
      ...
      

      Nadomestna koda

      ...
      END;
      
      CaptionML=[ENU=Order Date;
      PTG=Data Encomenda] }
      { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN
      
      // Add the following lines.
       IF "Posting Date" <> xRec."Posting Date" THEN BEGIN
       TestNoSeriesDate(
       "Posting No.","Posting No. Series",
       FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series"));
       TestNoSeriesDate(
       "Prepayment No.","Prepayment No. Series",
       FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series"));
       TestNoSeriesDate(
       "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series",
       FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series"));
      
       VALIDATE("Document Date","Posting Date");
      
       IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND
       NOT ("Posting Date" = xRec."Posting Date")
       THEN
       PriceMessageIfSalesLinesExist(FIELDCAPTION("Posting Date"));
      
       IF "Currency Code" <> '' THEN BEGIN
       UpdateCurrencyFactor;
       IF "Currency Factor" <> xRec."Currency Factor" THEN
       ConfirmUpdateCurrencyFactor;
       END;
      END;
      // End of the added lines.
      
      END;
      
      CaptionML=[ENU=Posting Date;
      PTG=Data Registo] }
      { 21 ; ;Shipment Date ;Date ;OnValidate=BEGIN
      ...
      
    2. Spremenite kodo v funkciji UpdatePmtDiscDate tako:
      Obstoječa koda

      ...
      IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN
      "Pmt. Discount Date" := "Due Date";
      END;
      
      BEGIN
      END.
      }
      }
      ...
      

      Nadomestna koda

      ...
      IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN
      "Pmt. Discount Date" := "Due Date";
      END;
      
      BEGIN
      
      // Add the following lines.
       {
       <changelog>
       <change id="VSTF300295" dev="v-mokuma" feature="VSTF300295"
       date="2012-01-20" area="Sales" baseversion="PT6.00.01"
       releaseversion="PT6.00.02">
       Problem with number series with date order setting and batch posting
       </change>
       </changelog>
       }
      // End of the added lines.
      
      END.
      }
      }
      ...
      
  2. Spremenite kodo v tabeli »Glava nakupa« (38). To naredite tako:

    1. Spremenite kodo v poljih tako:
      Obstoječa koda

      ...
      END;
      
      CaptionML=[ENU=Order Date;
      PTG=Data Encomenda] }
      { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN
      
      // Delete the following lines.
       TestNoSeriesDate(
       "Posting No.","Posting No. Series",
       FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series"));
       TestNoSeriesDate(
       "Prepayment No.","Prepayment No. Series",
       FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series"));
       TestNoSeriesDate(
       "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series",
       FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series"));
      
       VALIDATE("Document Date","Posting Date");
      
       IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND
       NOT ("Posting Date" = xRec."Posting Date")
       THEN
       PriceMessageIfPurchLinesExist(FIELDCAPTION("Posting Date"));
      
       IF "Currency Code" <> '' THEN BEGIN
       UpdateCurrencyFactor;
       IF "Currency Factor" <> xRec."Currency Factor" THEN
       ConfirmUpdateCurrencyFactor;
       END;
       IF PurchLinesExist THEN
       JobUpdatePurchLines;
      // End of the deleted lines.
      
      
      END;
      
      CaptionML=[ENU=Posting Date;
      PTG=Data Registo] }
      { 21 ; ;Expected Receipt Date;Date ;OnValidate=BEGIN
      ...
      

      Nadomestna koda

      ...
      END;
      
      CaptionML=[ENU=Order Date;
      PTG=Data Encomenda] }
      { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN
      
      // Add the following lines.
       IF "Posting Date" <> xRec."Posting Date" THEN BEGIN
       TestNoSeriesDate(
       "Posting No.","Posting No. Series",
       FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series"));
       TestNoSeriesDate(
       "Prepayment No.","Prepayment No. Series",
       FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series"));
       TestNoSeriesDate(
       "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series",
       FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series"));
      
       VALIDATE("Document Date","Posting Date");
      
       IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND
       NOT ("Posting Date" = xRec."Posting Date")
       THEN
       PriceMessageIfPurchLinesExist(FIELDCAPTION("Posting Date"));
      
       IF "Currency Code" <> '' THEN BEGIN
       UpdateCurrencyFactor;
       IF "Currency Factor" <> xRec."Currency Factor" THEN
       ConfirmUpdateCurrencyFactor;
       END;
       IF PurchLinesExist THEN
       JobUpdatePurchLines;
       END;
      // End of the added lines.
      
      END;
      
      CaptionML=[ENU=Posting Date;
      PTG=Data Registo] }
      { 21 ; ;Expected Receipt Date;Date ;OnValidate=BEGIN
      ...
      
    2. Spremenite kodo v funkciji UpdatePmtDiscDate tako:
      Obstoječa koda

      ...
      IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN
      "Pmt. Discount Date" := "Due Date";
      END;
      
      BEGIN
      END.
      }
      }
      ...
      

      Nadomestna koda

      ...
      IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN
      "Pmt. Discount Date" := "Due Date";
      END;
      
      BEGIN
      
      // Add the following lines.
       {
       <changelog>
       <change id="VSTF300295" dev="v-mokuma" feature="VSTF300295"
       date="2012-01-20" area="Sales" baseversion="PT6.00.01"
       releaseversion="PT6.00.02">
       Problem with number series with date order setting and batch posting
       </change>
       </changelog>
       }
      // End of the added lines.
      
      END.
      }
      }
      ...
      
  3. Spremenite kodo v enoti kode Sales-Post (80). To naredite tako:

    1. Kodo lastnosti spremenite tako:
      Obstoječa koda

      ...
      DocType@1022 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,Shipment';
      TempJnlLineDim2@1023 : TEMPORARY Record 356;
      TempPrePmtAmtToDeduct@1003 : Decimal;
      BEGIN
      IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN
      
      // Delete the following line.
      "Posting Date" := PostingDate;
      
      VALIDATE("Currency Code");
      END;
      
      IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN
      VALIDATE("Document Date",PostingDate);
      ...
      

      Nadomestna koda

      ...
      DocType@1022 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,Shipment';
      TempJnlLineDim2@1023 : TEMPORARY Record 356;
      TempPrePmtAmtToDeduct@1003 : Decimal;
      BEGIN
      IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN
      
      
      // Add the following line.
      VALIDATE("Posting Date",PostingDate);
      
      VALIDATE("Currency Code");
      END;
      
      IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN
      VALIDATE("Document Date",PostingDate);
      ...
      
    2. Spremenite kodo v funkciji ItemLedgerEntryExist na naslednji način:
      Obstoječa koda

      ...
      EXIT(HasItemLedgerEntry);
      END;
      
      BEGIN
      END.
      }
      }
      ...
      

      Nadomestna koda

      ...
      EXIT(HasItemLedgerEntry);
      END;
      
      BEGIN
      
      // Add the following lines.
       {
       <changelog>
       <change id="VSTF300295" dev="v-mokuma" feature="VSTF300295"
       date="2012-01-20" area="Sales" baseversion="PT6.00.01"
       releaseversion="PT6.00.02">
       Problem with number series with date order setting and batch posting
       </change>
       </changelog>
       }
      // End of the added lines.
      
      END.
      }
      }
      ...
      
  4. Kodo lastnosti v kodni enoti Purch.-Post (90) spremenite tako:
    Obstoječa koda

    ...
    TrackingSpecificationExists@1010 : Boolean;
    EndLoop@1009 : Boolean;
    TempPrePmtAmtToDeduct@1004 : Decimal;
    BEGIN
    IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN
    
    // Delete the following line.
    "Posting Date" := PostingDate;
    
    
    VALIDATE("Currency Code");
    END;
    
    IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN
    VALIDATE("Document Date",PostingDate);
    ...
    
    

    Nadomestna koda

    ...
    TrackingSpecificationExists@1010 : Boolean;
    EndLoop@1009 : Boolean;
    TempPrePmtAmtToDeduct@1004 : Decimal;
    BEGIN
    IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN
    
    
    // Add the following line.
    VALIDATE("Posting Date",PostingDate);
    
    VALIDATE("Currency Code");
    END;
    
    IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN
    VALIDATE("Document Date",PostingDate);
    ...
    

Pogoji

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

  • Portugalska različica izdelka Microsoft Dynamics NAV 2009 R2
  • Portugalska različica servisnega paketa 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«.

Opomba: To je članek »FAST PUBLISH«, ki je bil ustvarjen neposredno v organizaciji za Microsoftovo podporo. Informacije v tem dokumentu so na voljo takšne, kot odgovor na nastajajoče težave. Zaradi hitrosti njihove razpoložljivosti lahko gradivo vsebuje tipkarske napake in jih je mogoče kadarkoli pregledati brez obvestila. Za druga priporočila si oglejte Pogoje uporabe .