Añadir lógica de negocio nueva a un mandato de tarea

Suponga que hay un mandato de tarea de HCL Commerce denominado ExistingTaskCmd. Según los convenios de denominación de HCL Commerce, este mandato de tarea tendrá una clase de interfaz llamada ExistingTaskCmd y una clase de implementación llamada ExistingTaskCmdImpl. Ahora supongamos que surge un requisito de negocio y que debe añadir nueva lógica de negocio a este mandato ya existente. Una parte de la lógica debe ejecutarse antes de la lógica de mandatos existente y otra parte debe ejecutarse después de la lógica de mandatos existente.

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

El primer paso para añadir la lógica de negocio nueva es crear una clase de implementación nueva que amplíe la clase de implementación original. En este ejemplo, crearía una nueva clase ModifiedTaskCmdImpl que amplía la clase ExistingTaskCmdImpl. La nueva clase de implementación debería implementar la interfaz original (ExistingTaskCmd).

En el nuevo mandato, debe modificar el método performExecute existente e incluir la nueva lógica antes y después de llamar al método super.performExecute.

El fragmento de código siguiente muestra cómo añadir lógica de negocio nueva a un mandato de tarea existente:


public class ModifiedTaskCmdImpl extends ExistingTaskCmdImpl 
     implements ExistingTaskCmd {


         /* Insert new business logic that must be 
            executed before the original command.
         */

         // Execute the original command logic.
         super.performExecute();

         /* Insert new business logic that must be 
            executed after the original command.
         */
}

También debe actualizar la tabla CMDREG para asociar la nueva clase de implementación con la interfaz existente. La siguiente sentencia SQL muestra una actualización de ejemplo:


update CMDREG
set CLASSNAME='ModifiedTaskCmdImpl' 
where INTERFACENAME='ExistingTaskCmd'