หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
คุณสามารถขยายฟังก์ชันการทํางานของ Dynamics 365 Customer Engagement (on-premises) ได้ด้วยการสร้างข้อความแบบกําหนดเองที่เรียกว่าการดําเนินการ การดําเนินการเหล่านี้จะมีคลาสคําขอ/การตอบกลับที่เกี่ยวข้อง และการดําเนินการ Web API จะถูกสร้างขึ้น โดยทั่วไปการดําเนินการจะใช้เพื่อเพิ่มฟังก์ชันเฉพาะโดเมนใหม่ให้กับบริการเว็บขององค์กร หรือเพื่อรวมคําขอข้อความบริการเว็บขององค์กรหลายรายการไว้ในคําขอเดียว ตัวอย่างเช่น ในศูนย์บริการฝ่ายสนับสนุน คุณอาจต้องการรวมข้อความ สร้าง มอบหมาย และ ตั้งค่าสถานะ เป็นข้อความ ยกระดับ ใหม่ข้อความเดียว
ตรรกะทางธุรกิจของการดําเนินการถูกนําไปใช้โดยใช้เวิร์กโฟลว์ เมื่อคุณสร้างการดําเนินการ เวิร์กโฟลว์แบบเรียลไทม์ที่เกี่ยวข้องจะถูกลงทะเบียนโดยอัตโนมัติเพื่อดําเนินการในขั้นตอนที่ 30 (การดําเนินการหลัก) ของไปป์ไลน์การดําเนินการ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับเวิร์กโฟลว์แบบเรียลไทม์ โปรดดู ชนิดเวิร์กโฟลว์
ในขณะที่การดําเนินการได้รับการสนับสนุนทั้งใน Dynamics 365 for Customer Engagement การสร้างการดําเนินการในโค้ด (โดยใช้ XAML) ได้รับการสนับสนุนโดยการปรับใช้ภายในองค์กรและ IFD เท่านั้น ลูกค้าออนไลน์ต้องสร้างการดําเนินการแบบโต้ตอบในเว็บแอปพลิเคชัน
เกี่ยวกับคําจํากัดความของการดําเนินการ
การดำเนินการถูกกำหนดโดยใช้บันทึกเอนทิตี Workflow คล้ายกับเวิร์กโฟลว์แบบเรียลไทม์ ประเด็นสําคัญบางประการของการกระทําคืออะไรและทํางานอย่างไรอยู่ในรายการต่อไปนี้:
สามารถเชื่อมโยงกับเอนทิตีเดียวหรือเป็นส่วนกลาง (ไม่เชื่อมโยงกับเอนทิตีใดเอนทิตีหนึ่ง)
ดำเนินการในขั้นตอนที่ 30 ของการดำเนินงานหลักในสายการประมวลผลเหตุการณ์
รองรับการเรียกใช้ปลั๊กอินที่ลงทะเบียนในขั้นตอนก่อนดําเนินการและหลังการดําเนินการของไปป์ไลน์การดําเนินการเหตุการณ์
สามารถลงทะเบียนปลั๊กอินในขั้นตอนก่อนการทํางานหรือหลังการทํางานได้เฉพาะเมื่อสถานะการดําเนินการเป็น เปิดใช้งาน
พร้อมใช้งานผ่าน Web API หรือเอ็นด์พอยต์
organization.svcและorganization.svc/webสามารถดําเนินการได้โดยใช้ทรัพยากรบนเว็บ JavaScript ข้อมูลเพิ่มเติม: ดําเนินการการดําเนินการโดยใช้ทรัพยากรบนเว็บ JavaScript
ทํางานภายใต้บริบทความปลอดภัยของผู้ใช้ที่โทรเสมอ
ไม่สามารถลบบันทึกได้เมื่อยังมีขั้นตอนการทำงานของปลั๊กอินที่ลงทะเบียนอยู่ในปฏิบัติการ
สามารถเลือกเข้าร่วมในธุรกรรมฐานข้อมูลปัจจุบันผ่านการตั้งค่าการกําหนดค่า
ไม่รองรับขอบเขตที่การดําเนินการถูกจํากัดไว้เฉพาะผู้ใช้ หน่วยธุรกิจ หรือองค์กร การดําเนินการจะดําเนินการในขอบเขตขององค์กรเสมอ
รองรับอาร์กิวเมนต์อินพุตและเอาต์พุต
รองรับการตรวจสอบการเปลี่ยนแปลงข้อมูล
ไม่รองรับไคลเอ็นต์ออฟไลน์
สามารถเรียกใช้โดยการเรียกใช้เมธอดบริการเว็บ
สามารถเรียกใช้ได้โดยตรงจากเวิร์กโฟลว์
จำเป็นต้องมีสิทธิ์
จําเป็นต้องมีสิทธิ์ด้านความปลอดภัยที่ชื่อ เปิดใช้งานกระบวนการแบบเรียลไทม์ (prvActivateSynchronousWorkflow) เพื่อเปิดใช้งานเวิร์กโฟลว์แบบเรียลไทม์ของการดําเนินการเพื่อให้สามารถดําเนินการได้ นี่เป็นการเพิ่มเติมจากสิทธิ์ที่จําเป็นในการสร้างเวิร์กโฟลว์
สร้างการดําเนินการโดยใช้โค้ด
โดยปกติ การดําเนินการจะถูกนําไปใช้โดยตัวกําหนดค่าโดยใช้ตัวออกแบบเวิร์กโฟลว์แบบโต้ตอบของเว็บแอปพลิเคชัน อย่างไรก็ตาม นักพัฒนาสามารถใช้การดําเนินการโดยใช้การเรียก SDK และปรับใช้กับเซิร์ฟเวอร์ภายในองค์กรหรือ IFD ได้หากต้องการ
แอตทริบิวต์เอนทิตีเวิร์กโฟลว์ที่ใช้สําหรับการดําเนินการจะอธิบายไว้ในตารางต่อไปนี้ โค้ดตัวอย่างสําหรับเวิร์กโฟลว์แบบเรียลไทม์สามารถพบได้ในหัวข้อ สร้างเวิร์กโฟลว์แบบเรียลไทม์ในโค้ด
| แอตทริบิวต์เวิร์กโฟล | คำอธิบาย |
|---|---|
Category |
ตั้งค่าเป็น WorkflowCategory.CustomOperation. |
SyncWorkflowLogOnError |
เมื่อข้อผิดพลาด trueจะถูกบันทึกลงใน ProcessSession ระเบียน ซึ่งแตกต่างจากเวิร์กโฟลว์แบบอะซิงโครนัส การดําเนินการเวิร์กโฟลว์แบบเรียลไทม์จะไม่ถูกบันทึกลงใน System Job เรกคอร์ด |
Mode |
ไม่ใช้ |
IsTransacted |
ตั้งค่าเป็น true ถ้าการกระทําควรมีส่วนร่วมในธุรกรรมฐานข้อมูล มิฉะนั้น false. ค่าเริ่มต้นเป็น true |
UniqueName |
ชื่อเฉพาะสำหรับกิจกรรม ชื่อประกอบด้วยคํานําหน้าผู้เผยแพร่โฆษณา + "_" + ชื่อที่ไม่ซ้ํากัน |
Xaml |
ตั้งค่าเป็นโค้ด XAML ที่กําหนดเวิร์กโฟลว์แบบเรียลไทม์ของการดําเนินการของคุณ ไม่มีวิธีที่จะอ้างถึงเวิร์กโฟลว์แบบเรียลไทม์อื่นที่มีอยู่ |
เพิ่มอาร์กิวเมนต์อินพุตและเอาต์พุต
การดําเนินการสนับสนุนอาร์กิวเมนต์อินพุตและเอาต์พุตที่สามารถเพิ่มลงในเวิร์กโฟลว์โดยใช้ชนิด DynamicActivityProperty เมื่อคุณเพิ่มอาร์กิวเมนต์เหล่านี้ลงในเวิร์กโฟลว์ของแอคชัน อาร์กิวเมนต์เหล่านี้จะกลายเป็นคุณสมบัติในคลาสการร้องขอข้อความและการตอบกลับที่เชื่อมโยงกับแอ็คชันนั้น ตัวอย่างเช่น ตัวอย่างต่อไปนี้แสดงโค้ด C# และ XAML สําหรับอาร์กิวเมนต์อินพุตสองอาร์กิวเมนต์และอาร์กิวเมนต์เอาต์พุตหนึ่งอาร์กิวเมนต์
DynamicActivityProperty inputProperty1 = new DynamicActivityProperty { Name = "Subject", Type = typeof(InArgument<string>) };
DynamicActivityProperty inputProperty2 = new DynamicActivityProperty { Name = "EntityCollection", Type = typeof(InArgument<EntityCollection>) };
DynamicActivityProperty outputProperty1 = new DynamicActivityProperty { Name = "Output", Type = typeof(OutArgument<string>) };
inputProperty1.Attributes.Add(new ArgumentRequiredAttribute(true));
inputProperty1.Attributes.Add(new ArgumentDescriptionAttribute("The subject"));
inputProperty1.Attributes.Add(new ArgumentDirectionAttribute(Microsoft.Xrm.Sdk.Workflow.ArgumentDirection.Input));
inputProperty2.Attributes.Add(new ArgumentRequiredAttribute(false));
inputProperty2.Attributes.Add(new ArgumentDescriptionAttribute("The entity collection"));
inputProperty2.Attributes.Add(new ArgumentDirectionAttribute(Microsoft.Xrm.Sdk.Workflow.ArgumentDirection.Input));
outputProperty1.Attributes.Add(new ArgumentRequiredAttribute(false));
outputProperty1.Attributes.Add(new ArgumentDescriptionAttribute("The output"));
outputProperty1.Attributes.Add(new ArgumentDirectionAttribute(Microsoft.Xrm.Sdk.Workflow.ArgumentDirection.Output));
<x:Property Name="Subject"
Type="InArgument(x:String)">
<x:Property.Attributes>
<mxsw:ArgumentRequiredAttribute Value="True" />
<mxsw:ArgumentTargetAttribute Value="False" />
<mxsw:ArgumentDescriptionAttribute Value="The subject " />
<mxsw:ArgumentDirectionAttribute Value="Input" />
<mxsw:ArgumentEntityAttribute Value="" />
</x:Property.Attributes>
</x:Property>
<x:Property Name="EntityCollection"
Type="InArgument(mxs:EntityCollection)">
<x:Property.Attributes>
<mxsw:ArgumentRequiredAttribute Value="False" />
<mxsw:ArgumentTargetAttribute Value="False" />
<mxsw:ArgumentDescriptionAttribute Value="The entity collection" />
<mxsw:ArgumentDirectionAttribute Value="Input" />
<mxsw:ArgumentEntityAttribute Value="" />
</x:Property.Attributes>
</x:Property>
<x:Property Name="Output"
Type="OutArgument(x:String)">
<x:Property.Attributes>
<mxsw:ArgumentRequiredAttribute Value="False" />
<mxsw:ArgumentTargetAttribute Value="False" />
<mxsw:ArgumentDescriptionAttribute Value="The output" />
<mxsw:ArgumentDirectionAttribute Value="Output" />
<mxsw:ArgumentEntityAttribute Value="" />
</x:Property.Attributes>
</x:Property>
ชื่อที่ใช้สําหรับคุณสมบัติควรสอดคล้องกับชื่ออาร์กิวเมนต์ เนื่องจากการสร้างโค้ดจะกําหนดชื่อเหล่านี้เป็นคุณสมบัติคําขอหรือการตอบกลับ
ชนิดอาร์กิวเมนต์ที่รองรับสําหรับอาร์กิวเมนต์อินพุตและเอาต์พุตจะแสดงในตารางต่อไปนี้
| ประเภท .NET | ประเภทอาร์กิวเมนต์ |
|---|---|
| System.Int32 | Integer |
| ระบบ.สตริง | สตริง |
| EntityReference | EntityReference |
| Entity | เเอนทิตี |
| EntityCollection | EntityCollection |
| System.DateTime | DateTime |
| System.Double | ลอย |
| ระบบทศนิยม | ทศนิยม |
| Money | Money |
| System.Boolean | แบบบูลีน |
| OptionSetValue | Picklist |
แอตทริบิวต์อาร์กิวเมนต์ที่รองรับแสดงอยู่ในตารางต่อไปนี้
| แอตทริบิวต์อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| ArgumentRequiredAttribute | ระบุว่าจําเป็นต้องใช้อาร์กิวเมนต์หรือไม่ |
| ArgumentDirectionAttribute | ระบุว่าทิศทางของอาร์กิวเมนต์เป็นอินพุตหรือเอาต์พุต |
| ArgumentDescriptionAttribute | ระบุคําอธิบายสําหรับอาร์กิวเมนต์ |
| ArgumentEntityAttribute | ใช้ในกรณีที่คุณต้องการส่งผ่านเอนทิตี |
| ArgumentTargetAttribute | แอตทริบิวต์นี้ถูกสร้างขึ้นหรือเพิ่มโดยอัตโนมัติ ชี้ไปยังเอนทิตีหลักที่เรียกใช้เวิร์กโฟลว์ แอตทริบิวต์นี้เป็นทางเลือกสําหรับการดําเนินการส่วนกลาง |
บรรจุแพคเกจการดําเนินการสําหรับการกระจาย
เมื่อต้องการกระจายการดําเนินการของคุณเพื่อให้สามารถนําเข้าไปยังองค์กร Dynamics 365 Customer Engagement (on-premises) ให้เพิ่มการดําเนินการของคุณไปยังโซลูชัน Customer Engagement ทําได้อย่างง่ายดายโดยใช้เว็บแอปพลิเคชันโดยไปที่โซลูชันการปรับแต่ง>> คุณยังสามารถเขียนโค้ดเพื่อสร้างโซลูชันได้อีกด้วย สําหรับข้อมูลเพิ่มเติมเกี่ยวกับโซลูชัน โปรดดู แพคเกจและแจกจ่ายส่วนขยาย
สร้างชนิดที่ผูกไว้ก่อนสําหรับการดําเนินการ
เมื่อใช้เครื่องมือ CrmSvcUtil คุณสามารถสร้างคลาสคําขอและการตอบสนองสําหรับการดําเนินการของคุณเพื่อรวมไว้ในโค้ดแอปพลิเคชันของคุณ อย่างไรก็ตาม ก่อนที่คุณจะสร้างคลาสเหล่านี้ โปรดเปิดใช้งานการดําเนินการ
หากต้องการดาวน์โหลด CrmSvcUtil.exeโปรดดู เครื่องมือการพัฒนา Dataverse
ตัวอย่างต่อไปนี้แสดงรูปแบบสําหรับการเรียกใช้เครื่องมือจากบรรทัดคําสั่งสําหรับการติดตั้ง Customer Engagement ในสถานที่ คุณระบุค่าพารามิเตอร์สําหรับการติดตั้งของคุณ
CrmSvcUtil.exe /url:https://<serverName>/<organizationName>/XRMServices/2011/Organization.svc /out:<outputFilename>.cs /username:<username> /password:<password> /domain:<domainName> /namespace:<outputNamespace> /serviceContextName:<serviceContextName> /generateActions
ตัวอย่างต่อไปนี้แสดงรูปแบบสําหรับการเรียกใช้เครื่องมือจากบรรทัดคําสั่งด้วย Dynamics 365 for Customer Engagement คุณระบุค่าพารามิเตอร์ที่เหมาะสมกับบัญชีและเซิร์ฟเวอร์ของคุณ
CrmSvcUtil.exe /url:https://<organizationUrlName>.api.crm.dynamics.com/XRMServices/2011/Organization.svc /out:<outputFilename>.cs /username:<username> /password:<password> /namespace:<outputNamespace> /serviceContextName:<serviceContextName> /generateActions
สังเกตการใช้ /generateActions พารามิเตอร์ ข้อมูลเพิ่มเติม: สร้างคลาสเอนทิตีที่ถูกผูกไว้ก่อนด้วยเครื่องมือสร้างโค้ด (CrmSvcUtil.exe)
คุณสามารถใช้ประเภทข้อมูลที่ผูกมัดล่วงหน้า (Early-bound) หรือผูกมัดล่าช้า (Late-bound) ร่วมกับคลาสคำขอและการตอบกลับที่สร้างขึ้นสำหรับการดำเนินการของคุณ
ดําเนินการโดยใช้ Web API
การดําเนินการใหม่จะถูกสร้างขึ้นใน Web API เมื่อสร้าง ถ้าการกระทําถูกสร้างขึ้นในบริบทของเอนทิตี การดําเนินการนั้นจะถูกผูกไว้กับเอนทิตีนั้น มิฉะนั้นจะเป็นการกระทําที่ไม่มีขอบเขต ข้อมูลเพิ่มเติม: ใช้การดําเนินการ Web API
ดําเนินการโดยใช้ทรัพยากรบนเว็บ JavaScript
การดําเนินการสามารถดําเนินการได้โดยใช้ Web API เช่นเดียวกับการดําเนินการของระบบใดๆ ข้อมูลเพิ่มเติม: Xrm.WebApi.online.execute
ดําเนินการโดยใช้บริการขององค์กร
เมื่อต้องการดําเนินการโดยใช้บริการเว็บขององค์กรโดยใช้โค้ดที่มีการจัดการ ให้ทําตามขั้นตอนเหล่านี้
รวมแฟ้มชนิดที่ผูกไว้ก่อนกําหนดที่คุณสร้างขึ้นโดยใช้เครื่องมือ CrmSvcUtil ในโครงการของโปรแกรมประยุกต์ของคุณ
ในโค้ดแอปพลิเคชันของคุณ ให้สร้างอินสแตนซ์คําขอของการดําเนินการและเติมคุณสมบัติที่จําเป็น
เรียกใช้ Execute โดยการส่งคําขอของคุณเป็นอาร์กิวเมนต์
ก่อนที่คุณจะเรียกใช้โค้ดแอปพลิเคชัน ให้ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการดําเนินการแล้ว มิฉะนั้น คุณจะได้รับข้อผิดพลาดขณะรัน
ดําเนินการโดยใช้กระบวนการ
คุณสามารถดําเนินการจากเวิร์กโฟลว์ กล่องโต้ตอบ หรือการดําเนินการกระบวนการอื่นๆ การดําเนินการแบบกําหนดเองที่เปิดใช้งานจะพร้อมใช้งานสําหรับกระบวนการโดยการเลือกรายการ ดําเนินการ ในดรอปดาวน์ เพิ่มขั้นตอน ของฟอร์มกระบวนการเว็บแอปพลิเคชัน หลังจากเพิ่มขั้นตอนลงในกระบวนการแล้ว คุณสามารถเลือกการดําเนินการแบบกําหนดเองใหม่ (หรือการดําเนินการใดๆ ) จากรายการ การดําเนินการที่ ให้ไว้ในขั้นตอนได้ เลือก ตั้งค่าคุณสมบัติ ในขั้นตอนเพื่อระบุพารามิเตอร์อินพุตใดๆ ที่การดําเนินการแบบกําหนดเองของคุณต้องการ
หมายเหตุ
ถ้าการดําเนินการแบบกําหนดเองมีชนิดพารามิเตอร์ที่ไม่รองรับ เช่น รายการเลือก, เอนทิตี หรือคอลเลกชันเอนทิตี การดําเนินการแบบกําหนดเองจะไม่แสดงในรายการ การดําเนินการ
ความสามารถในการดําเนินการจากกระบวนการถูกนํามาใช้กับ Dynamics CRM Online 2015 Update 1
การตรวจสอบแพลตฟอร์มที่มีอยู่ Depth ช่วยให้แน่ใจว่าจะไม่เกิดลูปที่ไม่มีที่สิ้นสุด สําหรับข้อมูลเพิ่มเติมเกี่ยวกับขีดจํากัดความลึก โปรดดูMaxDepth
ระวังการกระทําที่ใช้เวลานานจนเสร็จสิ้น
หากขั้นตอนใดขั้นตอนหนึ่งในเวิร์กโฟลว์แบบเรียลไทม์ของการดําเนินการเป็นกิจกรรมเวิร์กโฟลว์แบบกําหนดเอง กิจกรรมเวิร์กโฟลว์แบบกําหนดเองนั้นจะถูกดําเนินการภายในสภาพแวดล้อมรันไทม์ Sandbox ที่แยกจากกัน และจะอยู่ภายใต้ขีดจํากัดการหมดเวลาสองนาที คล้ายกับวิธีการจัดการปลั๊กอินแบบแซนด์บ็อกซ์ อย่างไรก็ตาม ไม่มีข้อจํากัดเกี่ยวกับระยะเวลาโดยรวมที่การดําเนินการสามารถทําได้ นอกจากนี้ ถ้ามีการดำเนินการที่เข้าร่วมในธุรกรรม ซึ่งได้เปิดใช้งานการย้อนกลับ เวลาหมดอายุของ SQL Server จะถูกนำไปใช้
เคล็ดลับ
คําแนะนําแนวทางปฏิบัติที่ดีที่สุดคือการดําเนินการที่ทํางานเป็นเวลานานควรดําเนินการนอก Dynamics 365 Customer Engagement (on-premises) โดยใช้กระบวนการแบบอะซิงโครนัสหรือกระบวนการเบื้องหลัง .NET
ดูเพิ่มเติม
สร้างเวิร์กโฟลว์แบบเรียลไทม์
ใช้กล่องโต้ตอบสําหรับกระบวนการที่แนะนํา
ไปป์ไลน์การดําเนินการเหตุการณ์
เขียนเวิร์กโฟลว์เพื่อทําให้กระบวนการทางธุรกิจเป็นแบบอัตโนมัติ
ปรับแต่งระบบของคุณ