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

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

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

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

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

  • Microsoft Dynamics NAV 2009 ה-Service Pack 1 (SP1)

פתרון

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

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

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

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

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

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

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

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

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

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



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

שינויי קוד

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

  1. לשנות את הקוד ב- funtion GetDescriptionAndRcptName ב ה ב codeunit ReqJnlManagement (330) כפי שמוצג להלן:
    קוד קיים

    ...ELSE
    Description := '';

    // Delete the following lines.
    ReqLine.Type::Item:
    IF Item.GET(ReqLine."No.") THEN
    Description := Item.Description
    ELSE
    Description := '';
    // End of the lines.

    END;
    END;

    IF ReqLine."Vendor No." = '' THEN
    ...

    קוד החלפה

    ...ELSE
    Description := '';
    END;
    END;

    IF ReqLine."Vendor No." = '' THEN
    ...
  2. הוסף משתנה גלובלי חדש Wksh תיצור.-להפוך codeunit סדר (333) ולאחר מכן ציין את המשתנה כדלקמן:

    • שם: DropShptSpecialOrderExists

    • סוג נתונים: בוליאני

  3. הוספת משתנה מקומי חדש בפונקציה InsertPurchOrderLine Wksh תיצור.-להפוך codeunit סדר (333) ולאחר מכן ציין את המשתנה כדלקמן:

    • שם: SalesHeader

    • סוג נתונים: רשומה

    • סוג משנה: כותרת מכירה

  4. הוספת משתנה מקומי חדש בפונקציה InsertPurchOrderLine Wksh תיצור.-להפוך codeunit סדר (333) ולאחר מכן ציין את המשתנה כדלקמן:

    • שם: DropShptSplOrderDiffAddress

    • סוג נתונים: בוליאני

  5. לשנות את הקוד בפונקציה InsertPurchOrderLine Wksh תיצור.-להפוך codeunit סדר (333) כדלקמן:
    קוד קיים

    ...WITH ReqLine2 DO BEGIN
    IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
    EXIT;


    IF (PurchOrderHeader."Buy-from Vendor No." <> "Vendor No.") OR
    (PurchOrderHeader."Sell-to Customer No." <> "Sell-to Customer No.") OR
    (PrevShipToCode <> "Ship-to Code") OR
    (PurchOrderHeader."Order Address Code" <> "Order Address Code") OR
    (PurchOrderHeader."Currency Code" <> "Currency Code") OR

    // Delete the following line.
    (PrevPurchCode <> "Purchasing Code")

    THEN BEGIN
    ...

    קוד החלפה

    ...WITH ReqLine2 DO BEGIN
    IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
    EXIT;

    // Add the following lines.
    DropShptSpecialOrderExists := FALSE;
    IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
    DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);
    IF DropShptSpecialOrderExists THEN
    DropShptSplOrderDiffAddress :=
    NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);
    END;
    // End of the lines.

    IF (PurchOrderHeader."Buy-from Vendor No." <> "Vendor No.") OR
    (PurchOrderHeader."Sell-to Customer No." <> "Sell-to Customer No.") OR
    (PrevShipToCode <> "Ship-to Code") OR
    (PurchOrderHeader."Order Address Code" <> "Order Address Code") OR
    (PurchOrderHeader."Currency Code" <> "Currency Code") OR

    // Add the following lines.
    (PrevPurchCode <> "Purchasing Code") OR
    (DropShptSplOrderDiffAddress)
    // End of the lines.

    THEN BEGIN
    ...
  6. הוספת משתנה מקומי חדש בפונקציה InsertHeader Wksh תיצור.-להפוך codeunit סדר (333) ולאחר מכן ציין את המשתנה כדלקמן:

    • שם: SalesHeader

    • סוג נתונים: רשומה

    • סוג משנה: כותרת מכירה

  7. לשנות את הקוד בפונקציה InsertHeader Wksh תיצור.-להפוך codeunit סדר (333) כדלקמן:
    קוד קיים

    ...PurchOrderHeader.SetShipToForSpecOrder;
    END;

    PurchOrderHeader.MODIFY;
    ...

    קוד החלפה

    ...PurchOrderHeader.SetShipToForSpecOrder;
    END;

    // Add the following lines.
    IF DropShptSpecialOrderExists THEN BEGIN
    SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.");
    PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";
    PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";
    PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";
    PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";
    PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";
    PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";
    PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";
    END;
    // End of the lines.

    PurchOrderHeader.MODIFY;
    ...
  8. שנה את הקוד בפונקציה EnterPurchaseItemCrossRef ב codeunit שילוב Dist. (5702) כדלקמן:
    קוד קיים

    ...IF Found THEN BEGIN
    "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
    "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
    "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";
    "Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";

    // Delete the following lines.
    IF ItemCrossReference.Description <> '' THEN BEGIN
    Description := ItemCrossReference.Description;
    "Description 2" := '';
    END;
    // End of the lines.

    END ELSE BEGIN
    "Cross-Reference No." := '';
    "Cross-Reference Type" := "Cross-Reference Type"::" ";
    "Cross-Reference Type No." := '';

    // Delete the following lines.
    IF "Variant Code" <> '' THEN BEGIN
    ItemVariant.GET("No.","Variant Code");
    Description := ItemVariant.Description;
    "Description 2" := ItemVariant."Description 2";
    END ELSE BEGIN
    Item.GET("No.");
    Description := Item.Description;
    "Description 2" := Item."Description 2";
    END;
    // End of the lines.

    GetItemTranslation;
    ...

    קוד החלפה

    ...IF Found THEN BEGIN
    "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
    "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
    "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";
    "Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";
    END ELSE BEGIN
    "Cross-Reference No." := '';
    "Cross-Reference Type" := "Cross-Reference Type"::" ";
    "Cross-Reference Type No." := '';
    GetItemTranslation;
    ...
  9. שנה את הקוד בפונקציה GetSpecialOrders ב codeunit שילוב Dist. (5702) כדלקמן:
    קוד קיים

    ...TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Delete the following line.
    PurchHeader.SetShipToForSpecOrder;

    PurchLine.LOCKTABLE;
    ...

    קוד החלפה

    ...TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Add the following lines.
    IF DropShptSplOrderExists(SalesHeader) THEN
    CheckAndAddShipToAdd(SalesHeader,TRUE);
    // End of the lines.

    PurchLine.LOCKTABLE;
    ...
  10. שנה את הקוד בפונקציה TransfldsFromSalesToPurchLine ב codeunit עותק המסמך Mgt. (6620) כדלקמן:
    קוד קיים

    ...VALIDATE("Direct Unit Cost");
    END;
    ...

    קוד החלפה

    ...VALIDATE("Direct Unit Cost");

    // Add the following lines.
    Description := FromSalesLine.Description;
    "Description 2" := FromSalesLine."Description 2";
    // End of the lines.

    END;
    ...
  11. שנה את קוד קוד ורכישה.-קבל codeunit Shpt. שחרור (76) כדלקמן:
    קוד קיים 1

    ...TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    PurchLine.LOCKTABLE;
    ...

    קוד החלפה 1

    ...TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Add the following line.
    IF DropShptSplOrderExists(SalesHeader) THEN
    CheckAndAddShipToAdd(SalesHeader,TRUE);
    // End of the lines.

    PurchLine.LOCKTABLE;
    ...

    קוד קיים 2

    ...CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
    PurchLine.Description := SalesLine.Description;
    PurchLine."Sales Order No." := SalesLine."Document No.";
    ...

    קוד החלפה 2

    ...CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
    PurchLine.Description := SalesLine.Description;

    // Add the following line.
    PurchLine."Description 2" := SalesLine."Description 2";

    PurchLine."Sales Order No." := SalesLine."Document No.";
    ...
  12. שנה את הקוד ב- InsertReqWkshLine בהדוח לקבל הזמנות מכירה (698) כדלקמן:
    קוד קיים

    ..."Sell-to Customer No." := SalesLine."Sell-to Customer No.";
    SalesHeader.GET(1,SalesLine."Document No.");
    IF SpecOrder <> 1 THEN
    ...

    קוד החלפה

    ..."Sell-to Customer No." := SalesLine."Sell-to Customer No.";

    // Add the following lines.
    Description := SalesLine.Description;
    "Description 2" := SalesLine."Description 2";
    // End of the lines.

    SalesHeader.GET(1,SalesLine."Document No.");
    IF SpecOrder <> 1 THEN
    ...
  13. הוספת משתנה גלובלי חדש בטבלה כותרת הרכישה (38), ולאחר מכן ציין את המשתנה כדלקמן:

    • שם: NameAddressDetails

    • סוג נתונים: טקסט

    • אורך: 512

  14. הוספת משתנה גלובלי חדש בטבלה כותרת הרכישה (38), ולאחר מכן ציין את המשתנה כדלקמן:

    • שם: NameAddressDetails2

    • סוג נתונים: טקסט

    • אורך: 512

  15. הוספת קבוע טקסט חדש בטבלה כותרת הרכישה (38), ולאחר מכן ציין קבוע טקסט כדלקמן:

    • שם: Text051

    • ConstValue: השדה ' %1 ' בהזמנת הרכש %2 חייב להיות זהה לשם על מכירות הזמנת %3.

  16. צור פונקציה CheckAndAddShipToAdd חדשה בטבלה כותרת הרכישה (38). לשם כך, בצע את הפעולות הבאות:

    1. הוספת פרמטר מקומי חדש בפונקציה CheckAndAddShipToAdd בטבלה כותרת הרכישה (38), ולאחר מכן ציין את הפרמטר כדלקמן:

      • Var: No

      • שם: SalesHeader

      • סוג נתונים: רשומה

      • סוג משנה: כותרת מכירה

    2. הוספת פרמטר מקומי חדש בפונקציה CheckAndAddShipToAdd בטבלה כותרת הרכישה (38), ולאחר מכן ציין את הפרמטר כדלקמן:

      • Var: No

      • שם: ShowError

      • סוג נתונים: בוליאני

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

      • סוג החזרה: בוליאני

    4. הוספת משתנה מקומי חדש בפונקציה CheckAndAddShipToAdd בטבלה כותרת הרכישה (38), ולאחר מכן ציין את המשתנה כדלקמן:

      • שם: PurchLine2

      • סוג נתונים: רשומה

      • סוג משנה: PurchLine2

    5. הוסף את הקוד הבא בפונקציה CheckAndAddShipToAdd בטבלה כותרת הרכישה (38):

      IF ShowError THEN BEGINPurchLine2.RESET;
      PurchLine2.SETRANGE("Document Type","Document Type"::Order);
      PurchLine2.SETRANGE("Document No.","No.");
      IF NOT PurchLine2.ISEMPTY THEN BEGIN
      IF "Ship-to Name" <> SalesHeader."Ship-to Name" THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Name"),"No.",SalesHeader."No.");
      IF "Ship-to Name 2" <> SalesHeader."Ship-to Name 2" THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Name 2"),"No.",SalesHeader."No.");
      IF ("Ship-to Address" <> SalesHeader."Ship-to Address") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Address"),"No.",SalesHeader."No.");
      IF ("Ship-to Address 2" <> SalesHeader."Ship-to Address 2") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Address 2"),"No.",SalesHeader."No.");
      IF ("Ship-to Post Code" <> SalesHeader."Ship-to Post Code") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Post Code"),"No.",SalesHeader."No.");
      IF ("Ship-to City" <> SalesHeader."Ship-to City") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to City"),"No.",SalesHeader."No.");
      IF ("Ship-to Contact" <> SalesHeader."Ship-to Contact") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Contact"),"No.",SalesHeader."No.");
      END ELSE BEGIN
      // no purchase line exists
      "Ship-to Name" := SalesHeader."Ship-to Name";
      "Ship-to Name 2" := SalesHeader."Ship-to Name 2";
      "Ship-to Address" := SalesHeader."Ship-to Address";
      "Ship-to Address 2" := SalesHeader."Ship-to Address 2";
      "Ship-to Post Code" := SalesHeader."Ship-to Post Code";
      "Ship-to City" := SalesHeader."Ship-to City";
      "Ship-to Contact" := SalesHeader."Ship-to Contact";
      END;
      END ELSE BEGIN
      NameAddressDetails :=
      SalesHeader."Ship-to Name" + SalesHeader."Ship-to Name 2" +
      SalesHeader."Ship-to Address" + SalesHeader."Ship-to Address 2" +
      SalesHeader."Ship-to Post Code" + SalesHeader."Ship-to City" +
      SalesHeader."Ship-to Contact";
      IF NameAddressDetails2 = '' THEN
      NameAddressDetails2 := NameAddressDetails;
      EXIT(NameAddressDetails2 = NameAddressDetails);
      END;
  17. צור פונקציה DropShptSplOrderExists חדשה בטבלה כותרת הרכישה (38). לשם כך, בצע את הפעולות הבאות:

    1. הוספת פרמטר מקומי חדש בפונקציה DropShptSplOrderExists בטבלה כותרת הרכישה (38), ולאחר מכן ציין את הפרמטר כדלקמן:

      • Var: No

      • שם: SalesHeader

      • סוג נתונים: רשומה

      • סוג משנה: כותרת מכירה

    2. הוסף סוג הערך המוחזר בפונקציה DropShptSplOrderExists בטבלה כותרת הרכישה (38), ולאחר מכן ציין ערך ההחזרה כדלקמן:

      • סוג החזרה: בוליאני

    3. הוספת משתנה מקומי חדש בפונקציה DropShptSplOrderExists בטבלה כותרת הרכישה (38), ולאחר מכן ציין את המשתנה כדלקמן:

      • שם: SalesLine2

      • סוג נתונים: רשומה

      • סוג משנה: שורת מכירה

    4. הוסף את הקוד הבא בפונקציה DropShptSplOrderExists בטבלה כותרת הרכישה (38):

      // returns TRUE if sales is either Drop Shipment of Special OrderSalesLine2.RESET;
      SalesLine2.SETRANGE("Document Type",SalesLine2."Document Type"::Order);
      SalesLine2.SETRANGE("Document No.",SalesHeader."No.");
      SalesLine2.SETRANGE("Drop Shipment",TRUE);
      IF NOT SalesLine2.ISEMPTY THEN
      EXIT(TRUE);

      SalesLine2.SETRANGE("Drop Shipment");
      SalesLine2.SETRANGE("Special Order",TRUE);
      EXIT(NOT SalesLine2.ISEMPTY);

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

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

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

  • Microsoft Dynamics NAV 2009 ה-Service Pack 1 (SP1)

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

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

מצב

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

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

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

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

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

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

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

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

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

×