สร้างโปรแกรมปรับปรุงเพื่อทำให้การปรับปรุงโซลูชันง่ายขึ้น

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

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

โปรแกรมปรับปรุง

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

โปรแกรมปรับปรุงจะถูกเก็บไว้ในฐานข้อมูล Dataverse เป็นเรกคอร์ดเอนทิตี Solution แอตทริบิวต์ ParentSolutionId ที่ไม่ใช่ Null ระบุว่าโซลูชันเป็นโปรแกรมแก้ไข โปรแกรมแก้ไขสามารถสร้างและจัดการผ่าน SDK สำหรับ .NET หรือ Web API ซึ่งมีประโยชน์สำหรับการพัฒนาระบบอัตโนมัติ เช่น สคริปต์ติดตั้งผลิตภัณฑ์ อย่างไรก็ตามเว็บแอปพลิเคชัน Dataverse มีเว็บฟอร์มต่างๆที่ช่วยให้คุณสร้างและจัดการโปรแกรมปรับปรุงแบบโต้ตอบได้

  • สามารถสร้างโปรแกรมปรับปรุงได้จากโซลูชันหลักโดยใช้ CloneAsPatchRequest หรือ CloneAsPatch Action

  • โปรแกรมปรับปรุงหลักไม่สามารถเป็นโปรแกรมปรับปรุงได้

  • โปรแกรมปรับปรุงสามารถมีโซลูชันหลักได้เพียงโซลูชันเดียว

  • โปรแกรมปรับปรุงสร้างการขึ้นต่อกัน (ที่ระดับโซลูชัน) บนโซลูชันหลัก

  • คุณสามารถติดตั้งโปรแกรมปรับปรุงได้หากมีโซลูชันหลักเท่านั้น

  • คุณไม่สามารถติดตั้งโปรแกรมปรับปรุงได้เว้นแต่ชื่อเฉพาะและหมายเลขรุ่นหลัก/รองของโซลูชันหลักตามที่ระบุโดย ParentSolutionId ไม่ตรงกับโซลูชันหลักที่ติดตั้งในองค์กรเป้าหมาย

  • รุ่นของโปรแกรมปรับปรุงต้องมีหมายเลขหลักและหมายเลขรองเดียวกัน แต่มีหมายเลขบิลด์และรีลีสที่สูงกว่าหมายเลขรุ่นโซลูชันหลัก ชื่อที่แสดงแตกต่างกันออกไปได้

  • หากโซลูชันมีโปรแกรมปรับปรุง โปรแกรมปรับปรุงถัดไปต้องมีหมายเลขรุ่นที่สูงกว่าตัวเลขโปรแกรมปรับปรุงที่มีอยู่สำหรับโซลูชันนั้น

  • โปรแกรมปรับปรุงสนับสนุนการดำเนินการเช่นเดียวกับโซลูชัน เช่น การอัพเดทเพิ่มเติม แต่ไม่สามารถลบออกได้ คุณไม่สามารถลบส่วนประกอบออกจากโซลูชันโดยใช้โปรแกรมปรับปรุงได้ ในการลบส่วนประกอบออกจากโซลูชันให้ทำการอัพเกรด

  • โปรแกรมปรับปรุงที่ส่งออกตามที่มีการจัดการ จะต้องนำเข้าแทนโซลูชันหลักที่มีการจัดการ กฎคือการป้องกันโปรแกรมปรับปรุง (จัดการหรือไม่มีการจัดการ) ต้องตรงกับโปรแกรมหลัก

  • อย่าใช้โปรแกรมปรับปรุงที่ไม่มีการจัดการในวัตถุประสงค์ในการทำงานจริง

  • โปรแกรมปรับปรุงได้รับการสนับสนุนในองค์กร Dataverse เวอร์ชัน 8.0 หรือใหม่กว่าเท่านั้น

    เครื่องมือ SolutionPackager และ PackageDeployer ในรุ่นนี้รองรับโปรแกรมปรับปรุงโซลูชัน อ้างถึงวิธีใช้แบบออนไลน์ของเครื่องมือสำหรับตัวเลือกบรรทัดคำสั่งที่เกี่ยวข้องกับโปรแกรมปรับปรุง

สร้างโปรแกรมปรับปรุง

สร้างโปรแกรมปรับปรุงจากโซลูชันที่ไม่มีการจัดการในองค์กรโดยใช้ข้อความ CloneAsPatchRequest หรือ CloneAsPatch Action หรือโดยใช้แอปพลิเคชันเว็บ เมื่อคุณสร้างโปรแกรมปรับปรุงโซลูชัน โซลูชันเดิมจะกลายเป็นถูกล็อคและคุณจะไม่สามารถเปลี่ยนแปลงหรือส่งออกได้ ตราบเท่าที่มีโปรแกรมปรับปรุงที่ขึ้นต่อกันที่อยู่ในองค์กรที่ระบุโซลูชันเป็นโซลูชันหลัก การกำหนดเวอร์ชันของโปรแกรมปรับปรุง คล้ายกับการกำหนดเวอร์ชันของโซลูชันและระบุในรูปแบบต่อไปนี้: major.minor.build.release คุณไม่สามารถเปลี่ยนแปลงเวอร์ชันโซลูชันหลักหรือเวอร์ชันรองที่มีอยู่ได้เมื่อคุณสร้างโปรแกรมปรับปรุง

การส่งออกและนำเข้าโปรแกรมปรับปรุง

คุณสามารถใช้ SDK สำหรับ .NET หรือ Web API, เว็บแอปพลิเคชัน หรือเครื่องมือ Package Deployer ในการส่งออกและนำเข้าโปรแกรมปรับปรุง คลาสคำขอ SDK สำหรับ .NET ที่เกี่ยวข้องคือ ImportSolutionRequest และ ExportSolutionRequest การดำเนินการที่เกี่ยวข้องสำหรับ Web API คือการดำเนินการ ImportSolution และ การดำเนินการ ExportSolution

ตัวอย่างการแก้ไข

ตารางต่อไปนี้แสดงรายละเอียดของตัวอย่างการแก้ไข โปรดทราบว่าในตัวอย่างนี้ โซลูชันและโปรแกรมปรับปรุงจะถูกนำเข้าในลำดับตัวเลขและเป็นสิ่งที่เพิ่มเติมขึ้น ซึ่งสอดคล้องกับการนำเข้าโซลูชันโดยทั่วไป

ชื่อโปรแกรมปรับปรุง รายละเอียด
โซลูชันA รุ่น 1.0 (ไม่มีการจัดการ) ประกอบด้วย เอนทิตีA ที่มี 6 ฟิลด์
โซลูชันA รุ่น 1.0.1.0 (ไม่มีการจัดการ) มีเอนทิตี A ที่มี 6 ฟิลด์ (3 อัพเดต), และเพิ่มเอนทิตี B ที่มี 10 ฟิลด์
โซลูชันA รุ่น 1.0.2.0 (ไม่มีการจัดการ) ประกอบด้วย เอนทิตีC ที่มี 10 ฟิลด์

กระบวนการนำเข้ามีดังนี้:

  1. ผู้พัฒนาหรือผู้ปรับแต่งจะนำเข้าโซลูชันพื้นฐาน (โซลูชัน A 1.0) เข้าสู่องค์กรก่อน ผลลัพธ์ คือ เอนทิตี A ที่มี 6 ช่องในองค์กร

  2. จากนั้น นำเข้าโปรแกรมปรับปรุงโซลูชัน A 1.0.1.0 ขณะนี้องค์กรประกอบด้วย เอนทิตี A ที่มี 6 ฟิลด์ (ได้รับการอัพเดตแล้ว 3 ตัว) บวกกับ เอนทิตี B ที่มี 10 ฟิลด์

  3. สุดท้ายนี้ นำเข้าโปรแกรมปรับปรุงโซลูชัน A 1.0.2.0 ขณะนี้องค์กรประกอบด้วย เอนทิตี A ที่มี 6 ฟิลด์ (ได้รับการอัพเดตแล้ว 3 ตัว) บวกกับ เอนทิตี B ที่มี 10 ฟิลด์ บวกกับ เอนทิตี C ที่มี 10 ฟิลด์

ตัวอย่างการแก้ไขอีกตัวอย่างหนึ่ง

ลองดูตัวอย่างการแก้ไขอื่นๆ โดยมีรายละเอียดตามตารางต่อไปนี้

ชื่อโปรแกรมปรับปรุง รายละเอียด
โซลูชัน A เวอร์ชัน 1.0 (ไม่มีการจัดการ โซลูชันพื้นฐาน) ประกอบด้วยเอนทิตี Account ที่ความยาวของฟิลด์หมายเลขบัญชีถูกปรับจาก 20 เป็น 30 ตัวอักษร
โซลูชัน B รุ่น 2.0 (ที่ไม่มีการจัดการ ผู้จัดจำหน่ายแตกต่างกัน) ประกอบด้วยเอนทิตี Account ที่ความยาวของฟิลด์หมายเลขบัญชีถูกปรับเป็น 50 ตัวอักษร
โซลูชันA รุ่น 1.0.1.0 (ไม่มีการจัดการ โปรแกรมปรับปรุง) ประกอบด้วยการอัพเดตเอนทิตี Account ที่ความยาวของฟิลด์หมายเลขบัญชีถูกปรับเป็น 35 ตัวอักษร

กระบวนการนำเข้ามีดังนี้:

  1. ผู้พัฒนาหรือผู้ปรับแต่งจะนำเข้าโซลูชันพื้นฐาน (โซลูชัน A 1.0) เข้าสู่องค์กรก่อน ผลลัพธ์คือเอนทิตี Account ที่มีฟิลด์หมายเลขบัญชี 30 ตัวอักษร

  2. นำเข้าโซลูชัน B ขณะนี้องค์กรประกอบด้วยเอนทิตี Account ที่มีฟิลด์หมายเลขบัญชี 50 ตัวอักษร

  3. นำเข้าโซลูชัน A 1.0.1.0 ขณะนี้องค์กรยังคงประกอบด้วยเอนทิตี Account ที่มีฟิลด์หมายเลขบัญชี 50 ตัวอักษร ตามที่นําไปใช้โดยโซลูชัน B

  4. ถอนการติดตั้งโซลูชัน B ขณะนี้องค์กรประกอบด้วยเอนทิตี Account ที่มีฟิลด์หมายเลขบัญชี 35 ตัวอักษร ตามที่นําไปใช้โดยโปรแกรมปรับปรุงโซลูชัน A 1.0.1.0

ลบโปรแกรมปรับปรุง

คุณสามารถลบโปรแกรมปรับปรุงหรือโซลูชันพื้นฐาน (หลัก) โดยใช้ DeleteRequest หรือสำหรับ API เว็บให้ใช้วิธีการ HTTP DELETE กระบวนการลบจะแตกต่างกันสำหรับโซลูชันที่มีการจัดการหรือไม่มีการจัดการที่มีโปรแกรมปรับปรุงอย่างน้อยหนึ่งรายการที่มีอยู่ในองค์กร

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

สำหรับ โซลูชันที่มีการจัดการ คุณเพียงถอนการติดตั้งโซลูชันพื้นฐาน ระบบ Dataverse จะถอนการติดตั้งโปรแกรมปรับปรุงโดยอัตโนมัติตามลำดับเวอร์ชันย้อนกลับก่อนที่จะถอนการติดตั้งโซลูชันพื้นฐาน คุณสามารถถอนการติดตั้งโปรแกรมปรับปรุงเพียงโปรแกรมเดียวได้

ปรับปรุงโซลูชัน

การอัพเดตโซลูชันเกี่ยวข้องกับการรวม (ผสาน) โปรแกรมปรับปรุงทั้งหมดเข้ากับโซลูชันนั้นให้เป็นโซลูชันรุ่นใหม่ หลังจากนั้น โซลูชันนั้นจะปลดล็อกและสามารถแก้ไขได้อีกครั้ง (โซลูชันที่ไม่มีการจัดการเท่านั้น) หรือส่งออก สำหรับ โซลูชันที่มีการจัดการ จะไม่อนุญาตให้แก้ไขโซลูชันเพิ่มเติมยกเว้นการสร้างโปรแกรมปรับปรุงจากโซลูชันที่อัพเดตใหม่ หากต้องการรวบรวมโปรแกรมปรับปรุงลงในโซลูชันที่ไม่มีการจัดการ ให้ใช้ CloneAsSolutionRequest หรือ การดำเนินการ CloneAsSolution การโคลนโซลูชันสร้างเวอร์ชันใหม่ของโซลูชันที่ไม่มีการจัดการ ซึ่งรวมโปรแกรมปรับปรุงทั้งหมดที่สูงกว่าหมายเลขรุ่น major.minor ชื่อเฉพาะและชื่อที่แสดงเดียวกัน

สำหรับโซลูชันที่มีการจัดการได้รับการจัดการแตกต่างกันเล็กน้อย ก่อนอื่นคุณต้องโคลนโซลูชันที่ไม่มีการจัดการ (A) โดยรวมโปรแกรมปรับปรุงทั้งหมดแล้วส่งออกเป็น โซลูชันที่มีการจัดการ (B) ในองค์กรเป้าหมายที่มีรุ่นที่ได้รับการจัดการของโซลูชัน (A) และโปรแกรมปรับปรุงนั้น ให้ท่านนำเข้าโซลูชันที่มีการจัดการ (B) แล้วดำเนินการ DeleteAndPromoteRequest หรือ DeleteAndPromote Action เพื่อแทนที่โซลูชันที่มีการจัดการ (A) และโปรแกรมปรับปรุงด้วยโซลูชันที่มีการจัดการ (B) ที่อัพเกรดแล้วที่มีหมายเลขรุ่นที่สูงกว่า

ดูเพิ่มเติม

ใช้โซลูชันที่มีการแบ่งกลุ่ม