Käesolev artikkel kehtib Microsoft Dynamics nav-i kõik riigid ja kõik language locales.
Sümptomid
Saate luua müügitellimuse blokeeritud üksuse tuleb välja Microsoft Dynamics 2009 müügipakkumise ootamatult. Müügitellimuse sisestamisel kuvatakse järgmine tõrketeade:
Koguse Shipped seotud Raamtellimus ei tohi olla suurem kui koguse müügi rida dokumenditüübi = 'Raamtellimus','arv1' nr, rea nr = "arv2".
See probleem ilmneb järgmiste toodetega:
-
Microsoft Dynamics nav-i 2009 Service Pack 1
-
Microsoft Dynamics nav-i 2009 R2
Lahendus
Kiirparanduse teave
Lasknud välja toetatava käigultparanduse on nüüd Microsoftilt saadaval. Aga see on ette nähtud ainult selles artiklis kirjeldatud probleemi kõrvaldamiseks. Rakendage seda ainult süsteemides, kus ilmneb see konkreetne probleem. Seda käigultparandust võidakse täiendavalt testida. Kui see probleem teie tööd tõsiselt ei kahjusta, soovitame oodata järgmist hoolduspaketti Microsoft Dynamics nav-i 2009 või järgmise Microsoft Dynamics nav-i versiooni, mis sisaldab seda kiirparandust.Märkus. Erijuhtudel kulud, mis tekivad teatud palub tühistada saab kui tehniline toetus Professional Microsoft Dynamics ja nendega seotud toodete leiab, et mõni konkreetne värskendus lahendab teie probleemi. Tavaline tugiteenuste kohaldatakse täiendavat tugiteenust vajavatele küsimustele ning probleemidele, mis pole lahendatavad konkreetse värskenduse installimisega.
Installiteave
Microsoft pakub programmeerimisnäiteid ainult artikli illustreerimiseks ilma igasuguse otsese või kaudse garantiita. See hõlmab, kuid ei piirdu kaudseid garantiisid turustatavuse või kindlaks otstarbeks sobivusega. See artikkel eeldab, et olete demonstreeritava programmeerimiskeelega programmeerimise keel ning luua protseduuride ja silumiseks kasutatavate tööriistadega tuttav. Microsofti tugitehnikud võivad aidata mõne konkreetse protseduuri talitlust selgitada. Siiski ei muuda nad neid näiteid lisafunktsioonide pakkumiseks ega Koosta vastavaid protseduure teie konkreetsetele nõuetele.Märkus. Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Dynamics nav-i kliendi kasutajat sisse loginud süsteem välja. See hõlmab Microsoft Dynamics nav-i rakenduste Server (NAS) teenuseid. Peaks olema ainult kliendi kasutaja on sisse logitud, kui otsustate seda käigultparandust.Selle kiirparanduse rakendamiseks peab teil olema arendaja litsentsi.Soovitame Windowsi sisselogimise aken või aken andmebaasi logimine kasutajakonto määrata "SUPER" rolli ID. Kui "SUPER" rolli ID-d ei saa määratud kasutajakonto, peate veenduma, et kasutaja konto on järgmised õigused:
-
Sa muutuvad objekti Muuda õigusi.
-
Käivita luba süsteemi objekti ID 5210 objekti ja süsteemi objekti ID 9015objekti.
Märkus. Teil pole õigust andmeid talletab enne, kui olete andmete parandamiseks.
Koodi muudatusi
Märkus. Alati test koodi lahendab kontrollitavas keskkonnas enne rakendamist tootmine arvutite parandused.Selle probleemi lahendamiseks toimige järgmiselt.
-
Muuda atribuudid müügi pakkumine koodi järjekorras koodiplokk (86) järgmiselt:Kood 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);...
Asendamine kood 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);...
Kood 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;...
Asendamine kood 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;...
-
Muuda atribuudid müügi Raamtellimus koodi järjekorras koodiplokk (87) järgmiselt:Kood 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);...
Kood 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);...
Kood 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...Asendamine kood 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...Kood 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);...
Asendamine kood 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);...
Kood 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)...
Asendamine kood 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)...
-
Muuta koodi atribuutides ost.-tsitaat tellimuse koodiplokk (96) järgmiselt:Kood 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);...
Kood 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);
Kood 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(...Asendamine kood 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(... -
Muuta koodi atribuutides üldine ost. Selleks, et tellida koodiplokk (97) on järgmine:Kood 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);...
Kood 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);...
Kood 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)"...Asendamine kood 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)"...Kood 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);...
Asendamine kood 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);...
Kood 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)...
Asendamine kood 4
...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)...
Eeltingimused
Peab olema järgmine värskendus ja üks selle kiirparanduse installinud järgmisi tooteid:
-
Microsoft Dynamics nav-i 2009 Service Pack 1
-
Microsoft Dynamics nav-i 2009 R2
-
2642368 "Kogus Real nr [Line_Number] [Item_Number] kauba saaja (alus) ei saa olla suurem kui [Number]" tõrketeade, kui proovite luua tellimuse teki tellida Microsoft Dynamics nav-i
Eemaldamise teave
See käigultparandus ei saa eemaldada.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.
Märkus. See on "Kiire avaldamise" artikli loonud otse Microsofti tugiteenuse pakkujalt. Siintoodud teave on esitatud lähtudes-olemasoleval kujul vastusena ilmnenud probleemidele. Kiire avaldamise materjalides esineda trükivigu ja võidakse muuta ette teatamata. Vaadake Kasutustingimusedmuid kaalutlusi.