หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ถ้าคุณเพิ่มตารางลงในโซลูชัน และส่งออกโซลูชัน คุณส่งออกตารางและแอสเซทที่เกี่ยวข้องทั้งหมดในโซลูชันนั้น แอสเซทเหล่านี้รวมถึงคอลัมน์ (แอตทริบิวต์) ฟอร์ม มุมมอง ความสัมพันธ์ และการแสดงภาพ พร้อมกับแอสเซทอื่น ๆ ที่ถูกรวมเป็นแพคเกจเข้ากับตาราง การส่งออกวัตถุทั้งหมดหมายความว่าคุณอาจปรับเปลี่ยนออบเจ็กต์ในการปรับใช้เป้าหมายโดยไม่ตั้งใจ หรือนำการอ้างอิงที่ไม่ได้ตั้งใจติดไปด้วย
เมื่อต้องการจัดการกับการพึ่งพา ให้สร้างและเผยแพร่โปรแกรมแก้ไขโซลูชันที่ประกอบด้วยคอมโพเนนต์ย่อยของตาราง แทนที่จะเผยแพร่ทั้งตารางและแอสเซททั้งหมด คุณสามารถรวม (ผสาน) โซลูชันต้นฉบับและแพตช์ที่เกี่ยวข้องอย่างน้อยหนึ่งรายการในภายหลังเป็นโซลูชันเวอร์ชันที่อัปเดตแล้ว ซึ่งสามารถแทนที่โซลูชันต้นฉบับในองค์กร Microsoft Dataverse เป้าหมาย
แพตช์
คุณสามารถใช้แพตช์กับโซลูชันแบบมีการจัดการหรือแบบไม่มีการจัดการ และรวมเฉพาะการเปลี่ยนแปลงในตารางและแอสเซทของตารางที่เกี่ยวข้อง แพตช์ไม่มีคอมโพเนนต์ของระบบหรือความสัมพันธ์ที่ไม่ได้กำหนดเองใด ๆ ที่แพตช์เหล่านั้นต้องพึ่งพา เนื่องจากคอมโพเนนต์เหล่านี้มีอยู่แล้วในองค์กรปลายทางที่นำไปปรับใช้ ในบางช่วงของวงจรการพัฒนาของคุณ คุณสามารถรวบรวมโปรแกรมปรับปรุงทั้งหมดเป็นรุ่นโซลูชันใหม่เพื่อแทนที่โซลูชันดั้งเดิมที่โปรแกรมปรับปรุงถูกสร้างขึ้นจาก
ฐานข้อมูล Dataverse เก็บแพตช์เป็นระเบียนตาราง Solution แอตทริบิวต์ ParentSolutionId ที่ไม่ใช่ Null ระบุว่าโซลูชันเป็นแพตช์ คุณสามารถสร้างและจัดการแพตช์ผ่าน SDK สําหรับ .NET หรือ API ของเว็บ ซึ่งมีประโยชน์สําหรับการพัฒนาระบบอัตโนมัติ เช่น สคริปต์การติดตั้งผลิตภัณฑ์ อย่างไรก็ตาม เว็บแอปพลิเคชัน Dataverse มีเว็บฟอร์มต่างๆ ที่ช่วยให้คุณสร้างและจัดการแพตช์แบบโต้ตอบได้
- คุณสามารถสร้างแพตช์จากโซลูชันหลักได้เท่านั้น โดยใช้ CloneAsPatchRequest หรือ การดําเนินการ CloneAsPatch
- แพตช์แม่ไม่สามารถเป็นแพตช์ได้
- โปรแกรมปรับปรุงสามารถมีโซลูชันแม่ได้เพียงโซลูชันเดียว
- โปรแกรมปรับปรุงสร้างการพึ่งพา ที่ระดับโซลูชัน กับโซลูชันหลักของมัน
- คุณจะสามารถติดตั้งโปรแกรมปรับปรุงได้ก็ต่อเมื่อมีโซลูชันหลักอยู่
- คุณไม่สามารถติดตั้งโปรแกรมปรับปรุงได้เว้นแต่ชื่อเฉพาะและหมายเลขรุ่นหลักหรือรองของโซลูชันหลักตามที่ระบุโดย
ParentSolutionIdไม่ตรงกับโซลูชันหลักที่ติดตั้งในองค์กรเป้าหมาย - รุ่นของโปรแกรมปรับปรุงต้องมีหมายเลขหลักและหมายเลขรองเดียวกัน แต่มีหมายเลขบิลด์และรีลีสที่สูงกว่าหมายเลขเวอร์ชันของโซลูชันต้นทาง ชื่อที่แสดงแตกต่างกันออกไปได้
- หากโซลูชันมีแพตช์ แพตช์ถัดไปต้องมีหมายเลขเวอร์ชันที่เป็นตัวเลขสูงกว่าแพตช์ที่มีอยู่ทั้งหมดสำหรับโซลูชันนั้น
- แพตช์รองรับการดำเนินการเช่นเดียวกับโซลูชัน เช่น การอัปเดตแบบเพิ่ม แต่ไม่รองรับการเอาออก คุณไม่สามารถลบคอมโพเนนต์ออกจากโซลูชันโดยใช้แพตช์ เมื่อต้องการเอาคอมโพเนนต์ออกจากโซลูชัน ให้ดําเนินการอัปเกรด
- คุณต้องนำเข้าแพตช์ที่ส่งออกเป็นแบบมีการจัดการทับบนโซลูชันหลักแบบมีการจัดการ กฎคือการป้องกันแพตช์ (แบบมีการจัดการหรือไม่มีการจัดการ) ต้องตรงกับรายการหลักของมัน
- อย่าใช้แพตช์ที่ไม่ได้รับการจัดการในระบบงานจริง
เครื่องมือ SolutionPackager และ PackageDeployer รองรับแพตช์ของโซลูชัน โปรดดูวิธีใช้ออนไลน์ของเครื่องมือสำหรับตัวเลือกบรรทัดคำสั่งที่เกี่ยวข้องกับแพตช์
สร้างแพตช์
สร้างแพตช์จากโซลูชันที่ไม่มีการจัดการในสภาพแวดล้อมโดยใช้ข้อความ CloneAsPatchRequest หรือ CloneAsPatch Action หรือโดยใช้เว็บแอปพลิเคชัน เมื่อคุณสร้างแพตช์ คุณล็อกโซลูชันต้นฉบับ และไม่สามารถเปลี่ยนแปลงหรือส่งออกโซลูชันต้นฉบับได้ตราบเท่าที่มีแพตช์ที่ขึ้นต่อกันอยู่ในสภาพแวดล้อมที่ระบุโซลูชันเป็นโซลูชันหลัก การกำหนดเวอร์ชันของแพตช์คล้ายกับการกำหนดเวอร์ชันของโซลูชัน และระบุในรูปแบบต่อไปนี้: major.minor.build.release คุณไม่สามารถเปลี่ยนเวอร์ชันโซลูชันหลักหรือรองที่มีอยู่เมื่อคุณสร้างแพตช์
การส่งออกและนำเข้าแพตช์
ใช้ SDK สำหรับ .NET หรือ Web API หรือเว็บแอปพลิเคชัน หรือเครื่องมือ Package Deployer ในการส่งออกและนำเข้าแพตช์ คลาสคำขอ SDK สำหรับ .NET ที่เกี่ยวข้องคือ ImportSolutionRequest และ ExportSolutionRequest การดําเนินการที่เกี่ยวข้องสําหรับ API เว็บคือ การดําเนินการ ImportSolution และ การดำเนินการ ExportSolution
ตัวอย่างการแพตช์
ตารางต่อไปนี้แสดงรายละเอียดของตัวอย่างการติดตั้งแพตช์ ในตัวอย่างนี้ คุณนําเข้าโซลูชันและโปรแกรมแก้ไขในลําดับตัวเลข และเป็นแบบสะสม ซึ่งสอดคล้องกับการนําเข้าโซลูชันโดยทั่วไป
| ชื่อแพตช์ | คำอธิบาย |
|---|---|
SolutionA, เวอร์ชัน 1.0 (ไม่มีการจัดการ) |
ประกอบด้วย entityA จำนวนหกฟิลด์ |
SolutionA, เวอร์ชัน 1.0.1.0 (ไม่ได้รับการจัดการ) |
มี entityA ที่มีหกฟิลด์ (3 อัปเดต) และเพิ่ม entityB ที่มี 10 ฟิลด์ |
SolutionA, เวอร์ชัน 1.0.2.0 (ไม่ได้รับการจัดการ) |
มี entityC ที่มี 10 ฟิลด์ |
กระบวนการนำเข้ามีดังนี้:
- ผู้พัฒนาหรือผู้ปรับแต่งจะนำเข้าโซลูชันพื้นฐาน (
SolutionA1.0) เข้าสู่สภาพแวดล้อม ผลลัพธ์ คือentityAที่มีหกฟิลด์ในสภาพแวดล้อม - ถัดไป นำเข้า
SolutionAแพตช์ 1.0.1.0 ขณะนี้สภาพแวดล้อมประกอบด้วยentityAที่มี 6 ฟิลด์ (อัปเดตแล้ว 3 รายการ) พร้อมด้วยentityBที่มี 10 ฟิลด์ - สุดท้าย นําเข้า
SolutionAแพตช์ 1.0.2.0 ตอนนี้สภาพแวดล้อมมีentityAที่มี 6 ฟิลด์ (อัปเดตแล้ว 3 ฟิลด์),entityBที่มี 10 ฟิลด์ บวกกับentityCที่มี 10 ฟิลด์
ตัวอย่างการแก้ไขอีกแบบหนึ่ง
มาดูตัวอย่างการแพตช์อื่นกัน ตารางต่อไปนี้แสดงรายการรายละเอียด
| ชื่อแพตช์ | คำอธิบาย |
|---|---|
SolutionA, เวอร์ชัน 1.0 (ไม่ได้รับการจัดการ โซลูชันพื้นฐาน) |
มีตาราง Account ที่มีการปรับความยาวของคอลัมน์หมายเลขบัญชีจาก 20 เป็น 30 ตัวอักษร |
SolutionB, เวอร์ชัน 2.0 (แบบไม่มีการจัดการ จากผู้จัดจำหน่ายรายอื่น) |
ประกอบด้วยตาราง Account ที่ความยาวของคอลัมน์หมายเลขบัญชีถูกปรับเป็น 50 ตัวอักษร |
SolutionA, เวอร์ชัน 1.0.1.0 (ไม่มีการจัดการ โปรแกรมปรับปรุง) |
ประกอบด้วยการอัปเดตตาราง Account ที่ความยาวของคอลัมน์หมายเลขบัญชีถูกปรับเป็น 35 ตัวอักษร |
กระบวนการนำเข้ามีดังนี้:
- ผู้พัฒนาหรือผู้ปรับแต่งจะนำเข้าโซลูชันพื้นฐาน (
SolutionA1.0) เข้าสู่สภาพแวดล้อม ผลลัพธ์คือตารางAccountที่มีคอลัมน์หมายเลขบัญชี 30 ตัวอักษร - นําเข้า
SolutionB. ขณะนี้สภาพแวดล้อมมีตารางAccountที่มีคอลัมน์หมายเลขบัญชี 50 ตัวอักษร - นําเข้า
SolutionAโปรแกรมแก้ไข 1.0.1.0 สภาพแวดล้อมยังคงมีตารางAccountที่มีคอลัมน์หมายเลขบัญชี 50 ตัวอักษร ตามที่นำไปใช้โดยSolutionB - ถอนการติดตั้ง
SolutionBตอนนี้ สภาพแวดล้อมมีตารางAccountที่มีคอลัมน์หมายเลขบัญชี 35 ตัวอักษร ตามที่นําไปใช้โดยโปรแกรมปรับปรุงSolutionA1.0.1.0
ลบโปรแกรมปรับปรุง
คุณสามารถลบแพตช์หรือโซลูชันพื้นฐาน (หลัก) โดยใช้ DeleteRequest หรือสำหรับ Web API ให้ใช้เมธอด HTTP DELETE กระบวนการลบจะแตกต่างกันสำหรับโซลูชันที่มีการจัดการหรือไม่มีการจัดการที่มีโปรแกรมปรับปรุงอย่างน้อยหนึ่งรายการที่มีอยู่ในสภาพแวดล้อม
สำหรับโซลูชันที่ไม่มีการจัดการ คุณต้องถอนการติดตั้งโปรแกรมปรับปรุงทั้งหมดไปยังโซลูชันพื้นฐานก่อนตามลำดับเวอร์ชันย้อนกลับที่สร้างขึ้นก่อนที่จะถอนการติดตั้งโซลูชันพื้นฐาน
สำหรับ โซลูชันที่มีการจัดการ คุณเพียงถอนการติดตั้งโซลูชันพื้นฐาน ระบบ Dataverse จะถอนการติดตั้งโปรแกรมปรับปรุงโดยอัตโนมัติตามลำดับเวอร์ชันย้อนกลับก่อนที่จะถอนการติดตั้งโซลูชันพื้นฐาน คุณสามารถถอนการติดตั้งโปรแกรมปรับปรุงเพียงโปรแกรมเดียวได้
ปรับปรุงโซลูชัน
การอัปเดตโซลูชันเกี่ยวข้องกับการรวมแพตช์ทั้งหมดของโซลูชันนั้นเข้าด้วยกันเป็นโซลูชันเวอร์ชันใหม่ หลังจากนั้น โซลูชันนั้นจะปลดล็อกและสามารถแก้ไขได้อีกครั้ง (โซลูชันที่ไม่มีการจัดการเท่านั้น) หรือส่งออกได้ สำหรับ โซลูชันที่มีการจัดการ จะไม่อนุญาตให้แก้ไขโซลูชันเพิ่มเติมยกเว้นการสร้างโปรแกรมปรับปรุงจากโซลูชันที่อัพเดตใหม่ เมื่อต้องการรวบรวมโปรแกรมแก้ไขลงในโซลูชันที่ไม่มีการจัดการ ใช้CloneAsSolutionRequestหรือการดําเนินการ CloneAsSolution การโคลนโซลูชันจะสร้างเวอร์ชันใหม่ของโซลูชันที่ไม่มีการจัดการ ซึ่งรวมแพตช์ทั้งหมดไว้ โดยมีหมายเลขเวอร์ชัน major.minor ที่สูงกว่า มีชื่อเฉพาะเดิม และมีชื่อที่แสดง
สําหรับโซลูชันที่มีการจัดการ สิ่งต่าง ๆ จะได้รับการจัดการแตกต่างกันเล็กน้อย ก่อนอื่น คุณโคลนโซลูชันที่ไม่มีการจัดการ (A) รวมทั้งหมดของโปรแกรมแก้ไข แล้วส่งออกเป็นโซลูชันที่มีการจัดการ (B) ในองค์กรเป้าหมายที่มีรุ่นที่ได้รับการจัดการของโซลูชัน (A) และโปรแกรมปรับปรุงนั้น ให้ท่านนำเข้าโซลูชันที่มีการจัดการ (B) แล้วดำเนินการ DeleteAndPromoteRequest หรือ DeleteAndPromote Action เพื่อแทนที่โซลูชันที่มีการจัดการ (A) และโปรแกรมปรับปรุงด้วยโซลูชันที่มีการจัดการ (B) ที่อัพเกรดแล้วที่มีหมายเลขรุ่นที่สูงกว่า