Implementar reglas comerciales en la aplicación de cliente-servidor de ejemplo

La aplicación de cliente-servidor de ejemplo utiliza un servidor de Automatización personalizado para reforzar las reglas comerciales. Esta arquitectura, conocida como el modelo de tres capas, permite la implementación de las reglas comerciales en la capa del medio, aparte de los datos actuales y aparte de la interfaz del cliente. Hay muchas aplicaciones y muchas bases de datos que pueden utilizar el mismo conjunto de reglas comerciales, codificado y mantenido en una única ubicación.

El servidor de Automatización personalizado en la aplicación de cliente-servidor de ejemplo es Bizrules. El proyecto para el servidor de Automatización es Bizrules.pjx y la clase se define en Bizrules.pjx:

DEFINE CLASS SalaryRule AS Custom OLEPUBLIC

El código de la clase CSEngine proporciona una interfaz al objeto comercial con los métodos ServerStart, ServerStop, ServerIsStarted y ServerValidateRow.

El método ServerStart crea una instancia de la clase SalaryRule. El método ServerValidateRow pasa valores al servidor para su validación:

lcError = THIS.oServer.Validate(m.cTitle, m.nSalary, m.dBirth, m.dHire, m.cCountry)

El método Validate de la clase SalaryRule refuerza un conjunto común de reglas comerciales y devuelve una lista de mensajes de error, uno por cada regla que ha fallado. Por ejemplo, la siguiente sección de código procedente del método Validate confirma que el salario está incluido en un intervalo especificado en la tabla Bizrules.dbf:

PROCEDURE validate
PARAMETERS lcTitle, lnSalary, ldBirth, ldHire, lcCountry

SELECT bizrules
LOCATE FOR lcTitle = ALLTRIM(title)
IF EOF()
   * Display error message
ELSE
   IF !BETWEEN(lnSalary, min_salary, max_salary)
      * Display error message
   ENDIF
ENDIF

Vea también

Ejemplos de soluciones | Ejemplo de cliente-servidor | Clases de la aplicación de cliente-servidor de ejemplo | Base de datos de la aplicación de cliente-servidor de ejemplo | Actualizar datos en la aplicación de cliente-servidor de ejemplo | Tratar conflictos de datos en la aplicación de cliente-servidor de ejemplo