HCL Commerce Enterprise

Despliegue de términos ampliados personalizados

Cuando creó la entrada en la tabla TCSUBTYPE para un término ampliado, tenía la opción de especificar el mandato de despliegue. Si no ha especificado el valor, no se llama a ningún mandato de despliegue para desplegar el término ampliado durante el proceso de despliegue del mandato.

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

También puede desplegar un término nuevo con un mandato de despliegue personalizado. El mandato personalizado que se registra en la tabla TCSUBTYPE se utiliza para el despliegue. El mandato de despliegue debe implementar una interfaz que amplía com.ibm.commerce.contract.commands.DeployExtendedTCCmd, y el mandato debe ampliar com.ibm.commerce.contract.commands.DeployExtendedTCCmdImpl.

Para utilizar un mandato de despliegue personalizado para desplegar un término ampliado:

Procedimiento

  1. Cree una interfaz, como DeploySurchargeTCCmd en el ejemplo siguiente, ampliando com.ibm.commerce.contract.commands.DeployExtendedTCCmd.Defina la variable defaultCommandClassName de la nueva interfaz para que sea el nombre del nuevo mandato de despliegue que creará en el paso siguiente. Por ejemplo, DeploySurchargeTCCmdImpl en el ejemplo siguiente.
  2. Cree un mandato de despliegue (como DeploySurchargeTCCmdImpl en el ejemplo siguiente) ampliando com.ibm.commerce.contract.commands.DeployExtendedTCCmdImpl e implementando la nueva interfaz.
  3. Compile las clases Java y copie los archivos de clases en un nuevo archivo JAR. Añada el nuevo archivo JAR a la vía de acceso de clases.
  4. Opcional: Si no ha definido una entrada para el nuevo términos en la tabla TCSUBTYPE, ejecute la siguiente sentencia SQL:
    insert into tcsubtype(TCSUBTYPE_ID, TCTYPE_ID, ACCESSBEANNAME, DEPLOYCOMMAND) Values ( 'YourTcSubtypeID','YourTctypeID', null,  'YourDeployCommandName');
  5. Opcional: Si no ha definido una entrada para el nuevo término en la tabla TCSUBTYPE, ejecute la siguiente sentencia SQL:
    update tcsubtype set DEPLOYCOMMAND= 'YourDeployCommandName'where tcsubtype_id= 'YourTcSubtypeId';

Ejemplo

En el ejemplo siguiente, se utilizan los valores siguientes:
  • YourTctypeIDcomo el valor paraExtendedTC
  • YourTcSubtypeI como el valor para SurChargeTC
  • YourDeployCommandName como el valor para com.ibm.commerce.sample.contract.commands.DeploySurchargeTCCmd
Ejemplo de interfaz:


package com.ibm.commerce.sample.contract.commands;

import java.util.*;
import com.ibm.commerce.command.*;

public interface DeploySurchargeTCCmd extends
com.ibm.commerce.contract.commands.DeployExtendedTCCmd
{       
        /**
         * The fully qualified name of this class.
         */
         public final static String NAME =
"com.ibm.commerce.productset.commands.DeploySurchargeTCCmd";

        /**
         * The fully qualified name of the default implementation
class.
         */
        public static String defaultCommandClassName =
"com.ibm.commerce.productset.commands.DeploySurchargeTCCmdImpl";
}
Ejemplo de implementación:


package com.ibm.commerce.sample.contract.commands;

import com.ibm.commerce.contract.objects.*;
import com.ibm.commerce.contract.helper.*;

DeploySurchargeTCCmdImpl.java
public class DeploySurchargeTCCmdImpl  extends
com.ibm.commerce.contract.commands.DeployExtendedTCCmdImpl
implements DeploySurchargeTCCmd
{

public void performExecute() throws ECException{

       ECTrace.entry(ECTraceIdentifiers.COMPONENT_CONTRACT,
this.CLASSNAME, "performExecute");
       try{
              
              if(this.tcId != null){
                     ExtendedTermConditionAccessBean etcAB = new
ExtendedTermConditionAccessBean();
                    
etcAB.setInitKey_referenceNumber(com.ibm.commerce.base.objects.WCSStringConverter
                                   .LongToString(tcId));
                     Map properties = etcAB.getProperties();
                    
ECTrace.trace(ECTraceIdentifiers.COMPONENT_CONTRACT,
this.CLASSNAME, "performExecute","The properties of the TC which
TermCond_id='"+
com.ibm.commerce.base.objects.WCSStringConverter.LongToString((Long)tcId)+"'
is:"+ properties.toString());
              }
       }catch(Exception e){
              ECTrace.trace(ECTraceIdentifiers.COMPONENT_CONTRACT,
this.CLASSNAME, "performExecute","An exception was thrown when
deploying the extended TC:");
              e.printStackTrace();
       }
       ECTrace.exit(ECTraceIdentifiers.COMPONENT_CONTRACT,
this.CLASSNAME, "performExecute");
  }
       

}