Exercício – Criar um novo gatilho CRT
Neste exercício, você implementará um gatilho e registrará a extensão, depurará o CRT e validará a extensão.
Implementar um gatilho
Para implementar um gatilho, conclua as tarefas conforme mostrado no exemplo de código a seguir.
Implemente IrequestTriggerAsync.
Especifique SupportedRequestTypes para definir os tipos de solicitação para os quais o gatilho deve ser implementado.
Crie uma implementação de gatilho no método OnExecuting se a lógica comercial precisar ser executada antes que a solicitação seja resolvida.
Crie uma implementação de gatilho no método OnExecuted se a lógica comercial precisar ser executada após a solicitação ser resolvida.
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; } }
Registrar a extensão
Para registrar a extensão, conclua estas tarefas:
- Copie e cole a biblioteca de extensões na pasta ...\RetailServer\webroot\bin\ext e, depois, atualize o arquivo commerceRuntime.ext.config com as informações da biblioteca de extensão personalizada na seção de composição. Neste exemplo, Contoso.Commerce.Runtime.Services é o nome da extensão personalizada.
- Para que a extensão CRT funcione no modo offline, atualize ...\Microsoft Dynamics 365\70\Retail Modern POS\ClientBroker\ext\CommerceRuntime.MPOSOffline.ext.config com as informações da biblioteca de extensão na seção de composição.
- Copie e cole a biblioteca de extensão em ...\Microsoft Dynamics 365\70\Retail Modern POS\ClientBroker\ext.
Depurar CRT
Para depurar CRT do Store Commerce, anexe o projeto de extensão CRT ao w3wp.exe (processo IIS para Retail Server) quando o Store Commerce estiver conectado ao Retail Server.
Para o modo offline, anexe o projeto de extensão CRT ao processo dllhost.exe.
Validar a extensão
Para validar a extensão, conclua estas tarefas:
- Entre no Store Commerce.
- Procure um cliente no Store Commerce e acesse detalhes do cliente. A solicitação de CRT anterior será chamada.