See artikkel kehtib Microsoft Dynamics NAV-i kohta kõigis riikides ja kõigis keele lokaadides.
Sümptomid
Oletagem, et määrate Microsoft Dynamics NAV dialoogiboksis Tootmishäälestussätte Valmisväljundi kogusväärtuseks Null kõigi toimingute korral. Saate määratleda tootmistellimuse kaubajälgimise. Sellisel juhul, kui proovite konteerida tootmistellimuse osalist väljundit, kuvatakse järgmine tõrketeade:
Märkus.
Kaubajälgimine, mis on määratletud kaubažurnaali rea kontodel kaubažurnaali rea kontodel rohkem kui sisestatud kogus. Peate reguleerima olemasolevat kaubajälgimist ja sisestama uue koguse uuesti.
Kui proovite tootmistellimuse kaubajälgimist parandada, kuvatakse järgmine tõrketeade:
Märkus.
Parandust ei saa salvestada, kuna määratletud on liigne kogus. Kas sulgeda vorm ikkagi?
See probleem ilmneb järgmistes toodetes:
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Lahendus
Kiirparanduse teave
Microsoftilt on nüüd saadaval toetatud kiirparandus. Siiski on see mõeldud ainult selles artiklis kirjeldatud probleemi lahendamiseks. Rakendage see ainult süsteemidele, kus esineb see konkreetne probleem. See kiirparandus võib saada täiendavaid katseid. Seega, kui see probleem ei mõjuta teid tõsiselt, soovitame oodata järgmist Microsoft Dynamics NAV hoolduspaketti või järgmist Microsoft Dynamics NAV versiooni, mis sisaldab seda kiirparandust.
Märkus. Erijuhtudel võidakse tavaliselt tugiteenuse kõnede eest tehtud tasud tühistada, kui Microsoft Dynamicsi ja seotud toodete tehniline tugitöötaja leiab, et konkreetne värskendus lahendab teie probleemi. Tavapärased toetuskulud kehtivad täiendavatele tugiteenustega seotud küsimustele ja probleemidele, mis ei vasta kõnealuse värskenduse tingimustele.
Installiteave
Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, ilma et garantii oleks väljendatud või kaudselt. See hõlmab kaubastatavuse või kindlaks otstarbeks sobivuse kaudseid garantiisid, kuid mitte ainult. Selles artiklis eeldatakse, et olete tuttav kuvatava programmeerimiskeelega ja tööriistadega, mida kasutatakse protseduuride loomiseks ja silumiseks. Microsofti tugiteenuste insenerid saavad aidata selgitada konkreetse toimingu funktsionaalsust. Kuid need näited ei muuda neid näiteid, et pakkuda teie vajadustele vastavaid lisafunktsioone või koostada protseduure.
Märkus Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Dynamics NAV kliendi kasutajad on süsteemist välja logitud. See hõlmab ka Microsoft Dynamics NAV Application Serveri (NAS) teenuseid. Peaksite olema ainus klientkasutaja, kes on sisse logitud, kui rakendate selle kiirparanduse.
Selle kiirparanduse rakendamiseks peab teil olema arendaja litsents.
Soovitame, et aknas Windowsi sisselogimised või aknas Andmebaasi sisselogimised olevale kasutajakontole määrataks "SUPER" rolli ID. Kui kasutajakontole ei saa superrolli ID-d määrata, peate kontrollima, kas kasutajakontol on järgmised õigused.
Muudetava objekti muutmisõigus.
Süsteemiobjekti ID 5210 ja süsteemiobjekti ID 9015 täitmisõigus
objekt.
Märkus. Teil pole andmesalvede jaoks õigusi, kui te ei pea tegema andmete parandamist.
Koodi muudatused
Märkus. Enne paranduste rakendamist tööarvutitele testige koodiparandusi alati kontrollitud keskkonnas.
Probleemi lahendamiseks tehke järgmist.
Muutke reserveerimishalduse koodiplokis (99000845) kuvatavat koodi järgmiselt.
Olemasolev kood... CODE ... PROCEDURE DeleteReservEntries2@31(DeleteAll@1000 : Boolean;DownToQuantity@1001 : Decimal;VAR ReservEntry@1002 : Record 337); ... IF QtyToRelease <> 0 THEN BEGIN IF ItemTrackingHandling = ItemTrackingHandling::None THEN IF DeleteAll THEN ERROR(Text010,ReservEntry."Item No.",ReservEntry.TextCaption) ELSE // Delete the following line. ERROR(Text008,ReservEntry."Item No.",ReservEntry.TextCaption); // End of the deleted line. ...THEN CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse); END; BEGIN END. ...Asenduskood
... CODE ... PROCEDURE DeleteReservEntries2@31(DeleteAll@1000 : Boolean;DownToQuantity@1001 : Decimal;VAR ReservEntry@1002 : Record 337); ... IF QtyToRelease <> 0 THEN BEGIN IF ItemTrackingHandling = ItemTrackingHandling::None THEN IF DeleteAll THEN ERROR(Text010,ReservEntry."Item No.",ReservEntry.TextCaption) ELSE // Add the following lines. IF NOT ProdJnlLineEntry(ReservEntry) THEN ERROR(Text008,ReservEntry."Item No.",ReservEntry.TextCaption); // End of the added lines. ... THEN CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse); END; BEGIN // Add the following lines. WITH ReservationEntry DO EXIT(("Source Type" = DATABASE::"Item Journal Line") AND ("Source Subtype" = 6)); END; BEGIN // End of the added lines. END. ...Muutke koodi vormil Kaubajälgimisread (6510) järgmiselt.
Olemasolev kood 1... Text018@1057 : TextConst 'ENU=Saving item tracking line changes'; ForBinCode@1043 : Code[20]; Text019@1013 : TextConst 'ENU=There are availability warnings on one or more lines.\Close the form anyway?'; Text020@1002 : TextConst 'ENU=Placeholder'; IsPick@1042 : Boolean; PROCEDURE SetFormRunMode@19(Mode@1000 : ',Reclass,Combined Ship/Rcpt,Drop Shipment'); ...Asenduskood 1
... Text018@1057 : TextConst 'ENU=Saving item tracking line changes'; ForBinCode@1043 : Code[20]; Text019@1013 : TextConst 'ENU=There are availability warnings on one or more lines.\Close the form anyway?'; Text020@1002 : TextConst 'ENU=Placeholder'; IsPick@1042 : Boolean; // Add the following line. ProdOrderLineHandling@2002 : Boolean; // End of the added line. PROCEDURE SetFormRunMode@19(Mode@1000 : ',Reclass,Combined Ship/Rcpt,Drop Shipment'); ...Olemasolev kood 2
... THEN CurrentEntryStatus := CurrentEntryStatus::Surplus ELSE CurrentEntryStatus := CurrentEntryStatus::Prospect; // Delete the following lines. IF (TrackingSpecification."Source Type" IN [DATABASE::"Item Ledger Entry", DATABASE::"Item Journal Line", DATABASE::"Job Journal Line", DATABASE::"BOM Journal Line", DATABASE::"Requisition Line"]) OR ((TrackingSpecification."Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND (TrackingSpecification."Source Subtype" IN [0,2,3])) THEN SetControls(Controls::Handle,FALSE) ELSE SetControls(Controls::Handle,TRUE); // End of the deleted lines. SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass); ...Asenduskood 2
... THEN CurrentEntryStatus := CurrentEntryStatus::Surplus ELSE CurrentEntryStatus := CurrentEntryStatus::Prospect; // Add the following lines. // Set controls for Qty To Handle: SetControls(Controls::Handle,GetHandleSource(TrackingSpecification)); // Set controls for Qty To Invoice: SetControls(Controls::Invoice,GetInvoiceSource(TrackingSpecification)); // End of the added lines. SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass); ...Olemasolev kood 3
... SetControls(Controls::Handle,TRUE); // Delete the following lines. IF (TrackingSpecification."Source Type" IN [DATABASE::"Item Ledger Entry", DATABASE::"Item Journal Line", DATABASE::"Job Journal Line", DATABASE::"BOM Journal Line", DATABASE::"Requisition Line", DATABASE::"Transfer Line", DATABASE::"Prod. Order Line", DATABASE::"Prod. Order Component"]) OR ((TrackingSpecification."Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND (TrackingSpecification."Source Subtype" IN [0,2,3,4])) THEN SetControls(Controls::Invoice,FALSE) ELSE SetControls(Controls::Invoice,TRUE); // End of the deleted lines. SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass); ...Asenduskood 3
... SetControls(Controls::Handle,TRUE); SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass); ...Olemasolev kood 4
... BEGIN UndefinedQtyArray[1] := SourceQuantityArray[1] - TotalItemTrackingLine."Quantity (Base)"; UndefinedQtyArray[2] := SourceQuantityArray[2] - TotalItemTrackingLine."Qty. to Handle (Base)"; UndefinedQtyArray[3] := SourceQuantityArray[3] - TotalItemTrackingLine."Qty. to Invoice (Base)"; // Delete the following lines. IF ABS(SourceQuantityArray[1]) < ABS(TotalItemTrackingLine."Quantity (Base)") THEN BEGIN ColorOfQuantityArray[1] := 255; QtyIsValid := FALSE; END ELSE BEGIN // End of the deleted lines. ColorOfQuantityArray[1] := 0; // Delete the following lines. QtyIsValid := TRUE; END; // End of the deleted lines. IF ABS(SourceQuantityArray[2]) < ABS(TotalItemTrackingLine."Qty. to Handle (Base)") THEN ...Asenduskood 4
... BEGIN UndefinedQtyArray[1] := SourceQuantityArray[1] - TotalItemTrackingLine."Quantity (Base)"; UndefinedQtyArray[2] := SourceQuantityArray[2] - TotalItemTrackingLine."Qty. to Handle (Base)"; UndefinedQtyArray[3] := SourceQuantityArray[3] - TotalItemTrackingLine."Qty. to Invoice (Base)"; // Add the following lines. QtyIsValid := ProdOrderLineHandling OR (ABS(SourceQuantityArray[1]) >= ABS(TotalItemTrackingLine."Quantity (Base)")); IF ABS(SourceQuantityArray[1]) < ABS(TotalItemTrackingLine."Quantity (Base)") THEN ColorOfQuantityArray[1] := 255 ELSE // End of the added lines. ColorOfQuantityArray[1] := 0; IF ABS(SourceQuantityArray[2]) < ABS(TotalItemTrackingLine."Qty. to Handle (Base)") THEN ...Olemasolev kood 5
... CurrForm."Appl.-from Item Entry".VISIBLE(FALSE); END; BEGIN { In order to provide F6 invoked lookup from availability bitmap columns, a menu button has been hidden behind control 1. ...Asenduskood 5
... CurrForm."Appl.-from Item Entry".VISIBLE(FALSE); END; // Add the following lines. PROCEDURE GetHandleSource@63(TrackingSpecification@2004 : Record 336) : Boolean; VAR QtyToHandleColumnIsHidden@2005 : Boolean; // End of the added lines. BEGIN // Add the following lines. WITH TrackingSpecification DO BEGIN IF ("Source Type" = DATABASE::"Item Journal Line") AND ("Source Subtype" = 6) THEN BEGIN // 6 => Prod.order line ProdOrderLineHandling := TRUE; EXIT(TRUE); // Display Handle column for prod. orders END; QtyToHandleColumnIsHidden := ("Source Type" IN [DATABASE::"Item Ledger Entry", DATABASE::"Item Journal Line", DATABASE::"Job Journal Line", DATABASE::"Requisition Line"]) OR (("Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND ("Source Subtype" IN [0,2,3])); END; EXIT(NOT QtyToHandleColumnIsHidden); END; PROCEDURE GetInvoiceSource@73(TrackingSpecification@2007 : Record 336) : Boolean; VAR QtyToInvoiceColumnIsHidden@2009 : Boolean; BEGIN WITH TrackingSpecification DO BEGIN QtyToInvoiceColumnIsHidden := ("Source Type" IN [DATABASE::"Item Ledger Entry", DATABASE::"Item Journal Line", DATABASE::"Job Journal Line", DATABASE::"Requisition Line", DATABASE::"Transfer Line", DATABASE::"Prod. Order Line", DATABASE::"Prod. Order Component"]) OR (("Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND ("Source Subtype" IN [0,2,3,4])) END; EXIT(NOT QtyToInvoiceColumnIsHidden); END; BEGIN // End of the added lines. { In order to provide F6 invoked lookup from availability bitmap columns, a menu button has been hidden behind control 1. ...
Eeltingimused
Selle kiirparanduse rakendamiseks peab teil olema installitud üks järgmistest toodetest:
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 Service Pack 1
Eemaldamisteave
Seda kiirparandust ei saa eemaldada.
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.
Märkus. See on otse Microsofti tugiteenuste organisatsioonist loodud FAST PUBLISH-artikkel. Käesolevas artiklis sisalduv teave on esitatud kujul, mis on seotud tekkivate küsimustega. Materjali kättesaadavaks tegemise kiiruse tõttu võivad materjalid sisaldada kirjavigu ja neid võib igal ajal ette teatamata läbi vaadata. Muid kaalutlusi leiate teemast Kasutustingimused .