pears.AuditLog

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

CREATE PROCEDURE "pears"."AuditLog"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "sAuditType" CHAR(10),IN "sRecordID" CHAR(20),IN "sDescription" long VARCHAR,IN "sOldValues" long VARCHAR,IN "sNewValues" long VARCHAR ) 
BEGIN
  DECLARE "pk" CHAR(20);
  DECLARE "username" CHAR(30);
  DECLARE "ConnNum" INTEGER;
  DECLARE "fn" CHAR(250);
  DECLARE "fnx" CHAR(30);
  BEGIN
    IF "sOldValues" = "sNewValues" THEN RETURN
    END IF;
    SET "pk" = "uniquekey"('')
  exception
    WHEN others THEN CREATE variable "uniqueroll" SMALLINT;
      SET "pk" = "uniquekey"('')
  END;
  BEGIN
    IF "userstaffid" = 'NOAUDIT' THEN RETURN
    END IF;
    SELECT "userid" INTO "username" FROM "staff" WHERE "staffid" = "userstaffid"
  exception
    WHEN others THEN SET "username" = "connection_property"('Name')
  END;
  SET "ConnNum" = "connection_property"('Number');
  INSERT INTO "audittrail"( "audittrailid","eventdatetime","userid","audittype","recordid","description","oldvalues","newvalues","ConnectionNumber" ) VALUES
    ( "pk",CURRENT TIMESTAMP,"username","saudittype","srecordid","sdescription","soldvalues","snewvalues","ConnNum" ) ;
  IF("sAuditType" = 'JOB') OR("sAuditType" = 'REPORT') THEN
    SET "fn" = "lcase"("REGEXP_SUBSTR"("sDescription",'[^\\\\]+$'));
    SET "fnx" = "REGEXP_SUBSTR"("fn",'\\([[:digit:]]+\\)\\.(xml|rtm)$');
    IF "fnx" IS NOT NULL THEN
      SET "fn" = "replace"("fn","fnx","right"("fn",4))
    END IF;
    UPDATE "report" SET "lastused" = CURRENT TIMESTAMP,"usecount" = "isnull"("usecount",0)+1,"lastusedby" = "username" WHERE "stuff"("filename",1,"locate"("filename",'\\',-1),'') = "fn"
  END IF
exception
  WHEN others THEN RETURN
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."AuditLog" IS 
{CREATE PROCEDURE AuditLog 
 
/* Application Maintained Function / Procedure - DO NOT EDIT*/
 
(IN sAuditType CHAR(10),IN sRecordID CHAR(20),IN sDescription long VARCHAR,IN sOldValues long VARCHAR,IN sNewValues long VARCHAR)
BEGIN
  DECLARE pk CHAR(20);
  DECLARE username CHAR(30);
  DECLARE ConnNum INTEGER;
  DECLARE fn CHAR(250);
  DECLARE fnx CHAR(30);
  BEGIN
    IF sOldValues = sNewValues THEN RETURN
    END IF;
    SET pk=uniquekey('')
  exception
    WHEN others THEN CREATE variable uniqueroll SMALLINT;
      SET pk=uniquekey('')
  END;
  BEGIN
    IF userstaffid = 'NOAUDIT' THEN RETURN
    END IF;
    SELECT userid INTO username FROM staff WHERE staffid = userstaffid
  exception
    WHEN others THEN SET username=connection_property('Name')
  END;
  SET ConnNum=connection_property('Number');
  INSERT INTO audittrail(audittrailid,eventdatetime,userid,audittype,recordid,description,oldvalues,newvalues,ConnectionNumber) VALUES(
    pk,CURRENT TIMESTAMP,username,saudittype,srecordid,sdescription,soldvalues,snewvalues,ConnNum);
  IF (sAuditType = 'JOB') OR (sAuditType = 'REPORT') THEN 
    SET fn=lcase(REGEXP_SUBSTR(sDescription,'[^\\\\]+$'));
    SET fnx=REGEXP_SUBSTR(fn,'\([[:digit:]]+\)\.(xml|rtm)$');
    IF fnx IS NOT NULL THEN
        SET fn=REPLACE(fn,fnx,RIGHT(fn,4));
    END IF;
    UPDATE report SET lastused = CURRENT TIMESTAMP, usecount = isnull(usecount,0) + 1, lastusedby = username WHERE stuff(filename,1, locate(filename,'\\',-1),'') = fn;
  END IF
exception
  WHEN others THEN RETURN
END
}
  • database/procedures/pears_auditlog.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1