Ejercicio: crear un nuevo desencadenador CRT

Completado

En este ejercicio, implementará un desencadenador y, a continuación, registrará la extensión, depurará el CRT y validará la extensión.

Implementar un desencadenador

Para implementar un desencadenador, complete las tareas como se muestra en el siguiente ejemplo de código.

  1. Implemente IrequestTriggerAsync.

  2. Especifique SupportedRequestTypes para definir los tipos de solicitud para los que se deba implementar el desencadenador.

  3. Escriba una implementación de desencadenador en el método OnExecuting si hay que ejecutar la lógica empresarial antes de abordar la solicitud.

  4. Escriba una implementación de desencadenador en el método OnExecuted si hay que ejecutar la lógica empresarial después de abordar la solicitud.

    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;
        }
    }
    

Registre la extensión

Para registrar la extensión, complete las tareas siguientes:

  1. Copie y pegue la biblioteca de extensiones en la carpeta ...\RetailServer\webroot\bin\ext y luego actualice el archivo commerceRuntime.ext.config con la información de la biblioteca de extensiones personalizadas en la sección de composición. En este ejemplo, Contoso.Commerce.Runtime.Services es el nombre de la extensión personalizada.
  2. Para que la extensión CRT funcione en modo fuera de línea, actualice ...\Microsoft Dynamics 365\70\Retail Modern POS\ClientBroker\ext\CommerceRuntime.MPOSOffline.ext.config con la información de la biblioteca de extensiones en la sección de composición.
  3. Copie y pegue la biblioteca de extensiones en ...\Microsoft Dynamics 365\70\Retail Modern POS\ClientBroker\ext.

Depurar CRT

Para depurar CRT desde Store Commerce, adjunte el proyecto de extensión CRT al archivo w3wp.exe (proceso IIS para Retail Server) cuando Store Commerce esté conectado a Retail Server.

Para el modo fuera de línea, adjunte el proyecto de extensión de CRT al proceso dllhost.exe.

Validar la extensión

Para validar la extensión, complete las tareas siguientes:

  1. Inicie sesión en Store Commerce.
  2. Busque un cliente en Store Commerce y vaya a los detalles del cliente. Se llamará a la solicitud de CRT anterior.