Šis raksts neattiecas uz Microsoft Dynamics NAV visās valstīs un visu valodu lokalizācijas.

Pazīmes

Pārdošanas pasūtījuma bloķētā vienuma ir no pārdošanas piedāvājums Microsoft Dynamics 2009. gadā negaidīti izveide Pārdošanas pasūtījuma grāmatošana, ja saņemat šādu kļūdas ziņojumu:

Daudzuma nosūtīti saistītie pasūtījumu nedrīkst pārsniegt daudzuma pārdošanas rindas dokumenta tipa = "Pasūtījumu", dokumenta Nr. 'skaitlis1' rindas Nr. = "skaitli2".

Šī problēma rodas ar šādiem produktiem:

  • Microsoft Dynamics NAV 2009 servisa pakotnes 1.

  • Microsoft Dynamics NAV 2009 R2


Risinājums

Informācija par labojumfailu

Pašlaik korporācija Microsoft piedāvā atbalstītu labojumfailu. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Izmantojiet to tikai tām sistēmām, kurām ir radusies tieši šī problēma. Iespējams, tiks veikta šī labojumfaila papildu testēšana. Tādēļ, ja jums ir šī problēma nerada nopietnus traucējumus, ieteicams nogaidīt, līdz tiks izlaista nākamā servisa pakotne Microsoft Dynamics NAV 2009 vai nākamo Microsoft Dynamics NAV versiju, kurā ir iekļauts šis labojumfails.

Piezīme. Īpašos gadījumos standarta izmaksas par atbalsta zvaniem nav jāsedz, ja tehniskā atbalsta speciālists Microsoft Dynamics un saistītiem produktiem nosaka, ka šo problēmu novērsīs noteikts atjauninājums. Parasti atbalsta izmaksas tiek piemērotas jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

Informācija par instalēšanu

Microsoft piedāvā programmēšanas piemērus tikai uzskatāmībai, nesniedzot nekādas tiešas vai netiešas garantijas. Tas ietver, bet neaprobežojas ar netiešām garantijām par piemērotību pārdošanai vai atbilstību noteiktam mērķim. Šajā rakstā tiek pieņemts, ka pārzināt programmēšanas valodu, kas tiek aprakstīta, un rīkus, kas tiek izmantoti, lai izveidotu un atkļūdotu procedūras. Microsoft atbalsta inženieri var palīdzēt izskaidrot kādas noteiktas procedūras funkcionalitāti. Taču viņi nemainīs šos piemērus, lai sniegtu skaidrākus, un neveidos jaunas procedūras, kas atbilstu īpašām prasībām.

Piezīme. Pirms šī labojumfaila instalēšanas pārliecinieties, vai, ka visi Microsoft Dynamics NAV klienta lietotāji ir atteikušies sistēmu. Tas ietver Microsoft Dynamics NAV lietojumprogrammu serveris (NAS) pakalpojumus. Jums ir jābūt tikai klienta lietotājam, kurš ir pieteicies datorā, kad izmantojat šo labojumfailu.

Lai ieviestu šo labojumfailu, datorā jābūt instalētai izstrādātāja licenci.

Ieteicams, ka lietotāja konts tiek atvērts logs Windows lietotājvārdi vai logā datu bāzes lietotājvārdi piešķirt "SUPER" lomas ID. Ja lietotāja kontam nevar piešķirt "SUPER" lomas ID, ir jāpārbauda lietotāja konts ir šādas atļaujas:

  • Objektu, kad tiks mainīts modificēt atļaujas.

  • Izpildes atļauja objekta objekta ID 5210 sistēmas un sistēmas objekta ID 9015

    objektu.

Piezīme. Jums nav tiesības datu krātuvju vien veikt datu labošana.

Koda izmaiņas

Piezīme. Vienmēr pārbaudes kods novērš kontrolētā vidē pirms lietojat datoru ražošanas labojumus.

Lai novērstu šo problēmu, rīkojieties šādi:

  1. Mainīt rekvizītus pārdošanas piedāvājuma kods pasūtījuma koda (86) šādi:
    Kods 1

    ...Opp@1004 : Record 5092;

    OpportunityEntry@1006 : Record 5093;

    TempOpportunityEntry@1005 : TEMPORARY Record 5093;

    Cust@1008 : Record 18;

    BEGIN

    TESTFIELD("Document Type","Document Type"::Quote);

    Cust.GET("Sell-to Customer No.");

    Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);
    ...

    Aizstāšanas kods 2.

    ...Opp@1004 : Record 5092;

    OpportunityEntry@1006 : Record 5093;

    TempOpportunityEntry@1005 : TEMPORARY Record 5093;

    Cust@1008 : Record 18;

    // Add the following line.
    Item@1010 : Record 27;
    // End of the added line.

    BEGIN

    TESTFIELD("Document Type","Document Type"::Quote);

    Cust.GET("Sell-to Customer No.");

    Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);
    ...

    Kods 2.

    ...SalesQuoteLine.SETRANGE(Type,SalesQuoteLine.Type::Item);

    SalesQuoteLine.SETFILTER("No.",'<>%1','');

    IF SalesQuoteLine.FINDSET THEN

    REPEAT

    IF (SalesQuoteLine."Outstanding Quantity" > 0) THEN BEGIN

    SalesLine := SalesQuoteLine;

    SalesLine.VALIDATE("Reserved Qty. (Base)",0);

    SalesLine."Line No." := 0;
    ...

    Aizstāšanas kods 2.

    ...SalesQuoteLine.SETRANGE(Type,SalesQuoteLine.Type::Item);

    SalesQuoteLine.SETFILTER("No.",'<>%1','');

    IF SalesQuoteLine.FINDSET THEN

    REPEAT

    IF Item.GET(SalesQuoteLine."No.") THEN //add line

    // Add the following line.
    Item.TESTFIELD(Blocked,FALSE);
    // End of the added line.

    IF (SalesQuoteLine."Outstanding Quantity" > 0) THEN BEGIN

    SalesLine := SalesQuoteLine;

    SalesLine.VALIDATE("Reserved Qty. (Base)",0);

    SalesLine."Line No." := 0;
    ...
  2. Mainīt rekvizītus pārdošanas pasūtījumu kods pasūtījuma koda (87) šādi:
    Kods 1

    ...Cust@1001 : Record 18;

    TempSalesLine@1002 : TEMPORARY Record 37;

    Reservation@1005 : Form 498;

    PrepmtMgt@1004 : Codeunit 441;

    BEGIN

    TESTFIELD("Document Type","Document Type"::"Blanket Order");

    Cust.GET("Sell-to Customer No.");

    Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);
    ...

    Aizstāšanas kods = 1

    ...Cust@1001 : Record 18;

    TempSalesLine@1002 : TEMPORARY Record 37;

    Reservation@1005 : Form 498;

    PrepmtMgt@1004 : Codeunit 441;

    // Add the following line.
    Item@1006 : Record 27;
    // End of the added line.

    BEGIN

    TESTFIELD("Document Type","Document Type"::"Blanket Order");

    Cust.GET("Sell-to Customer No.");

    Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);
    ...

    Kods 2.

    ...SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");

    QuantityOnOrders := 0;

    IF SalesLine.FINDSET THEN

    REPEAT

    IF SalesLine."Document Type" IN

    [SalesLine."Document Type"::"Return Order",

    SalesLine."Document Type"::"Credit Memo"]

    THEN
    ...

    Aizstāšanas kodu 2

    ...SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");

    QuantityOnOrders := 0;

    IF SalesLine.FINDSET THEN

    REPEAT

    // Add the following lines.
    IF Item.GET(SalesLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    // End of the added lines.

    IF SalesLine."Document Type" IN

    [SalesLine."Document Type"::"Return Order",

    SalesLine."Document Type"::"Credit Memo"]

    THEN
    ...

    Kods 3

    ...TempSalesLine.DELETEALL;

    REPEAT

    SalesLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");

    SalesLine.SETRANGE("Blanket Order No.",BlanketOrderSalesLine."Document No.");

    SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");

    // Delete the following lines.

    SalesLine.SETFILTER(

    "Document Type",'<>%1 & <>%2',SalesLine."Document Type"::Invoice,SalesLine."Document Type"::"Credit Memo");

    // End of the deleted lines.

    QuantityOnOrders := 0;

    IF SalesLine.FINDSET THEN

    REPEAT

    IF Item.GET(SalesLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    ...

    Aizstāšanas kodu 3.

    ...TempSalesLine.DELETEALL;

    REPEAT

    SalesLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");

    SalesLine.SETRANGE("Blanket Order No.",BlanketOrderSalesLine."Document No.");

    SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");

    QuantityOnOrders := 0;

    IF SalesLine.FINDSET THEN

    REPEAT

    IF Item.GET(SalesLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    ...

    Kods 4

    ...QuantityOnOrders := 0;

    IF SalesLine.FINDSET THEN

    REPEAT

    IF Item.GET(SalesLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);

    // Delete the following lines.
    IF SalesLine."Document Type" = SalesLine."Document Type"::"Return Order" THEN
    QuantityOnOrders := QuantityOnOrders - SalesLine."Outstanding Qty. (Base)"

    ELSE //Remove line

    QuantityOnOrders := QuantityOnOrders + SalesLine."Outstanding Qty. (Base)";
    // End of the deleted lines.

    UNTIL SalesLine.NEXT = 0;

    IF (ABS(BlanketOrderSalesLine."Qty. to Ship (Base)" + QuantityOnOrders +

    BlanketOrderSalesLine."Qty. Shipped (Base)") >

    ABS(BlanketOrderSalesLine."Quantity (Base)")) OR

    (BlanketOrderSalesLine."Quantity (Base)" * BlanketOrderSalesLine."Outstanding Qty. (Base)" < 0)
    ...

    Aizstāšanas kodu 4

    ...QuantityOnOrders := 0;

    IF SalesLine.FINDSET THEN

    REPEAT

    IF Item.GET(SalesLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);

    // Add the following lines.

    IF (SalesLine."Document Type" = SalesLine."Document Type"::"Return Order") OR

    ((SalesLine."Document Type" = SalesLine."Document Type"::"Credit Memo") AND

    (SalesLine."Return Receipt No." = ''))

    THEN

    QuantityOnOrders := QuantityOnOrders - SalesLine."Outstanding Qty. (Base)"

    ELSE

    IF (SalesLine."Document Type" = SalesLine."Document Type"::Order) OR

    ((SalesLine."Document Type" = SalesLine."Document Type"::Invoice) AND

    (SalesLine."Shipment No." = ''))

    THEN

    QuantityOnOrders := QuantityOnOrders + SalesLine."Outstanding Qty. (Base)";

    // End of the added lines.

    UNTIL SalesLine.NEXT = 0;

    IF (ABS(BlanketOrderSalesLine."Qty. to Ship (Base)" + QuantityOnOrders +

    BlanketOrderSalesLine."Qty. Shipped (Base)") >

    ABS(BlanketOrderSalesLine."Quantity (Base)")) OR

    (BlanketOrderSalesLine."Quantity (Base)" * BlanketOrderSalesLine."Outstanding Qty. (Base)" < 0)
    ...
  3. Nomainiet šo kodu rekvizītos pirkšanas.-piedāvājums uz pasūtījuma koda (96) šādi:
    Kods 1

    ...OldPurchCommentLine@1001 : Record 43;

    FromDocDim@1000 : Record 357;

    ToDocDim@1003 : Record 357;

    Vend@1002 : Record 23;

    BEGIN

    TESTFIELD("Document Type","Document Type"::Quote);

    Vend.GET("Buy-from Vendor No.");

    Vend.CheckBlockedVendOnDocs(Vend,FALSE);
    ...

    Aizstāšanas kods = 1

    ...OldPurchCommentLine@1001 : Record 43;

    FromDocDim@1000 : Record 357;

    ToDocDim@1003 : Record 357;

    Vend@1002 : Record 23;

    // Add the following line.
    Item@1004 : Record 27;
    // End of the added line.

    BEGIN

    TESTFIELD("Document Type","Document Type"::Quote);

    Vend.GET("Buy-from Vendor No.");

    Vend.CheckBlockedVendOnDocs(Vend,FALSE);

    Kods 2.

    ...ToDocDim.SETRANGE("Table ID",DATABASE::"Purchase Line");



    IF PurchQuoteLine.FINDSET THEN

    REPEAT

    PurchOrderLine := PurchQuoteLine;

    PurchOrderLine."Document Type" := PurchOrderHeader."Document Type";

    PurchOrderLine."Document No." := PurchOrderHeader."No.";

    ReservePurchLine.TransferPurchLineToPurchLine(
    ...

    Aizstāšanas kods 2.

    ...ToDocDim.SETRANGE("Table ID",DATABASE::"Purchase Line");



    IF PurchQuoteLine.FINDSET THEN

    REPEAT

    // Add the following lines.
    IF Item.GET(PurchQuoteLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    // End of the added lines.

    PurchOrderLine := PurchQuoteLine;

    PurchOrderLine."Document Type" := PurchOrderHeader."Document Type";

    PurchOrderLine."Document No." := PurchOrderHeader."No.";

    ReservePurchLine.TransferPurchLineToPurchLine(
    ...
  4. Mainīt rekvizītus pirkšanas pasūtījumu plāna kods. Lai pasūtījuma koda (97) šādi:
    Kods 1

    ...FromDocDim@1000 : Record 357;

    ToDocDim@1002 : Record 357;

    Vend@1001 : Record 23;

    PrepmtMgt@1003 : Codeunit 441;

    BEGIN

    TESTFIELD("Document Type","Document Type"::"Blanket Order");

    Vend.GET("Buy-from Vendor No.");

    Vend.CheckBlockedVendOnDocs(Vend,FALSE);
    ...

    Aizstāšanas kodu 1

    ...FromDocDim@1000 : Record 357;

    ToDocDim@1002 : Record 357;

    Vend@1001 : Record 23;

    PrepmtMgt@1003 : Codeunit 441;

    // Add the following line.
    Item@1004 : Record 27;
    // End of the added line.

    BEGIN

    TESTFIELD("Document Type","Document Type"::"Blanket Order");

    Vend.GET("Buy-from Vendor No.");

    Vend.CheckBlockedVendOnDocs(Vend,FALSE);
    ...

    Kods 2.

    ...PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");

    QuantityOnOrders := 0;

    IF PurchLine.FINDSET THEN

    REPEAT

    IF PurchLine."Document Type" IN

    [PurchLine."Document Type"::"Return Order",

    PurchLine."Document Type"::"Credit Memo"] THEN

    QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"
    ...

    Aizstāšanas kods 2.

    ...PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");

    QuantityOnOrders := 0;

    IF PurchLine.FINDSET THEN

    REPEAT

    // Add the following lines.
    IF Item.GET(PurchLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    // End of the added lines.

    IF PurchLine."Document Type" IN

    [PurchLine."Document Type"::"Return Order",

    PurchLine."Document Type"::"Credit Memo"] THEN

    QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"
    ...

    Kods 3

    ...IF PurchBlanketOrderLine.FINDSET THEN

    REPEAT

    PurchLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");

    PurchLine.SETRANGE("Blanket Order No.",PurchBlanketOrderLine."Document No.");

    PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");

    // Delete the following lines.

    PurchLine.SETFILTER(

    "Document Type",'<>%1 & <>%2',PurchLine."Document Type"::Invoice,PurchLine."Document Type"::"Credit Memo");

    // End of the deleted lines.

    QuantityOnOrders := 0;

    IF PurchLine.FINDSET THEN

    REPEAT

    IF Item.GET(PurchLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    ...

    Aizstāšanas kodu 3.

    ...IF PurchBlanketOrderLine.FINDSET THEN

    REPEAT

    PurchLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");

    PurchLine.SETRANGE("Blanket Order No.",PurchBlanketOrderLine."Document No.");

    PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");

    QuantityOnOrders := 0;

    IF PurchLine.FINDSET THEN

    REPEAT

    IF Item.GET(PurchLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);
    ...

    Kods 4

    ...QuantityOnOrders := 0;

    IF PurchLine.FINDSET THEN

    REPEAT

    IF Item.GET(PurchLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);

    // Delete the following lines.

    IF PurchLine."Document Type" = PurchLine."Document Type"::"Return Order" THEN

    QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"

    ELSE

    QuantityOnOrders := QuantityOnOrders + PurchLine."Outstanding Qty. (Base)";

    // End of the deleted lines.

    UNTIL PurchLine.NEXT = 0;

    IF (ABS(PurchBlanketOrderLine."Qty. to Receive (Base)" + QuantityOnOrders +

    PurchBlanketOrderLine."Qty. Received (Base)") >

    ABS(PurchBlanketOrderLine."Quantity (Base)")) OR

    (PurchBlanketOrderLine."Quantity (Base)" * PurchBlanketOrderLine."Outstanding Qty. (Base)" < 0)
    ...

    4. koda Nomaiņa

    ...QuantityOnOrders := 0;

    IF PurchLine.FINDSET THEN

    REPEAT

    IF Item.GET(PurchLine."No.") THEN

    Item.TESTFIELD(Blocked,FALSE);

    // Add the following lines.

    IF (PurchLine."Document Type" = PurchLine."Document Type"::"Return Order") OR

    ((PurchLine."Document Type" = PurchLine."Document Type"::"Credit Memo") AND

    (PurchLine."Return Shipment No." = ''))

    THEN

    QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"

    ELSE

    IF (PurchLine."Document Type" = PurchLine."Document Type"::Order) OR

    ((PurchLine."Document Type" = PurchLine."Document Type"::Invoice) AND

    (PurchLine."Receipt No." = ''))

    THEN

    QuantityOnOrders := QuantityOnOrders + PurchLine."Outstanding Qty. (Base)";
    // End of the added lines.

    UNTIL PurchLine.NEXT = 0;

    IF (ABS(PurchBlanketOrderLine."Qty. to Receive (Base)" + QuantityOnOrders +

    PurchBlanketOrderLine."Qty. Received (Base)") >

    ABS(PurchBlanketOrderLine."Quantity (Base)")) OR

    (PurchBlanketOrderLine."Quantity (Base)" * PurchBlanketOrderLine."Outstanding Qty. (Base)" < 0)
    ...


Priekšnosacījumi

Ir jābūt instalētai tālāk norādīto atjauninājumu un kādam no šiem produktiem, lai lietotu šo labojumfailu:

  • Microsoft Dynamics NAV 2009 servisa pakotnes 1.

  • Microsoft Dynamics NAV 2009 R2

  • 2642368 "Daudzums (bāze) nosūtīšanas rindas Nr. [Line_Number] [Item_Number] preces nevar būt vairāk par [Number]" kļūdas ziņojums, mēģinot izveidot pasūtījumu no plāna pasūtīt Microsoft Dynamics NAV

Informācija par noņemšanu

Nevar noņemt šo labojumfailu.

Statuss

Korporācija Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir minēti sadaļā "Attiecas uz".

Piezīme. Šis ir STEIDZAMI PUBLICĒJAMS raksts, kas izveidots tieši Microsoft atbalsta organizācijā. Šajā rakstā ietvertā informācija ir sniegta, reaģējot uz nesen konstatētām problēmām. Tā kā šis raksts ir tapis pieejams neilgā laikā, materiālos var būt pareizrakstības kļūdas un tās var tikt labotas jebkurā laikā bez paziņojuma. Skatīt Lietošanasciti apsvērumi.

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar tulkojuma kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×