หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
คุณสามารถอนุญาตให้เอนทิตีเสมือนเข้าร่วมในเหตุการณ์ไปป์ไลน์ Event Framework แบบอะซิงโครนัสและในตัวเชื่อมต่อ Dataverse ของ PowerAutomate เมื่อมีการเพิ่ม แถว แก้ไข หรือลบ ทริกเกอร์ เปิดใช้งานความสามารถนี้เป็นส่วนหนึ่งของเหตุการณ์ทางธุรกิจ Dataverse ข้อมูลเพิ่มเติม: เหตุการณ์ทางธุรกิจของ Microsoft Dataverse
หากไม่มีการกําหนดค่าที่อธิบายไว้ในบทความนี้ เอนทิตีเสมือนส่วนใหญ่ไม่ได้เข้าร่วมในไปป์ไลน์ Event Framework เช่นเอนทิตีอื่น เนื่องจากเอนทิตีเสมือนไม่ได้เข้าร่วมในไปป์ไลน์เหตุการณ์ คุณไม่สามารถลงทะเบียนขั้นตอนปลั๊กอินกับเหตุการณ์สร้าง อัปเดต และลบ (CUD) ที่เกิดขึ้น และแม้ว่าเหตุการณ์ CUD จะปรากฏสําหรับเอนทิตีเหล่านี้ในตัวเชื่อมต่อข้อมูล Power Automate แต่ข้อผิดพลาดจะเกิดขึ้นเมื่อผู้คนพยายามบันทึกโฟลว์ที่ใช้
ทั้งนี้เนื่องจากเอนทิตีเสมือนแสดงข้อมูลที่จัดเก็บไว้ในแหล่งข้อมูลภายนอก Dataverse มีสิทธิ์เข้าถึงแหล่งข้อมูลนั้นในฐานะไคลเอ็นต์ แต่ระบบอื่นสามารถอัปเดตข้อมูลนั้นได้ตลอดเวลาโดยไม่ต้องผ่านเฟรมเวิร์กเหตุการณ์ Dataverse
มีสองขั้นตอนในการเปิดใช้งานดังนี้:
การกําหนดค่าข้อมูลในตารางที่เรียกว่า เมตาดาต้าของเอนทิตีเสมือน เมื่อมีการกําหนดค่าข้อมูลในตารางนี้ให้เปิดใช้งาน ชุด API ใหม่แสดงวิธีสําหรับระบบภายนอกเพื่อแจ้ง Dataverse เมื่อมีเหตุการณ์ CUD เกิดขึ้น
เมื่อมีแถวเมตาดาต้าของเอนทิตีเสมือนที่เชื่อมโยงกับ เมตาดาต้าของเอนทิตี้เมตาดาต้าสําหรับ ตารางเสมือน การตั้งค่าสามรายการต่อไปนี้สามารถควบคุมได้ว่าแหล่งข้อมูลภายนอกสามารถแจ้งเตือนตารางเสมือนของคุณได้หรือไม่
เมื่อเปิดใช้งานทีละรายการโดยใช้เมตาดาต้า
IsOnExternalCreatedEnabledIsOnExternalDeletedEnabledของเอนทิตีเสมือน และIsOnExternalUpdatedEnabledคุณสมบัติบูลีน การดําเนินการที่ผูกไว้ต่อไปนี้จะพร้อมใช้งานสําหรับการเรียกโดยบริการภายนอกการดําเนินการ/ข้อความ คำอธิบาย OnExternalCreatedประกอบด้วยข้อมูลเกี่ยวกับเรกคอร์ดหนึ่งที่สร้างขึ้นในระบบภายนอกที่เชื่อมต่อซึ่งแสดงเป็นตารางเสมือนใน Dataverse OnExternalUpdatedประกอบด้วยข้อมูลเกี่ยวกับเรกคอร์ดที่มีการอัปเดตในระบบภายนอกที่นำเสนอเป็นตารางเสมือนใน Dataverse OnExternalDeletedประกอบด้วยข้อมูลเกี่ยวกับเรกคอร์ดที่ถูกลบในระบบภายนอกซึ่งแสดงเป็นตารางเสมือนใน Dataverse ระบบภายนอกที่ควบคุมข้อมูลต้องส่งคำขอ HTTP ที่รับรองความถูกต้องไปยัง Dataverse โดยใช้ API ที่มีข้อมูลใน Virtual Entity Metadata โดยทั่วไปบัญชีบริการหลักที่ได้รับการรับรองความถูกต้องจะดําเนินการเรียกใช้นี้ ข้อมูลเพิ่มเติม: สร้างแอปพลิเคชันเว็บที่ใช้การรับรองความถูกต้องแบบเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์ (S2S)
แต่แอปพลิเคชันหรือผู้ใช้ใด ๆ ที่สามารถทําการเรียกใช้ไปยัง Dataverse สามารถส่งคําขอ http ที่จําเป็นเพื่อแจ้งให้ Dataverse ที่เหตุการณ์เกิดขึ้น
Note
เอนทิตีเสมือนที่ใช้ตัวให้บริการ OData และแหล่งข้อมูลวันที่ที่ไม่ใช่เชิงสัมพันธ์อาจอนุญาตให้ลงทะเบียนขั้นตอนปลั๊กอินบางอย่างตัวอย่างเช่นเฉพาะในเหตุการณ์ภายนอกธุรกรรม แต่เหตุการณ์เหล่านี้จะไม่พร้อมใช้งานสําหรับใช้กับตัวเชื่อมต่อ Dataverse ของ Power Automate ไม่มีการเปลี่ยนแปลงลักษณะการทํางานนี้ แต่สําหรับการแจ้งเตือนเหตุการณ์ที่เชื่อถือได้มากขึ้น ขอแนะนําให้ใช้วิธีการที่อธิบายไว้ในหัวข้อนี้
วิธีเปิดใช้งานการแจ้งเตือน API สําหรับตารางเสมือน
คุณสามารถเปิดใช้งานการแจ้งเตือน API ได้โดยการกําหนดค่าด้วยตนเองในพอร์ทัลผู้สร้าง (make.powerapps.com/) หรือใช้รหัส
เปิดใช้งานด้วยตนเองโดยใช้พอร์ทัลผู้สร้าง
สมมติว่าเรามีตารางเสมือนบุคคลที่มีคุณสมบัติเหล่านี้ คุณสมบัติชื่อคือnew_People
ใน Power Apps (make.powerapps.com) ภายในโซลูชันของคุณ เลือก+ใหม่แล้วเลือกเมตาดาต้าเอนทิตีเสมือน
ซึ่งจะเปิดฟอร์มต่อไปนี้:
กรอกแบบฟอร์ม ตั้งค่า ส่วนขยายเอนทิตี Id เป็นชื่อของตารางเสมือนของคุณ คุณไม่จําเป็นต้องเปิดใช้งานทั้งสามข้อความ คุณสามารถตั้งค่าอย่างน้อยหนึ่งตัวและกลับมาเพื่อเปิดใช้งานส่วนที่เหลือในภายหลัง
เมื่อคุณเปิดใช้งานข้อความเหล่านี้ คุณสามารถสังเกตและยืนยันว่ามีอะไรเพิ่มเข้ามาโดยใช้ขั้นตอนในมุมมองข้อความที่สร้างขึ้นเพื่อสนับสนุนตารางเสมือนของคุณ
ตั้งค่าคุณสมบัติที่มีการจัดการโดยใช้พอร์ทัลผู้สร้าง
หากคุณไม่ต้องการให้ผู้ที่ติดตั้งโซลูชันที่มีการจัดการของคุณเปลี่ยนลักษณะการทํางานของเมตาดาต้าเอนทิตีเสมือน คุณควรตั้งค่าคุณสมบัติที่มีการจัดการเพื่อป้องกันไม่ให้ใช้ขั้นตอนต่อไปนี้
ในโซลูชันของคุณ เลือกเมตาดาต้าของเอนทิตีเสมือนและเลือกจุดไข่ปลา (...) แล้วเลือกคุณสมบัติที่มีการจัดการ
ในบานหน้าต่าง คุณสมบัติที่มีการจัดการ ให้ยกเลิกการเลือก อนุญาตให้กําหนดค่าเอง และกด เสร็จสิ้น
การตั้งค่านี้จะไม่ทําสิ่งใดจนกว่าเรกคอร์ดเมตาดาต้าของเอนทิตีเสมือนจะรวมอยู่ในโซลูชันที่มีการจัดการ
เปิดใช้งานด้วยรหัส
คุณอาจต้องการสร้างเมตาดาต้าเอนทิตีเสมือนสําหรับเอนทิตีเสมือนของคุณโดยอัตโนมัติ
ตาราง VirtualEntityMetadata มีคอลัมน์ต่อไปนี้ที่คุณสามารถตั้งค่า:
| ชื่อ Schema ชื่อตรรกะ |
ชื่อที่ใช้แสดง | ประเภท | คำอธิบาย |
|---|---|---|---|
ExtensionOfRecordIdextensionofrecordid |
เอนทิตีเสมือน | การค้นหา | ชื่อของเอนทิตีเสมือนที่มีการตั้งค่าเหล่านี้ |
IsCustomizableiscustomiable |
กำหนดเองได้ | ManagedProperty | ควบคุมว่าสามารถเปลี่ยนหรือลบเมตาดาต้าของเอนทิตีเสมือนเมื่อรวมอยู่ในโซลูชันที่มีการจัดการหรือไม่ |
IsOnExternalCreatedEnabledisonexternalcreatedenabled |
เปิดใช้งานข้อความสร้างภายนอก | แบบบูลีน | เปิดใช้งานข้อความเพื่อส่งข้อมูลเกี่ยวกับเรกคอร์ดใหม่ที่สร้างขึ้นในแหล่งข้อมูลภายนอก |
IsOnExternalDeletedEnabledisonexternaldeletedenabled |
เปิดใช้งานการลบข้อความจากระบบภายนอก | แบบบูลีน | เปิดใช้งานข้อความเพื่อส่งข้อมูลเกี่ยวกับระเบียนที่ถูกลบในแหล่งข้อมูลภายนอก |
IsOnExternalUpdatedEnabledisonexternalupdatedenabled |
เปิดใช้งานข้อความอัปเดตภายนอก | แบบบูลีน | เปิดใช้งานข้อความเพื่อส่งข้อมูลเกี่ยวกับระเบียนที่ปรับปรุงแล้วในแหล่งข้อมูลภายนอก |
Namename |
ชื่อ | สตริง | ชื่อของการตั้งค่า |
VirtualEntityMetadataIdvirtualentitymetadataid |
VirtualEntityMetadata | Uniqueidentifier | รหัสเฉพาะของอินสแตนซ์เอนทิตี |
เมื่อสร้างคอมโพเนนต์ของโซลูชันชนิดเหล่านี้ เราขอแนะนําให้คุณตั้งค่าคุณสมบัติ การจัดการ IsCustomizable ให้เป็น false เว้นแต่ว่าคุณต้องการอนุญาตให้ผู้ที่ติดตั้งโซลูชันที่มีการจัดการของคุณสามารถเปลี่ยนแปลงการตั้งค่าเหล่านี้ได้
นอกจากนี้เราขอแนะนําให้คุณเพิ่มเรกคอร์ดเมตาดาต้าของเอนทิตีเสมือน** ไปยังโซลูชันเฉพาะเมื่อคุณสร้าง ในตัวอย่างทั้งสองด้านล่าง คุณจะเห็นว่า Solution.UniqueName ถูกส่งผ่านโดยใช้คำขอที่สร้างเรกคอร์ด
การใช้ API เว็บ
เมื่อคุณใช้ API เว็บ งานแรกคือการรับ MetadataId ของตารางเสมือน ตัวอย่างต่อไปนี้จะส่งกลับ MetadataId สำหรับเอนทิตีเสมือนที่มีชื่อ new_people
ขอร้อง:
GET [Organization Uri]/api/data/v9.1/EntityDefinitions(LogicalName='new_people')?$select=MetadataId HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Authorization: Bearer [REDACTED]
การตอบสนอง :
HTTP/1.1 200 OK
{
"@odata.context": "[Organization Uri]/api/data/v9.1/$metadata#EntityDefinitions(MetadataId)/$entity",
"MetadataId": "b198e6f3-3dd6-4c0b-9570-702f0c10d577"
}
จากนั้นให้สร้างเรกคอร์ดเมตาดาต้าของเอนทิตีเสมือนในขณะที่เชื่อมโยงเข้ากับ Entity ชนิดเอนทิตีโดยใช้ การ MetadataId เรียกใช้ในขั้นตอนแรก
โปรดสังเกตการใช้ส่วนหัว MSCRM.SolutionUniqueName ที่ตั้งค่าให้มีค่าเท่ากับ Solution.UniqueName ซึ่งจะเพิ่มเรกคอร์ดเมตาดาต้าของเอนทิตีเสมือนไปยังโซลูชันเมื่อสร้างขึ้น ข้อมูลเพิ่มเติม: ส่วนหัว HTTP
ขอร้อง:
POST [Organization Uri]/api/data/v9.1/virtualentitymetadatas HTTP/1.1
MSCRM.SolutionUniqueName: YourSolutionUniqueName
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Authorization: Bearer [REDACTED]
Content-Type: application/json; charset=utf-8
{
"@odata.type": "Microsoft.Dynamics.CRM.virtualentitymetadata",
"name": "Person Virtual Metadata",
"iscustomizable": {
"@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty",
"Value": false,
"CanBeChanged": false
},
"isonexternalcreatedenabled": true,
"isonexternaldeletedenabled": true,
"isonexternalupdatedenabled": true,
"extensionofrecordid@odata.bind": "entities(b198e6f3-3dd6-4c0b-9570-702f0c10d577)"
}
การตอบสนอง :
HTTP/1.1 204 No Content
การใช้ SDK สําหรับ .NET
ไม่ว่าคุณจะใช้ประเภทที่ถูกผูกพันก่อนหรือหลัง งานแรกคือการดึงข้อมูล MetadataId ของตาราง ซึ่งจะถูกดึงในลักษณะเดียวกันสำหรับทั้งสองประเภท ในกรณีนี้สําหรับตารางเสมือนที่new_peopleชื่อว่าโดยใช้ CrmServiceClient หรือสามารถใช้คลาส ServiceClient ได้
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
var retrieveEntityRequest = new RetrieveEntityRequest
{
LogicalName = "new_people",
EntityFilters = EntityFilters.Entity
};
var retrieveEntityResponse = (RetrieveEntityResponse)service.Execute(retrieveEntityRequest);
var entityId = retrieveEntityResponse.EntityMetadata.MetadataId;
การใช้ชนิดที่กำหนดล่วงหน้า
ด้วยประเภท early-bound คุณสามารถใช้VirtualEntityMetadataคลาสที่สร้างขึ้นโดยใช้คําสั่งการสร้างแบบจําลอง Pac ของ Power Platform CLI ข้อมูลเพิ่มเติม: การเขียนโปรแกรม Late-bound และ Early-bound โดยใช้ SDK สําหรับ .NET
var virtualEntityMetadata = new VirtualEntityMetadata
{
Name = "Person Virtual Metadata",
ExtensionOfRecordId = new EntityReference("entity", entityId.Value),
IsCustomizable = new BooleanManagedProperty(false),
IsOnExternalCreatedEnabled = true,
IsOnExternalDeletedEnabled = true,
IsOnExternalUpdatedEnabled = true,
};
การใช้ชนิดผูกภายหลัง
มีสองวิธีในการสร้างอินสแตนซ์เมตาดาต้าของเอนทิตีเสมือนโดยใช้ชนิด late-bound ซึ่งเทียบเท่ากัน:
var virtualEntityMetadata = new Entity("virtualentitymetadata");
virtualEntityMetadata["name"] = "Person Virtual Metadata";
virtualEntityMetadata["extensionofrecordid"] = new EntityReference("entity", entityId.Value);
virtualEntityMetadata["iscustomizable"] = new BooleanManagedProperty(false);
virtualEntityMetadata["isonexternalcreatedenabled"] = true;
virtualEntityMetadata["isonexternaldeletedenabled"] = true;
virtualEntityMetadata["isonexternalupdatedenabled"] = true;
หรือ:
var virtualEntityMetadata = new Entity("virtualentitymetadata") {
Attributes = new AttributeCollection {
{ "name","Person Virtual Metadata" },
{ "extensionofrecordid", new EntityReference("entity", entityId.Value)},
{ "iscustomizable",new BooleanManagedProperty(false)},
{ "isonexternalcreatedenabled",true },
{ "isonexternaldeletedenabled",true },
{ "isonexternalupdatedenabled",true}
}
};
การสร้างระเบียน
เมื่อสร้างเรกคอร์ด ให้ใช้เมธอด CreateRequest Class แทนที่จะเป็น เมธอด IOrganizationService.Create เพื่อให้คุณสามารถรวม SolutionUniqueName พารามิเตอร์ที่เลือกได้ ซึ่งจะเพิ่มระเบียนลงในโซลูชันของคุณเมื่อคุณสร้าง ข้อมูลเพิ่มเติม: การส่งพารามิเตอร์แบบเลือกได้ด้วยคำขอ
var createRequest = new CreateRequest
{
Target = virtualEntityMetadata
};
createRequest["SolutionUniqueName"] = "YourSolutionUniqueName";
service.Execute(createRequest);
ดูข้อความที่สร้างขึ้นเพื่อสนับสนุนตารางเสมือนของคุณ
วิธีง่ายๆ ในการตรวจสอบว่ามีข้อความที่คุณเปิดใช้งานแล้วนั้นมีอยู่จริงคือการตรวจสอบเอกสารบริการ $metadata ของ Web API
คุณสามารถทําสิ่งนี้ได้ในเบราว์เซอร์ของคุณ ใช้ URL สําหรับองค์กรของคุณ พิมพ์ต่อไปนี้ลงในเบราว์เซอร์ของคุณ:
[Organization Uri]/api/data/v9.2/$metadata
นี่เป็นเอกสาร XML ขนาดใหญ่ แต่คุณสามารถค้นหา 'OnExternalCreated' และค้นหาข้อกําหนดของการดําเนินการ ในกรณีนี้สําหรับ new_people ตารางเสมือนได้
<Action Name="OnExternalCreated" IsBound="true">
<Parameter Name="entityset" Type="Collection(mscrm.new_people)" Nullable="false"/>
<Parameter Name="Target" Type="mscrm.crmbaseentity" Nullable="false"/>
</Action>
คุณจะเห็นว่า นี่คือการดําเนินการ OData ที่ new_people ผูกไว้กับชุดเอนทิตี
คุณจะพบการดําเนินการที่คล้ายกันสําหรับ OnExternalDeletedและ OnExternalUpdated:
<Action Name="OnExternalDeleted" IsBound="true">
<Parameter Name="entityset" Type="Collection(mscrm.new_people)" Nullable="false"/>
<Parameter Name="Target" Type="mscrm.crmbaseentity" Nullable="false"/>
</Action>
<Action Name="OnExternalUpdated" IsBound="true">
<Parameter Name="entityset" Type="Collection(mscrm.new_people)" Nullable="false"/>
<Parameter Name="Target" Type="mscrm.crmbaseentity" Nullable="false"/>
</Action>
ดูข้อความโดยใช้เครื่องมือการลงทะเบียนปลั๊กอิน
เมื่อคุณลงทะเบียนขั้นตอนปลั๊กอินโดยใช้เครื่องมือลงทะเบียนปลั๊กอิน คุณจะพบข้อความเหล่านี้
ใช้ข้อความเพื่อแจ้งให้ Dataverse ทราบเกี่ยวกับการเปลี่ยนแปลง
เมื่อต้องการแจ้ง Dataverse ของการเปลี่ยนแปลง คุณต้องเรียกใช้ API ที่เหมาะสม คุณสามารถใช้ Dataverse Web API หรือ SDK สําหรับ .NET อย่างใดอย่างหนึ่ง
ก่อนที่จะใช้ข้อความเหล่านี้ คุณอาจต้องการใช้ขั้นตอนการอธิบายในการ ดูข้อความที่สร้างขึ้นเพื่อสนับสนุนตารางเสมือนของคุณ เพื่อยืนยันว่ามีอยู่
การใช้ API เว็บ
เนื่องจาก API เหล่านี้เป็นการดําเนินการ OData ที่ผูกกับคอลเลกชันตาราง คุณสามารถทําตามรูปแบบที่ระบุไว้ที่นี่: ใช้การดําเนินการ> Api เว็บที่ผูก>การดําเนินการที่ผูกไว้กับคอลเลกชันตาราง ต่อไปนี้เป็นตัวอย่างที่แสดงการใช้ new_people ตารางเสมือน
ถ้าระบบการเรียกใช้ทราบค่า ID ควรรวมไว้เสมอ
อินสแตนซ์ของเอนทิตีที่ส่งผ่านโดยใช้พารามิเตอร์ เป้าหมาย ต้องมีการตั้งค่าคุณสมบัติคําอธิบายประกอบที่เหมาะสม @odata.type เพื่อกําหนดชนิดของเอนทิตี ถ้าไม่ได้รวมไว้ ข้อผิดพลาดจะถูกส่งกลับ
การเรียกใช้งานเหล่านี้ควรคืนค่า 204: No Content เสมอ
OnExternalCreated
สําหรับการดําเนินการนี้ ค่าควรรวมคุณสมบัติทั้งหมดที่ตั้งค่าเมื่อสร้างระเบียน
POST [Organization Uri]/api/data/v9.1/new_peoples/Microsoft.Dynamics.CRM.OnExternalCreated HTTP/1.1
Authorization: Bearer [REDACTED]
Content-Type: application/json
{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.new_people",
"new_name": "John",
"new_age": 23,
"new_lastname": "Doe",
"new_peopleid": "f6f5896b-bf08-455c-9bd3-526760cb3685"
}
}
OnExternalUpdated
สําหรับการดําเนินการนี้ ควรรวมเฉพาะคุณสมบัติที่มีการเปลี่ยนแปลงเท่านั้น
POST [Organization Uri]/api/data/v9.1/new_peoples/Microsoft.Dynamics.CRM.OnExternalUpdated HTTP/1.1
Authorization: Bearer [REDACTED]
Content-Type: application/json
{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.new_people",
"new_age": 24,
"new_peopleid": "f6f5896b-bf08-455c-9bd3-526760cb3685"
}
}
OnExternalDeleted
สําหรับการดําเนินการนี้ จําเป็นต้องมีตัวระบุที่ไม่ซ้ํากันสําหรับเรกคอร์ดเท่านั้น
POST [Organization Uri]/api/data/v9.1/new_peoples/Microsoft.Dynamics.CRM.OnExternalDeleted HTTP/1.1
Authorization: Bearer [REDACTED]
Content-Type: application/json
{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.new_people",
"new_peopleid": "f6f5896b-bf08-455c-9bd3-526760cb3685"
}
}
การใช้ SDK สําหรับ .NET
เมื่อใช้ SDK สําหรับ .NET คุณสามารถใช้ชนิดการผูกตั้งแต่ต้นหรือช้าได้ ข้อมูลเพิ่มเติม: การเขียนโปรแกรม Late-bound และ Early-bound โดยใช้ SDK สําหรับ .NET
ชนิดข้อมูลที่กำหนดล่วงหน้า
ตัวอย่างนี้ใช้ CrmServiceClient กับชนิด early-bound แม้ว่าจะ ServiceClient สามารถใช้ได้เช่นกัน
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
//OnExternalCreated
var createPerson = new new_people
{
new_peopleId = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685"),
new_name = "John",
new_Age = 23,
new_LastName = "Doe"
};
var createRequest = new OnExternalCreatedRequest
{
Target = createPerson
};
service.Execute(createRequest);
//OnExternalUpdated
var updatePerson = new new_people
{
new_peopleId = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685"),
new_Age = 24
};
var updateRequest = new OnExternalUpdatedRequest
{
Target = updatePerson
};
service.Execute(updateRequest);
//OnExternalDeleted
var deletePerson = new new_people
{
new_peopleId = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685")
};
var deleteRequest = new OnExternalDeletedRequest
{
Target = deletePerson
};
ชนิดผูกภายหลัง
ตัวอย่างนี้ใช้ CrmServiceClient กับชนิด late-bound แม้ว่าจะ ServiceClient สามารถใช้ได้เช่นกัน
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
//OnExternalCreated
Entity createPerson = new Entity("new_people");
createPerson["new_peopleid"] = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685");
createPerson["new_name"] = "John";
createPerson["new_age"] = 23;
createPerson["new_lastname"] = "Doe";
var orgCreateRequest = new OrganizationRequest("OnExternalCreated");
orgCreateRequest["Target"] = createPerson;
service.Execute(orgCreateRequest);
//OnExternalUpdated
Entity updatePerson = new Entity("new_people");
updatePerson["new_peopleid"] = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685");
updatePerson["new_age"] = 24;
var orgUpdateRequest = new OrganizationRequest("OnExternalUpdated");
orgUpdateRequest["Target"] = updatePerson;
service.Execute(orgUpdateRequest);
//OnExternalDeleted
Entity deletePerson = new Entity("new_people");
deletePerson["new_peopleid"] = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685");
var orgDeleteRequest = new OrganizationRequest("OnExternalDeleted");
orgDeleteRequest["Target"] = deletePerson;
service.Execute(orgDeleteRequest);
ดูเพิ่มเติม
เฟรมเวิร์กเหตุการณ์
เหตุการณ์ทางธุรกิจของ Microsoft Dataverse
เริ่มต้นใช้งานตารางเสมือน (เอนทิตี)