Objetivo
Crear componentes que sean capaces de validar determinada información.
En este ejemplo, se realizará un componente para validar varios campos.
Estos componentes complementan al componente acceso de datos y de actualización de base de datos presentado en entradas anteriores.
Configuración
Se utiliza SQL para el desarrollo del código. El componente formará parte de un programa de servicio y será exportable por lo que podrá ser llamado por el programa que enlace este programa de servicio.
- Los nombres de los componentes (Val_Nombre, Val_IdPais). Utilizo siempre Val_xxxxxx donde xxxxx es el nombre del campo a validar.
- El nombre del módulo donde estarán los componentes BAN01M1
- El miembro (/Copy) con la definición del prototipo con los componentes y con la definición de estructuras será BAN01M1CP
- El programa de servicio donde estarán los módulos BAN01SRV. Tendrá un miembro asociado con el mismo nombre con la definición (binder) de los componentes a exportar.
Miembro /Copy. BAN01M1CP
Se describen las estructuras de datos que dan servicio al componente de acceso a base de datos y el prototipo de llamada. Estarán en un miembro fuente independiente para que sea utilizado como /Copy tanto por el fuente del componente como los fuentes de los posibles programas que lo utilicen.
*==========================================================
* Validar Campo de Nombre de cliente
* E01 - No permite blancos
*==========================================================
DVal_Nombre PR n
D P_Nombre 50 Const
D P_IdError 3
*==========================================================
* Validar Campo de Pais
* E01 - No permite blancos
* E02 - Pais no existe
*==========================================================
DVal_IdPais PR n
D P_IdPais 3 Const
D P_IdError 3
Está compuesto por:
- (Val_Nombre) Definición de prototipo (interfaz) para validar el campo de nombre del fichero de clientes.
- (Val_IdPais) Definición de prototipo (interfaz) para validar el campo de Id de Pais del fichero de clientes.
Al principio del fuente del componente se utiliza el /COPY para “cargar” las estructuras de datos y los prototipos de los componentes.
/COPY *LIBL/QRPGLESRC,BAN01M1CP
Fuente del componente. Val_Nombre en BAN01M1
Este componente valida que sea correcto el contenido del campo nombre que pertenece al fichero de clientes
El componente tiene el siguiente código: