练习 – 新建 CRT 触发器
在本练习中,将实现触发器,然后注册扩展、调试 CRT 并验证扩展。
实现触发器
要实现触发器,请完成以下代码示例中显示的任务。
实现 IrequestTriggerAsync。
指定 SupportedRequestTypes,定义必须实现触发器的请求类型。
如果必须在处理请求之前运行业务逻辑,请在 OnExecuting 方法中编写触发器实现。
如果必须在处理请求之后运行业务逻辑,请在 OnExecuted 方法中编写触发器实现。
using Microsoft.Dynamics.Commerce.Runtime; using Microsoft.Dynamics.Commerce.Runtime.DataServices.Messages; using Microsoft.Dynamics.Commerce.Runtime.Messages; using System; using System.Collections.Generic; using System.Threading.Tasks; public class GetCustomerTriggers : IRequestTriggerAsync { /// <summary> /// Gets the supported requests for this trigger. /// </summary> public IEnumerable<Type> SupportedRequestTypes { get { return new[] { typeof(GetCustomerDataRequest) }; } } /// <summary> /// Post trigger code. /// </summary> /// <param name="request">The request.</param> /// <param name="response">The response.</param> public async Task OnExecuted(Request request, Response response) { //Custom logic // The only stub to handle async signature await Task.CompletedTask; } /// <summary> /// Pre trigger code /// </summary> /// <param name="request">The request.</param> public async Task OnExecuting(Request request) { // custom logic await Task.CompletedTask; } }
注册扩展
要注册扩展,请完成以下任务:
- 将扩展库复制并粘贴到 ...\RetailServer\webroot\bin\ext 文件夹,然后使用组成部分下的自定义扩展库信息更新 commerceRuntime.ext.config 文件。 在本示例中,Contoso.Commerce.Runtime.Services 是自定义扩展名。
- 要使 CRT 扩展在脱机模式下工作,请使用组成部分下的扩展库信息更新 ...\Microsoft Dynamics 365\70\Retail Modern POS\ClientBroker\ext\CommerceRuntime.MPOSOffline.ext.config。
- 将扩展库复制并粘贴到 ...\Microsoft Dynamics 365\70\Retail Modern POS\ClientBroker\ext。
调试 CRT
要从 Store Commerce 调试 CRT,请在将 Store Commerce 连接到 Retail Server 时将 CRT 扩展项目附加到 w3wp.exe(Retail Server 的 IIS 进程)进程。
对于脱机模式,请将 CRT 扩展项目附加到 dllhost.exe 进程。
验证扩展
要验证扩展,请完成以下任务:
- 登录到 Store Commerce。
- 在 Store Commerce 中搜索任何客户,然后转到客户详细信息。 系统会调用先前的 CRT 请求。