Title: RE: Uso del QCMDEXC desde un Trigger

 * +-------------------------------------+ 
 * | Definición datos de entrada trigger | 
 * +-------------------------------------+ 
d  Buffer         ds                       
d    PFName                     10         
d    PFLibrary                  10a        
d    PFMember                   10a        
d    TrgEvent                    1a        
d    TrgTime                     1a        
d    TrgCmtLvl                   1a        
d    Trgfill1                    3a        
d    TrgCCSID                   10u 0      
d    Trgfill2                    8a        
d    OrOffset                   10u 0      
d    OrRcdLen                   10u 0      
d    OrNBMapOfs                 10u 0
d    OrNBMapLen                 10u 0
d    NwOffset                   10u 0
d    NwRcdLen                   10u 0
d    NwNBMapOfs                 10u 0
d    NwNBMapLen                 10u 0
d  BufferLen      s             10u 0
 * ---------------------------------------------               
 * Registro Original                                           
 * ---------------------------------------------               
d  @OrRecord      s               *   Inz(*Null)               
d  OrRecord     e ds                  ExtName(fichero) Prefix(OR_)
d                                     Based(@OrRecord)         
 * ---------------------------------------------               
 * Nuevo Registro                                              
 * ---------------------------------------------               
[EMAIL PROTECTED]        s               *   Inz(*Null)               
d                                                              
dNwRecord       e ds                  ExtName(fichero)           
d                                     Based(@NwRecord)         
 *
  /free                                               
    @OrRecord = %Addr(Buffer) + OrOffset;           
    @NwRecord = %Addr(Buffer) + NwOffset;            


Con todo este rollo, al final tienes dos estructuras de datos OrRecord y NwRecord que contienen el registro anterior y posterior a la modificación respectivamente.

Saludos.
Juan Carlos.

    -----Mensaje original-----
    De:     [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED] En nombre de Luis Elias Almeida
    Enviado el:     miércoles, 02 de noviembre de 2005 16:58
    Para:   [email protected]
    Asunto: RE: Uso del QCMDEXC  desde un Trigger

    Si, un trigger puede ser un RPG. Nosotros usamos para los tirggers SQL, y desde un SQL quería llamar a un RPG y eso es lo que me da el error. Porqué no lo hago directamente en un RPG, fácil por ignorancia. Nunca lo hemos hecho y no se como recoger en el RPG los valores de antes y después de la modificación, en el caso de update.

     

                 Por lo que volvemos al origen, no se porqué de un trigger en RPG me da un error al hacer el call al QCMEDCX, o si alguien me dice donde mirar de una manera fácil como leer desde un RPG los valores de antes y después de la modificación rehago el trigger en RPG.

     

    Un saludo

     

    Luis Elías

     

       _____ 

    De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] En nombre de Carlos B.S.
    Enviado el: miércoles, 02 de noviembre de 2005 14:50
    Para: [email protected]
    Asunto: Re: Uso del QCMDEXC desde un Trigger

     

    Sí puedes llamar a un RPG, de hecho, todos mis triggers llaman a otro RPG que es realmente el que realiza la tarea.

    Un saludo,
    Carlos Bartolomé.

    Luis Elias Almeida wrote:

    Buenos días de nuevo:

      

                 Estoy intentando hacer un trigger y necesito llamar a un RPG externo. A priori creo que no se puede llamar directamente a un RPG, sino a travésdel QCMDEXC.

      

                 En mi trigguer pongo:

      

                             CALL QSYS/QCMDEXC ( VAR1, VAR2);

      

                             En VAR1 pongo el programa y los parámetros que necesito pasarle y en VAR2 el Leng del VAR1.

      

                             El problema es al ejecutar el RUNSQLSTM para que cree el trigger, no me lo crea y el error es:

      

                             SQL0204   30        1   QCMDEXC en QSYS de tipo *N no encontrado.

      

                             ¿Porqué no encuentra al QCMDEXC?

      

    Un saludo, y gracias por anticipado

      

      

    Luis Elías

      

      

      

     


    --
    No virus found in this incoming message.
    Checked by AVG Anti-Virus.
    Version: 7.1.362 / Virus Database: 267.12.7/155 - Release Date: 01/11/2005
     

--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.1.362 / Virus Database: 267.12.7/155 - Release Date: 01/11/2005
 

Responder a