I've had similar problems. I put together a program to track changes.
This is for UniData.
SUBROUTINE TRIGGER.CHANGES(EXECSTAT,DICTFLAG,FILENAME,RECID,RECORD)
* program : TRIGGER.CHANGES
* programmer : Bruce M. Neylon
* Date : 07/17/06
*
* Description: Track TRANS changes
*
* Catalog req: Global
*
**********************************************
* Modifications
*
**********************************************
* Variable setup
COMMON /TRIG001/
WHO,CHANGES.FILE,CTL.FILE,ATTRIBUTE.LIST,F.FILENAME,DUM5,DUM6
**** Open files ****
IF w...@who OR FILEINFO(F.FILENAME,17) # FILENAME THEN
OPENERR = ''
OPEN 'CHANGES' TO CHANGES.FILE ELSE OPENERR<-1> = 'CHANGES'
OPEN FILENAME TO F.FILENAME ELSE OPENERR<-1> = FILENAME
OPEN 'CTL.FILE' TO CTL.FILE ELSE OPENERR<-1> = 'CTL.FILE'
IF OPENERR # '' THEN
ERR.CNT = DCOUNT(OPENERR,@AM)
FOR ERR.IDX = 1 TO ERR.CNT
PRINTERR 201:@AM:OPENERR<ERR.IDX>
CRT
NEXT ERR.IDX
STOP
END
WHO = @WHO
READV ATTRIBUTE.LIST FROM CTL.FILE,FILENAME,2 ELSE ATTRIBUTE.LIST=0
END
NTL = DCOUNT(SYSTEM(49),@AM)-2
SYSTEM49=SYSTEM(49)<NTL,2>
SYSTEM49W = CONVERT(@AM:@VM:@SVM,'^]\',SYSTEM(49))
FOUND = 0
CHANGES = @LOGNAME:@VM:SYSTEM49:@VM:SYSTEM49W
CIDX = 0
!IF @LOGNAME = "bmn" THEN DEBUG
READ OLD.RECORD FROM F.FILENAME,RECID THEN
ATT.COUNT = DCOUNT(ATTRIBUTE.LIST,@VM)
FOR ATT.IDX = 1 TO ATT.COUNT
ATT = ATTRIBUTE.LIST<1,ATT.IDX>
IF ATT > 0 THEN
IF RECORD<ATT> # OLD.RECORD<ATT> THEN
CIDX +=1
CHANGES<2,CIDX> = ATT
CHANGES<3,CIDX> = CONVERT(@AM:@VM:@SVM,'^]\',OLD.RECORD<ATT>)
CHANGES<4,CIDX> = CONVERT(@AM:@VM:@SVM,'^]\',RECORD<ATT>)
END
END
NEXT ATT.IDX
END ELSE
CHANGES<2> = 'NEW'
CHANGES<4> = CONVERT(@AM:@VM:@SVM,'^]\',RECORD)
END
IF CHANGES<2> # '' THEN
CID = FILENAME:"_":RECID:"_":DATE():"_":TIME()
WRITE CHANGES ON CHANGES.FILE,CID
END
EXECSTAT=1
RETURN EXECSTAT
Bruce M Neylon
Health Care Management Group
"Bessel, Karen" <[email protected]>
Sent by: [email protected]
10/22/2009 11:22 AM
Please respond to
U2 Users List <[email protected]>
To
"U2 Users List" <[email protected]>
cc
Subject
[U2] Trigger Question
My application is creating some bogus records in a file, somewhere...we
are unable to pinpoint when & where & what the user is doing to create
these records, but they're popping up every couple of weeks.
I'd like to create a trigger to tell me when these records appear so
that someone gets notified, instead of inadvertently falling across the
data days later.
Since I don't know where this bogus data is being created, is it
possible for the trigger subroutine to tell me what the call
stack/writing program is.
Thanks,
Karen
Karen Bessel
Software Developer
Tyler Technologies, Inc.
6500 International Parkway, Suite 2000
Plano, TX 75093
Phone: 972.713.3770 ext:6227
Fax: 972.713.3780
Email: [email protected]
Web: http://www.tylertech.com
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users