A "Vevők értékesítési előzményei" űrlapon a "Másolás dokumentumba" funkcióval nem hozhat létre értékesítési rendelést olyan cikkhez, amelynél be van jelölve az "Automatikus összeállítási készlet anyagjegyzéke" jelölőnégyzet a Microsoft D észak-amerikai verziójában...

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

Ez a cikk a Microsoft Dynamics NAV-ra vonatkozik az alábbi országokban és nyelvi beállításokkal.

  • angol (Kanada) (en-ca)
  • angol (Egyesült Államok) (en-us)
  • spanyol (Mexikó) (es-mx)
  • francia (Kanada) (fr-ca)

Tünetek

Feltételezzük, hogy a Microsoft Dynamics NAV 2009 észak-amerikai verziójában bejelölte az Automatikus buildkészlet anyagjegyzék jelölőnégyzetet. Amikor a "Vevők értékesítési előzményei" űrlapon a Másolás dokumentumba funkciót futtatva hoz létre értékesítési rendelést egy vevőnek szóló cikkhez, a következő hibaüzenet jelenik meg:

Megjegyzés

A Build Kit nem szerepelhet az Értékesítési sorban.

Ez a probléma a következő termékekben fordul elő:

  • A Microsoft Dynamics NAV 2009 R2 észak-amerikai verziója
  • A Microsoft Dynamics NAV 2009 Service Pack 1 észak-amerikai verziója

      

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 probléma megoldásához hajtsa végre az alábbi lépéseket:

  1. Távolítsa el a LOCAL tulajdonságot a Dokumentum másolása parancsfájlban (6620) a következő eljárásokból, az alábbiak szerint:
    Meglévő kód: 1

    ...
    // Delete the following line.
    LOCAL PROCEDURE CopyFromKitSalesToLine@1462000(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesLine@1462001 : Record 37);
    ...
    

    Helyettesítő kód 1

    ...
    // Add the following line.
    PROCEDURE CopyFromKitSalesToLine@1462000(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesLine@1462001 : Record 37);
    ...
    

    Meglévő 2. kód

    ...
    // Delete the following line.LOCAL PROCEDURE CopyFromKitSalesShptToLine@1462001(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesShptLine@1462001 : Record 111);
    ...
    

    2-es helyettesítő kód

    ...
    // Add the following line.PROCEDURE CopyFromKitSalesShptToLine@1462001(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesShptLine@1462001 : Record 111);
    ...
    

    Meglévő 3-as kód

    ...
    // Delete the following line.LOCAL PROCEDURE CopyFromKitSalesInvToLine@1462002(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesInvLine@1462001 : Record 113);
    ...
    

    3-as helyettesítő kód

    ...
    // Add the following line.PROCEDURE CopyFromKitSalesInvToLine@1462002(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesInvLine@1462001 : Record 113);
    ...
    
  2. Adja hozzá a következő helyi változókat az Értékesítési előzmények Másolási sor Mgt. codeunit (7172) CopyLinesToDoc eljárásához az alábbiak szerint:

    CopytoKitLine@1015 : Codeunit 6620;
    FromSalesInvLine@1018 : Record 113;
    FromSalesShptLine@1020 : Record 111;
    FromArchiveLine@1021 : Record 5108;
    
  3. Módosítsa a kódot az Értékesítési előzmények (CopyLinesToDoc) eljárásban Copy Line Mgt. codeunit (7172) a következőképpen:
    Meglévő kód: 1

    ...
    FromDocType::"Return Order":
    BEGIN
    FromSalesHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No.");
    ItemChargeAssgntNextLineNo := 0;
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    
    // Delete the following lines. 
    IF FromSalesLine.Type = FromSalesLine.Type::"Charge (Item)" THEN
    CopyFromSalesDocAssgntToLine(ToSalesLine,FromSalesLine,ItemChargeAssgntNextLineNo);
    END;
    FromDocType::"Posted Shipment":
    BEGIN
    FromSalesShptHeader.GET(FromSalesLine."Document No.");
    FromSalesHeader.TRANSFERFIELDS(FromSalesShptHeader);
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    END;
    FromDocType::"Posted Invoice":
    BEGIN
    FromSalesInvHeader.GET(FromSalesLine."Document No.");
    FromSalesHeader.TRANSFERFIELDS(FromSalesInvHeader);
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    // End of the lines.
    
    END;
    FromDocType::"Posted Return Order":
    BEGIN
    ...
    

    Helyettesítő kód1

    ...
    FromDocType::"Return Order":
    BEGIN
    FromSalesHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No.");
    ItemChargeAssgntNextLineNo := 0;
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    
    // Add  the following lines.
    IF NOT (FromDocType IN ["Document Type"::"Credit Memo","Document Type"::"Return Order"]) THEN
    CopytoKitLine.CopyFromKitSalesToLine(ToSalesLine,FromSalesLine);
    IF FromSalesLine.Type = FromSalesLine.Type::"Charge (Item)" THEN BEGIN
    CopyFromSalesDocAssgntToLine(ToSalesLine,FromSalesLine,ItemChargeAssgntNextLineNo);
    CopytoKitLine.CopyFromKitSalesToLine(ToSalesLine,FromSalesLine);
    END;
    END;
    FromDocType::"Posted Shipment":
    BEGIN
    FromSalesShptHeader.GET(FromSalesLine."Document No.");
    FromSalesShptLine.GET(FromSalesLine."Document No.",FromSalesLine."Line No.");
    FromSalesHeader.TRANSFERFIELDS(FromSalesShptHeader);
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    CopytoKitLine.CopyFromKitSalesShptToLine(ToSalesLine,FromSalesShptLine);
    END;
    FromDocType::"Posted Invoice":
    BEGIN
    FromSalesInvHeader.GET(FromSalesLine."Document No.");
    FromSalesInvLine.GET(FromSalesLine."Document No.",FromSalesLine."Line No.");
    FromSalesHeader.TRANSFERFIELDS(FromSalesInvHeader);
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    CopytoKitLine.CopyFromKitSalesInvToLine(ToSalesLine,FromSalesInvLine);
    // End of the lines.
    
    END;
    FromDocType::"Posted Return Order":
    BEGIN
    ...
    

    Meglévő 2. kód

    ...
    FromDocType::"Archived Order":
    BEGIN
    FromSalesArchHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No.",
    DocNoOccurrence,DocVersionNo);
    
    // Delete the following lines.
    FromSalesHeader.TRANSFERFIELDS(FromSalesArchHeader);
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    // End of the lines.
    
    END;
    END;
    END;
    ...
    

    2-es helyettesítő kód

    ...
    FromDocType::"Archived Order":
    BEGIN
    FromSalesArchHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No.",
    DocNoOccurrence,DocVersionNo);
    
    // Add the following lines.
    FromArchiveLine.GET(FromSalesLine."Document Type",FromSalesLine."Document No.",
    DocNoOccurrence,DocVersionNo,FromSalesLine."Line No.");
    FromSalesHeader.TRANSFERFIELDS(FromSalesArchHeader);
    CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo);
    CopyFromKitArchiveToLine(ToSalesLine,FromArchiveLine);
    // End of the lines. 
    
    END;
    END;
    END;
    ...
    
  4. Módosítsa a kódot a CopyLine eljárásban az Értékesítési előzmények lapon. Sor másolása Mgt. codeunit (7172) a következők szerint:
    Meglévő kód

    ...
    VALIDATE("Variant Code",FromSalesLine."Variant Code");
    
    // Delete the following lines.
    VALIDATE("Location Code",FromSalesLine."Location Code");
    VALIDATE("Unit of Measure",FromSalesLine."Unit of Measure");
    VALIDATE("Unit of Measure Code",FromSalesLine."Unit of Measure Code");
    VALIDATE(Quantity,0);
    // End of the lines.
    
    IF NOT (FromSalesLine.Type IN [FromSalesLine.Type::Item,FromSalesLine.Type::Resource]) THEN BEGIN
    IF (FromSalesHeader."Currency Code" <> ToSalesHeader."Currency Code") OR
    ...
    

    Helyettesítő kód

    ...
    VALIDATE("Variant Code",FromSalesLine."Variant Code");
    
    // Add the following lines.
    "Location Code" := FromSalesLine."Location Code";
    VALIDATE("Unit of Measure",FromSalesLine."Unit of Measure");
    VALIDATE("Unit of Measure Code",FromSalesLine."Unit of Measure Code");
    VALIDATE(Quantity,0);
    Quantity := FromSalesLine.Quantity;
    "Qty. to Ship" := FromSalesLine.Quantity;
    "Qty. to Invoice" := FromSalesLine.Quantity;
    "Line Amount" := FromSalesLine."Line Amount";
    "Quantity (Base)" := FromSalesLine.Quantity;
    "Qty. to Invoice (Base)" := FromSalesLine.Quantity;
    // End of the lines.
    
    IF NOT (FromSalesLine.Type IN [FromSalesLine.Type::Item,FromSalesLine.Type::Resource]) THEN BEGIN
    IF (FromSalesHeader."Currency Code" <> ToSalesHeader."Currency Code") OR
    ...
    
  5. Adja hozzá a következő helyi eljárást az Értékesítési előzmények sorának másolása Mgt. Codeunit (7172) mezőhöz az alábbiak szerint:

    LOCAL PROCEDURE CopyFromKitArchiveToLine@7(VAR ToSalesLine@1001 : Record 37;VAR FromArchiveLine@1002 : Record 5108);
    VAR
    FromKitArchiveLine@1003 : Record 25003;
    ToKitArchiveLine@1004 : Record 25003;
    ToKitSalesLine@1005 : Record 25000;
    BEGIN
    IF ToSalesLine."Build Kit" THEN BEGIN
    FromKitArchiveLine.RESET;
    FromKitArchiveLine.SETRANGE("Document No.",FromArchiveLine."Document No.");
    FromKitArchiveLine.SETRANGE("Document Line No.",FromArchiveLine."Line No.");
    IF FromKitArchiveLine.FINDSET THEN
    REPEAT
    ToKitSalesLine.TRANSFERFIELDS(FromKitArchiveLine);
    ToKitSalesLine."Document Type" := ToSalesLine."Document Type";
    ToKitSalesLine."Document No." := ToSalesLine."Document No.";
    ToKitSalesLine."Document Line No." := ToSalesLine."Line No.";
    CASE ToKitSalesLine.Type OF
    ToKitSalesLine.Type::Item,ToKitSalesLine.Type::Resource:
    BEGIN
    ToKitSalesLine."Extended Quantity" := ToKitSalesLine."Quantity per" * ToSalesLine."Quantity (Base)";
    ToKitSalesLine."Extended Quantity (Base)" := ToKitSalesLine."Quantity per (Base)" * ToSalesLine."Quantity (Base)"
    END;
    ToKitSalesLine.Type::"Setup Resource":
    BEGIN
    ToKitSalesLine."Extended Quantity" := ToKitSalesLine."Quantity per";
    ToKitSalesLine."Extended Quantity (Base)" := ToKitSalesLine."Quantity per (Base)";
    END;
    END;
    ToKitSalesLine."Outstanding Quantity" := ToKitSalesLine."Extended Quantity";
    ToKitSalesLine."Outstanding Qty. (Base)" := ToKitSalesLine."Extended Quantity (Base)";
    ToKitSalesLine.INSERT;
    UNTIL FromKitArchiveLine.NEXT = 0;
    END;
    END;
    

          

Előfeltételek

A gyorsjavítás alkalmazásához az alábbi termékek egyikének telepítve kell lennie:

  • A Microsoft Dynamics NAV 2009 R2 észak-amerikai verziója
  • A Microsoft Dynamics NAV 2009 Service Pack 1 észak-amerikai verziója

Eltávolítással kapcsolatos információk

Ez a gyorsjavítás nem távolítható el.

Á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.

Megjegyzés: Ez egy "GYORS KÖZZÉTÉTELŰ" cikk, amelyet közvetlenül a Microsoft támogatási szervezete készített. A dokumentumban szereplő információkat adott formában bocsátjuk rendelkezésre, a felmerülő problémákra adott válaszként. A rendelkezésre bocsátás gyorsasága következtében az anyagok sajtóhibákat tartalmazhatnak, és bármikor, előzetes értesítés nélkül felülvizsgálhatók. További szempontokat a használati feltételekben talál.