דלג לתוכן הראשי
היכנס דרך Microsoft
היכנס או צור חשבון.
שלום,
בחר חשבון אחר.
יש לך חשבונות מרובים
בחר את החשבון שברצונך להיכנס באמצעותו.

מאמר זה חל על Microsoft Dynamics ניווט עבור כל המדינות והאזורים כל שפה.

מאפייני הבעיה

באפשרותך ליצור הזמנת מכירה עבור פריט חסומים באופן בלתי צפוי להיות מחוץ הצעת מחיר מכירה ב- Microsoft Dynamics 2009. בעת רישום הזמנת המכירה, מתקבלת הודעת השגיאה הבאה:

כמות Shipped בהזמנת המסגרת המשויך אינו יכול להיות גדולה מהכמות בסוג המסמך קו מכירות = 'הזמנת מסגרת', ' לא ' מסמך 'מספר1', ' לא ' קו =number2'.

בעיה זו מתרחשת במוצרים הבאים:

  • Microsoft Dynamics NAV 2009 ה-Service Pack 1

  • Microsoft Dynamics R2 2009 סרגל ניווט


פתרון

מידע על תיקונים חמים

תיקון חם נתמך זמין כעת מ- Microsoft. עם זאת, הוא מיועד רק לתיקון הבעיה המתוארת במאמר זה. יש להחיל אותו רק במערכות שהתעוררה בהן בעיה ספציפית זו. תיקון חם זה עשוי לעבור בדיקות נוספות. לכן, אם המערכת שברשותך לא נפגעה באופן חמור מבעיה זו, מומלץ להמתין ל- Microsoft Dynamics NAV 2009 service pack הבאה או גירסת Microsoft Dynamics NAV הבא המכיל תיקון חם זה.

הערה במקרים מיוחדים, שהצגת עבור שיחות עשויים לבטל אם מומחה תמיכה טכנית עבור Microsoft Dynamics ומוצרים קשורים יקבע שעדכון ספציפי יפתור את הבעיה. דמי התמיכה המקובלים יחולו על נוספים שאלות וסוגיות תמיכה אשר אינן מצריכות העדכון הספציפי האמור.

מידע על ההתקנה

מיקרוסופט מציעה דוגמאות תכנות לצורך ההדגמה בלבד, ללא אחריות, בין מפורשת ובין משתמעת. זה כולל, אך אינו מוגבל ל, אחריות מכללא לגבי סחירות או התאמה למטרה מסוימת. מאמר זה מבוסס על ההנחה שאתה מכיר את שפת התכנות המודגמת ובקי בהפעלת הכלים המשמשים ליצירת פרוצדורות ולניפוי שגיאות. מהנדסי התמיכה של Microsoft יכולים לסייע בהסברת הפונקציונליות של פרוצדורה מסוימת. עם זאת, הם לא ישנו את הדוגמאות כדי לספק פונקציונליות נוספת או כדי לבנות פרוצדורות שיענו על צרכיך הספציפיים.

הערה לפני התקנת תיקון חם זה, ודא כי כל המשתמשים לקוח Microsoft Dynamics NAV אינם מחוברים למערכת. זה כולל שירותי Microsoft Dynamics NAV יישום שרת (NAS). אתה אמור להיות לקוח בלבד המשתמש המחובר כאשר ליישם תיקון חם זה.

כדי ליישם תיקון חם זה, דרוש לך רשיון מפתחים.

אנו ממליצים חשבון המשתמש בחלון כניסות Windows או בחלון מסד הנתונים כניסות יוקצו את מזהה תפקיד "סופר". אם חשבון המשתמש אין אפשרות להקצות מזהה תפקיד של "עילי", עליך לוודא כי חשבון משתמש בעל ההרשאות הבאות:

  • שנה את ההרשאה עבור האובייקט שינוי.

  • הרשאת Execute עבור האובייקט 5210 מזהה אובייקט מערכת ועבור 9015 מזהה אובייקט מערכת

    אובייקט.

הערה אין לך הרשאות למאגרי נתונים אלא אם כן יש לך לבצע תיקון נתונים.

שינויי קוד

הערה תמיד קוד מחשב פותר בסביבה מבוקרת לפני החלת התיקונים למחשבים הייצור שלך.

כדי לפתור בעיה זו, בצע את הפעולות הבאות:

  1. שנה את הקוד במאפייני בהצעת המכירות Codeunit סדר (86) כדלקמן:
    קוד קיים 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);
    ...

    קוד החלפה 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);
    ...

    קוד קיים 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;
    ...

    קוד החלפה 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. לשנות את הקוד במאפייני בהזמנת מכירות של מסגרת Codeunit סדר (87) כדלקמן:
    קוד קיים 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);
    ...

    קוד החלפה 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);
    ...

    קוד קיים 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
    ...

    קוד החלפה 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
    ...

    קוד קיים 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);
    ...

    קוד החלפה 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);
    ...

    קוד קיים 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)
    ...

    קוד החלפה 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. שנה את הקוד במאפייני ורכישה.-הצעת מחיר כדי Codeunit סדר (96) כדלקמן:
    קוד קיים 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);
    ...

    קוד החלפה 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);

    קוד קיים 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(
    ...

    קוד החלפה 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. שנה את הקוד במאפייני ב ורכישה מסגרת. סדר Codeunit סדר (97) כדלקמן:
    קוד קיים 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);
    ...

    קוד החלפה 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);
    ...

    קוד קיים 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)"
    ...

    קוד החלפה 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)"
    ...

    קוד קיים 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);
    ...

    קוד החלפה 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);
    ...

    קוד קיים 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

    ...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)
    ...


דרישות מוקדמות

דרושים לך את העדכון הבא ואחד המוצרים הבאים מותקנים כדי להחיל תיקון חם זה:

  • Microsoft Dynamics NAV 2009 ה-Service Pack 1

  • Microsoft Dynamics R2 2009 סרגל ניווט

  • 2642368 הודעת שגיאה "כמות המשלוח (בסיס) של פריט [Item_Number] בשורה מספר [Line_Number] אינו יכול לעלות [מספר]" מופיעה בעת ניסיון ליצור הזמנה מתוך מסגרת סדר ב- Microsoft Dynamics ניווט

מידע בדבר הסרת ההתקנה

אין אפשרות להסיר את התיקון החם.

מצב

Microsoft אישרה כי מדובר בבעיה במוצרי Microsoft הרשומים במקטע 'חל על'.

הערה זהו מאמר "פרסום מהיר" שנוצר ישירות בתוך ארגון התמיכה של Microsoft. המידע הכלול במסמך זה מסופק כמו שהוא כתגובה לבעיות המתעוררות. כתוצאה מהמהירות בביצוע כדי להפוך אותו לזמין, החומרים עשויים לכלול שגיאות טיפוגרפיות וייתכן שיבוצעו בהם שינויים בכל עת ללא הודעה מוקדמת. ראה תנאי השימוששיקולים נוספים.

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×