Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Tento článok sa vzťahuje na Microsoft Dynamics NAV pre všetky krajiny a všetky jazykové locales.

Príznaky

Po spustení funkcie Načítania predajnej objednávky na objednávku špeciálne objednávky v Microsoft Dynamics NAV 2009, kód príjemcu v hlavičke Špeciálna objednávka je prázdne neočakávane.
Tento problém sa vyskytuje v nasledovných produktov:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Riešenie

Informácie o rýchlej oprave

Rýchla oprava je k dispozícii od spoločnosti Microsoft. Je však určená iba opraviť problém popísaný v tomto článku. Použite ju iba v počítačoch s týmto konkrétnym problémom. Môže, že táto rýchla oprava bude ďalej testovaná. Ak vám nespôsobuje tento problém, odporúčame vám počkať na ďalšiu Microsoft Dynamics NAV 2009 service pack alebo ďalšej verzii Microsoft Dynamics NAV, ktorá obsahuje túto rýchlu opravu.

Poznámka: V špeciálnych prípadoch sa poplatky, ktoré sú telefonickú podporu nemusia účtovať ak technickú podporu Professional pre Microsoft Dynamics a súvisiace produkty zistí, že táto konkrétna aktualizácia vyrieši váš problém. Ďalšie otázky a žiadosti o technickú podporu, ktoré sa netýkajú tejto špecifickej aktualizácie, podliehajú bežným sadzbám za poskytovanie technickej podpory.

Informácie o inštalácii

Spoločnosť Microsoft poskytuje príklady programovacieho kódu len ako názornú ukážku bez vyjadrených či predpokladaných záruk. Tie okrem iného zahŕňajú predpokladané záruky obchodovateľnosti alebo vhodnosti na konkrétny účel. Tento článok predpokladá, že ovládate predvádzaný programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie procedúr. Pracovníci technickej podpory spoločnosti Microsoft vám môžu vysvetliť fungovanie konkrétneho postupu, ale neupravia tieto príklady s cieľom poskytnutia pridanej funkčnosti ani nevytvoria procedúry zohľadňujúce vaše konkrétne požiadavky.

Poznámka: Pred inštaláciou tejto rýchlej opravy sa overiť, že všetky Microsoft Navision klienta používatelia odhlásení systému. Toto zahŕňa používateľov klienta Microsoft Navision aplikácie služby (NAS). Mali by ste byť iba klient prihláseného používateľa je pri implementácii túto rýchlu opravu.

Vykonávať túto rýchlu opravu, musíte mať developer licenciu.

Odporúča sa, že konto používateľa v okne prihlásenia systému Windows alebo v okne prihlásenia do databázy pridelí "SUPER" úlohu ID. Ak používateľské konto nemožno priradiť úlohu ID "SUPER", musíte overiť, že používateľské konto má nasledujúce povolenia:

  • Zmeniť povolenia pre objekt, ktorý sa zmení.

  • Povolenia na vykonanie systému objekt ID 5210 a systém objekt ID 9015 objektu.



Poznámka: Nemusíte mať práva ukladá údaje, pokiaľ budete musieť vykonať opravy údajov.

Zmeny kódu

Poznámka: Vždy skúšobný opravy v prostredí kontrolované pred použitím opravy výroby počítačov.
Ak chcete vyriešiť tento problém, postupujte nasledovne:

  1. Zmena kódu v GetDescriptionAndRcptName funtion v ReqJnlManagement procedúra (330) takto:
    Existujúci kód

    ...ELSE
    Description := '';

    // Delete the following lines.
    ReqLine.Type::Item:
    IF Item.GET(ReqLine."No.") THEN
    Description := Item.Description
    ELSE
    Description := '';
    // End of the lines.

    END;
    END;

    IF ReqLine."Vendor No." = '' THEN
    ...

    Nahradenie kódu

    ...ELSE
    Description := '';
    END;
    END;

    IF ReqLine."Vendor No." = '' THEN
    ...
  2. Pridanie novej globálnej premennej v požiadaviek hárka. – objednávky procedúra (333), a potom zadajte premennej takto:

    • Meno: DropShptSpecialOrderExists

    • Údajový typ: Boolovská hodnota

  3. Pridať nový lokálne premenné funkcie InsertPurchOrderLine v požiadaviek hárka. – objednávky procedúra (333), a potom zadajte premennej takto:

    • Meno: SalesHeader

    • Údajový typ: záznam

    • Podtyp: predajnej hlavičky

  4. Pridať nový lokálne premenné funkcie InsertPurchOrderLine do hárka požiadaviek.-poradie procedúra (333), a potom zadajte premennej takto:

    • Meno: DropShptSplOrderDiffAddress

    • Údajový typ: Boolean

  5. Zmena kódu v InsertPurchOrderLine funkcia v hárka požiadaviek.-Kontrola objednávky procedúra (333) takto:
    Existujúci kód

    ...WITH ReqLine2 DO BEGIN
    IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
    EXIT;


    IF (PurchOrderHeader."Buy-from Vendor No." <> "Vendor No.") OR
    (PurchOrderHeader."Sell-to Customer No." <> "Sell-to Customer No.") OR
    (PrevShipToCode <> "Ship-to Code") OR
    (PurchOrderHeader."Order Address Code" <> "Order Address Code") OR
    (PurchOrderHeader."Currency Code" <> "Currency Code") OR

    // Delete the following line.
    (PrevPurchCode <> "Purchasing Code")

    THEN BEGIN
    ...

    Nahradenie kódu

    ...WITH ReqLine2 DO BEGIN
    IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
    EXIT;

    // Add the following lines.
    DropShptSpecialOrderExists := FALSE;
    IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
    DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);
    IF DropShptSpecialOrderExists THEN
    DropShptSplOrderDiffAddress :=
    NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);
    END;
    // End of the lines.

    IF (PurchOrderHeader."Buy-from Vendor No." <> "Vendor No.") OR
    (PurchOrderHeader."Sell-to Customer No." <> "Sell-to Customer No.") OR
    (PrevShipToCode <> "Ship-to Code") OR
    (PurchOrderHeader."Order Address Code" <> "Order Address Code") OR
    (PurchOrderHeader."Currency Code" <> "Currency Code") OR

    // Add the following lines.
    (PrevPurchCode <> "Purchasing Code") OR
    (DropShptSplOrderDiffAddress)
    // End of the lines.

    THEN BEGIN
    ...
  6. Pridať nový lokálne premenné funkcie InsertHeader do hárka požiadaviek.-poradie procedúra (333), a potom zadajte premennej takto:

    • Meno: SalesHeader

    • Údajový typ: záznam

    • Podtyp: predajnej hlavičky

  7. Zmena kódu v InsertHeader funkcia v hárka požiadaviek.-Kontrola objednávky procedúra (333) takto:
    Existujúci kód

    ...PurchOrderHeader.SetShipToForSpecOrder;
    END;

    PurchOrderHeader.MODIFY;
    ...

    Nahradenie kódu

    ...PurchOrderHeader.SetShipToForSpecOrder;
    END;

    // Add the following lines.
    IF DropShptSpecialOrderExists THEN BEGIN
    SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.");
    PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";
    PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";
    PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";
    PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";
    PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";
    PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";
    PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";
    END;
    // End of the lines.

    PurchOrderHeader.MODIFY;
    ...
  8. Zmena kódu v EnterPurchaseItemCrossRef funkcia v procedúra Dist. integrácia (5702):
    Existujúci kód

    ...IF Found THEN BEGIN
    "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
    "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
    "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";
    "Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";

    // Delete the following lines.
    IF ItemCrossReference.Description <> '' THEN BEGIN
    Description := ItemCrossReference.Description;
    "Description 2" := '';
    END;
    // End of the lines.

    END ELSE BEGIN
    "Cross-Reference No." := '';
    "Cross-Reference Type" := "Cross-Reference Type"::" ";
    "Cross-Reference Type No." := '';

    // Delete the following lines.
    IF "Variant Code" <> '' THEN BEGIN
    ItemVariant.GET("No.","Variant Code");
    Description := ItemVariant.Description;
    "Description 2" := ItemVariant."Description 2";
    END ELSE BEGIN
    Item.GET("No.");
    Description := Item.Description;
    "Description 2" := Item."Description 2";
    END;
    // End of the lines.

    GetItemTranslation;
    ...

    Nahradenie kódu

    ...IF Found THEN BEGIN
    "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
    "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
    "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";
    "Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";
    END ELSE BEGIN
    "Cross-Reference No." := '';
    "Cross-Reference Type" := "Cross-Reference Type"::" ";
    "Cross-Reference Type No." := '';
    GetItemTranslation;
    ...
  9. Zmena kódu v GetSpecialOrders funkcia v procedúra Dist. integrácia (5702):
    Existujúci kód

    ...TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Delete the following line.
    PurchHeader.SetShipToForSpecOrder;

    PurchLine.LOCKTABLE;
    ...

    Nahradenie kódu

    ...TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Add the following lines.
    IF DropShptSplOrderExists(SalesHeader) THEN
    CheckAndAddShipToAdd(SalesHeader,TRUE);
    // End of the lines.

    PurchLine.LOCKTABLE;
    ...
  10. Zmena kódu v TransfldsFromSalesToPurchLine funkcia v kópiu dokumentu správy procedúra (6620) nasledovne:
    Existujúci kód

    ...VALIDATE("Direct Unit Cost");
    END;
    ...

    Nahradenie kódu

    ...VALIDATE("Direct Unit Cost");

    // Add the following lines.
    Description := FromSalesLine.Description;
    "Description 2" := FromSalesLine."Description 2";
    // End of the lines.

    END;
    ...
  11. Zmena kódu kód nákupné.-Získajte pokles dodávky procedúra (76) takto:
    Nahradenie kód 1

    ...TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    PurchLine.LOCKTABLE;
    ...

    Nahradenie kód 1

    ...TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Add the following line.
    IF DropShptSplOrderExists(SalesHeader) THEN
    CheckAndAddShipToAdd(SalesHeader,TRUE);
    // End of the lines.

    PurchLine.LOCKTABLE;
    ...

    Existujúci kód 2

    ...CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
    PurchLine.Description := SalesLine.Description;
    PurchLine."Sales Order No." := SalesLine."Document No.";
    ...

    Nahradenie kód 2

    ...CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
    PurchLine.Description := SalesLine.Description;

    // Add the following line.
    PurchLine."Description 2" := SalesLine."Description 2";

    PurchLine."Sales Order No." := SalesLine."Document No.";
    ...
  12. Zmena kódu v InsertReqWkshLine v správe Načítať predajné objednávky (698):
    Existujúci kód

    ..."Sell-to Customer No." := SalesLine."Sell-to Customer No.";
    SalesHeader.GET(1,SalesLine."Document No.");
    IF SpecOrder <> 1 THEN
    ...

    Nahradenie kódu

    ..."Sell-to Customer No." := SalesLine."Sell-to Customer No.";

    // Add the following lines.
    Description := SalesLine.Description;
    "Description 2" := SalesLine."Description 2";
    // End of the lines.

    SalesHeader.GET(1,SalesLine."Document No.");
    IF SpecOrder <> 1 THEN
    ...
  13. Pridanie novej globálnej premennej v tabuľke vyrovnania (38) a potom zadajte premennej takto:

    • Meno: NameAddressDetails

    • Typ údajov: Text

    • Dĺžka: 512

  14. Pridanie novej globálnej premennej v tabuľke vyrovnania (38) a potom zadajte premennej takto:

    • Meno: NameAddressDetails2

    • Údajový typ: Text

    • Dĺžka: 512

  15. Pridať nový text konštanta v tabuľke vyrovnania (38) a potom zadajte text konštanta takto:

    • Meno: Text051

    • ConstValue: pole %1 na objednávku %2 musí byť rovnaká ako na predajnej objednávky %3.

  16. Vytvorte nový CheckAndAddShipToAdd funkcia v tabuľke vyrovnania (38). Ak to chcete urobiť, postupujte nasledovne:

    1. Pridať nové miestne parameter CheckAndAddShipToAdd funkcia v tabuľke vyrovnania (38) a potom zadajte parameter takto:

      • Var: No

      • Meno: SalesHeader

      • Údajový typ: záznam

      • Podtyp: predajnej hlavičky

    2. Pridať nové miestne parameter CheckAndAddShipToAdd funkcia v tabuľke vyrovnania (38) a potom zadajte parameter takto:

      • Var: No

      • Meno: ShowError

      • Údajový typ: Boolovská hodnota

    3. Pridajte hodnotu CheckAndAddShipToAdd funkcia v tabuľke vyrovnania (38) a potom zadajte hodnotu nasledovne:

      • Vráti typ: Boolovská hodnota

    4. Pridať nový lokálne premenné funkcie CheckAndAddShipToAdd v tabuľke vyrovnania (38) a potom zadajte premennej takto:

      • Meno: PurchLine2

      • Údajový typ: záznam

      • Podtyp: PurchLine2

    5. Pridajte nasledujúci kód v CheckAndAddShipToAdd funkcia v tabuľke vyrovnania (38):

      IF ShowError THEN BEGINPurchLine2.RESET;
      PurchLine2.SETRANGE("Document Type","Document Type"::Order);
      PurchLine2.SETRANGE("Document No.","No.");
      IF NOT PurchLine2.ISEMPTY THEN BEGIN
      IF "Ship-to Name" <> SalesHeader."Ship-to Name" THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Name"),"No.",SalesHeader."No.");
      IF "Ship-to Name 2" <> SalesHeader."Ship-to Name 2" THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Name 2"),"No.",SalesHeader."No.");
      IF ("Ship-to Address" <> SalesHeader."Ship-to Address") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Address"),"No.",SalesHeader."No.");
      IF ("Ship-to Address 2" <> SalesHeader."Ship-to Address 2") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Address 2"),"No.",SalesHeader."No.");
      IF ("Ship-to Post Code" <> SalesHeader."Ship-to Post Code") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Post Code"),"No.",SalesHeader."No.");
      IF ("Ship-to City" <> SalesHeader."Ship-to City") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to City"),"No.",SalesHeader."No.");
      IF ("Ship-to Contact" <> SalesHeader."Ship-to Contact") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Contact"),"No.",SalesHeader."No.");
      END ELSE BEGIN
      // no purchase line exists
      "Ship-to Name" := SalesHeader."Ship-to Name";
      "Ship-to Name 2" := SalesHeader."Ship-to Name 2";
      "Ship-to Address" := SalesHeader."Ship-to Address";
      "Ship-to Address 2" := SalesHeader."Ship-to Address 2";
      "Ship-to Post Code" := SalesHeader."Ship-to Post Code";
      "Ship-to City" := SalesHeader."Ship-to City";
      "Ship-to Contact" := SalesHeader."Ship-to Contact";
      END;
      END ELSE BEGIN
      NameAddressDetails :=
      SalesHeader."Ship-to Name" + SalesHeader."Ship-to Name 2" +
      SalesHeader."Ship-to Address" + SalesHeader."Ship-to Address 2" +
      SalesHeader."Ship-to Post Code" + SalesHeader."Ship-to City" +
      SalesHeader."Ship-to Contact";
      IF NameAddressDetails2 = '' THEN
      NameAddressDetails2 := NameAddressDetails;
      EXIT(NameAddressDetails2 = NameAddressDetails);
      END;
  17. Vytvorte nový DropShptSplOrderExists funkcia v tabuľke vyrovnania (38). Ak to chcete urobiť, postupujte nasledovne:

    1. Pridať nové miestne parameter DropShptSplOrderExists funkcia v tabuľke vyrovnania (38) a potom zadajte parameter takto:

      • Var: No

      • Meno: SalesHeader

      • Údajový typ: záznam

      • Podtyp: predajnej hlavičky

    2. Pridajte hodnotu typu DropShptSplOrderExists funkcia v tabuľke vyrovnania (38) a potom zadajte hodnotu nasledovne:

      • Vráti typ: Boolovská hodnota

    3. Pridať nový lokálne premenné funkcie DropShptSplOrderExists v tabuľke vyrovnania (38) a potom zadajte premennej takto:

      • Meno: SalesLine2

      • Údajový typ: záznam

      • Podtyp: riadka predaja

    4. Pridajte nasledujúci kód v DropShptSplOrderExists funkcia v tabuľke vyrovnania (38):

      // returns TRUE if sales is either Drop Shipment of Special OrderSalesLine2.RESET;
      SalesLine2.SETRANGE("Document Type",SalesLine2."Document Type"::Order);
      SalesLine2.SETRANGE("Document No.",SalesHeader."No.");
      SalesLine2.SETRANGE("Drop Shipment",TRUE);
      IF NOT SalesLine2.ISEMPTY THEN
      EXIT(TRUE);

      SalesLine2.SETRANGE("Drop Shipment");
      SalesLine2.SETRANGE("Special Order",TRUE);
      EXIT(NOT SalesLine2.ISEMPTY);

Požiadavky

Musíte mať jednu z nasledovných produktov nainštalovaný chcete použiť túto rýchlu opravu:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Informácie o odstránení

Nemôžete odstrániť túto rýchlu opravu.

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Poznámka: To je "Rýchlo publikovať" článok vytvorené priamo v rámci organizácie technickej podpory spoločnosti Microsoft. Uvedené informácie sa poskytuje ako-v reakcii na naliehavé problémy. Rýchlosťou robiť materiály môžu obsahovať typografické chyby a môžu byť kedykoľvek bez predchádzajúceho upozornenia. Prečítajte si Podmienky používania z iných dôvodov.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×