การตั้งค่าคอนฟิกของ BOM จะไม่แสดงอย่างถูกต้องในกล่องโต้ตอบ "สมุดรายวันบัตรกระบวนการผลิต" หลังจากที่คุณเพิ่มคอลัมน์ "การตั้งค่าคอนฟิก" ในแท็บ "ภาพรวม" ใน Microsoft Dynamics AX 2009

นำไปใช้กับ
Dynamics AX 2009 Service Pack 1 Microsoft Dynamics AX 2009

บทความที่เผยแพร่อย่างรวดเร็วให้ข้อมูลโดยตรงจากภายในองค์กรสนับสนุนของ Microsoft ข้อมูลที่อยู่ในที่นี้จะถูกสร้างขึ้นเพื่อตอบสนองต่อหัวข้อที่เกิดขึ้นใหม่หรือเฉพาะ หรือมีวัตถุประสงค์เพื่อเพิ่มเติมข้อมูลฐานความรู้อื่นๆ

อาการ

เมื่อคุณคลิกขวาในกล่องโต้ตอบ สมุดรายวันบัตรกระบวนการผลิต ใน Microsoft Dynamics AX 2009 แล้วคลิก ตั้งค่า เพื่อเพิ่มคอลัมน์ การตั้งค่าคอนฟิก ในแท็บ ภาพรวม การตั้งค่าคอนฟิกของรายการวัสดุและส่วนประกอบ (BOM) จะไม่แสดงอย่างถูกต้องในกล่องโต้ตอบ สมุดรายวันบัตรกระบวนการผลิต

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจาก Microsoft Dynamics AX ไม่สนับสนุนให้คุณเพิ่มแหล่งข้อมูลเชื่อมโยงล่าช้าไปยังตัวควบคุมเส้นตาราง

การแก้ปัญหา

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

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

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

โปรแกรมแก้ไขด่วนนี้ถูกกําหนดเวลาให้รวมอยู่กับ Service Pack 2 สําหรับ Microsoft Dynamics AX 2009

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

ก่อนที่คุณจะติดตั้งโปรแกรมแก้ไขด่วนนี้ ให้ตรวจสอบว่าผู้ใช้ไคลเอนต์ Microsoft Dynamics AX ออกจากระบบแล้ว คุณควรเป็นผู้ใช้ไคลเอนต์เท่านั้นที่เข้าสู่ระบบเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้

หมายเหตุ เราขอแนะนําให้บัญชีผู้ใช้ในหน้าต่าง ล็อกอินของ Windows หรือในหน้าต่าง ล็อกอินฐานข้อมูล เป็นสมาชิกของกลุ่มผู้ใช้ผู้ดูแลระบบใน Microsoft Dynamics AX

การเปลี่ยนแปลงโค้ด

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

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ ให้ทําตามขั้นตอนเหล่านี้:

  1. เปลี่ยนรหัสในเมธอด datasourceWritePre ในคลาส ProdJournalFormTransRoute ดังนี้:
    รหัสที่มีอยู่

    void datasourceWritePre()
    {
        ;
    
        if (prodJournalRoute.ProdPickList && prodJournalRoute.OprPriority && !prodJournalRoute.ProdPickListJournalId)
            prodJournalRoute.ProdPickList = NoYes::No;
    
        if (prodJournalRoute.ProdReportFinished)
            prodJournalRoute.ProdInventDimId = InventDim::findOrCreate(inventDim).InventDimId;
        else
    
            // Modify the following line.
            prodJournalRoute.ProdInventDimId = '';
    
            prodJournalRoute.ProdInventDimId = '';
    
        super();
    }
    
    

    รหัสทดแทน

    void datasourceWritePre()
    {
        ;
    
        if (prodJournalRoute.ProdPickList && prodJournalRoute.OprPriority && !prodJournalRoute.ProdPickListJournalId)
            prodJournalRoute.ProdPickList = NoYes::No;
    
        if (prodJournalRoute.ProdReportFinished)
            prodJournalRoute.ProdInventDimId = InventDim::findOrCreate(inventDim).InventDimId;
        else
    
            // The following line is modified.
            prodJournalRoute.ProdInventDimId = InventDim::inventDimIdBlank();
    
            prodJournalRoute.ProdInventDimId = '';
    
        super();
    }
    
    
  2. เปลี่ยนรหัสในฟิลด์วิธี ModifiedProdReportFinishedPost ในคลาส ProdJournalFormTransRoute ดังนี้:
    รหัสที่มีอยู่

    void fieldModifiedProdReportFinishedPost()
    {
        InventDim emptyInventDim;
        ;
        if (prodJournalRoute.ProdReportFinished)
        {
            if (! prodJournalRoute.ProdInventDimId)
                inventDim_ds.create();
    
            inventDim.data(InventDim::find(ProdTable::find(prodJournalRoute.ProdId).InventDimId));
        }
        else
            inventDim.data(emptyInventDim);
    
        inventDim_ds.setCurrent();
    }
    
    

    รหัสทดแทน

    void fieldModifiedProdReportFinishedPost()
    {
    
        // Add the following line.
        InventDim emptyInventDim = InventDim::find(InventDim::inventDimIdBlank());
    
        InventDim emptyInventDim;
        ;
        if (prodJournalRoute.ProdReportFinished)
        {
            if (! prodJournalRoute.ProdInventDimId)
                inventDim_ds.create();
    
            inventDim.data(InventDim::find(ProdTable::find(prodJournalRoute.ProdId).InventDimId));
        }
        else
            inventDim.data(emptyInventDim);
    
        inventDim_ds.setCurrent();
    }
    
    
  3. เปลี่ยนรหัสในเมธอด enableFieldsActive ในแบบฟอร์ม ProdJournalTransRoute ดังนี้:
    รหัสที่มีอยู่

    void enableFieldsActive()
    {
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectHour.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    }
    
    

    รหัสทดแทน

    void enableFieldsActive()
    {
    
        // Add the following lines.
        int i;
        container enabledDimFields = InventDim::dimEnabledFieldList();
        container dimFields = InventDim::dimFieldList();
        ;
    
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectHour.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
    
        // Add the following lines.
        for(i = 0; i < conlen(dimFields) ; i++)
        {
            if (inventDim_DS.object(conpeek(dimFields, i)))
            {
                if (prodJournalRoute.ProdInventDimId == InventDim::inventDimIdBlank())
                {
                    inventDim_DS.object(conpeek(dimFields,i)).enabled(false);
                }
                else
                {
                    inventDim_DS.object(conpeek(dimFields,i)).enabled(confind(enabledDimeFields,i) != 0);
                }
            }
        }
    
    }
    
    
  4. เปลี่ยนค่าของคุณสมบัติของวัตถุ InventDim Data Source ในแบบฟอร์ม ProdJournalTransRoute ดังนี้:

    • เปลี่ยนค่าของคุณสมบัติ LinkType เป็น InnerJoin
    • เปลี่ยนค่าของคุณสมบัติ DelayActive เป็น ไม่ใช่
  5. เพิ่มรหัสต่อไปนี้ในวัตถุ "\Forms\ProdJournalTransRoute\DataSources\InventDim\Methods\ validateWrite"

    public boolean validateWrite()
    {
        boolean ret;
        ;
        if (inventDim.inventDimId == InventDim::inventDimIdBlank())
            return true;
        ret = super();
    
        return ret;
    }
    
    
  6. เปลี่ยนรหัสในออบเจ็กต์ "\Forms\ProdJournalTransRoute\DataSources\InventDim\Methods\ write" ดังนี้:
    รหัสที่มีอยู่

    void write()
    {
        ;
        prodJournalRoute_ds.write();
    }
    
    

    รหัสทดแทน

    void write()
    {
        ;
        prodJournalRoute_ds.write();
    
        // Add the following line.
        element.enableFieldsActive();
    
    }
    
    
  7. เปลี่ยนรหัสใน "\Forms\ProdJournalTransRoute\DataSources\ProdJournalRoute\Methods\active" ดังต่อไปนี้:
    รหัสที่มีอยู่

    int active()
    {
        int ret;
    
        ret = super();
    
        journalFormTrans.datasourceActivePost();
        if (prodJournalRoute.isProjMethodConsumed())
        {
            skipWrite = true;
            prodJournalRouteProjHour_ds.executeQuery();
            prodJournalRouteProjQuantity_ds.executeQuery();
            skipWrite = false;
        }
        element.enableFieldsActive();
        return ret;
    }
    
    

    รหัสทดแทน

    int active()
    {
        int ret;
    
        // Add the following lines.
        ;
        journalFormTrans.updateDesign(InventDimFormDesignUpdate::Init);
    
        ret = super();
    
        journalFormTrans.datasourceActivePost();
        if (prodJournalRoute.isProjMethodConsumed())
        {
            skipWrite = true;
            prodJournalRouteProjHour_ds.executeQuery();
            prodJournalRouteProjQuantity_ds.executeQuery();
            skipWrite = false;
        }
        element.enableFieldsActive();
        return ret;
    }
    
    
  8. เปลี่ยนรหัสในเมธอด enableFieldsActive ในแบบฟอร์ม ProdJournalTransJob ดังนี้:
    รหัสที่มีอยู่

    void enableFieldsActive()
    {
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectHour.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    }
    
    

    รหัสทดแทน

    void enableFieldsActive()
    {
      // Add the following lines.
        int i;
        container enabledDimFields = InventDim::dimEnabledFieldList();
        container dimFields = InventDim::dimFieldList();
        ;
    
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectHour.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        projectQuantity.visible(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
        prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());
    
        // Add the following lines.
        for(i = 0; i < conlen(dimFields) ; i++)
        {
            if (inventDim_DS.object(conpeek(dimFields, i)))
            {
                if (prodJournalRoute.ProdInventDimId == InventDim::inventDimIdBlank())
                {
                    inventDim_DS.object(conpeek(dimFields,i)).enabled(false);
                }
                else
                {
                    inventDim_DS.object(conpeek(dimFields,i)).enabled(confind(enabledDimeFields,i) != 0);
                }
            }
        }
    
    }
    
    
  9. เปลี่ยนค่าของคุณสมบัติของวัตถุ InventDim Data Source ในฟอร์ม ProdJournalTransJob ดังนี้:

    • เปลี่ยนค่าของคุณสมบัติ LinkType เป็น InnerJoin
    • เปลี่ยนค่าของคุณสมบัติ DelayActive เป็น ไม่ใช่
  10. เพิ่มรหัสต่อไปนี้ในวัตถุ " \Forms\ProdJournalTransJob\DataSources\InventDim\Methods\ validateWrite"

    public boolean validateWrite()
    {
        boolean ret;
        ;
        if (inventDim.inventDimId == InventDim::inventDimIdBlank())
            return true;
        ret = super();
    
        return ret;
    }
    
    
  11. เปลี่ยนรหัสในออบเจ็กต์ "\Forms\ProdJournalTransJob\DataSources\InventDim\Methods\ write" ดังนี้:
    รหัสที่มีอยู่

    void write()
    {
        ;
        prodJournalRoute_ds.write();
    }
    
    

    รหัสทดแทน

    void write()
    {
        ;
        prodJournalRoute_ds.write();
    
        // Add the following line.
        element.enableFieldsActive();
    
    }
    
    
  12. เปลี่ยนรหัสใน "\Forms\ProdJournalTransJob\DataSources\ProdJournalRoute\Methods\active" ดังต่อไปนี้:
    รหัสที่มีอยู่

    int active()
    {
        int ret;
    
        ret = super();
    
        journalFormTrans.datasourceActivePost();
        if (prodJournalRoute.isProjMethodConsumed())
        {
            skipWrite = true;
            prodJournalRouteProjHour_ds.executeQuery();
            prodJournalRouteProjQuantity_ds.executeQuery();
            skipWrite = false;
        }
        element.enableFieldsActive();
        return ret;
    }
    
    

    รหัสทดแทน

    int active()
    {
        int ret;
    
        // Add the following lines.
        ;
        journalFormTrans.updateDesign(InventDimFormDesignUpdate::Init);
    
        ret = super();
    
        journalFormTrans.datasourceActivePost();
        if (prodJournalRoute.isProjMethodConsumed())
        {
            skipWrite = true;
            prodJournalRouteProjHour_ds.executeQuery();
            prodJournalRouteProjQuantity_ds.executeQuery();
            skipWrite = false;
        }
        element.enableFieldsActive();
        return ret;
    }
    
    
  13. เปลี่ยนรหัสในวิธีการแทรกในตาราง ProdJournalRoute ดังนี้:
    รหัสที่มีอยู่

    void insert()
    {
        ttsbegin;
    
        if (! this.LineNum)
            this.LineNum = ProdJournalRoute::lastLineNum(this.JournalId) + 1;
    
        if (this.OprFinished)
            this.JobFinished = NoYes::Yes;
    
        this.updateRouteConstantRelease();
    
        super();
    
        ttscommit;
    }
    
    

    รหัสทดแทน

    void insert()
    {
        ttsbegin;
    
        if (! this.LineNum)
            this.LineNum = ProdJournalRoute::lastLineNum(this.JournalId) + 1;
    
        if (this.OprFinished)
            this.JobFinished = NoYes::Yes;
    
    
        // Add the following lines.
        if(!this.ProdInventDimId)
            this.ProdInventDimId = InventDim::inventDimIdBlank();
    
    
        this.updateRouteConstantRelease();
    
        super();
    
        ttscommit;
    }
    
    
  14. เปลี่ยนรหัสในวิธี initValue ในตาราง ProdJournalRoute ดังนี้:
    รหัสที่มีอยู่

    void initValue()
    {
        super();
    
        this.TransDate= systemdateget();
    
    }
    
    

    รหัสทดแทน

    void initValue()
    {
        super();
    
        this.TransDate= systemdateget();
    
        // Add the following line.
        this.ProdInventDimId = InventDim::inventDimIdBlank();
    
    }
    
    

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

ไม่จําเป็นต้องมีข้อกําหนดเบื้องต้นเพื่อใช้โปรแกรมแก้ไขด่วนนี้

ข้อกำหนดในการรีสตาร์ต

คุณไม่จําเป็นต้องเริ่มการทํางานของคอมพิวเตอร์ใหม่หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"

MICROSOFT และ/หรือผู้จําหน่ายของ MICROSOFT ไม่ได้รับรองหรือรับประกันเกี่ยวกับความเหมาะสม ความน่าเชื่อถือ หรือความถูกต้องของข้อมูลที่มีอยู่ในเอกสารและกราฟิกที่เกี่ยวข้องที่เผยแพร่บนเว็บไซต์นี้ ("เนื้อหา") เพื่อวัตถุประสงค์ใดๆ

วัสดุอาจรวมถึงความไม่ถูกต้องทางเทคนิคหรือข้อผิดพลาดในการพิมพ์ และอาจมีการแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ภายใต้ขอบเขตสูงสุดที่กฎหมายที่บังคับใช้อนุญาต MICROSOFT และ/หรือผู้จําหน่ายของไมโครซอฟท์จะปฏิเสธความรับผิดชอบและแยกการรับรอง การรับประกัน และเงื่อนไขทั้งหมดไม่ว่าจะโดยชัดแจ้ง โดยนัย หรือโดยกฎหมาย รวมถึงแต่ไม่จํากัดเพียงการแสดง การรับประกัน หรือเงื่อนไขของชื่อเรื่อง การไม่ละเมิด เงื่อนไขหรือคุณภาพที่น่าพอใจ ความสามารถในเชิงพาณิชย์และความเหมาะสมสําหรับวัตถุประสงค์เฉพาะ ที่เกี่ยวข้องกับวัสดุ