แชร์ผ่าน


ภาพรวมการลบการขึ้นต่อกัน

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

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

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

ระบบตรวจพบความสัมพันธ์ที่แอปขึ้นอยู่กับแผนผังไซต์

หมายเหตุ

การลบ หมายความว่าส่วนประกอบนั้นจะถูกลบออกอย่างสมบูรณ์ Microsoft Dataverse

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

การขึ้นต่อกันของคอมโพเนนต์ที่ไม่ได้รับการจัดการ เทียบกับที่ได้รับการจัดการ

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

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

คอมโพเนนต์ที่ไม่มีการจัดการ

คอมโพเนนต์เหล่านี้แสดงโดยเลเยอร์เดียวในโซลูชันที่ใช้งานอยู่ การดำเนินการ ลบ ใด ๆ กับคอมโพเนนต์ดังกล่าวส่งผลให้คอมโพเนนต์ถูกลบออกทั้งหมด

คอมโพเนนต์มีการจัดการ

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

สถานการณ์ตัวอย่าง

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

สถานการณ์ที่ 1: ถอนการติดตั้งเลเยอร์โซลูชันเดียว

ถอนการติดตั้งเลเยอร์เดียว

การถอนการติดตั้งโซลูชันที่ 1 ทำให้เกิดการลบคอมโพเนนต์เนื่องจากเป็นเลเยอร์เดียวสำหรับคอมโพเนนต์

สถานการณ์ที่ 2: ถอนการติดตั้งเลเยอร์โซลูชันจากผู้เผยแพร่รายอื่น

ถอนการติดตั้งสองเลเยอร์ - ผู้เผยแพร่ที่แตกต่างกัน

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

สถานการณ์ที่ 3: ถอนการติดตั้งหลายเลเยอร์โซลูชันจากผู้เผยแพร่รายอื่น

ถอนการติดตั้งหลายเลเยอร์ - ผู้เผยแพร่ที่แตกต่างกัน

  • การถอนการติดตั้งโซลูชัน 3 ไม่ทำให้เกิดการลบคอมโพเนนต์ จะลบออกเฉพาะชั้นนั้นเท่านั้น
  • การถอนการติดตั้งโซลูชัน 2 ไม่ทำให้เกิดการลบคอมโพเนนต์ จะลบออกเฉพาะชั้นนั้นเท่านั้น
  • การถอนการติดตั้งโซลูชัน 1 จะไม่ทำให้ส่วนประกอบถูกลบ เนื่องจากในกรณีนี้มีโซลูชันอื่นจากผู้จัดพิมพ์รายเดียวกัน (ผู้จัดพิมพ์ A = ผู้จัดพิมพ์ C) แพลตฟอร์มจะลบเลเยอร์ออกจากโซลูชัน 1 และแทนที่ด้วยเลเยอร์จากโซลูชัน 3

สถานการณ์ที่ 4: ถอนการติดตั้งเลเยอร์โซลูชันในการกำหนดเองที่ไม่มีการจัดการ

ถอนการติดตั้งสองเลเยอร์ - การแก้ไข/ปรับปรุงตามคำสั่งที่ไม่มีการจัดการ

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

หน้าแสดงการขึ้นต่อกัน

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

  • การเลือก แสดงการขึ้นต่อกัน ในหน้าโซลูชัน
  • การเลือก ขั้นสูง>แสดงการขึ้นต่อกัน ภายในโซลูชันเมื่อเลือกส่วนประกอบของโซลูชัน
  • พยายามถอนการติดตั้งโซลูชัน ซึ่งทำให้แพลตฟอร์มตรวจพบว่ามีการอ้างอิงอยู่

จากหน้า การอ้างอิง คุณสามารถเปิด ลบ หรือลบส่วนประกอบได้ ข้อมูลเพิ่มเติม: ดูการขึ้นต่อกันสำหรับส่วนประกอบ

การวินิจฉัยการขึ้นต่อกัน

ลองพิจารณาสถานการณ์นี้ สภาพแวดล้อมที่นี่มีสองโซลูชัน: โซลูชัน - เวิร์กโฟลว์ และ โซลูชัน - เอนทิตีที่กำหนดเอง

รายการโซลูชันพร้อมสองโซลูชัน

ผู้สร้างสภาพแวดล้อมตัดสินใจว่าพวกเขาไม่ต้องการ โซลูชัน - เอนทิตีที่กำหนดเอง อีกต่อไป ผู้สร้างพยายามที่จะลบมันและปรากฏหน้าต่อไปนี้:

รายละเอียดของการขึ้นต่อกันหลังจากพยายามลบโซลูชัน

การถอนการติดตั้งโซลูชันกำลังพยายามลบตารางชื่อ Custom Entity และฟิลด์สามฟิลด์—Custom Entity, Name และ Number Field—และส่วนประกอบทั้งสี่มีการอ้างอิงกัน

หมายเหตุ

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

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

รูปต่อไปนี้แสดงรายละเอียดความสัมพันธ์ระหว่างตาราง (เอนทิตีที่กำหนดเอง) และกระบวนการ (เวิร์กโฟลว์การทดสอบ)

รายละเอียดการอ้างอิงตารางที่กำหนดเอง

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

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

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

รูปต่อไปนี้แสดงรายละเอียดความสัมพันธ์ระหว่างตาราง (เอนทิตีที่กำหนดเอง) และแอปที่ขับเคลื่อนด้วยโมเดล (MyApp)

ความสัมพันธ์ระหว่างตาราง (เอนทิตี้ที่กำหนดเอง) และแอป (แอปของฉัน)

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

ในการลบการขึ้นต่อกันนี้คุณสามารถ:

  • แก้ไขคำจำกัดความของแอพที่เป็นแบบโมเดลเพื่อลบการอ้างอิงใด ๆ ไปยังเอนทิตีหรือคอมโพเนนต์ย่อย เนื่องจากแอพที่เป็นแบบโมเดลสนับสนุนการเผยแพร่ คุณต้องเผยแพร่การเปลี่ยนแปลงของคุณ
  • ลบแอปที่เป็นแบบโมเดล

หมายเหตุ

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

การดำเนินการเพื่อลบการขึ้นต่อกันที่มีการจัดการ

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

หากคุณพยายามถอนการติดตั้งโซลูชัน

ทำตามขั้นตอนเหล่านี้:

  1. ในสภาพแวดล้อมเป้าหมาย ให้ตรวจสอบลิงก์ Solution Layers เพื่อค้นหาโซลูชันบนสุดในรายการของส่วนประกอบที่ขึ้นอยู่กับนั้นคืออะไร
  2. ในสภาพแวดล้อมต้นทาง ให้เตรียมเวอร์ชันใหม่ของโซลูชันนั้น โดยที่โซลูชันนั้นไม่มีส่วนประกอบที่ขึ้นอยู่กับส่วนประกอบนั้น หรือมีเวอร์ชันอัปเดตของส่วนประกอบที่ขึ้นอยู่กับส่วนประกอบนั้น ซึ่งไม่มีการอ้างอิงถึงส่วนประกอบที่ต้องการ เป้าหมายของคุณคือลบการอ้างอิงถึงส่วนประกอบที่จำเป็นในโซลูชันเวอร์ชันใหม่
  3. ส่งออกของโซลูชันรุ่นใหม่
  4. ในสภาพแวดล้อมเป้าหมาย อัปเกรด โซลูชันนั้น
  5. ลองถอนการติดตั้งอีกครั้ง

หากคุณกำลังพยายามอัพเกรดโซลูชัน

ในกรณีนี้คุณต้องยืนยันว่าคุณต้องการลบองค์ประกอบที่ต้องการ (โปรดจำไว้ว่าการขึ้นต่อกันจะบังคับใช้กับส่วนประกอบที่กำลังถูกลบเท่านั้น)

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

  1. ในสภาพแวดล้อมเป้าหมาย ให้ถอนการติดตั้งโซลูชันแบบแบ่งขั้นตอน (โซลูชันที่ลงท้ายด้วย _Upgrade)
  2. ในสภาพแวดล้อมต้นทาง ให้เพิ่มส่วนประกอบที่จำเป็นกลับเข้าไปในโซลูชัน
  3. ส่งออกเวอร์ชันใหม่
  4. ปรับรุ่นอีกครั้ง

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

เลเยอร์และการขึ้นต่อกัน

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

พิจารณาสถานการณ์ต่อไปนี้:

การเลือกโซลูชันที่จะถอนการติดตั้ง

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

การขึ้นต่อกันบล็อกการถอนการติดตั้งโซลูชัน

คุณเริ่มวินิจฉัยการขึ้นต่อกันโดยการเลือก เลเยอร์โซลูชัน บนคุณลักษณะ new_numberfield คุณสังเกตหน้าจอต่อไปนี้:

การขึ้นต่อกันระหว่างแอตทริบิวต์ new_numberfield และเวิร์กโฟลว์การทดสอบเวิร์กโฟลว์

เนื่องจากการขึ้นต่อกันถูกสร้างขึ้นระหว่างเลเยอร์สูงสุดของแต่ละองค์ประกอบ ขั้นตอนแรกคือการจัดการกับการขึ้นต่อกันระหว่างคุณลักษณะ new_numberfield ใน SolutionCustomEntity และเวิร์กโฟลว์ ทดสอบเวิร์กโฟลว์ ใน SolutionWorkflow3

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

การขึ้นต่อกันบล็อกการถอนการติดตั้งโซลูชัน - เอนทิตีแบบกำหนดเอง

อย่างไรก็ตาม คอลัมน์ new_numberfield จะไม่อยู่ในรายการอีกต่อไป แม้ว่าจะมีอยู่ในหลายเลเยอร์ก็ตาม

การดำเนินการเพื่อลบการขึ้นต่อกันที่ไม่มีการจัดการ

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

หมายเหตุ

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

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

หน้าของการขึ้นต่อกันมีสองส่วนที่ต่างกัน:

  • ส่วนประกอบที่ขึ้นอยู่กับ: รายการของส่วนประกอบที่ขึ้นอยู่กับคอลัมน์ที่เลือก กล่าวอีกนัยหนึ่ง ส่วนประกอบเหล่านี้มีคอลัมน์นี้เป็นส่วนประกอบที่จำเป็น
  • ส่วนประกอบที่จำเป็น: รายการส่วนประกอบที่คอลัมน์นี้ต้องการเพื่อให้ทำงานได้ กล่าวอีกนัยหนึ่ง ส่วนประกอบเหล่านี้มีคอลัมน์นี้เป็นส่วนประกอบที่ขึ้นอยู่กับตัวเอง

การขึ้นต่อกันของส่วนประกอบ

ขั้นตอนถัดไป