Añadir una norma de validación

Añada una norma de validación cuando no exista ninguna en la interfaz de usuario de Centro de gestión. Por ejemplo, puede añadir una norma para verificar si el usuario de negocio ha introducido un valor para un campo obligatorio. Además de crear una regla de validación en el lado del cliente, también tiene que crear la lógica de validación en el servidor.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Expanda, LOBTools > WebContent > WEB-INF > src > xml > commerce > component > objectDefinitions, donde component es el nombre del componente del Management Center.
  3. Abra el archivo de definición de objeto que incluye la definición de objeto para la propiedad de objeto que la normal de validación va a validar.
  4. Localice la definición de objeto para la propiedad de objeto y defina la regla de validación dentro de la definición de objeto.
    Puede definir la regla de validación con una de las opciones siguientes:
    • Especifique uno de los atributos de definición de propiedad siguientes en la definición de propiedad:
      • maximumSize
      • maxValue
      • minValue
      • required
      • type
      El fragmento de código siguiente muestra un ejemplo de una regla de validación que hace que se produzca un error cuando la propiedad identifier esté en blanco o supere los 254 caracteres.
      
      <PropertyDefinition
         displayName="${catalogResources.categoryCode_DisplayName}" 
         propertyName="identifier" type="string" required="true" maximumSize="254"/> 
      </PropertyDefinition>
    • Defina un elemento de definición que amplíe la definición de validador como un elemento hijo de un elemento PropertyDefinition. El fragmento de código siguiente muestra cómo definir un validador personalizado que verifica el tipo de valor de atributo.
      
      <PropertyDefinition displayName="${catalogResources.attributeValue}" propertyName="value" required="true">
        ...
        <AttributeDictionaryValueTypeValidator package="cmc/catalog"/>
        ...
      </PropertyDefinition>
      
    • Defina un elemento de definición que amplíe la definición de clase Validator como un elemento hijo de una definición de objeto. Este tipo de validador se llama validador de nivel de objeto. Los validadores de nivel de objeto se utilizan para validar varios valores de propiedad u objetos hijo. El fragmento de código siguiente muestra cómo definir un validador de nivel de objeto.
      
      <Definitions>
      <ReferenceObjectDefinition copyProtected="false" definitionName="cmc/catalog/BaseAttachmentReference" 
       displayName="${catalogResources.catalogAttachmentReference_DisplayName}" idProperty="attachmentRefId" 
       isBaseDefinition="true">
      ...
        <!--- This is a validator definition to validate that the minimum quantity values for offer prices are unique. -->
        <UniqueValueForChildObjectPropertyValidator 
        definitionName="cmc/catalog/OfferPriceMinimumQuantityUniquenessValidator" 
        errorMessage="${catalogResources.offerPriceMinimumQuantityUniquenessWarning}" objectPath="CatalogEntryOffer" 
        propertyName="minimumQuantity" validatorId="offerPriceMinimumQuantityUniquenessValidator">
          <dependency localName="catalogResources" moduleName="cmc/catalog/CatalogResources"/>
        </UniqueValueForChildObjectPropertyValidator>
      ...
      </Definitions>
      Esta definición de validador también define el mensaje de error para el error de validación. El valor del atributo errorMessage se correlaciona con una entrada del archivo de propiedades que define el texto del mensaje de error que se muestra cuando se produce un error de validación. Si se define un mensaje de error, la definición de validador también debe incluir la dependencia de paquete compuesto de recursos para el paquete de recursos que incluye el texto del mensaje.
  5. Guarde y publique los cambios.