แชร์ผ่าน


คู่มือการกำหนดค่าการปรับใช้งาน

ALM Accelerator for Power Platform ใช้ไฟล์การกำหนดค่าในรูปแบบ JSON เพื่อให้การปรับใช้งานโซลูชันของคุณเป็นแบบอัตโนมัติ ซึ่งมีการตั้งค่าการอ้างอิงการเชื่อมต่อ ตัวแปรสภาพแวดล้อม และสิทธิ์ แชร์แอปพื้นที่ทำงาน และอัปเดตความเป็นเจ้าของส่วนประกอบของโซลูชัน เช่น โฟลว์ Power Automate เมื่อมีการปรับใช้โซลูชันกับสภาพแวดล้อมดาวน์สตรีม

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

เรามีตัวอย่างไฟล์การกำหนดค่าใน การตั้งค่าการปรับใช้งาน ของ ALMAcceleratorSampleSolution และ การตั้งค่าการปรับใช้งานแบบกำหนดเอง

ก่อนที่คุณจะเริ่มต้น

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

เราขอแนะนำให้คุณ กำหนดการตั้งค่าการปรับใช้งาน ในแอป ALM Accelerator

สร้างไฟล์ JSON การตั้งค่าการปรับใช้งาน

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

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

ภาพหน้าจอของลำดับชั้นไดเรกทอรีการกำหนดค่า

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

ไฟล์ .json ที่มีการตั้งค่าการปรับใช้งานกำหนดค่าการอ้างอิงการเชื่อมต่อและตัวแปรสภาพแวดล้อม

{
    "EnvironmentVariables": [
        {
            "SchemaName": "cat_shared_sharepointonline_97456712308a4e65aae18bafcd84c81f",
            "Value": "#{environmentvariable.cat_shared_sharepointonline_97456712308a4e65aae18bafcd84c81f}#"
        },
        {
            "SchemaName": "cat_shared_sharepointonline_21f63b2d26f043fb85a5c32fc0c65924",
            "Value": "#{environmentvariable.cat_shared_sharepointonline_21f63b2d26f043fb85a5c32fc0c65924}#"
        },
        {
            "SchemaName": "cat_TextEnvironmentVariable",
            "Value": "#{environmentvariable.cat_TextEnvironmentVariable}#"
        },
        {
            "SchemaName": "cat_ConnectorBaseUrl",
            "Value": "#{environmentvariable.cat_ConnectorBaseUrl}#"
        },
        {
            "SchemaName": "cat_DecimalEnvironmentVariable",
            "Value": "#{environmentvariable.cat_DecimalEnvironmentVariable}#"
        },
        {
            "SchemaName": "cat_JsonEnvironmentVariable",
            "Value": "#{environmentvariable.cat_JsonEnvironmentVariable}#"
        },
        {
            "SchemaName": "cat_ConnectorHostUrl",
            "Value": "#{environmentvariable.cat_ConnectorHostUrl}#"
        }
    ],
    "ConnectionReferences": [
        {
            "LogicalName": "new_sharedsharepointonline_b49bb",
            "ConnectionId": "#{connectionreference.new_sharedsharepointonline_b49bb}#",
            "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline"
        },
        {
            "LogicalName": "cat_CDS_Current",
            "ConnectionId": "#{connectionreference.cat_CDS_Current}#",
            "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
        }
    ]
}
  1. คัดลอกตัวอย่างโค้ด JSON ก่อนหน้าไปยังไฟล์ใหม่ชื่อ deploymentSettings.json

  2. บันทึกไฟล์ในโฟลเดอร์ config ใน Git

ภาพหน้าจอของโครงสร้างโฟลเดอร์ config

สร้าง JSON การอ้างอิงการเชื่อมต่อ

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

  1. สร้างการเชื่อมต่อด้วยตนเองในสภาพแวดล้อมเป้าหมายของคุณ

  2. คัดลอกรหัสสำหรับการเชื่อมต่อ

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

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

    • รับรหัสการเชื่อมต่อจาก URL ของการเชื่อมต่อหลังจากที่คุณสร้าง ตัวอย่างเช่น หาก URL เป็น 'https://.../connections/shared_commondataservice/9f66d1d455f3474ebf24e4fa2c04cea2/details' รหัสการเชื่อมต่อคือ 9f66d1d455f3474ebf24e4fa2c04cea2

  3. แก้ไขไฟล์ customDeploymentSettings.json และวางรหัสในคุณสมบัติ ConnectionReferences ดังตัวอย่างโค้ดต่อไปนี้:

    "ConnectionReferences": 
    [
            {
                "LogicalName": "new_sharedsharepointonline_b49bb",
                "ConnectionId": "#{connectionreference.new_sharedsharepointonline_b49bb}#",
                "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline"
            },
            {
                "LogicalName": "cat_CDS_Current",
                "ConnectionId": "#{connectionreference.cat_CDS_Current}#",
                "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
            }
    ]
    
  4. หากคุณใช้ส่วนขยาย แทนที่โทเค็น และเพิ่มโทเค็นในการกำหนดค่าของคุณเหมือนในตัวอย่างก่อนหน้า ให้เปิดไปป์ไลน์สำหรับโซลูชันของคุณ แล้วเลือก แก้ไข>ตัวแปร

  5. บนหน้าจอ ตัวแปรไปป์ไลน์ สร้างการเชื่อมต่อ <connection_reference_logicalname> ในตัวอย่างนี้ ตัวแปรไปป์ไลน์มีชื่อว่า connection.cat_CDS_Current

  6. ตั้งค่าเป็นรหัสการเชื่อมต่อที่คุณพบก่อนหน้านี้

  7. เพื่อให้แน่ใจว่าค่าจะไม่ถูกบันทึกเป็นข้อความล้วน ให้เลือก เก็บค่านี้เป็นความลับ

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

สร้างตัวแปรสภาพแวดล้อม JSON ในไฟล์การกำหนดค่าการปรับใช้งาน

คุณสมบัติ EnvironmentVariables ในไฟล์ customDeploymentConfiguration.json ตั้งค่าตัวแปรของสภาพแวดล้อม Dataverse ในโซลูชันของคุณหลังจากที่นำโซลูชันเข้าสู่สภาพแวดล้อมแล้ว

สำคัญ

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

  1. คัดลอกชื่อสคีมาสำหรับตัวแปรสภาพแวดล้อมจากส่วนประกอบตัวแปรสภาพแวดล้อมในโซลูชันของคุณ

    ภาพหน้าจอของชื่อสคีมาตัวแปรสภาพแวดล้อมที่เน้นในฟิลด์ข้อความที่ปิดใช้งานด้านล่างป้ายกำกับชื่อ

  2. แก้ไขไฟล์ customDeploymentSettings.json และวางชื่อในคุณสมบัติ EnvironmentVariables ดังตัวอย่างโค้ดต่อไปนี้:

    {
        "EnvironmentVariables": [
            {
                "SchemaName": "cat_TextEnvironmentVariable",
                "Value": "#{variable.cat_TextEnvironmentVariable}#"
            },
            {
                "SchemaName": "cat_DecimalEnvironmentVariable",
                "Value": "#{variable.cat_DecimalEnvironmentVariable}#"
            },
            {
                "SchemaName": "cat_JsonEnvironmentVariable",
                "Value": "{\"name\":\"#{variable.cat_JsonEnvironmentVariable.name}#\"}"
            }
        ]    
    }
    
  3. หากคุณใช้ส่วนขยาย แทนที่โทเค็น และเพิ่มโทเค็นในการกำหนดค่าของคุณเหมือนในตัวอย่างก่อนหน้า ให้เปิดไปป์ไลน์สำหรับโซลูชันของคุณ แล้วเลือก แก้ไข>ตัวแปร

  4. บนหน้าจอ ตัวแปรไปป์ไลน์ สร้างตัวแปรไปป์ไลน์สำหรับแต่ละโทเค็นในการกำหนดค่าของคุณ เช่น variable.cat_TextEnvironmentVariable

  5. ตั้งค่าเป็นค่าตัวแปรสภาพแวดล้อมสำหรับสภาพแวดล้อมนั้น

  6. เพื่อให้แน่ใจว่าค่าจะไม่ถูกบันทึกเป็นข้อความล้วน ให้เลือก เก็บค่านี้เป็นความลับ

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

สร้างไฟล์ JSON การตั้งค่าการปรับใช้งานแบบกำหนดเอง

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

{
  "ActivateFlowConfiguration": [
    {
      "solutionComponentName": "DevOpsKitSampleFlow",
      "solutionComponentUniqueName": "0a43b549-50ed-ea11-a815-000d3af3a7c4",
      "activateAsUser": "#{activateflow.activateas.DevOpsKitSampleFlow}#"
    },
    {
      "solutionComponentName": "CallMeFromCanvasApp",
      "solutionComponentUniqueName": "71cc728c-2487-eb11-a812-000d3a8fe6a3",
      "activateAsUser": "#{activateflow.activateas.CallMeFromCanvasApp}#"
    },
    {
      "solutionComponentName": "GetEnvironmentVariables",
      "solutionComponentUniqueName": "d2f7f0e2-a1a9-eb11-b1ac-000d3a53c3c2",
      "activateAsUser": "#{activateflow.activateas.GetEnvironmentVariables}#"
    }
  ],
  "SolutionComponentOwnershipConfiguration": [
    {
      "solutionComponentType": 29,
      "solutionComponentName": "DevOpsKitSampleFlow",
      "solutionComponentUniqueName": "0a43b549-50ed-ea11-a815-000d3af3a7c4",
      "ownerEmail": "#{owner.ownerEmail.DevOpsKitSampleFlow}#"
    },
    {
      "solutionComponentType": 29,
      "solutionComponentName": "CallMeFromCanvasApp",
      "solutionComponentUniqueName": "71cc728c-2487-eb11-a812-000d3a8fe6a3",
      "ownerEmail": "#{owner.ownerEmail.CallMeFromCanvasApp}#"
    },
    {
      "solutionComponentType": 29,
      "solutionComponentName": "GetEnvironmentVariables",
      "solutionComponentUniqueName": "d2f7f0e2-a1a9-eb11-b1ac-000d3a53c3c2",
      "ownerEmail": "#{owner.ownerEmail.GetEnvironmentVariables}#"
    }
  ],
  "AadGroupCanvasConfiguration": [
    {
      "aadGroupId": "#{canvasshare.aadGroupId.DevOpsKitSampleCanvasApp}#",
      "canvasNameInSolution": "cat_devopskitsamplecanvasapp_c7ec5",
      "canvasDisplayName": "DevOpsKitSampleCanvasApp",
      "roleName": "#{canvasshare.roleName.DevOpsKitSampleCanvasApp}#"
    }
  ],
  "AadGroupTeamConfiguration": [
    {
      "aadGroupTeamName": "Sample Group Team Name",
      "aadSecurityGroupId": "#{team.samplegroupteamname.aadSecurityGroupId}#",
      "dataverseSecurityRoleNames": [
        "#{team.samplegroupteamname.role}#"
      ]
    }
  ]
}
  1. คัดลอกตัวอย่างโค้ด JSON ก่อนหน้าไปยังไฟล์ใหม่ชื่อ customDeploymentSettings.json

  2. บันทึกไฟล์ในโฟลเดอร์ config ใน Git

ภาพหน้าจอของโครงสร้างโฟลเดอร์ config สำหรับการตั้งค่าการปรับใช้งานแบบกำหนดเอง

สร้าง JSON ตัวแปรสภาพแวดล้อมค่าเริ่มต้นในไฟล์การกำหนดค่าการปรับใช้งานแบบกำหนดเอง

คุณสมบัติ DefaultEnvironmentVariables ใน customDeploymentConfiguration.json ใช้ในไปป์ไลน์การส่งออกเพื่อตั้งค่าตัวแปรสภาพแวดล้อมเริ่มต้น Dataverse ในโซลูชันของคุณเมื่อมีการส่งออกและจัดเก็บโซลูชันในการควบคุมแหล่งที่มา

หมายเหตุ

การตั้งค่าตัวแปรสภาพแวดล้อมเริ่มต้นใช้เฉพาะเมื่อไปป์ไลน์ส่งออกได้รับการกำหนดค่าด้วยตัวแปรไปป์ไลน์ VerifyDefaultEnvironmentVariableValues = True

  1. คัดลอกชื่อสคีมาสำหรับตัวแปรสภาพแวดล้อมจากส่วนประกอบตัวแปรสภาพแวดล้อมในโซลูชันของคุณ

    ภาพหน้าจอของชื่อสคีมาตัวแปรสภาพแวดล้อมที่เน้นในฟิลด์ข้อความที่ปิดใช้งานด้านล่างป้ายกำกับชื่อ

  2. แก้ไขไฟล์ customDeploymentSettings.json และวางชื่อในคุณสมบัติ DefaultEnvironmentVariables ดังตัวอย่างโค้ดต่อไปนี้:

    {
      "DefaultEnvironmentVariables": [
        [ "cat_TextEnvironmentVariable", "#{defaultvariable.cat_TextEnvironmentVariable}#" ],
        [ "cat_DecimalEnvironmentVariable", "#{defaultvariable.cat_DecimalEnvironmentVariable}#" ],
        [ "cat_jsonEnvironmentVariable", "{\"name\":\"#{defaultvariable.cat_jsonEnvironmentVariable.name}#\"}" ]
      ]
    }
    
  3. หากคุณใช้ส่วนขยาย แทนที่โทเค็น และเพิ่มโทเค็นในการกำหนดค่าของคุณเหมือนในตัวอย่างก่อนหน้า ให้เปิดไปป์ไลน์สำหรับโซลูชันของคุณ แล้วเลือก แก้ไข>ตัวแปร

  4. บนหน้าจอ ตัวแปรไปป์ไลน์ สร้างตัวแปรไปป์ไลน์สำหรับแต่ละโทเค็นในการกำหนดค่าของคุณ เช่น defaultvariable.cat_TextEnvironmentVariable

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

สร้างไฟล์ JSON การกำหนดค่าพื้นที่ทำงานของกลุ่ม Microsoft Entra

คุณสมบัติ AadGroupCanvasConfiguration ในไฟล์ customDeploymentConfiguration.json แชร์แอปพื้นที่ทำงานในโซลูชันของคุณกับกลุ่ม Microsoft Entra เฉพาะหลังจากนำโซลูชันเข้าสู่สภาพแวดล้อมแล้ว

  1. คัดลอกรหัสสำหรับแอปพื้นที่ทำงานและกลุ่ม Microsoft Entra

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

      ภาพหน้าจอของชื่อสคีมาป้ายชื่อแอปพื้นที่ทำงาน ที่เน้นในฟิลด์ข้อความที่ปิดใช้งานด้านล่างป้ายกำกับชื่อ

    • รับรหัสกลุ่ม Microsoft Entra จากหน้า กลุ่ม ในพอร์ทัล Azure

  2. แก้ไขไฟล์ customDeploymentSettings.json และวางรหัสในคุณสมบัติ AadGroupCanvasConfiguration ดังตัวอย่างโค้ดต่อไปนี้:

    {
      "AadGroupCanvasConfiguration": [
        {
          "aadGroupId": "#{canvasshare.aadGroupId}#",
          "canvasNameInSolution": "cat_devopskitsamplecanvasapp_c7ec5",
          "roleName": "#{canvasshare.roleName}#"
        }
      ]
    }
    

    roleName สามารถเป็น CanView, CanViewWithShare และ CanEdit

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

  4. บนหน้าจอ ตัวแปรไปป์ไลน์ สร้างตัวแปรไปป์ไลน์สำหรับแต่ละโทเค็นในการกำหนดค่าของคุณ เช่น canvasshare.aadGroupId

  5. ตั้งค่าเป็นรหัสกลุ่ม Microsoft Entra ที่ต้องแชร์แอปสำหรับสภาพแวดล้อมเฉพาะนั้น

  6. เพื่อให้แน่ใจว่าค่าจะไม่ถูกบันทึกเป็นข้อความล้วน ให้เลือก เก็บค่านี้เป็นความลับ

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

สร้าง Microsoft Entra Group and Team Configuration JSON

คุณสมบัติ AadGroupTeamConfiguration ในไฟล์ customDeploymentConfiguration.json จะแมปทีมและบทบาท Dataverse กับกลุ่ม Microsoft Entra ในโซลูชันของคุณหลังจากที่นำโซลูชันเข้าสู่สภาพแวดล้อมแล้ว

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

  1. ชื่อทีม Dataverse สามารถเป็นทีมที่มีอยู่หรือทีมใหม่ที่จะสร้างใน Dataverse และแม็ปไปยังกลุ่ม Microsoft Entra หลังจากนำเข้าโซลูชันแล้ว

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

  3. รับรหัสกลุ่ม Microsoft Entra จากหน้า กลุ่ม ในพอร์ทัล Azure ตามที่ระบุไว้ในส่วนก่อนหน้า

  4. แก้ไขไฟล์ customDeploymentSettings.json และวาง JSON ในคุณสมบัติ AadGroupTeamConfiguration ดังตัวอย่างโค้ดต่อไปนี้:

    {
      "AadGroupTeamConfiguration": [
        {
          "aadGroupTeamName": "alm-accelerator-sample-solution",
          "aadSecurityGroupId": "#{team.aadSecurityGroupId}#",
          "dataverseSecurityRoleNames": [
            "ALM Accelerator Sample Role"
          ]
        }
      ]
    }
    
  5. หากคุณใช้ส่วนขยาย แทนที่โทเค็น และเพิ่มโทเค็นในการกำหนดค่าของคุณเหมือนในตัวอย่างก่อนหน้า ให้เปิดไปป์ไลน์สำหรับโซลูชันของคุณ แล้วเลือก แก้ไข>ตัวแปร

  6. บนหน้าจอ ตัวแปรไปป์ไลน์ สร้างตัวแปรไปป์ไลน์สำหรับแต่ละโทเค็นในการกำหนดค่าของคุณ เช่น team.aadSecurityGroupId

  7. ตั้งค่าเป็นรหัสกลุ่ม Microsoft Entra เพื่อเชื่อมโยงกับทีมใน Dataverse

  8. เพื่อให้แน่ใจว่าค่าจะไม่ถูกบันทึกเป็นข้อความล้วน ให้เลือก เก็บค่านี้เป็นความลับ

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

สร้าง JSON การเป็นเจ้าของส่วนประกอบของโซลูชัน

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

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

หมายเหตุ

ไปป์ไลน์ปัจจุบันใช้ความสามารถในการกำหนดความเป็นเจ้าของโฟลว์เท่านั้น

  1. รหัสชนิดของส่วนประกอบของโซลูชันขึ้นอยู่กับชนิดส่วนประกอบที่ระบุในการอ้างอิงเว็บ API solutioncomponent EntityType ตัวอย่างเช่น โฟลว์ Power Automate เป็นส่วนประกอบชนิด 29 ต้องระบุชนิดส่วนประกอบเป็นค่าจำนวนเต็ม โดยไม่มีเครื่องหมายอัญประกาศ

  2. รับชื่อเฉพาะของส่วนประกอบโฟลว์ Power Automate จากโซลูชันที่แยกออก

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

    ภาพหน้าจอของไฟล์ XML เวิร์กโฟลว์โซลูชันที่ยกเลิกการรวบรวม

    ภาพหน้าจอของ XML เวิร์กโฟลว์โซลูชันที่ยกเลิกการรวบรวมซึ่งแสดง WorkflowId

  3. รับที่อยู่อีเมลเจ้าของได้จากเรกคอร์ดของผู้ใช้ใน Dataverse หรือ Microsoft 365

  4. แก้ไขไฟล์ customDeploymentSettings.json และวาง JSON ในคุณสมบัติ AadGroupTeamConfiguration ดังตัวอย่างโค้ดต่อไปนี้:

    {
      "SolutionComponentOwnershipConfiguration": [
        {
          "solutionComponentType": 29,
          "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000",
          "ownerEmail": "#{owner.ownerEmail}#"
        },
        {
          "solutionComponentType": 29,
          "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000",
          "ownerEmail": "#{owner.ownerEmail}#"
        }
      ]
    }
    
  5. หากคุณใช้ส่วนขยาย แทนที่โทเค็น และเพิ่มโทเค็นในการกำหนดค่าของคุณเหมือนในตัวอย่างก่อนหน้า ให้เปิดไปป์ไลน์สำหรับโซลูชันของคุณ แล้วเลือก แก้ไข>ตัวแปร

  6. บนหน้าจอ ตัวแปรไปป์ไลน์ สร้างตัวแปรไปป์ไลน์สำหรับแต่ละโทเค็นในการกำหนดค่าของคุณ เช่น owner.ownerEmail

  7. ตั้งค่าเป็นที่อยู่อีเมลของเจ้าของส่วนประกอบ

  8. เพื่อให้แน่ใจว่าค่าจะไม่ถูกบันทึกเป็นข้อความล้วน ให้เลือก เก็บค่านี้เป็นความลับ

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

นำเข้าข้อมูลจากไปป์ไลน์ของคุณ

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

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

  1. ลอกแบบพื้นที่เก็บข้อมูล Azure DevOps โดยที่โซลูชันของคุณจะถูกควบคุมโดยแหล่งที่มา และคุณสร้างไปป์ไลน์โซลูชัน YAML ไปยังเครื่องในพื้นที่ของคุณ

  2. หากคุณยังไม่ได้สร้าง ให้สร้างไดเรกทอรีชื่อ config ในโฟลเดอร์ config ในโฟลเดอร์โซลูชันของคุณ

    ภาพหน้าจอของไดเรกทอรี config ภายใต้ไดเรกทอรีโซลูชันในที่เก็บข้อมูลภายใน

  3. ติดตั้งเครื่องมือย้ายการกำหนดค่า ทำตามคำแนะนำใน ดาวน์โหลดเครื่องมือจาก NuGet

  4. เปิดเครื่องมือการโอนย้ายการกำหนดค่า เลือก สร้างสคีมา แล้วเลือก ดำเนินการต่อ

  5. เข้าสู่ระบบผู้เช่าที่คุณต้องการส่งออกข้อมูลการกำหนดค่าของคุณ

  6. เลือกสภาพแวดล้อมของคุณ

  7. เลือกตารางและคอลัมน์ที่คุณต้องการส่งออก

  8. เลือก บันทึกและส่งออก บันทึกข้อมูลไปยังพาธของไดเรกทอรี config\ConfigurationMigrationData ในที่เก็บ Azure DevOps ภายในของคุณ ในโฟลเดอร์โซลูชันที่จะนำเข้าข้อมูลการกำหนดค่านี้

    หมายเหตุ

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

  9. เมื่อได้รับแจ้งให้ส่งออกข้อมูล ให้เลือก ใช่

  10. เลือกตำแหน่งเดียวกันสำหรับข้อมูลที่ส่งออกของคุณ เลือก บันทึก แล้วเลือก ส่งออกข้อมูล

  11. เมื่อการส่งออกเสร็จสิ้น ให้แตกไฟล์จากไฟล์ data.zip ไปที่ไดเรกทอรี ConfigurationMigrationData ลบไฟล์ data.zip และ SampleData.xml

    ภาพหน้าจอของข้อมูลการย้ายการกำหนดค่าที่แตกไฟล์ในไดเรกทอรี ConfigurationMigrationData

  12. ยอมรับการเปลี่ยนแปลงข้อมูลของคุณไปยัง Azure DevOps

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