A "Fizetési engedmény %" mező nulla az értékesítési megrendelésben, ha a Microsoft Dynamics NAV ügyfélkártyájából hozza létre az értékesítési rendelést

Hatókör
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1

A GYORSAN KÖZZÉTETT CIKKEK KÖZVETLENÜL A MICROSOFT TÁMOGATÁSI SZERVEZETÉBŐL SZOLGÁLTATNAK INFORMÁCIÓT. AZ ITT TALÁLHATÓ INFORMÁCIÓK ÚJONNAN FELMERÜLŐ VAGY EGYEDI TÉMÁKRA VÁLASZUL JÖNNEK LÉTRE, VAGY MÁS TUDÁSBÁZIS-INFORMÁCIÓK KIEGÉSZÍTÉSÉRE SZOLGÁLNAK.

Ez a cikk a Microsoft Dynamics NAV-ra vonatkozik minden országban és minden nyelvi beállításban.

Tünetek

Vegyük például a következő esetet. Az ügyfélhez tartozik egy fizetési feltételkód a Microsoft Dynamics NAV 2009 rendszerben. Értékesítési rendelést a vevőkártyáról hozhat létre. Ebben az esetben az értékesítési rendelés fejlécében a "Fizetési engedmény %" mező értéke nulla. Továbbá ha később adja fel az értékesítési rendelést, nem számít ki fizetési engedményt.

Megoldás

Gyorsjavítással kapcsolatos információk

A Microsoft már elérhető egy támogatott gyorsjavítást kínál. Ez azonban csak a cikkben ismertetett probléma megoldására szolgál. Csak olyan rendszerekre alkalmazza, amelyek tapasztalják ezt a problémát. Előfordulhat, hogy a gyorsjavítás további tesztelésen eshet át. Ezért ha nem érinti súlyosan ez a probléma, azt javasoljuk, hogy várja meg a Microsoft Dynamics NAV 2009 következő szervizcsomagját, illetve a Microsoft Dynamics NAV következő olyan verzióját, amely tartalmazza ezt a gyorsjavítást.

Megjegyzés: Különleges esetekben a támogatási hívások szokásos díjai törölhetők, ha a Microsoft Dynamics és a kapcsolódó termékek terméktámogatási szakértője úgy ítéli meg, hogy egy adott frissítés megoldja a problémát. A szokásos támogatási költségek olyan további támogatási kérdések és problémák esetén merülnek fel, amelyek nem felelnek meg a kérdéses frissítés feltételeinek.

          

Telepítési információk

A Microsoft csak illusztrációs céllal kínál programozási példákat, kifejezett vagy vélelmezett garancia nélkül. Ez magában foglalja, de nem kizárólagosan a forgalmazhatóságra vagy az adott célra való alkalmasságra vonatkozó vélelmezett garanciát. Ez a cikk feltételezi, hogy ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek elmagyarázni egy adott eljárás funkcionalitását, de nem módosítják a példákat, hogy további funkciókat biztosítsanak, és nem építenek ki eljárásokat az egyéni igényekre.

Megjegyzés: A gyorsjavítás telepítése előtt győződjön meg arról, hogy a Microsoft Navision-ügyfél összes felhasználója kijelentkezett a rendszerről. Ide tartoznak a Microsoft Navision Application Services (NAS) kliens felhasználói is. A gyorsjavítás telepítésekor csak Ön lehet az, aki be van jelentkezve.

A gyorsjavítás implementálásához fejlesztői licenccel kell rendelkeznie.

Javasoljuk, hogy a Windows Bejelentkezések ablakában vagy az Adatbázis-bejelentkezések ablakban látható felhasználói fiókhoz rendelje a "SUPER" szerepkörazonosítót. Ha a felhasználói fiókhoz nem rendelhető a "SUPER" szerepkörazonosító, ellenőriznie kell, hogy a felhasználói fiók rendelkezik-e az alábbi engedélyekkel:

  • A módosítani kívánt objektum Módosítás engedélye.
  • Végrehajtási engedély az 5210-es rendszerazonosítójú objektumhoz és a 9015-ös rendszerobjektum-azonosítójú objektumhoz.

                
Megjegyzés: Az adattárakhoz csak akkor kell jogokkal rendelkeznie, ha adatokat kell javítást végeznie.

Kódváltozások

Megjegyzés: Mindig ellenőrzött környezetben tesztelje a kódjavításokat, mielőtt telepítené őket az üzemi számítógépekre.

A codefix telepítéséhez módosítsa a kódot az Értékesítési fejléc táblában (36) és a Beszerzési fejléc táblázatban (38) az alábbiak szerint.

Megjegyzés: Az alábbi lépések bemutatják, hogy milyen módosításokat kell elvégeznie az Értékesítésfejléc táblázaton (36). Ugyanezeket a változtatásokat kell végrehajtani a Beszerzési fejléc táblázatban (38).

  1. Új globális változó hozzáadása:

    Név: UpdateDocumentDate
    Adattípus: Logikai

  2. A "Számlázási ügyfélszám. - OnValidate()" függvény, módosítsa a kódot az alábbiak szerint.

    Meglévő kód: 1

    …
    IF NOT SkipBillToContact THEN
      "Bill-to Contact" := Cust.Contact;
    "Payment Terms Code" := Cust."Payment Terms Code";
    IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN
    …
    

    Helyettesítő kód 1

    …
    IF NOT SkipBillToContact THEN
      "Bill-to Contact" := Cust.Contact;
    "Payment Terms Code" := Cust."Payment Terms Code";
    "Prepmt. Payment Terms Code" := Cust."Payment Terms Code";
    IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN
    …
    

    Meglévő 2. kód

    …
      DATABASE::"Customer Template","Bill-to Customer Template Code");
    VALIDATE("Payment Terms Code");
    VALIDATE("Payment Method Code");
    VALIDATE("Currency Code");
    IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND
    …
    

    2-es helyettesítő kód

    …
      DATABASE::"Customer Template","Bill-to Customer Template Code");
    VALIDATE("Payment Terms Code");
    VALIDATE("Prepmt. Payment Terms Code");
    VALIDATE("Payment Method Code");
    VALIDATE("Currency Code");
    IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND
    …
    
  3. A "Payment Terms Code - OnValidate()" függvényben módosítsa a kódot az alábbiak szerint.

    Meglévő kód

    IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN
      PaymentTerms.GET("Payment Terms Code");
      IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND
          NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos")
      THEN BEGIN
        VALIDATE("Due Date","Document Date");
        VALIDATE("Pmt. Discount Date",0D);
        VALIDATE("Payment Discount %",0);
      END ELSE BEGIN
        "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
      IF xRec."Document Date"="Document Date" THEN
         VALIDATE("Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Due Date","Document Date");
    IF xRec."Document Date"="Document Date" THEN BEGIN
      VALIDATE("Pmt. Discount Date",0D);
      VALIDATE("Payment Discount %",0);
    END;
    …
    

    Helyettesítő kód

    IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN
      PaymentTerms.GET("Payment Terms Code");
      IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND
          NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos")
      THEN BEGIN
        VALIDATE("Due Date","Document Date");
        VALIDATE("Pmt. Discount Date",0D);
        VALIDATE("Payment Discount %",0);
      END ELSE BEGIN
        "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
        IF NOT UpdateDocumentDate THEN
         VALIDATE("Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Due Date","Document Date");
    IF NOT UpdateDocumentDate THEN BEGIN
      VALIDATE("Pmt. Discount Date",0D);
      VALIDATE("Payment Discount %",0);
    END;
    …
    
  4. A "Document Date - OnValidate()" függvényben módosítsa a kódot az alábbiak szerint.

    Meglévő kód

    VALIDATE("Payment Terms Code");
    VALIDATE("Prepmt. Payment Terms Code");
    
    

    Helyettesítő kód

    IF xRec."Document Date" <> "Document Date" THEN
      UpdateDocumentDate := TRUE;
    VALIDATE("Payment Terms Code");
    VALIDATE("Prepmt. Payment Terms Code");
    
    
  5. A "Prepmt. Payment Terms Code - OnValidate()" függvény, módosítsa a kódot az alábbiak szerint.

    Meglévő kód

    …
      END ELSE BEGIN
        "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
        VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Prepayment Due Date","Document Date");
      VALIDATE("Prepmt. Pmt. Discount Date",0D);
      VALIDATE("Prepmt. Payment Discount %",0);
    END;
    

    Helyettesítő kód

    …
      END ELSE BEGIN
        "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
        IF NOT UpdateDocumentDate THEN
          VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Prepayment Due Date","Document Date");
      IF NOT UpdateDocumentDate THEN BEGIN
        VALIDATE("Prepmt. Pmt. Discount Date",0D);
        VALIDATE("Prepmt. Payment Discount %",0);
      END;
    END;
    

Előfeltételek

A codefix telepítéséhez az alábbi termékek egyikének telepítve kell lennie:

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

Újraindítási információk

A kódjavítás alkalmazása után nem kell újraindítania a számítógépet.

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.

További információ

A MICROSOFT ÉS/VAGY BESZÁLLÍTÓI NEM VÁLLALNAK FELELŐSSÉGET A WEBHELYEN KÖZZÉTETT DOKUMENTUMOKBAN ÉS KAPCSOLÓDÓ ÁBRÁKON (AZ "ANYAGOK") TALÁLHATÓ INFORMÁCIÓK BÁRMILYEN CÉLRA VALÓ ALKALMASSÁGÁÉRT, MEGBÍZHATÓSÁGÁÉRT VAGY PONTOSSÁGÁÉRT.

AZ ANYAGOK TECHNIKAI PONTATLANSÁGOKAT VAGY TIPOGRÁFIAI HIBÁKAT TARTALMAZHATNAK, ÉS BÁRMIKOR, ELŐZETES ÉRTESÍTÉS NÉLKÜL FELÜLVIZSGÁLHATÓK. A MICROSOFT ÉS/VAGY BESZÁLLÍTÓI AZ ALKALMAZANDÓ JOGSZABÁLYOK ÁLTAL MEGENGEDETT LEGNAGYOBB MÉRTÉKIG ELHÁRÍTANAK ÉS KIZÁRNAK MINDEN KIFEJEZETT, VÉLELMEZETT VAGY TÖRVÉNYES ÁLLÍTÁST, GARANCIÁT ÉS FELTÉTELT, BELEÉRTVE TÖBBEK KÖZÖTT A TULAJDONJOGRA, A JOGBITORLÁSRA, A MEGFELELŐ ÁLLAPOTRA VAGY MINŐSÉGRE, A FORGALMAZHATÓSÁGRA ÉS AZ ADOTT CÉLRA VALÓ ALKALMASSÁGRA VONATKOZÓ ÁLLÍTÁSOKAT, SZAVATOSSÁGOKAT VAGY FELTÉTELEKET AZ ANYAGOK TEKINTETÉBEN.