"ערך ההזמנה אינו קיים. שדות זיהוי וערכים: ערך לא.='[Entry_Number]',Positive='Yes'" בעת ניסיון לפרסם הזמנת מכירה עבור פריט Kit ב- Microsoft Dynamics NAV 2009

חל על
Dynamics NAV 2009

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

סימפטומים

נניח שאתה מפעיל גליון עבודה של תכנון ותפעיל את הגדרת BOM ערכת Build אוטומטית עבור פריט ערכת בעל מספיק מניות ב- Microsoft Dynamics NAV 2009 R2 ו- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1). כאשר אתה מנסה לפרסם הזמנת מכירה עבור הפריט Kit, אתה מקבל את הודעת השגיאה הבאה:

הערה

ערך ההזמנה אינו קיים. שדות וערכים של זיהוי: ערך מספר='Entry_Number',Positive='Yes'

פתרון

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

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

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

            
          

מידע התקנה

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

הערה לפני התקנת תיקון חם זה, ודא כי כל משתמשי לקוח Microsoft Navision נרשם המערכת. הדבר כולל משתמשי לקוח של Microsoft Navision Application Services (NAS). עליך להיות משתמש הלקוח היחיד שנכנס בעת יישום תיקון חם זה.

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

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

  • ההרשאה Modify עבור האובייקט שאתה תשנה.
  • ההרשאה Execute עבור אובייקט System Object ID 5210 ולאובייקט System Object ID 9015.

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

שינויי קוד

הערה בדוק תמיד את תיקוני הקוד בסביבה מבוקרת לפני החלת התיקונים על מחשבי הייצור שלך.
כדי לפתור בעיה זו, שנה את הקוד בפונקציה DemandtoInvProfile בקוד היסט של פרופיל מלאי (99000854) באופן הבא:

הערה: 26/10/11 היה שינוי קל זה KB כדי להפוך את הקוד מוטבע עם קוד שפורסם עבור NAV 5.0SP1. הפונקציונליות לא השתנתה. שורות ספציפיות שהשתנו נמצאות במקטע "הוספה" של הקוד החלופי;

שורה : InventoryProfile." Line No." := LineNo; change to : InventoryProfile". Line No." := NextLineNo;

קו : שורה מספר := קונו +1; הוסר.

קוד קיים

...
InventoryProfile.SETCURRENTKEY("Line No.");

SalesLine.SETCURRENTKEY(Type,"No.","Variant Code","Drop Shipment","Location Code","Document Type","Shipment Date");
SalesLine.SETFILTER("Document Type",'%1|%2',SalesLine."Document Type"::Order,SalesLine."Document Type"::"Return Order");
SalesLine.SETRANGE(Type,SalesLine.Type::Item);
SalesLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",SalesLine."Location Code");
Item.COPYFILTER("Variant Filter",SalesLine."Variant Code");
SalesLine.SETFILTER("Outstanding Qty. (Base)",'<>0');
SalesLine.SETFILTER("Shipment Date",'>%1&<=%2',0D,ToDate);

IF SalesLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile.TransferFromSalesLine(SalesLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL SalesLine.NEXT = 0;

ServiceLine.SETCURRENTKEY(Type,"No.","Variant Code","Location Code","Posting Date");
ServiceLine.SETRANGE("Document Type",ServiceLine."Document Type"::Order);
ServiceLine.SETRANGE(Type,ServiceLine.Type::Item);
ServiceLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",ServiceLine."Location Code");
Item.COPYFILTER("Variant Filter",ServiceLine."Variant Code");
ServiceLine.SETFILTER("Outstanding Qty. (Base)",'<>0');
ServiceLine.SETFILTER("Posting Date",'>%1&<=%2',0D,ToDate);

IF ServiceLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile.TransferFromServiceInvLine(ServiceLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL ServiceLine.NEXT = 0;

ReqLine.SETCURRENTKEY("Ref. Order Type","Ref. Order Status","Ref. Order No.","Ref. Line No.");
ReqLine.SETRANGE("Ref. Order Type",ReqLine."Ref. Order Type"::"Prod. Order");
ProdOrderComp.SETCURRENTKEY("Item No.","Variant Code","Location Code",Status,"Due Date");
ProdOrderComp.SETRANGE("Item No.",Item."No.");
Item.COPYFILTER("Location Filter",ProdOrderComp."Location Code");
Item.COPYFILTER("Variant Filter",ProdOrderComp."Variant Code");
ProdOrderComp.SETRANGE(Status,ProdOrderComp.Status::Planned,ProdOrderComp.Status::Released);
ProdOrderComp.SETFILTER("Due Date",'>%1&<=%2',0D,ToDate);

IF ProdOrderComp.FIND('-') THEN
  REPEAT
    ReqLine.SETRANGE("Ref. Order Status",ProdOrderComp.Status);
    ReqLine.SETRANGE("Ref. Order No.",ProdOrderComp."Prod. Order No.");
    ReqLine.SETRANGE("Ref. Line No.",ProdOrderComp."Prod. Order Line No.");
    ReqLine.SETRANGE("Operation No.",'');
    IF NOT ReqLine.FIND('-') THEN BEGIN
      InventoryProfile.INIT;
      InventoryProfile."Line No." := NextLineNo;
      InventoryProfile.TransferFromComponent(ProdOrderComp,TempItemTrkgEntry);
      IF InventoryProfile.IsSupply THEN
        InventoryProfile.ChangeSign;
      InventoryProfile.INSERT;
    END;
  UNTIL ProdOrderComp.NEXT = 0;

PlanningComponent.SETCURRENTKEY("Item No.","Variant Code","Location Code","Due Date");
PlanningComponent.SETRANGE("Item No.",Item."No.");
Item.COPYFILTER("Location Filter",PlanningComponent."Location Code");
Item.COPYFILTER("Variant Filter",PlanningComponent."Variant Code");
PlanningComponent.SETFILTER("Due Date",'>%1&<=%2',0D,ToDate);

IF PlanningComponent.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile."Item No." := Item."No.";
    InventoryProfile.TransferFromPlanComponent(PlanningComponent,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL PlanningComponent.NEXT = 0;

TransferReqLine.SETCURRENTKEY(Type,"No.","Variant Code","Transfer-from Code","Transfer Shipment Date");
TransferReqLine.SETRANGE("Replenishment System",TransferReqLine."Replenishment System"::Transfer);
TransferReqLine.SETRANGE(Type,TransferReqLine.Type::Item);
TransferReqLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",TransferReqLine."Transfer-from Code");
Item.COPYFILTER("Variant Filter",TransferReqLine."Variant Code");
TransferReqLine.SETFILTER("Transfer Shipment Date",'>%1&<=%2',0D,ToDate);

IF TransferReqLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile."Item No." := Item."No.";
    InventoryProfile.TransferFromOutboundTransfPlan(TransferReqLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL TransferReqLine.NEXT = 0;

TransLine.SETCURRENTKEY("Item No.");
TransLine.SETRANGE("Item No.",Item."No.");
Item.COPYFILTER("Variant Filter",TransLine."Variant Code");
Item.COPYFILTER("Location Filter",TransLine."Transfer-from Code");
TransLine.SETFILTER("Shipment Date",'>%1&<=%2',0D,ToDate);
FilterIsSetOnLocation := Item.GETFILTER("Location Filter") <> '';

IF TransLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile."Item No." := Item."No.";
    InventoryProfile.TransferFromOutboundTransfer(TransLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    IF FilterIsSetOnLocation THEN
      InventoryProfile."Transfer Location Not Planned" := TransferLocationIsFilteredOut(Item,TransLine);
    InventoryProfile.INSERT;
  UNTIL TransLine.NEXT = 0;
...

קוד חלופי

...
InventoryProfile.SETCURRENTKEY("Line No.");

SalesLine.SETCURRENTKEY(Type,"No.","Variant Code","Drop Shipment","Location Code","Document Type","Shipment Date");
SalesLine.SETFILTER("Document Type",'%1|%2',SalesLine."Document Type"::Order,SalesLine."Document Type"::"Return Order");
SalesLine.SETRANGE(Type,SalesLine.Type::Item);
SalesLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",SalesLine."Location Code");
Item.COPYFILTER("Variant Filter",SalesLine."Variant Code");
SalesLine.SETFILTER("Outstanding Qty. (Base)",'<>0');
SalesLine.SETFILTER("Shipment Date",'>%1&<=%2',0D,ToDate);

// Add the following line.
SalesLine.SETRANGE("Build Kit",FALSE);
// End of the line.

IF SalesLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile.TransferFromSalesLine(SalesLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL SalesLine.NEXT = 0;

// Add the following lines.
KitSalesLine.SETCURRENTKEY("Document Type",Type,"No.","Variant Code","Location Code","Shipment Date");
KitSalesLine.SETRANGE("Document Type",KitSalesLine."Document Type"::Order);
KitSalesLine.SETRANGE(Type,KitSalesLine.Type::Item);
KitSalesLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",KitSalesLine."Location Code");
Item.COPYFILTER("Variant Filter",KitSalesLine."Variant Code");
KitSalesLine.SETFILTER("Outstanding Qty. (Base)",'<>0');
KitSalesLine.SETFILTER("Shipment Date",'>%1&<=%2',0D,ToDate);
IF KitSalesLine.FINDFIRST THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile.TransferFromKitSalesLine(KitSalesLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL KitSalesLine.NEXT = 0;
// End of the lines.

ServiceLine.SETCURRENTKEY(Type,"No.","Variant Code","Location Code","Posting Date");
ServiceLine.SETRANGE("Document Type",ServiceLine."Document Type"::Order);
ServiceLine.SETRANGE(Type,ServiceLine.Type::Item);
ServiceLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",ServiceLine."Location Code");
Item.COPYFILTER("Variant Filter",ServiceLine."Variant Code");
ServiceLine.SETFILTER("Outstanding Qty. (Base)",'<>0');
ServiceLine.SETFILTER("Posting Date",'>%1&<=%2',0D,ToDate);

IF ServiceLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile.TransferFromServiceInvLine(ServiceLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL ServiceLine.NEXT = 0;

ReqLine.SETCURRENTKEY("Ref. Order Type","Ref. Order Status","Ref. Order No.","Ref. Line No.");
ReqLine.SETRANGE("Ref. Order Type",ReqLine."Ref. Order Type"::"Prod. Order");
ProdOrderComp.SETCURRENTKEY("Item No.","Variant Code","Location Code",Status,"Due Date");
ProdOrderComp.SETRANGE("Item No.",Item."No.");
Item.COPYFILTER("Location Filter",ProdOrderComp."Location Code");
Item.COPYFILTER("Variant Filter",ProdOrderComp."Variant Code");
ProdOrderComp.SETRANGE(Status,ProdOrderComp.Status::Planned,ProdOrderComp.Status::Released);
ProdOrderComp.SETFILTER("Due Date",'>%1&<=%2',0D,ToDate);

IF ProdOrderComp.FIND('-') THEN
  REPEAT
    ReqLine.SETRANGE("Ref. Order Status",ProdOrderComp.Status);
    ReqLine.SETRANGE("Ref. Order No.",ProdOrderComp."Prod. Order No.");
    ReqLine.SETRANGE("Ref. Line No.",ProdOrderComp."Prod. Order Line No.");
    ReqLine.SETRANGE("Operation No.",'');
    IF NOT ReqLine.FIND('-') THEN BEGIN
      InventoryProfile.INIT;
      InventoryProfile."Line No." := NextLineNo;
      InventoryProfile.TransferFromComponent(ProdOrderComp,TempItemTrkgEntry);
      IF InventoryProfile.IsSupply THEN
        InventoryProfile.ChangeSign;
      InventoryProfile.INSERT;
    END;
  UNTIL ProdOrderComp.NEXT = 0;

PlanningComponent.SETCURRENTKEY("Item No.","Variant Code","Location Code","Due Date");
PlanningComponent.SETRANGE("Item No.",Item."No.");
Item.COPYFILTER("Location Filter",PlanningComponent."Location Code");
Item.COPYFILTER("Variant Filter",PlanningComponent."Variant Code");
PlanningComponent.SETFILTER("Due Date",'>%1&<=%2',0D,ToDate);

IF PlanningComponent.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile."Item No." := Item."No.";
    InventoryProfile.TransferFromPlanComponent(PlanningComponent,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL PlanningComponent.NEXT = 0;

TransferReqLine.SETCURRENTKEY(Type,"No.","Variant Code","Transfer-from Code","Transfer Shipment Date");
TransferReqLine.SETRANGE("Replenishment System",TransferReqLine."Replenishment System"::Transfer);
TransferReqLine.SETRANGE(Type,TransferReqLine.Type::Item);
TransferReqLine.SETRANGE("No.",Item."No.");
Item.COPYFILTER("Location Filter",TransferReqLine."Transfer-from Code");
Item.COPYFILTER("Variant Filter",TransferReqLine."Variant Code");
TransferReqLine.SETFILTER("Transfer Shipment Date",'>%1&<=%2',0D,ToDate);

IF TransferReqLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile."Item No." := Item."No.";
    InventoryProfile.TransferFromOutboundTransfPlan(TransferReqLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    InventoryProfile.INSERT;
  UNTIL TransferReqLine.NEXT = 0;

TransLine.SETCURRENTKEY("Item No.");
TransLine.SETRANGE("Item No.",Item."No.");
Item.COPYFILTER("Variant Filter",TransLine."Variant Code");
Item.COPYFILTER("Location Filter",TransLine."Transfer-from Code");
TransLine.SETFILTER("Shipment Date",'>%1&<=%2',0D,ToDate);
FilterIsSetOnLocation := Item.GETFILTER("Location Filter") <> '';

IF TransLine.FIND('-') THEN
  REPEAT
    InventoryProfile.INIT;
    InventoryProfile."Line No." := NextLineNo;
    InventoryProfile."Item No." := Item."No.";
    InventoryProfile.TransferFromOutboundTransfer(TransLine,TempItemTrkgEntry);
    IF InventoryProfile.IsSupply THEN
      InventoryProfile.ChangeSign;
    IF FilterIsSetOnLocation THEN
      InventoryProfile."Transfer Location Not Planned" := TransferLocationIsFilteredOut(Item,TransLine);
    InventoryProfile.INSERT;
  UNTIL TransLine.NEXT = 0;
...

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

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

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1

מידע על הסרה

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

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".

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