Compile function Archive_Services(@Service, @Params) #pragma precomp SRP_PreCompiler $insert LOGICAL $insert APP_INSERTS $Insert WO_LOG_EQUATES $Insert RDS_EQUATES $Insert REACT_RUN_EQUATES $Insert RDS_LAYER_EQUATES $Insert RDS_TEST_EQUATES $Insert ARCHIVE_EQUATES EQU COMMA$ To ',' Declare subroutine Change_Log_Services, Logging_Services, Error_Services, Database_Services Declare function SRP_Datetime, Logging_Services, Environment_Services, Datetime Declare function Database_Services, Wo_Mat_Services, Error_Services, RDS_Services Declare function WM_In_Services, WM_Out_Services LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Archive' LogDate = Oconv(Date(), 'D4/') LogTime = Oconv(Time(), 'MTS') LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' ArchiveService.csv' Headers = 'Logging DTM' : @FM : 'Message' : @FM : 'Cutoff Date' objLogArchiveService = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM GoToService Return Response or "" //----------------------------------------------------------------------------- // SERVICES //----------------------------------------------------------------------------- Service ArchiveRecords() Errors = '' StatusMessage = 'Starting Archive Script.' LogData = '' LogData<1> = LoggingDTM LogData<2> = StatusMessage Logging_Services('AppendLog', objLogArchiveService, LogData, @RM, @FM) //Archive Change Log Records GoSub ChangeLogArchive //Finish Locate True$ in Errors using @FM setting ePos then StatusMessage = 'Archive script complete. Errors detected. Check individual archive logs for more info.' LogData = '' LogData<1> = LoggingDTM LogData<2> = StatusMessage Logging_Services('AppendLog', objLogArchiveService, LogData, @RM, @FM) end else StatusMessage = 'Archive script complete. No errors detected.' LogData = '' LogData<1> = LoggingDTM LogData<2> = StatusMessage Logging_Services('AppendLog', objLogArchiveService, LogData, @RM, @FM) end End Service Service GetWORelatedRecord(WOLogId) ErrorMsg = '' If WOLogId NE '' then If RowExists('WO_LOG', WOLogId) then WOLogRec = Database_Services('ReadDataRow', 'WO_LOG', WOLogId, True$, 0, False$) If Error_Services('NoError') then ArchiveRecordId = 'WO_LOG*' : WOLogId ArchiveRecord = '' WOMatKeys = Wo_Mat_Services('GetWOMatKeys', WOLogId) If Error_Services('NoError') then WOMatQAKeys = WOMatKeys WOStepKey = WOLogRec WMInKeys = Wm_In_Services('GetWMInKeys', WOLogId) if Error_Services('NoError') then WMOutKeys = Wm_Out_Services('GetWMOutKeys', WOLogId) if Error_Services('NoError') then RDSKeys = RDS_Services('GetRDSKeys', WOLogId) if Error_Services('NoError') then ReactRunKeys = RDSKeys RDSLayerKeys = '' CleanInspKeys = '' for each ReactRunKey in ReactRunKeys using @VM setting iPos ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', ReactRunKey, True$, 0, False$) If Error_Services('NoError') then CleanInspKeys<1, -1> = ReactRunRec RDSLayerKeys<1, -1> = ReactRunRec end else ErrorMsg = Error_Services('GetMessage') end Next ReactRunKey RDSTestKeys = '' If ErrorMsg EQ '' then For each RDSLayerKey in RDSLayerKeys using @VM RDSLayerRec = Database_Services('ReadDataRow', 'RDS_LAYER', RDSLayerKey, True$, 0, False$) If Error_Services('NoError') then RDSTestKeys<1, -1> = RDSLayerRec end else ErrorMsg = Error_Services('GetMessage') end Next RDSLayerKey TWUseKeys = '' end TWUseKeys = '' If ErrorMsg EQ '' then for each RDSTestKey in RDSTestKeys using @VM RDSTestRec = Database_Services('ReadDataRow', 'RDS_TEST', RDSTestKey, True$, 0, False$) If Error_Services('NoError') then TWUseKeys<1,-1> = RDSTestRec end else ErrorMsg = Error_Services('GetMessage') end Next RDSTestKey end If ErrorMsg EQ '' then //ArchiveRecord //WOLogId ArchiveRecord = WOLogId ArchiveRecord = 'WO_LOG' ArchiveRecord = False$ ArchiveRecord = False$ //WOStepKey ArchiveRecord = WOStepKey ArchiveRecord = 'WO_STEP' ArchiveRecord = False$ ArchiveRecord = False$ //WOMatKeys for each WOMatKey in WOMatKeys using @VM ArchiveRecord = WOMatKey ArchiveRecord = 'WO_MAT' ArchiveRecord = False$ ArchiveRecord = False$ Next WOMatKey //WOMatQAKeys for each WOMatQAKey in WOMatQAKeys using @VM ArchiveRecord = WOMatQAKey ArchiveRecord = 'WO_MAT_QA' ArchiveRecord = False$ ArchiveRecord = False$ Next WOMatQAKey //WMInKeys (EpiPro Specific) for each WMInKey in WMInKeys using @VM ArchiveRecord = WMInKey ArchiveRecord = 'WM_IN' ArchiveRecord = False$ ArchiveRecord = False$ Next WMInKey //WMOutKeys (EpiPro Specific) for each WMOutKey in WMOutKeys using @VM ArchiveRecord = WMOutKey ArchiveRecord = 'WM_OUT' ArchiveRecord = False$ ArchiveRecord = False$ Next WMOutKey //RDSKeys for each RDSKey in RDSKeys using @VM ArchiveRecord = RDSKey ArchiveRecord = 'RDS' ArchiveRecord = False$ ArchiveRecord = False$ Next RDSKey //ReactRunKeys for each ReactRunKey in ReactRunKeys using @VM ArchiveRecord = ReactRunKey ArchiveRecord = 'REACT_RUN' ArchiveRecord = False$ ArchiveRecord = False$ Next ReactRunKey //RDSLayerKeys for each RDSLayerKey in RDSLayerKeys using @VM ArchiveRecord = RDSLayerKey ArchiveRecord = 'RDS_LAYER' ArchiveRecord = False$ ArchiveRecord = False$ Next RDSLayerKey //CleanInspKeys for each CleanInspKey in CleanInspKeys using @VM ArchiveRecord = CleanInspKey ArchiveRecord = 'CLEAN_INSP' ArchiveRecord = False$ ArchiveRecord = False$ Next CleanInspKey //RDSTestKeys for each RDSTestKey in RDSTestKeys using @VM ArchiveRecord = RDSTestKey ArchiveRecord = 'RDS_TEST' ArchiveRecord = False$ ArchiveRecord = False$ Next RDSTestKey //TWUseKeys for each TWUseKey in TWUseKeys using @VM if TWUseKey NE '' then ArchiveRecord = TWUseKey ArchiveRecord = 'TW_USE' ArchiveRecord = False$ ArchiveRecord = False$ end Next TWUseKey Database_Services('WriteDataRow', 'ARCHIVE', ArchiveRecordId, ArchiveRecord) If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage') end end end else ErrorMsg = Error_Services('GetMessage') end end else ErrorMsg = Error_Services('GetMessage') end end else ErrorMsg = Error_Services('GetMessage') end end else ErrorMsg = Error_Services('GetMessage') end end else ErrorMsg = Error_Services('GetMessage') end end else ErrorMsg = 'WO_LOG record not found in WO_LOG table.' end end else ErrorMsg = 'WO_LOG ID was null.' end If ErrorMsg NE '' then Error_Services('Add', ErrorMsg) end end service ChangeLogArchive: StatusMessage = 'Starting Change_Log Archive Script.' LogData = '' LogData<1> = LoggingDTM LogData<2> = StatusMessage Logging_Services('AppendLog', objLogArchiveService, LogData, @RM, @FM) ChangeLogArchiveDate = SRP_Datetime('AddYears', Datetime(), -1) Change_Log_Services('ArchiveChangeLogRecByDate', ChangeLogArchiveDate) If Error_Services('NoError') then StatusMessage = 'Starting Change_Log Archive Script.' LogData = '' LogData<1> = LoggingDTM LogData<2> = StatusMessage Logging_Services('AppendLog', objLogArchiveService, LogData, @RM, @FM) end else StatusMessage = 'Error in Change_Log Archive Script.' LogData = '' LogData<1> = LoggingDTM LogData<2> = StatusMessage Logging_Services('AppendLog', objLogArchiveService, LogData, @RM, @FM) Errors<-1> = True$ end return