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

Responder a