當你在 Microsoft Dynamics NAV 5.0 SP1 的選擇工作表中建立選擇時,會出現「無事可處理」錯誤訊息

本文適用於所有地區的 Microsoft Dynamics NAV。

請考慮 Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) 中的以下情境:

  • 你把項目的預留參數設為「永遠」。
  • 你有該商品的銷售訂單。 此外,該商品的訂購數量超過庫存中的可用數量。

在這種情況下,當你使用選件工作表中該項目的可用數量來建立選擇時,你會收到以下錯誤訊息:

注意

沒什麼好處理的

症狀

Hotfix 資訊

Microsoft 現在已經支援熱修補程式。 然而,這僅是為了修正本文所描述的問題。 只應用在遇到這個特定問題的系統上。 此熱修補可能會進行額外測試。 因此,如果您未受到此問題嚴重影響,我們建議您等待下一個 Microsoft Dynamics NAV 5.0 服務包或包含此熱修正的 Microsoft Dynamics NAV 版本。

注意:在特殊情況下,若 Microsoft Dynamics 及相關產品的技術支援專業人員判斷特定更新能解決您的問題,通常因支援電話而產生的費用可能會被取消。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。

解決方式

安裝資訊

Microsoft 僅提供圖例的程式設計範例,不含明示或暗示的擔保。 這包括 (但不限於) 適用于特定目的之可操作性或適用性的暗示擔保。 本文假設您熟悉正在示範的程式設計語言,以及用來建立和進行程式偵錯工具的工具。 Microsoft 技術支援工程師可以協助說明特定程序的功能,但不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。

注意:安裝此熱修補程式前,請確認所有 Microsoft Navision 用戶端使用者都已登出系統。 這包括Microsoft Navision 應用服務 (NAS) 用戶端使用者。 當你實施這個熱修補時,應該只有你一個登入的客戶端使用者。

要實作這個熱修補,你必須擁有開發者授權。

我們建議在 Windows 登入視窗或資料庫登入視窗中,將使用者帳號分配「SUPER」角色 ID。 若使用者帳號無法被指派「SUPER」角色 ID,您必須驗證該帳號擁有以下權限:

  • 你要更改的物件的修改權限。
  • 系統物件 ID 5210 的執行權限,以及系統物件 ID 9015 的執行權限。

            
注意:除非你必須進行資料修復,否則你不必擁有資料儲存的權利。

法規變更

注意:在將修正程式套用到生產電腦之前,務必在受控環境中測試修正。
如果要解決這個問題,請依照下列步驟執行。

  1. 在生產順序元件表中 (5407) 更改鍵中的程式碼如下:

    現有程式碼

    ...
           {    ;Status,Prod. Order No.,Routing Link Code,Flushing Method }
    
          {    ;Status,Prod. Order No.,Location Code     }
    
          {    ;Item No.,Variant Code,Location Code,Status,Due Date;
    
    // Delete the following line.
                                                         SumIndexFields=Expected Quantity,Remaining Qty. (Base),Cost Amount,Overhead Amount;
    // End of the deleted line.
    
                                                         MaintainSIFTIndex=No }
    
          {    ;Status,Prod. Order No.,Prod. Order Line No.,Item Low-Level Code;
    
                                                         MaintainSQLIndex=No }
    ...
    
    

    替換代碼

    ...
          {    ;Status,Prod. Order No.,Routing Link Code,Flushing Method }
    
          {    ;Status,Prod. Order No.,Location Code     }
    
          {    ;Item No.,Variant Code,Location Code,Status,Due Date;
    
    // Add the following line.
                                                         SumIndexFields=Expected Quantity,Remaining Qty. (Base),Cost Amount,Overhead Amount,Qty. Picked (Base);
    // End of the added line.
    
                                                         MaintainSIFTIndex=No }
    
          {    ;Status,Prod. Order No.,Prod. Order Line No.,Item Low-Level Code;
    
                                                         MaintainSQLIndex=No }
    ...
    
    
  2. 請在倉庫活動行表格中的欄位 (5767) 如下更改代碼:

    現有程式碼

    ...
                                                                                 ERROR(Text015);
    
                                                                                  IF "Bin Code" <> '' THEN BEGIN
    
                                                                                    CreatePick.CheckReservation(
    
    // Delete the following lines.
                                                                                      "Location Code","Source Type","Source Subtype","Source No.",
    
                                                                                      "Source Line No.","Source Subline No.","Qty. per Unit of Measure","Qty. to Handle (Base)");
    // End of the deleted lines.
    
                                                                                    CreatePick.GetReservationStatus(ReservationExists,ReservedForItemLedgEntry);
    
                                                                                    IF ReservationExists AND NOT ReservedForItemLedgEntry THEN
    
                                                                                      ERROR(Text016,"Item No.");   
    ...
    

    替換代碼

    ...
                                                                                   ERROR(Text015);
    
                                                                                  IF "Bin Code" <> '' THEN BEGIN
    
                                                                                    CreatePick.CheckReservation(
    
    // Add the following lines.
                                                                                      AvailableQty,"Location Code","Source Type","Source Subtype","Source No.",
    
                                                                                      "Source Line No.","Source Subline No.","Qty. per Unit of Measure",
    
                                                                                      "Qty. to Handle","Qty. to Handle (Base)");
    // End of the added lines.
    
    
    
                                                                                    CreatePick.GetReservationStatus(ReservationExists,ReservedForItemLedgEntry);
    
                                                                                    IF ReservationExists AND NOT ReservedForItemLedgEntry THEN
    
                                                                                      ERROR(Text016,"Item No."); 
    ...
    
  3. 在 WHSE 的文件中修改程式碼。 管理代碼單元 (5775) 如下:

    現有程式碼

    ...
             ERROR(Text000);
    
          END;
    
    
    
    // Delete the following line.
          BEGIN
    // End of the deleted line.
    
          END.
    
        }
    
      }  
    ...
    

    替換代碼

    ...
             ERROR(Text000);
    
          END;
    
    
    
    // Add the following lines.
          PROCEDURE GetOutboundDocLineQtyOtsdg@3(SourceType@1006 : Integer;SourceSubType@1005 : '0,1,2,3,4,5,6,7,8,9,10';SourceNo@1004 : Code[20];SourceLineNo@1003 : Integer;SourceSubLineNo@1002 : Integer;VAR QtyOutstanding@1001 : Decimal;VAR QtyBaseOutstanding@1000 : Decimal);
    
          VAR
    
            WhseShptLine@1009 : Record 7321;
    
          BEGIN
    
            WhseShptLine.SETCURRENTKEY("Source Type");
    
            WhseShptLine.SETRANGE("Source Type",SourceType);
    
            WhseShptLine.SETRANGE("Source Subtype",SourceSubType);
    
            WhseShptLine.SETRANGE("Source No.",SourceNo);
    
            WhseShptLine.SETRANGE("Source Line No.",SourceLineNo);
    
            IF WhseShptLine.FINDSET THEN BEGIN
    
              WhseShptLine.CALCSUMS("Qty. Outstanding (Base)","Qty. Outstanding");
    
              QtyOutstanding := WhseShptLine."Qty. Outstanding";
    
              QtyBaseOutstanding := WhseShptLine."Qty. Outstanding (Base)";
    
            END ELSE
    
              GetSrcDocLineQtyOutstanding(SourceType,SourceSubType,SourceNo,
    
                SourceLineNo,SourceSubLineNo,QtyOutstanding,QtyBaseOutstanding);
    
          END;
    
    
    
          PROCEDURE GetSrcDocLineQtyOutstanding@7(SourceType@1006 : Integer;SourceSubType@1005 : '0,1,2,3,4,5,6,7,8,9,10';SourceNo@1004 : Code[20];SourceLineNo@1003 : Integer;SourceSubLineNo@1002 : Integer;VAR QtyOutstanding@1001 : Decimal;VAR QtyBaseOutstanding@1000 : Decimal);
    
          VAR
    
            SalesLine@1008 : Record 37;
    
            PurchaseLine@1009 : Record 39;
    
            TransferLine@1010 : Record 5741;
    
            ServiceLine@1012 : Record 5902;
    
            ProdOrderComp@1013 : Record 5407;
    
            ProdOrderLine@1014 : Record 5406;
    
          BEGIN
    
            CASE SourceType OF
    
              DATABASE::"Sales Line":
    
                IF SalesLine.GET(SourceSubType,SourceNo,SourceLineNo) THEN BEGIN
    
                  QtyOutstanding := SalesLine."Outstanding Quantity";
    
                  QtyBaseOutstanding := SalesLine."Outstanding Qty. (Base)";
    
                END;
    
              DATABASE::"Purchase Line":
    
                IF PurchaseLine.GET(SourceSubType,SourceNo,SourceLineNo) THEN BEGIN
    
                  QtyOutstanding := PurchaseLine."Outstanding Quantity";
    
                  QtyBaseOutstanding := PurchaseLine."Outstanding Qty. (Base)";
    
                END;
    
              DATABASE::"Transfer Line":
    
                IF TransferLine.GET(SourceNo,SourceLineNo) THEN
    
                  CASE SourceSubType OF
    
                    0: // Direction = Outbound
    
                      BEGIN
    
                        QtyOutstanding :=
    
                          ROUND(TransferLine."Whse Outbnd. Otsdg. Qty (Base)" / (QtyOutstanding / QtyBaseOutstanding),0.00001);
    
                        QtyBaseOutstanding := TransferLine."Whse Outbnd. Otsdg. Qty (Base)";
    
                      END;
    
                    1: // Direction = Inbound
    
                      BEGIN
    
                        QtyOutstanding :=
    
                          ROUND(TransferLine."Whse. Inbnd. Otsdg. Qty (Base)" / (QtyOutstanding / QtyBaseOutstanding),0.00001);
    
                        QtyBaseOutstanding := TransferLine."Whse. Inbnd. Otsdg. Qty (Base)";
    
                      END;
    
                  END;
    
              DATABASE::"Service Line":
    
                IF ServiceLine.GET(SourceSubType,SourceNo,SourceLineNo) THEN BEGIN
    
                  QtyOutstanding := ServiceLine."Outstanding Quantity";
    
                  QtyBaseOutstanding := ServiceLine."Outstanding Qty. (Base)";
    
                END;
    
              DATABASE::"Prod. Order Component":
    
                IF ProdOrderComp.GET(SourceSubType,SourceNo,SourceLineNo,SourceSubLineNo) THEN BEGIN
    
                  QtyOutstanding := ProdOrderComp."Remaining Quantity";
    
                  QtyBaseOutstanding := ProdOrderComp."Remaining Qty. (Base)";
    
                END;
    
              DATABASE::"Prod. Order Line":
    
                IF ProdOrderLine.GET(SourceSubType,SourceNo,SourceLineNo) THEN BEGIN
    
                  QtyOutstanding := ProdOrderLine."Remaining Quantity";
    
                  QtyBaseOutstanding := ProdOrderLine."Remaining Qty. (Base)";
    
                END;
    
              ELSE BEGIN
    
                QtyOutstanding := 0;
    
                QtyBaseOutstanding := 0;
    
              END;
    
            END;
    
          END;
    
    
    
          BEGIN
    // End of the added lines.
    
          END.
    
        }
    
      }
    ...
    
  4. 在 WMS 管理碼單元 (7302) 中,將 CalcLineReservedQtyonInvt 函式中的程式碼變更如下:

    現有程式碼

    ...
                    ReservEntry2.SETRANGE("Lot No.",LotNo);
    
                IF ReservEntry2.FIND('-') THEN
    
                  REPEAT
    
    // Delete the following line.
                    ReservQtyonInvt := ReservQtyonInvt + ReservEntry2."Quantity (Base)";
    // End of the deleted line.
    
                  UNTIL ReservEntry2.NEXT = 0;
    
              UNTIL ReservEntry.NEXT = 0;
    
            EXIT(ReservQtyonInvt);
    ...
    
    

    替換代碼

    ...
                   ReservEntry2.SETRANGE("Lot No.",LotNo);
    
                IF ReservEntry2.FIND('-') THEN
    
                  REPEAT
    
    // Add the following line.
                    ReservQtyonInvt := ReservQtyonInvt + ReservEntry2."Quantity (Base)" - ReservEntry2."Reserved Pick & Ship Qty.";
    // End of the added line.
    
                  UNTIL ReservEntry2.NEXT = 0;
    
              UNTIL ReservEntry.NEXT = 0;
    
            EXIT(ReservQtyonInvt);
    ...
    
    
  5. 在 Create Pick codeunit (7312) 中,將 CreateTempLine 函式中的程式碼變更如下:

    現行法規1

    ...
            RemQtyToPickBase@1000000002 : Decimal;
    
            QtyToPickBase@1000000001 : Decimal;
    
            QtyToTrackBase@1009 : Decimal;
    
    // Delete the following lines.
          BEGIN
    
            CheckReservation(
    
              LocationCode,SourceType,SourceSubType,SourceNo,SourceLineNo,SourceSubLineNo,
    
              QtyPerUnitofMeasure,TotalQtytoPick);
    // End of the deleted lines.
    
    
            RemQtyToPick := TotalQtytoPick;
    
            RemQtyToPickBase := TotalQtytoPickBase;
    
            ItemTrackingMgt.CheckWhseItemTrkgSetup(ItemNo,SNRequired,LNRequired,FALSE);
    ...
    
    

    替換代碼1

    ...
          RemQtyToPickBase@1000000002 : Decimal;
    
            QtyToPickBase@1000000001 : Decimal;
    
            QtyToTrackBase@1009 : Decimal;
    
    // Add the following lines.
            QtyBaseMaxAvailToPick@1014 : Decimal;
    
          BEGIN
    
    
            GetLocation(LocationCode);
    
            IF Location."Directed Put-away and Pick" THEN
    
              QtyBaseMaxAvailToPick := // Total qty (excl. Receive bin content) that are not assigned to any activity/ order
    
                CalcTotalQtyOnBinType('',LocationCode,ItemNo,VariantCode) -
    
                CalcTotalQtyAssgndOnWhse(LocationCode,ItemNo,VariantCode) +
    
                CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::"Put-away",LocationCode,ItemNo,VariantCode) -
    
                CalcTotalQtyOnBinType(GetBinTypeFilter(0),LocationCode,ItemNo,VariantCode) // Receive area
    
            ELSE
    
              QtyBaseMaxAvailToPick :=
    
                CalcAvailableQty(ItemNo,VariantCode,1) -
    
                CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,FromBinCode,TempWhseItemTrkgLine);
    
            CheckReservation(
    
              QtyBaseMaxAvailToPick,LocationCode,SourceType,SourceSubType,SourceNo,SourceLineNo,SourceSubLineNo,
    
              QtyPerUnitofMeasure,TotalQtytoPick,TotalQtytoPickBase);
    // End of the added lines.
    
            RemQtyToPick := TotalQtytoPick;
    
            RemQtyToPickBase := TotalQtytoPickBase;
    
            ItemTrackingMgt.CheckWhseItemTrkgSetup(ItemNo,SNRequired,LNRequired,FALSE);   
    ...
    
    

    現有的第二號法規

    ...
               CreateTempItemTrkgLines(ItemNo,VariantCode,QtyToTrackBase);
    
            END;
    
    
    // Delete the following line.
            IF TotalQtytoPick <>0 THEN BEGIN
    // End of the deleted line.
    
              TempWhseItemTrkgLine.RESET;
    
              TempWhseItemTrkgLine.SETFILTER("Qty. to Handle",'<> 0');
    
              IF TempWhseItemTrkgLine.FIND('-') THEN BEGIN 
    ...
    
    

    替換代碼2

    ...
               CreateTempItemTrkgLines(ItemNo,VariantCode,QtyToTrackBase);
    
            END;
    
    
    // Add the following line.
            IF TotalQtytoPickBase <> 0 THEN BEGIN
    // End of the added line.
    
              TempWhseItemTrkgLine.RESET;
    
              TempWhseItemTrkgLine.SETFILTER("Qty. to Handle",'<>0');
    
              IF TempWhseItemTrkgLine.FIND('-') THEN BEGIN
    ...
    
    
  6. 在 Create Pick codeunit (7312 的 CheckReservation 函式中,將代碼變更如下) :

    現行法規1

    ...
             END;
    
          END;
    
    // Delete the following line.
          PROCEDURE CheckReservation@45(LocationCode@1007 : Code[10];SourceType@1005 : Integer;SourceSubType@1004 : '0,1,2,3,4,5,6,7,8,9,10';SourceNo@1003 : Code[20];SourceLineNo@1002 : Integer;SourceSubLineNo@1001 : Integer;QtyPerUnitofMeasure@1000 : Decimal;VAR Quantity@1006 : Decimal);
    // End of the deleted line.
    
          VAR
    
            ReservEntry@1010 : Record 337;
    
            ReservEntry2@1011 : Record 337;
    ...
    
    

    替換代碼1

    ...
              END;
    
          END; 
    
    // Add the following line.
          PROCEDURE CheckReservation@45(QtyBaseAvailToPick@1009 : Decimal;LocationCode@1007 : Code[10];SourceType@1005 : Integer;SourceSubType@1004 : '0,1,2,3,4,5,6,7,8,9,10';SourceNo@1003 : Code[20];SourceLineNo@1002 : Integer;SourceSubLineNo@1001 : Integer;QtyPerUnitofMeasure@1000 : Decimal;VAR Quant
    
    ity@1006 : Decimal;VAR QuantityBase@1008 : Decimal);
    // End of the added line.
    
          VAR
    
            ReservEntry@1010 : Record 337;
    
            ReservEntry2@1011 : Record 337;
    ...
    
    

    現有的第二號法規

    ...
            ReservEntry@1010 : Record 337;
    
            ReservEntry2@1011 : Record 337;
    
            Quantity2@1012 : Decimal;
    
    // Delete the following line.
          BEGIN
    // End of the deleted line.
    
            ReservEntry.SETCURRENTKEY(
    
              "Source ID","Source Ref. No.","Source Type","Source Subtype",
    
              "Source Batch Name","Source Prod. Order Line","Reservation Status");
    ...
    
    

    替換代碼2

    ...
            ReservEntry@1010 : Record 337;
    
            ReservEntry2@1011 : Record 337;
    
            Quantity2@1012 : Decimal;
    
    // Add the following lines.
            QtyBaseResvdNotOnILE@1018 : Decimal;
    
            QtyResvdNotOnILE@1013 : Decimal;
    
            WhseManagement@1014 : Codeunit 5775;
    
            SrcDocQtyBaseToBeFilledByInvt@1015 : Decimal;
    
            SrcDocQtyToBeFilledByInvt@1016 : Decimal;
    
            QuantityBase2@1019 : Decimal;
    
          BEGIN
    
            ReservationExists := FALSE;
    
            ReservedForItemLedgEntry := FALSE;
    
            Quantity2 := Quantity;
    
            QuantityBase2 := QuantityBase;
    // End of the added lines.
    
            ReservEntry.SETCURRENTKEY(
    
              "Source ID","Source Ref. No.","Source Type","Source Subtype",
    
              "Source Batch Name","Source Prod. Order Line","Reservation Status"); 
    ...
    
    

    現行法規3

    ...
            ReservEntry.SETRANGE("Reservation Status",ReservEntry."Reservation Status"::Reservation);
    
            IF ReservEntry.FIND('-') THEN BEGIN
    
              ReservationExists := TRUE;
    
    // Delete the following line.
              Quantity2 := Quantity;
    // End of the deleted line.
    
              Quantity := Quantity * QtyPerUnitofMeasure;
    
              REPEAT
    
                IF ReservEntry2.GET(ReservEntry."Entry No.",NOT ReservEntry.Positive) AND 
    ...
    
    

    替代代碼3

    ...
              ReservEntry.SETRANGE("Reservation Status",ReservEntry."Reservation Status"::Reservation);
    
            IF ReservEntry.FIND('-') THEN BEGIN
    
              ReservationExists := TRUE;
    
              Quantity := Quantity * QtyPerUnitofMeasure;
    
              REPEAT
    
                IF ReservEntry2.GET(ReservEntry."Entry No.",NOT ReservEntry.Positive) AND 
    ...
    
    

    現行代碼4

    ...
               REPEAT
    
                IF ReservEntry2.GET(ReservEntry."Entry No.",NOT ReservEntry.Positive) AND
    
                   (ReservEntry2."Source Type" <> DATABASE::"Item Ledger Entry")
    
    // Delete the following lines.
                THEN
    
                  Quantity := Quantity - ReservEntry2."Quantity (Base)";
    
              UNTIL ReservEntry.NEXT = 0;
    
    
    
              IF Quantity <0 THEN
    
                Quantity := 0;
    
              Quantity := ROUND(Quantity / QtyPerUnitofMeasure,0.00001);
    
              IF Quantity = 0 THEN BEGIN
    // End of the deleted lines.
    
                GetLocation(LocationCode);
    
                IF Location."Always Create Pick Line" THEN BEGIN
    
                  ReservedForItemLedgEntry := FALSE;
    ...
    
    

    替換代碼4

    ...
               REPEAT
    
                IF ReservEntry2.GET(ReservEntry."Entry No.",NOT ReservEntry.Positive) AND
    
                   (ReservEntry2."Source Type" <> DATABASE::"Item Ledger Entry")
    
    // Add the following lines.
                THEN BEGIN
    
                  QtyBaseResvdNotOnILE += ReservEntry2."Quantity (Base)";
    
                  QtyResvdNotOnILE += ReservEntry2.Quantity;
    
                END;
    
              UNTIL ReservEntry.NEXT = 0;
    
              WhseManagement.GetOutboundDocLineQtyOtsdg(SourceType,SourceSubType,
    
                SourceNo,SourceLineNo,SourceSubLineNo,SrcDocQtyToBeFilledByInvt,SrcDocQtyBaseToBeFilledByInvt);
    
              SrcDocQtyBaseToBeFilledByInvt := SrcDocQtyBaseToBeFilledByInvt - QtyBaseResvdNotOnILE;
    
              SrcDocQtyToBeFilledByInvt := SrcDocQtyToBeFilledByInvt - QtyResvdNotOnILE;
    
    
    
              IF QuantityBase >SrcDocQtyBaseToBeFilledByInvt THEN BEGIN
    
                QuantityBase := SrcDocQtyBaseToBeFilledByInvt;
    
                Quantity := SrcDocQtyToBeFilledByInvt;
    
              END;
    
    
    
              IF QuantityBase <=SrcDocQtyBaseToBeFilledByInvt THEN
    
                IF QuantityBase >QtyBaseAvailToPick THEN BEGIN
    
                  QuantityBase := QtyBaseAvailToPick;
    
                  Quantity := ROUND(QtyBaseAvailToPick / QtyPerUnitofMeasure,0.00001);
    
                END;
    
              IF QuantityBase = 0 THEN BEGIN
    // End of the added lines.
    
                GetLocation(LocationCode);
    
                IF Location."Always Create Pick Line" THEN BEGIN
    
                  ReservedForItemLedgEntry := FALSE;
    ...
    
    

    現行代碼5

    ...
                IF Location."Always Create Pick Line" THEN BEGIN
    
                  ReservedForItemLedgEntry := FALSE;
    
                  Quantity := Quantity2;
    
                END;
    
              END ELSE
    
                ReservedForItemLedgEntry := TRUE; 
    ...
    
    

    替換代碼5

    ...
                IF Location."Always Create Pick Line" THEN BEGIN
    
                  ReservedForItemLedgEntry := FALSE;
    
                  Quantity := Quantity2;
    
    // Add the following line.
                  QuantityBase := QuantityBase2;
    // End of the added line.
    
                END;
    
              END ELSE
    
                ReservedForItemLedgEntry := TRUE; 
    ...
    
    
  7. 在 Create Pick codeunit (7312) 文件函式中更改程式碼如下:

    現有程式碼

    ...
             EXIT(xReservedQty > Item."Reserved Qty. on Inventory");
    
          END;
    
    // Delete the following line.    
          BEGIN
    // End of the deleted line.
    
          END.
    
        }
    
      }
    ...
    
    

    替換代碼

    ...
           EXIT(xReservedQty >Item."Reserved Qty. on Inventory");
    
          END;
    
    
    
    // Add the following lines.
          PROCEDURE CalcTotalQtyAssgndOnWhse@1102601005(LocationCode@1002 : Code[10];ItemNo@1003 : Code[20];VariantCode@1004 : Code[10]) : Decimal;
    
          VAR
    
            WhseShipmentLine@1010 : Record 7321;
    
            ProdOrderComp@1011 : Record 5407;
    
            QtyAssgndToWhseAct@1012 : Decimal;
    
            QtyAssgndToShipment@1013 : Decimal;
    
            QtyAssgndToProdComp@1014 : Decimal;
    
          BEGIN
    
            QtyAssgndToWhseAct +=
    
              CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::" ",LocationCode,ItemNo,VariantCode);
    
            QtyAssgndToWhseAct +=
    
              CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::"Put-away",LocationCode,ItemNo,VariantCode);
    
            QtyAssgndToWhseAct +=
    
              CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::Pick,LocationCode,ItemNo,VariantCode);
    
            QtyAssgndToWhseAct +=
    
              CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::Movement,LocationCode,ItemNo,VariantCode);
    
            QtyAssgndToWhseAct +=
    
              CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::"Invt. Put-away",LocationCode,ItemNo,VariantCode);
    
            QtyAssgndToWhseAct +=
    
              CalcTotalQtyAssgndOnWhseAct(TempWhseActivLine."Activity Type"::"Invt. Pick",LocationCode,ItemNo,VariantCode);
    
    
    
            WITH WhseShipmentLine DO BEGIN
    
              SETCURRENTKEY("Item No.","Location Code","Variant Code","Due Date");
    
              SETRANGE("Location Code",LocationCode);
    
              SETRANGE("Item No.",ItemNo);
    
              SETRANGE("Variant Code",VariantCode);
    
              CALCSUMS("Qty. Picked (Base)");
    
              QtyAssgndToShipment := "Qty. Picked (Base)";
    
            END;
    
    
    
            WITH ProdOrderComp DO BEGIN
    
              SETCURRENTKEY("Item No.","Variant Code","Location Code",Status,"Due Date");
    
              SETRANGE("Location Code",LocationCode);
    
              SETRANGE("Item No.",ItemNo);
    
              SETRANGE("Variant Code",VariantCode);
    
              CALCSUMS("Qty. Picked (Base)");
    
              QtyAssgndToProdComp := "Qty. Picked (Base)";
    
            END;
    
    
    
            EXIT(QtyAssgndToWhseAct + QtyAssgndToShipment + QtyAssgndToProdComp);
    
          END;
    
    
    
          PROCEDURE CalcTotalQtyAssgndOnWhseAct@1102601006(ActivityType@1003 : Option;LocationCode@1004 : Code[10];ItemNo@1005 : Code[20];VariantCode@1006 : Code[10]) : Decimal;
    
          VAR
    
            WhseActivLine@1002 : Record 5767;
    
          BEGIN
    
            WITH WhseActivLine DO BEGIN
    
              SETCURRENTKEY(
    
                "Item No.","Location Code","Activity Type","Bin Type Code",
    
                "Unit of Measure Code","Variant Code","Breakbulk No.","Action Type");
    
              SETRANGE("Location Code",LocationCode);
    
              SETRANGE("Item No.",ItemNo);
    
              SETRANGE("Variant Code",VariantCode);
    
              SETRANGE("Activity Type",ActivityType);
    
              SETRANGE("Breakbulk No.",0);
    
              SETFILTER("Action Type",'%1|%2',"Action Type"::" ","Action Type"::Take);
    
              CALCSUMS("Qty. Outstanding (Base)");
    
              EXIT("Qty. Outstanding (Base)");
    
            END;
    
          END;
    
    
    
          PROCEDURE CalcTotalQtyOnBinType@1102601007(BinTypeFilter@1004 : Text[1024];LocationCode@1003 : Code[10];ItemNo@1002 : Code[10];VariantCode@1001 : Code[10]) : Decimal;
    
          VAR
    
            WhseEntry@1000 : Record 7312;
    
          BEGIN
    
            WITH WhseEntry DO BEGIN
    
              SETCURRENTKEY("Item No.","Location Code","Variant Code","Bin Type Code");
    
              SETRANGE("Item No.",ItemNo);
    
              SETRANGE("Location Code",LocationCode);
    
              SETRANGE("Variant Code",VariantCode);
    
             IF BinTypeFilter <>'' THEN
    
                SETFILTER("Bin Type Code",BinTypeFilter);
    
              CALCSUMS("Qty. (Base)");
    
              EXIT("Qty. (Base)");
    
            END;
    
          END;
    // End of the added lines.
    
        }
    
      }  
    ...
    
    

          

先決條件

你必須安裝 Microsoft Dynamics NAV 5.0 SP1 才能套用這個熱修正。

移除資訊

你無法移除這個熱修正。

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

狀態

注意本文為 Microsoft 支援單位內部直接建立的「快速發佈」文章。 此處包含的資訊是以其現況提供,用於回應新產生的問題。 由於快速發佈,資料可能包含拼字錯誤,並可能會隨時修訂,不另行通知。 請參閱使用條款以瞭解其他相關考量。