Luis,
Estos programas reciben dos par�metros en forma de estrructuras de datos:
PARM1. Estructura de Datos con la informaci�n del registro
PARM2. Longitud de la estructura de datos
En este ejemplo la longitud del registro en el archivo es de 218 bytes en
26 campos.
I* ESTRUCTURAS DE DATOS REQUERIDAS PARA IDENTIFICAR EL TRIGGER
I*
I* LA LONGITUD DE PARM1 SE CALCULA DE LA SIGUIENTE FORMA:
I* 97 + (((2*LONG.REG)+(2*NO.CAMPOS))-1)
I*
I* NOFF+1 Y OLDOFF+1 INDICAN LA POSICION A PARTIR DE LA CUAL
I* SE EXTRAERAN LOS VALORES DE LOS REGISTROS NUEVO Y ANTERIOR
I* RESPECTIVAMENTE.
I*
I* FILL4 SE UTILIZA PARA EVITAR ERRORES DE DESPLAZAMIENTO EN
I* PARM1 Y PUEDE NO SER NECESARIO SU USO.
I*
I* LAS VARIABLES DE LA DS QUE VARIAN SU LONGITUD PARA CADA ARCHIVO SON :
I* From... To Field
I* ---------- ------------------------------- ------
I* 97 ... (97 + LONG.REG) - 1 = OREG
I* OREG + 1... ((OREG + 1) + NO. CAMPOS) - 1 = OOMAP
I* OOMAP + 1... ((OOMAP + 1) + LONG. REG) - 1 = RECORD
I* RECORD + 1... ((RECORD + 1) + NO. CAMPOS) - 1 = NNMAP
I*
I* OREG = REGISTRO CON LOS DATOS ANTERIORES
I* RECORD = REGISTRO CON LOS NUEVOS DATOS
I*
I* FNAME = NOMBRE DEL ARCHIVO AFECTADO
I* LNAME = NOMBRE DE LA BIBLIOTECA
I* MNAME = NOMBRE DEL MIEMBRO AFECTADO
I* TEVEN = EVENTO (1=INSERT / 2=DELETE / 3=UPDATE)
I* TTIME = TIEMPO (1=AFTER / 2=BEFORE)
I* CMTLCK = NIVEL DE COMMIT (0=*NONE / 1=*CHG / 2=*CS / 3=*ALL)
I*
I*-------------------------------------------------------------
IPARM1 DS
I 1 10 FNAME Nombre del
Archivo F�sico
I 11 20 LNAME Nombre de
la Biblioteca
I 21 30 MNAME Nombre del
Miembro
I 31 31 TEVEN Evento
I 32 32 TTIME Tiempo
I 33 33 CMTLCK Nivel de
Commit Lock
I 34 36 FILL1 Reservado
I B 37 400CCSID C�digo de
Caracteres
I 41 48 FILL2 Reservado
I B 49 520OLDOFF Offset del
registro original
I B 53 560OLDLEN Longitud
del registro original
I B 57 600ONOFF Mapa de
nulos registro original
I B 61 640ONLEN Longitud
mapa de nulos reg. original
I B 65 680NOFF Offset del
registro nuevo
I B 69 720NEWLEN Longitud
del registro nuevo
I B 73 760NNOFF Mapa de
nulos registro nuevo
I B 77 800NNLEN Longitud
mapa de nulos reg. nuevo
I 81 96 FILL3 Reservado
I 97 314 OREG Registro
original
I 315 340 OOMAP Mapa nulos
x campo reg. original
I 341 558 RECORD Registro
nuevo
I 559 584 NNMAP Mapa nulos
x campo reg. nuevo
I 585 820 FILL4 Reservado
(evita errores en SUBST)
I*
IPARM2 DS
I B 1 40LENG Longitud
I*
I*-----------------------------------------------------------------*
I* ESTRUCTURAS DE DATOS PARA OBTENER LOS DATOS ANTES / DESPUES *
I*-----------------------------------------------------------------*
IXRECO IDS Datos del
registro original
I* 1 218 REC02O
I 1 60NEM02O
I 7 70TEM02O
I .
I .
I .
I 197 197 ARE02O
I 198 217 PUE02O
I 218 218 STA02O
IXRECN IDS Datos del
registro nuevo
I* 1 218 REC02N
I 1 60NEM02N
I 7 70TEM02N
I .
I .
I .
I 197 197 ARE02N
I 198 217 PUE02N
I 218 218 STA02N
C*-----------------------------------------------------------------*
C* C A L C U L O *
C*-----------------------------------------------------------------*
C CLEARXRECO
C CLEARXRECN
C*OBTIENE INFORMACION DEL REGISTRO ORIGINAL
C Z-ADDOLDOFF OX 50
C ADD 1 OX
C 218 SUBSTPARM1:OX @XREC 218
C MOVEL@XREC XRECO
C*OBTIENE INFORMACION DEL REGISTRO NUEVO
C Z-ADDNOFF OX
C ADD 1 OX
C 218 SUBSTPARM1:OX @XREC
C MOVEL@XREC XRECN
C .
C .
C .
C*-----------------------------------------------------------------*
C* S U B R U T I N A S *
C*-----------------------------------------------------------------*
C* *INZSR RUTINA DE INICIALIZACION
C*********
C *INZSR BEGSR
C*
C *ENTRY PLIST
C PARM1 PARM PARM1
C PARM2 PARM PARM2
C .
C .
C .
C ENDSR
Si intentas mover OOREG y RECORD directamente a XRECO y XRECN
respectivamente el programa compila pero en ejecucion da un error de datos
decimales.
Como veras, un trigger bien construido en version 4 puede no necesitar ser
modificado.
Saludos.
Jes�s Humberto Olague Alcal�
L�der de Proyectos
Envases y Tapas Modelo, S.A. de C.V.
e-mail: [EMAIL PROTECTED]
Tel: 01-478-9854100 Ext. 247
Fax: 01-478-9854100 Ext. 249
[EMAIL PROTECTED]
Enviado por: Para: [EMAIL PROTECTED]
forum.help400-request@ cc:
combios.es Asunto: Triggers en V5R1
12/11/2002 05:29
Por favor, responda a
forum.help400
Buenos dias compa�eros del foro.
�Podr�a facilitarme alguien la nueva estructura de entrada (la ds del
programa) para los triggers en v5r1?, �cuales han sido los cambios?, �como
adaptar los antiguos triggers?.
Gracias a todos por vuestras respuestas.
Un saludo.
-----------------------------------------------------------------------------------
Luis M. Gonz�lez Peralta
Departamento Desarrollo SOFT9126, S.L.
E-mail : [EMAIL PROTECTED] <mailto: [EMAIL PROTECTED]>
Tlf: (+34) 976.59.29.69
Fax: (+34) 976.59.33.90
Movil: (+34) 629.67.65.30
-----------------------------------------------------------------------------------
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:forum.help400-request@;combios.es?body=LEAVE
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:forum.help400-request@;combios.es?body=LEAVE