Exercício – Criar um novo gatilho CRT

Concluído

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.

  1. Implemente IrequestTriggerAsync.

  2. Especifique SupportedRequestTypes para definir os tipos de solicitação para os quais o gatilho deve ser implementado.

  3. 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.

  4. 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:

  1. 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.
  2. 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.
  3. 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:

  1. Entre no Store Commerce.
  2. Procure um cliente no Store Commerce e acesse detalhes do cliente. A solicitação de CRT anterior será chamada.