"Üksuse jälgimine on määratletud kauba [Kauba nr.] jaoks kaubažurnaali rea kontodel rohkem kui sisestatud kogus" tõrketeade" tootmistellimuse osalise väljundi konteerimisel rakenduses Microsoft Dynamics NAV 2009

Rakenduskoht
Dynamics NAV 2009

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.

  1. 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.
    ...
    
  2. 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 .