อัตราแลกเปลี่ยนสกุลเงินถูกปรับปรุงอย่างไม่ถูกต้องเมื่อคุณรวม Microsoft Dynamics CRM กับ Microsoft Dynamics นำทาง 2009 R2 โดยการใช้ตัวเชื่อมต่อสำหรับ Microsoft Dynamics

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2597312 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
บทความนี้ใช้กับการนำทาง Dynamics Microsoft สำหรับประเทศทั้งหมดและตำแหน่งที่ตั้งภาษาทั้งหมด
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

สมมติว่า คุณรวม Microsoft Dynamics CRM กับ Microsoft Dynamics นำทาง 2009 R2 โดยการใช้ตัวเชื่อมต่อสำหรับ Microsoft Dynamics คุณลักษณะชุด 5 ในบางสถานการณ์ อัตราแลกเปลี่ยนสกุลเงินมีการอัพเดอย่างไม่ถูกต้องใน Microsoft Dynamics CRM
เมื่อคุณปรับปรุงอัตราแลกเปลี่ยนสกุลเงินใน Microsoft Dynamics นำทาง 2009 R2 คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
[สกุลเงินอัตราแลกเปลี่ยนสกุลเงิน] พบข้อผิดพลาดขณะประมวลผล…
TransactionCurrency มี ID =<guid>ไม่มีการ</guid>
ในสถานการณ์นี้ เฉพาะระเบียนแรกของอัตราแลกเปลี่ยนของสกุลเงินจะซิงโครไนส์กับ Microsoft Dynamics CRM เมื่อระบบการซิงโครไนซ์เร็กคอร์ดในเวลาต่อมาที่ป้อนลงในตารางอัตราแลกเปลี่ยนสกุลเงิน ด้วยวันเริ่มต้นในภายหลัง ข้อผิดพลาดนี้เกิดขึ้น

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากสุดท้ายสกุลเงินที่มีการเปลี่ยนแปลงอัตราแลกเปลี่ยน แทนที่เป็นของอัตราแลกเปลี่ยนปัจจุบันสำหรับสกุลเงินเฉพาะ จะซิงโครไนส์กับ Microsoft Dynamics CRM โดยการใช้ตัวเชื่อมต่อสำหรับ Microsoft Dynamics

การแก้ไข

ข้อมูลโปรแกรมแก้ไขด่วน

ขณะนี้มีโปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft อย่างไรก็ตาม มันมุ่งเท่านั้นเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้ ใช้กับระบบที่พบปัญหานี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้ามีการรับผลกระทบคุณจะไม่รุนแรงจากปัญหานี้ เราขอแนะนำให้ คุณรอเซอร์วิสแพ็คถัดไปของ 2009 นำทางของ Microsoft Dynamics หรือนำทาง Dynamics Microsoft รุ่นถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้

หมายเหตุ ในกรณีพิเศษ ค่าธรรมเนียมที่มีผู้เชี่ยวชาญสำหรับโทรศัพท์สามารถยกเลิกถ้า Professional ที่สนับสนุนทางเทคนิคสำหรับ Microsoft Dynamics และผลิตภัณฑ์ที่เกี่ยวข้องกับการสนับสนุนปกติ กำหนดว่า มีการปรับปรุงเฉพาะจะแก้ปัญหาของคุณ ค่าใช้จ่ายในการสนับสนุนปกติจะนำไปใช้กับคำถามเพิ่มเติมและเรื่องที่ไม่ได้มีการกำหนดลักษณะสำหรับการปรับปรุงเฉพาะในคำถาม

ข้อมูลการติดตั้ง

Microsoft แสดงตัวอย่างการเขียนโปรแกรมสำหรับภาพประกอบเท่านั้น โดยไม่มีการรับประกันอย่างใดอย่างหนึ่ง หรือโดยนัย ซึ่งประกอบด้วย แต่ไม่จำกัดเฉพาะการ การรับประกันโดยนัยของสินค้าสำหรับวัตถุประสงค์เฉพาะหรือ บทความนี้อนุมานว่า คุณไม่คุ้นเคย กับภาษาการเขียนโปรแกรมที่มีการแสดง และ มีเครื่องมือที่ใช้ เพื่อสร้าง และกระบวนการตรวจแก้จุดบกพร่อง วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทำงานของกระบวนการเฉพาะได้ แต่ก็จะปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีเพิ่มฟังก์ชันการทำงาน หรือสร้างกระบวนการเพื่อตอบสนองความต้องการเฉพาะของคุณ

หมายเหตุ ก่อนที่คุณติดตั้งโปรแกรมแก้ไขด่วนนี้ ตรวจสอบว่า ผู้ใช้ไคลเอนต์ของ Microsoft Navision ทั้งหมดเข้าสู่ระบบออกจากระบบ ซึ่งรวมถึงการบริการในแอพลิเคชัน Navision Microsoft (NAS) ผู้ใช้ไคลเอ็นต์ คุณควรเป็นผู้ใช้ไคลเอ็นต์เท่านั้นที่ล็อกออนเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีสิทธิ์การใช้งานสำหรับนักพัฒนา

เราขอแนะนำว่า บัญชีผู้ใช้ที่ต้องการ ในหน้าต่างล็อกอินของ Windows หรือ ในหน้าต่างล็อกอินฐานข้อมูลถูกกำหนดให้รหัสการบทบาท "ซูเปอร์" ถ้าบัญชีผู้ใช้ไม่สามารถกำหนดหมายเลขหน้าที่ "ระดับ SUPER" คุณต้องตรวจสอบว่า บัญชีผู้ใช้ที่มีสิทธิ์ต่อไปนี้:
  • อนุญาตการปรับเปลี่ยนสำหรับออปเจ็กต์ที่คุณจะเปลี่ยนแปลง
  • สิทธิ์ในการดำเนินการ รหัสวัตถุของระบบ 5210 วัตถุ และสำหรับการ รหัสวัตถุของระบบ 9015 วัตถุ


หมายเหตุ คุณไม่ได้ต้องมีสิทธิ์ในการเก็บข้อมูลยกเว้นว่าคุณจำเป็นต้องทำการซ่อมแซมข้อมูล

การเปลี่ยนแปลงรหัส

หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่จะใช้การแก้ไขปัญหาไปยังคอมพิวเตอร์ของคุณผลิต
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:
  1. ใช้การเปลี่ยนแปลงรหัสต่อไปนี้ใน Microsoft Dynamics นำทาง 2009 R2:
    1. สร้างขึ้นใหม่ GetCurrencyFactor ทำงานในตารางอัตราแลกเปลี่ยนสกุลเงิน (330) เป็นดังนี้:
      PROCEDURE GetCurrentCurrencyFactor@14(CurrencyCode@1000 : Code[10]) : Decimal;
          BEGIN
            SETRANGE("Currency Code",CurrencyCode);
            IF FINDLAST THEN
              EXIT("Exchange Rate Amount" / "Relational Exch. Rate Amount")
          END;
    2. สร้างขึ้นใหม่ SetCurrencyFactor ทำงานในตารางอัตราแลกเปลี่ยนสกุลเงิน (330) เป็นดังนี้:
      PROCEDURE SetCurrentCurrencyFactor@15(CurrencyCode@1000 : Code[10];CurrencyFactor@1001 : Decimal);
          VAR
            RateForTodayExists@1002 : Boolean;
          BEGIN
            "Currency Code" := CurrencyCode;
            TESTFIELD("Currency Code");
            RateForTodayExists := GET(CurrencyCode,TODAY);
            "Exchange Rate Amount" := 1;
            "Relational Exch. Rate Amount" := 1 / CurrencyFactor;
            "Adjustment Exch. Rate Amount" := "Exchange Rate Amount";
            "Relational Adjmt Exch Rate Amt" := "Relational Exch. Rate Amount";
           IF RateForTodayExists THEN BEGIN
             "Relational Currency Code" := '';
             MODIFY;
           END ELSE BEGIN
             "Starting Date" := TODAY;
             INSERT;
           END;
          END;
    3. เพิ่มตัวแปรส่วนกลางใหม่ในรูปแบบสกุลเงิน (5), จากนั้น ระบุตัวแปรต่อไปนี้:
      • ชื่อ: CurrencyFactor
      • ชนิดข้อมูล: เลขฐานสิบ
    4. เพิ่ม ปัจจัยด้านสกุลเงิน ฟิลด์ (46) ในรูปแบบสกุลเงิน (5)
    5. เพิ่มตัวแปรท้องถิ่นใหม่ในเครื่อง ปัจจัยด้านสกุลเงิน - OnValidate ทริกเกอร์ในรูปแบบสกุลเงิน (5), จากนั้น ระบุตัวแปรต่อไปนี้:
      • ชื่อ: CurrencyExchangeRate
      • ชนิดข้อมูล: เร็กคอร์ด
      • ชนิดย่อย: อัตราแลกเปลี่ยนสกุลเงิน
    6. เพิ่มรหัสต่อไปนี้ในการ ปัจจัยด้านสกุลเงิน - OnValidate ทริกเกอร์ในรูปแบบสกุลเงิน (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. เพิ่มตัวแปรท้องถิ่นใหม่ในเครื่อง OnAfterGetRecord ทริกเกอร์ในรูปแบบสกุลเงิน (5), จากนั้น ระบุตัวแปรต่อไปนี้:
      • ชื่อ: CurrencyExchangeRate
      • ชนิดข้อมูล: เร็กคอร์ด
      • ชนิดย่อย: อัตราแลกเปลี่ยนสกุลเงิน
    8. เพิ่มรหัสต่อไปนี้ในการ OnAfterGetRecord ทริกเกอร์ในรูปแบบสกุลเงิน (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. เพิ่มตัวแปรส่วนกลางใหม่ในหน้าของสกุลเงิน (5), จากนั้น ระบุตัวแปรต่อไปนี้:
      • ชื่อ: CurrencyFactor
      • ชนิดข้อมูล: เลขฐานสิบ
    10. เพิ่ม ปัจจัยด้านสกุลเงิน เขตข้อมูลในเพสกุลเงิน (5), จากนั้น ระบุเขตข้อมูลเป็นดังนี้:
      • ชื่อ: CurrencyFactor
      • คำอธิบายเฉพาะ: ปัจจัยด้านสกุลเงิน
      • ชนิด: เขตข้อมูล
      • SourceExpr: CurrencyFactor
    11. เพิ่มตัวแปรท้องถิ่นใหม่ในเครื่อง ปัจจัยด้านสกุลเงิน - OnValidate ก่อให้เกิดในสกุลเงินหน้า (5), จากนั้น ระบุตัวแปรต่อไปนี้:
      • ชื่อ: CurrencyExchangeRate
      • ชนิดข้อมูล: เร็กคอร์ด
      • ชนิดย่อย: อัตราแลกเปลี่ยนสกุลเงิน
    12. เพิ่มรหัสต่อไปนี้ในการ ปัจจัยด้านสกุลเงิน - OnValidate ทริกเกอร์ในเพสกุลเงิน (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. เพิ่มตัวแปรท้องถิ่นใหม่ในเครื่อง OnAfterGetRecord ก่อให้เกิดในสกุลเงินหน้า (5), จากนั้น ระบุตัวแปรต่อไปนี้:
      • ชื่อ: CurrencyExchangeRate
      • ชนิดข้อมูล: เร็กคอร์ด
      • ชนิดย่อย: อัตราแลกเปลี่ยนสกุลเงิน
    14. เพิ่มรหัสต่อไปนี้ในการ OnAfterGetRecord ทริกเกอร์ในเพสกุลเงิน (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. เพิ่มตัวแปรท้องถิ่นใหม่ในเครื่อง UpdateParentIntegrationRecord ฟังก์ชันในโค้ดยูนิตรวมการจัดการ (5150), แล้ว ระบุตัวแปรต่อไปนี้:
      • ชื่อ: สกุลเงิน
      • ชนิดข้อมูล: เร็กคอร์ด
      • ชนิดย่อย: สกุลเงิน
    16. การเปลี่ยนแปลงรหัสในการ UpdateParentIntegrationRecord ฟังก์ชันในโค้ดยูนิตรวมการจัดการ (5150) เป็นดังนี้:
      รหัสที่มีอยู่
      ...
        DATABASE::"Ship-to Address":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Customer No."
            IF Customer.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Customer);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      END;
      รหัสแทน
      ...
       
        DATABASE::"Ship-to Address":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Customer No."
            IF Customer.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Customer);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      
      // Add the following lines.
        DATABASE::"Currency Exchange Rate":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Currency Code"
            IF Currency.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Currency);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      // End of the lines.
      
      END;
    17. การเปลี่ยนแปลงรหัสในการ EnableConnector ฟังก์ชันในโค้ดยูนิตรวมการจัดการ (5150) เป็นดังนี้:
      รหัสที่มีอยู่
      ...
      SetupWebServicePages(FORM::"Ship-to Address",DATABASE::"Ship-to Address");
      SetupWebServicePages(FORM::"Contact Card",DATABASE::Contact);
      
      //Delete the following line.
      SetupWebServicePages(FORM::"Currency Exchange Rates",DATABASE::"Currency Exchange Rate");
      
      SetupWebServicePages(FORM::"Customer Disc. Groups",DATABASE::"Customer Discount Group");
      SetupWebServicePages(FORM::"Item Disc. Groups",DATABASE::"Item Discount Group");
      ...
      รหัสแทน
      ...
      SetupWebServicePages(FORM::"Ship-to Address",DATABASE::"Ship-to Address");
      SetupWebServicePages(FORM::"Contact Card",DATABASE::Contact);
      SetupWebServicePages(FORM::"Customer Disc. Groups",DATABASE::"Customer Discount Group");
      SetupWebServicePages(FORM::"Item Disc. Groups",DATABASE::"Item Discount Group");
      ...
    18. การเปลี่ยนแปลงรหัสในการ SetupIntegrationTable ฟังก์ชันในโค้ดยูนิตรวมการจัดการ (5150) เป็นดังนี้:
      รหัสที่มีอยู่
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      
      //Delete the following line.
      InitializeIntegrationRecords(DATABASE::"Currency Exchange Rate");
      
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
      รหัสแทน
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. การเปลี่ยนแปลงรหัสในการ IsIntergrationRecord ฟังก์ชันในโค้ดยูนิตรวมการจัดการ (5150) เป็นดังนี้:
      รหัสที่มีอยู่
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      
      //Delete the following line.
      DATABASE::"Currency Exchange Rate",
      
      DATABASE::"Customer Discount Group",
      ...
      รหัสแทน
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. การเปลี่ยนแปลงรหัสในการ IsIntegrationRecordChild ฟังก์ชันในโค้ดยูนิตรวม Mangement (5150) เป็นดังนี้:
      รหัสที่มีอยู่
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
      รหัสแทน
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
      
         // Add the following line.
         DATABASE::"Currency Exchange Rate",
      
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. ติดตั้งตัวเชื่อมต่อสำหรับชุดคุณลักษณะของ Microsoft Dynamics 6
    หมายเหตุหลังจากที่คุณติดตั้งตัวเชื่อมต่อให้กับ Microsoft Dynamics คุณลักษณะชุด 6 คุณต้องการยกเลิกใช้การแมป "นำทางสกุลเงินอัตราแลกเปลี่ยนสกุลการเงิน" ในตัวเชื่อมต่อ และการนำเข้าการแมป "นำทางสกุลเงินเป็นสกุล" ใหม่ รันการตั้งค่าคอนฟิกของอะแดปเตอร์ในการนำทางใหม่อีกครั้ง และแผนผังใหม่ที่เปิดใช้งานแล้ว

ข้อกำหนดเบื้องต้น

คุณต้องมี Microsoft Dynamics นำทาง 2009 R2 ติดตั้งเมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้

ข้อมูลการลบ

คุณไม่สามารถลบโปรแกรมแก้ไขด่วนนี้

สถานะ

Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่ระบุไว้ในส่วน"ใช้งาน"
หมายเหตุ นี่คือบทความ "เผยแพร่อย่างรวดเร็ว" สร้างขึ้นโดยตรงจากภายในองค์กรสนับสนุนของ Microsoft มีให้ข้อมูลที่มีอยู่ซึ่งเป็น-ไม่ตอบสนองต่อปัญหา emerging เป็นผลมาจากความเร็วในการทำให้พร้อมใช้งาน วัสดุอาจรวมถึงข้อผิดพลาด typographical และอาจสามารถแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดู เงื่อนไขการใช้ สำหรับข้อควรพิจารณาอื่น ๆ

คุณสมบัติ

หมายเลขบทความ (Article ID): 2597312 - รีวิวครั้งสุดท้าย: 30 สิงหาคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Dynamics NAV 2009
Keywords: 
kbqfe kbmbsmigrate kbmbscodefix kberrmsg kbsurveynew kbmt KB2597312 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2597312

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com