Listing 1: VBScript Code That Automates Package-Log Maintenance '============================================================== ' NAME: MergeDTSPackageLogs.vbs ' ' COMMENT: This script merges all DTS package logs into one ' master log file. After the logs are merged, they are deleted. ' '====================================== ' This statement is important because if a file ' is empty, you'll get an error. BEGIN CALLOUT A ' Declare the variables that the script uses. On Error Resume Next Dim FSO Dim strMasterLogFileName Dim dirLogFileDir Dim objOpenLogFile Dim objOpenMasterLogFile Dim objReadFile Dim objFolder Dim File1 Dim FC Dim dirMergeDir Dim objMergeFileFolder Dim MergeFile Dim FC2 Dim oFile Dim objMail END CALLOUT A BEGIN CALLOUT B ' Create master log file. LogDate = Replace(Date, "/", "-") strTime = Replace(Time, ":", "") LogTime = Replace(strTime, " ", "") dirLogFileDir = "\\SERVERNAME\SHARE\PackageLogs\" dirMergeDir = "\\SERVERNAME\SHARE\MergedLogs\" strMasterLogFileName = dirMergeDir & LogDate & "_" & LogTime & "_" & "JDEPackageLogs" & ".txt" Set FSO = CreateObject("Scripting.filesystemObject") FSO.CreateTextFile strMasterLogFileName, True Set objOpenMasterLogFile = FSO.OpenTextFile(strMasterLogFileName, 8) END CALLOUT B BEGIN CALLOUT C ' Loop through the log directory and ' combine the log files into one file. Then delete log files. Set objFolder = FSO.GetFolder(dirLogFileDir) Set FC = objFolder.Files If FC.Count <> 0 Then For Each File1 in objFolder.Files Set objOpenLogFile = FSO.OpenTextFile(File1, 1) objReadFile = objOpenLogFile.ReadAll() objOpenMasterLogFile.Write(objReadFile) objOpenLogFile.Close FSO.DeleteFile(File1) Next Else objOpenMasterLogFile.WriteLine("No log files were found") End If objOpenMasterLogFile.Close END CALLOUT C BEGIN CALLOUT D ' Delete logs older than 7 days. Set objMergeFileFolder = FSO.GetFolder(dirMergeDir) Set FC2 = objMergeFileFolder.Files For Each MergeFile In FC2 Set oFile = FSO.GetFile(MergeFile) If oFile.DateCreated < DateAdd("d", -6, Now()) Then FSO.DeleteFile(MergeFile) End If Next END CALLOUT D BEGIN CALLOUT E ' Use the CDONTS API to send an email notification of completed status. Set objMail = CreateObject("CDONTS.NewMail") objMail.From = "FromUser@domain.com" objMail.To = "ToUser@domain.com" objMail.Subject = "Package Log Merge Script COMPLETED" objMail.Body = "Package Log Merge Script COMPLETED on " & date & " at " & time & "." objMail.Send END CALLOUT E BEGIN CALLOUT F ' Clean up script by destroying all objects. This is ' important because an ActiveX script SQL job ' can't be saved unless all objects are destroyed. Set objMail = Nothing Set objMergeFileFolder = Nothing Set FC2 = Nothing Set oFile = nothing Set FSO = Nothing Set objFolder = Nothing Set objOpenLogFile = Nothing END CALLOUT F