บทความนี้นำไปใช้กับ Microsoft Dynamics NAV สำหรับตำแหน่งที่ตั้งภาษาทั้งหมด
อาการ
ฟังก์ชันการวางแผนใบสั่งเพื่อคำนวณข้อเสนอแนะ "ปริมาณการสั่ง" ไม่ถูกต้องเมื่อคุณใช้สภาพแวดล้อมในการทำให้ใบสั่งใน Microsoft Dynamics nav ปัญหานี้เกิดขึ้นถ้าคุณใช้หลายระดับรายการวัสดุและส่วนประกอบ (BOM)
ปัญหานี้เกิดขึ้นในผลิตภัณฑ์ต่อไปนี้:-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 Service Pack ที่ 1 (SP1)
-
Microsoft Dynamics NAV 2009
-
Microsoft Dynamics NAV 5.0 Service Pack ที่ 1 (SP1)
สาเหตุ
ระบบจะใช้ฟังก์ชันแบบเรียกใช้ซ้ำซึ่งเปลี่ยนแปลงปริมาณสำหรับรายการที่พบ (BOM สร้าง "แผนภูมิ" ซึ่งบางรายการสามารถเกิดขึ้นหนึ่งครั้ง หรือมากกว่า) เสมอ อย่างไรก็ตาม นี่คือพฤติกรรมไม่ถูกต้อง เนื่องจากเด็กทั้งหมดสำหรับสินค้าที่ปรับปรุงแล้วควรจะถูกลบ หรือปรับปรุง
การแก้ปัญหา
ข้อมูลโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก Microsoft อย่างไรก็ตาม มีเป้าหมายเพียงเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้ นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณจะไม่รุนแรงได้รับผลกระทบจากปัญหานี้ เราขอแนะนำให้ คุณรอ service pack ถัดไปของ Microsoft Dynamics NAV 2009 หรือเวอร์ชันถัดไป Microsoft Dynamics NAV ที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้
หมายเหตุ ในกรณีพิเศษ ค่าธรรมเนียมค่าใช้จ่ายสำหรับการสนับสนุนโทรศัพท์อาจถูกยกเลิกถ้า Technical Support Professional สำหรับ Microsoft Dynamics และผลิตภัณฑ์ที่เกี่ยวข้องตรวจพบว่าการปรับปรุงเฉพาะจะแก้ปัญหาของคุณ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง
ข้อมูลการติดตั้ง
Microsoft ให้ตัวอย่างการเขียนโปรแกรมไว้สำหรับประกอบการอธิบายเท่านั้นโดยไม่มีการรับประกันไม่ว่าจะโดยชัดแจ้งหรือโดยนัย กรณีนี้รวมถึงแต่มิได้จำกัดเพียงแค่การการรับประกันโดยนัยเกี่ยวกับการจำหน่ายเป็นสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้ตั้งสมมติฐานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่กำลังแสดงและคุ้นเคยกับเครื่องมือที่ใช้ใน การสร้างและแก้จุดบกพร่องของขั้นตอนการดำเนินการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทำงานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้ฟังก์ชันการทำงานเพิ่มเติมหรือสร้างกระบวนงานเพื่อตอบสนองความต้องการเฉพาะของคุณ
หมายเหตุ ก่อนที่คุณติดตั้งโปรแกรมแก้ไขด่วนนี้ โปรดตรวจสอบว่า ผู้ใช้ไคลเอนต์ของ Microsoft Navision ทั้งหมดเข้าสู่ระบบออกจากระบบ ข้อมูลนี้รวมถึงผู้ใช้ไคลเอ็นต์บริการแอพลิเคชัน Navision Microsoft (NAS) คุณควรไคลเอ็นต์เฉพาะผู้ใช้ที่เข้าสู่ระบบเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้ เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีสิทธิ์การใช้งานสำหรับนักพัฒนา เราขอแนะนำว่า บัญชีผู้ใช้ ในหน้าต่างล็อกอินของ Windows หรือ ในหน้าต่างล็อกอินฐานข้อมูลสามารถกำหนดรหัสการเข้าถึงข้อมูล "ขั้นสูง" ถ้าบัญชีผู้ใช้ไม่สามารถกำหนดรหัสการบทบาท "SUPER" คุณต้องตรวจสอบว่า บัญชีผู้ใช้มีสิทธิ์ต่อไปนี้:-
สิทธิ์การปรับเปลี่ยนสำหรับออปเจ็กต์ที่คุณจะสามารถเปลี่ยน
-
สิทธิ์ Execute สำหรับออบเจ็กต์5210 รหัสวัตถุของระบบและ สำหรับออบเจ็กต์ระบบ 9015 ID ของวัตถุ
หมายเหตุ คุณไม่จำเป็นต้องมีสิทธิ์ไปยังร้านค้าข้อมูลยกเว้นว่าคุณจำเป็นต้องซ่อมแซมข้อมูล
การเปลี่ยนแปลงรหัส
หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิต
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:-
สร้างฟังก์ชันท้องถิ่นUpdateRelatedComponentในโค้ดยูนิต (99000809):
...LOCAL PROCEDURE UpdateRelatedComponent@15(ParentReqLine@1000 : Record 246);
WITH PlanningComponent DO BEGIN SETCURRENTKEY("Worksheet Template Name","Worksheet Batch Name","Worksheet Line No.","Item No."); SETRANGE("Worksheet Line No.",ParentReqLine."Line No."); SETFILTER("Item No.",'<>%1',''); SETFILTER("Expected Quantity",'<>0'); SETFILTER("Planning Level Code",'<>0'); IF FIND('-') THEN REPEAT IF LineHasBeenCreated(ChildReqLine,PlanningComponent) THEN BEGIN UpdateRelatedComponent(ChildReqLine); IF ChildReqLine.Quantity <> "Expected Quantity" THEN BEGIN // qty has to be updated, there is a new need of component ChildReqLine.BlockDynamicTracking(Blocked); ChildReqLine.VALIDATE(Quantity,ChildReqLine.Quantity - "Expected Quantity"); ChildReqLine.MODIFY; // updating qty of component for parent VALIDATE("Quantity per","Quantity per"); MODIFY; END ELSE // line will be recreated ChildReqLine.DELETE(TRUE); END; UNTIL NEXT = 0; END; ...-
ชื่อ: PlanningComponent ชนิดข้อมูล: ระเบียน (99000829)
-
ชื่อ: ChildReqLine ชนิดข้อมูล: ระเบียน (246)
-
-
สร้างฟังก์ชันท้องถิ่นLineHasBeenCreatedในโค้ดยูนิต (99000829):
...LOCAL PROCEDURE LineHasBeenCreated@18(VAR ChildReqLine@1000 : Record 246;PlanningComponent@1001 : Record 99000829) : Boolean;
WITH ChildReqLine DO BEGIN SETCURRENTKEY("Worksheet Template Name","Journal Batch Name",Type,"No."); SETRANGE("Worksheet Template Name",PlanningComponent."Worksheet Template Name"); SETRANGE("Journal Batch Name",PlanningComponent."Worksheet Batch Name"); SETRANGE(Type,Type::Item); SETRANGE("No.",PlanningComponent."Item No."); SETRANGE("Variant Code",PlanningComponent."Variant Code"); SETRANGE("Ref. Order Type","Ref. Order Type"::"Prod. Order"); SETRANGE("Ref. Order Status",PlanningComponent."Ref. Order Status"); SETRANGE("Ref. Order No.",PlanningComponent."Ref. Order No."); SETFILTER("Planning Level",'>%1',0); EXIT(FINDFIRST); END; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันInsertPlanningLineในโค้ดยูนิต (99000809) เป็นดังนี้:
รหัสที่มีอยู่... IF ReqLine2."Planning Level" < ReqLine."Planning Level" THEN
ReqLine2."Planning Level" := ReqLine."Planning Level"; ReqLine2.MODIFY; ...รหัสแทน
... IF ReqLine2."Planning Level" <ReqLine."Planning Level" THEN
ReqLine2."Planning Level" := ReqLine."Planning Level"; // the ReqLine2 can have children which has to be delete or updated // Add the following line. UpdateRelatedComponent(ReqLine2); ReqLine2.MODIFY; ...
ข้อกำหนดเบื้องต้น
คุณต้องมีหนึ่งผลิตภัณฑ์ต่อไปนี้ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 Service Pack ที่ 1 (SP1)
-
Microsoft Dynamics NAV 2009
-
Microsoft Dynamics NAV 5.0 Service Pack ที่ 1 (SP1)
ข้อมูลการเอาออก
คุณไม่สามารถเอาโปรแกรมแก้ไขด่วนนี้
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
หมายเหตุ นี่คือบทความ "เผยแพร่เร็ว" ที่สร้างขึ้นโดยตรงจากภายใน Microsoft สนับสนุนองค์กร ข้อมูลในที่นี้ให้ไว้ตามสภาพ เพื่อตอบสนองกับปัญหาที่เกิดขึ้นใหม่ เป็นผลมาจากความเร็วในการทำให้พร้อมใช้งาน วัสดุอาจรวมถึงข้อผิดพลาดการพิมพ์ผิด และอาจแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดูข้อตกลงการใช้สำหรับข้อควรพิจารณาอื่น ๆ