Crear la vista de propiedades de la promoción para la interfaz de usuario

En esta lección creará un archivo de definición que define los componentes de la interfaz de usuario que los usuarios de empresa utilizan al crear una promoción mediante el Centro de gestión. Estos componentes incluyen la cuadrícula de bonificación de regalo que ha creado en la lección anterior.

Por qué y cuándo se efectúa esta tarea

Tal como ha aprendido en la lección anterior, los widgets de entrada que necesita para la interfaz de usuario de la herramienta de promoción ya se han definido para poder utilizarlos en los tipos de promoción existentes. En el Centro de gestión, cada definición de objeto tiene una definición de vista de propiedades diferente, que se utiliza para editar las propiedades de dicho tipo de objeto específico. En la herramienta Promociones, todas las promociones se representan mediante un único tipo de objeto. Esto significa que todas comparten la misma definición de la vista de propiedades. Cada promoción tiene un grupo de propiedades específico de dicho tipo de promoción. Cuando un usuario de negocio crea una promoción, solo se visualizan los grupos de propiedades para dicho tipo de promoción específico en la interfaz de usuario de la herramienta Promociones.

En esta lección, definirá un grupo de propiedades que contiene los widgets para la sección Condición de compra y bonificación de la interfaz de usuario específica del nuevo tipo de promoción. La vista de propiedades resultante será similar a la siguiente:



Procedimiento

  1. Cree un directorio nuevo para el objeto de propiedades:
    1. En la vista Enterprise Explorer, expanda el directorio LOBTools > WebContent > WEB-INF > src > xml > mycompany > promotion.
    2. Haga clic en el botón derecho del ratón en la carpeta promotion y Haga clic en Nuevo > Carpeta.
    3. En el campo Nombre de carpeta, escriba propertiesViews. Haga clic en Finalizar.
    4. Haga clic en el botón derecho del ratón en la carpeta propertiesViews y Haga clic en Nuevo > Carpeta.
    5. En el campo Nombre de carpeta, escriba promotionTypes. Haga clic en Finalizar.
  2. Cree un archivo para definir el grupo de propiedades:
    1. Haga clic en el botón derecho del ratón en la carpeta promotionTypes.
    2. Haga clic en Nuevo > Otros.
    3. Asigne al nuevo archivo el nombre ProductLevelFreeGiftProperties.xml.
    4. Haga clic en Finalizar para guardar el archivo.
      Se abre el archivo en el editor XML predeterminado.
    5. Copie y pegue el código siguiente en el archivo.
      
      <Definitions>
        <!--Property group for the ProductLevelFreeGift promotion.-->
        <PropertyGroup collapsable="false" definitionName="cmc/promotion/ExtProductLevelFreeGiftProperties">
          <dependency localName="promotionResources" moduleName="cmc/promotion/PromotionResources"/>
          <dependency localName="ExtPromotionResources" moduleName="cmc/promotion/ExtPromotionResources"/>
          <EnablementCondition conditionId="promotionType" enablementValue="ProductLevelFreeGift" propertyName="promotionType"/>
          <PropertyGroup groupTitle="${promotionResources.promotion_purchaseConditionAndRewardTitle}" 
           name="purchaseConditionAndRewardGroup" open="true">
         1<PropertyGroup collapsable="false" displayGrouping="true" name="purchaseConditionGroup"> 
              <PropertyChildListEditor helpText="${promotionResources.promotion_Product_Promotion_SKU_Search_helpText}" 
               listDefinition="cmc/promotion/ProductElementTypeGrid" name="catalogEntry" 
               objectPath="ProductLevelFreeGiftPurchaseCondition" objectTypes="Identifier_CatalogEntry,Identifier_InheritedCatalogEntry" 
               promptText="${promotionResources.promotion_Select_Catalog_Entry}" required="true"/>
              <PropertyStepper objectPath="ProductLevelFreeGiftPurchaseCondition" 
               promptText="${ExtPromotionResources.promotion_Minimum_purchase_TotalPrice}" propertyName="BaseItemTotalPrice" required="true"/>
            </PropertyGroup>
         2<PropertyGroup collapsable="false" displayGrouping="true" name="rewardGroup">  
               <PropertyChildListEditor helpText="${promotionResources.promotion_FreeGift_SKU_Search_helpText}" 
                listDefinition="cmc/promotion/ExtProGiftRewardGrid" name="giftSKU" objectPath="ProductLevelFreeGiftPurchaseCondition" 
                objectTypes="Identifier_GiftCatalogEntry,Identifier_InheritedGiftCatalogEntry" 
                promptText="${promotionResources.promotion_Free_gift_sku}" required="true"/>      
            </PropertyGroup>   
          </PropertyGroup>
        </PropertyGroup>
      </Definitions>
      En este ejemplo de código, el grupo de propiedades está separado en dos subgrupos:
      1 purchaseConditionGroup
      El primer widget para el que se crea una instancia en este subgrupo es un widget PropertyChildListEditor. En el Centro de gestión, los empresarios de la empresa utilizan este widget para especificar la entrada de catálogo que deben comprar para poder acceder a la promoción. El objectPathespecifica dónde se almacenará este valor de entrada en el modelo. El objectTypes especifica los tipos de objetos que se pueden visualizar en la lista. El listDefinitionName especifica la definición para esta vista. El segundo widget es PropertyStepper. En el Centro de gestión, los usuarios de la empresa utilizan este widget para seleccionar el límite de precio total de las entradas de catálogo que se deben comprar.
      2 rewardGroup
      La instancia del widget PropertyChildListEditor se crea en este subgrupo. En el Centro de gestión, los usuarios de la empresa utilizan este widget para especificar varias entradas de catálogo como regalo. En esta sección, observe la línea de texto en negrita. El valor del atributo listDefinitionName es "extProGiftRewardGrid". Esta es la cuadrícula de bonificación de regalo personalizada. Para que los usuarios de la empresa puedan añadir más filas a la cuadrícula de bonificación de regalo, la línea de texto en negrita no incluye el atributo singleChild="true". Por lo tanto, esta cuadrícula puede tener varias filas.

      Tome nota de la línea situada junto a la parte superior del fragmento de código que contiene el elemento <EnablementCondition>. Esto indica si el objeto padre está habilitado. En este código de personalización, el nuevo grupo de propiedades de tipo de promoción está habilitado únicamente cuando promotionType es ProductLevelFreeGift. Los usuarios de negocio seleccionan el tipo de promoción en la ventana Selector de tipo de promoción de la herramienta Promociones.

    6. Guarde y cierre el archivo.
  3. Añada el nuevo grupo de propiedades a la definición de la vista de propiedades de promociones. Añada el grupo de propiedades nuevo a la definición del panel de propiedades, proPromotionManageTabPaneContent, que se encuentra en el archivo PromotionPropertiesView.xml:
    1. Expanda LOBTools > WebContent > WEB-INF > src > xml > commerce > promotion > propertiesViews
    2. Abra el archivo PromotionPropertiesView.xml.
    3. Localice la sección del archivo en la que se crean instancias de otros grupos de propiedades; a continuación se muestran algunos ejemplos.
      
      <PropertyGroup baseDefinition="cmc/promotion/MultipleItemsGetYPercentDiscountProperties"/>
      <PropertyGroup baseDefinition="cmc/promotion/MultipleItemsGetYFixedAmountOffDiscountProperties"/>
      <PropertyGroup baseDefinition="cmc/promotion/RedemptionLimits"/>
    4. Añada el grupo de propiedades de la promoción al final de la lista añadiendo el código siguiente.
      
      <!-- Customization: Properties View for new Promotion Type -->
      <PropertyGroup baseDefinition="cmc/promotion/ExtProductLevelFreeGiftProperties"/>
    5. Guarde y cierre el archivo.

Resultados

Hasta este punto de esta guía de aprendizaje, ha diseñado el XML de tiempo de ejecución de promoción, ha planificado la interfaz de usuario y ha creado paquetes de recursos nuevos para las series de texto personalizadas. También ha completado la definición de la vista de propiedades para el nuevo tipo de promoción y la ha añadido a la lista de vistas de propiedades principales. También ha completado las definiciones de elementos de interfaz de usuario principales para el nuevo tipo de promoción, esto es, la definición del objeto, la plantilla y la vista de propiedades. En esta lección, ha añadido su tipo de promoción a la ventana Selector de tipo de promoción para que los usuarios de empresa puedan seleccionar el nuevo tipo de promoción como punto de partida para una promoción.