added frameworks entities
This commit is contained in:
265
FRAMEWORKS/STPROC/AUDIT_MANAGER_MFS.txt
Normal file
265
FRAMEWORKS/STPROC/AUDIT_MANAGER_MFS.txt
Normal file
@ -0,0 +1,265 @@
|
||||
Function Audit_Manager_MFS(Code, BFS, Handle, Name, FMC, Record, Status)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// This program is proprietary and is not to be used by or disclosed to others, nor is it to
|
||||
// be copied without written permission from SRP Computer Solutions, Inc.
|
||||
//
|
||||
// Name : Audit_Manager_MFS
|
||||
//
|
||||
// Description: MFS for tracking the audit history of a particular record.
|
||||
//
|
||||
// Notes: This routine primarily passes all essential information into the Audit_Manager
|
||||
// stored procedure. This way changes to the core functionality can be made
|
||||
// without having to restart OpenInsight (which is necessary for changes directly
|
||||
// in MFS procedures.)
|
||||
//
|
||||
// A check is first made to see if corresponding audit table exists for the
|
||||
// database table that triggered this MFS. Audit tables use a naming convention
|
||||
// of AUDIT_Tablename. therefore, if the CUSTOMERS table is being audited then
|
||||
// there should be an AUDIT_CUSTOMERS table available. Audit features are managed
|
||||
// by the DBW_AUDIT_MANAGER form.
|
||||
//
|
||||
// Parameters:
|
||||
// Code [in] -- An integer value indicating the operation to be performed (1 = read a
|
||||
// record, 4 = delete a record, 11 = open a file, etc.)
|
||||
// BFS [in] -- The list of MFSs and the BFS name for the current file or volume. This
|
||||
// is a subvalue mark-delimited array, with the current MFS name as the
|
||||
// first value in the array, and the BFS name as the last value.
|
||||
// Handle [in] -- The file handle of the file or media map being accessed.
|
||||
// Name [in] -- The name (key) of the record or file being accessed.
|
||||
// FMC [in] -- Various functions.
|
||||
// Record [in] -- The entire record (for record-oriented functions) or a newly-created
|
||||
// handle (for "get handle" functions).
|
||||
// Status [in] -- A return code indicating the success or failure of an operation.
|
||||
//
|
||||
// History (Date, Initials, Notes)
|
||||
// 01/04/00 pcs Original programmer
|
||||
// 01/20/00 pcs CLEARFILE requires the Arev table name to be removed before processing
|
||||
// 05/20/05 axf Process will now also track the accessing of records.
|
||||
// 11/26/07 dmb Code clean-up. No functional changes were made.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$insert APP_INSERTS
|
||||
$INSERT FILE.SYSTEM.EQUATES
|
||||
$INSERT FSERRORS_HDR
|
||||
|
||||
Declare Subroutine Msg, Audit_Manager
|
||||
|
||||
ON CODE GOSUB READ.RECORD,READO.RECORD,WRITE.RECORD,DELETE.RECORD,LOCK.RECORD,UNLOCK.RECORD,SELECT,READNEXT,CLEARSELECT,CLEARFILE,OPEN.FILE,CREATE.FILE,RENAME.FILE,MOVE.FILE,DELETE.FILE,OPEN.MEDIA,CREATE.MEDIA,READ.MEDIA,WRITE.MEDIA,UNLOCK.ALL,FLUSH,INSTALL,RESERVED,RESERVED,RESERVED,OMNI.SCRIPT,CLOSE.MEDIA,RECORD.COUNT, REMAKE.FILE,CREATE.INDEX,DELETE.INDEX,UPDATE.INDEX,SELECT.INDEX,READNEXT.INDEX
|
||||
|
||||
Return
|
||||
|
||||
READ.RECORD:
|
||||
// Added Check_Update_History Gosub
|
||||
Activity = "Read"
|
||||
GoSub Check_Update_History
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
READO.RECORD:
|
||||
// Added Check_Update_History Gosub
|
||||
Activity = "Read"
|
||||
GoSub Check_Update_History
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
CREATE.MEDIA:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
OPEN.MEDIA:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
READ.MEDIA:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
WRITE.MEDIA:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
CLOSE.MEDIA:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
CLEARFILE:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
CREATE.FILE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
DELETE.FILE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
MOVE.FILE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
OPEN.FILE:
|
||||
// Attaching Arev Table name to Handle for checking purposes
|
||||
GoSub Call_NextFS
|
||||
If Index(RECORD, @TM, 1) EQ 0 then
|
||||
RECORD = NAME:@TM:RECORD
|
||||
end
|
||||
return
|
||||
|
||||
REMAKE.FILE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
RENAME.FILE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
SELECT:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
READNEXT:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
CLEARSELECT:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
LOCK.RECORD:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
UNLOCK.RECORD:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
CREATE.INDEX:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
UPDATE.INDEX:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
DELETE.INDEX:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
SELECT.INDEX:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
READNEXT.INDEX:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
RESERVED:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
OMNI.SCRIPT:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
RECORD.COUNT:
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
LOCK.SEMAPHORE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
UNLOCK.SEMAPHORE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
SET.USER.SEMAPHORE:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
WRITE.RECORD:
|
||||
GoSub Prep_Vars
|
||||
Activity = "Write"
|
||||
GoSub Check_Update_History
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
DELETE.RECORD:
|
||||
Activity = "Delete"
|
||||
GoSub Check_Update_History
|
||||
GoSub Remove_Arev_Table_Name
|
||||
return
|
||||
|
||||
NEXT_FS:
|
||||
GoSub Call_NextFS
|
||||
return
|
||||
|
||||
// Install, unlock all and flush are called directly, no need to call next FS.
|
||||
INSTALL:
|
||||
STATUS = TRUE$
|
||||
return
|
||||
|
||||
FLUSH:
|
||||
STATUS = TRUE$
|
||||
return
|
||||
|
||||
UNLOCK.ALL:
|
||||
STATUS = TRUE$
|
||||
return
|
||||
|
||||
Prep_Vars:
|
||||
TempUseTable = Field(HANDLE, @TM, 1)
|
||||
UseTable = Field(TempUseTable, "*", 1)
|
||||
UseID = Name
|
||||
return
|
||||
|
||||
Check_Update_History:
|
||||
Temp_File_Name = Field(HANDLE, @TM, 1)
|
||||
FileName = Field(Temp_File_Name, "*", 1)
|
||||
Real_Handle = Field(HANDLE, @TM, 2)
|
||||
History_table = "AUDIT_":FileName
|
||||
Open History_table to HistoryCheck then
|
||||
GoSub Get_Original_Record
|
||||
Audit_Manager(Name, FileName, Record, OrigRecord, Activity)
|
||||
end
|
||||
return
|
||||
|
||||
Get_Original_Record:
|
||||
OrigRecord = ""
|
||||
CALL RTP57(READO.RECORD, "RTP57", Real_Handle, NAME, FMC, OrigRecord, Temp_status)
|
||||
// If Temp_status is Null then it is a new record or an error reading.
|
||||
return
|
||||
|
||||
Call_NextFS:
|
||||
FS = DELETE(BFS, 1, 1, 1)
|
||||
NEXTFS = FS<1, 1, 1>
|
||||
@FILE.ERROR = ""
|
||||
CALL @NEXTFS(CODE, FS, HANDLE, NAME, FMC, RECORD, STATUS)
|
||||
return
|
||||
|
||||
Remove_Arev_Table_Name:
|
||||
* FileName = Field(HANDLE, @TM, 1)
|
||||
* If FileName EQ HANDLE then
|
||||
* Real_Handle = HANDLE
|
||||
* end else
|
||||
* Real_Handle = Field(HANDLE, @TM, 2)
|
||||
* end
|
||||
FS = DELETE(BFS, 1, 1, 1)
|
||||
NEXTFS = FS<1, 1, 1>
|
||||
@FILE.ERROR = ""
|
||||
|
||||
If Index(FS, @SVM, 1) GT 0 then
|
||||
Real_Handle = HANDLE
|
||||
end else
|
||||
Real_Handle = Field(HANDLE, @TM, 2)
|
||||
end
|
||||
|
||||
CALL @NEXTFS(CODE, FS, Real_Handle, NAME, FMC, RECORD, STATUS)
|
||||
return
|
||||
|
Reference in New Issue
Block a user