145 lines
5.2 KiB
Transact-SQL
145 lines
5.2 KiB
Transact-SQL
/* ========================================================================
|
|
Copyright 2018 - Volian Enterprises, Inc. All rights reserved.
|
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
|
------------------------------------------------------------------------
|
|
This is a SQL script which can be used to create a CMD Batch file to
|
|
perform automated testing on all of the folders within the current
|
|
database and server.
|
|
------------------------------- NOTE -----------------------------------
|
|
There are no parameters in this script. The following values are
|
|
retrieved from the databse which is currently open
|
|
DB_NAME() - Gets the current Database Name
|
|
@@Servername - Gets the current SQL Servername
|
|
These are passed as parameters to PROMS along with some other paramters
|
|
which specifies how the procedure should be printed.
|
|
You can add REM before any folders that should not print
|
|
****************************** CAUTION *********************************
|
|
If you are comparing against code created before 8/1/2018 you will need
|
|
to specify /NW to exclude the Word output which had not previously been
|
|
included.
|
|
=======================================================================*/
|
|
PRINT 'REM Blank Line Before Batch Commands
|
|
@ECHO OFF
|
|
ECHO Automated testing assumes the following:
|
|
ECHO C:\PDFS will be used to store the results of the Automated Print Testing
|
|
ECHO C:\PROMS will be used to store the executable for the Automated Print Testing
|
|
ECHO ---
|
|
ECHO The following Parameter Needs to be set:
|
|
set PROMSEXE=1.5.1805.910.Production
|
|
ECHO PROMSEXE [%PROMSEXE%] - Subfolder of the PROMS Executable
|
|
ECHO ---
|
|
ECHO Automated Testing will:
|
|
ECHO Delete PDFs
|
|
ECHO Update Formats From the folder promsformats under the PROMSEXE folder
|
|
set dbName=' + DB_NAME() + '
|
|
set /p GroupComment=Specify Output[%PROMSEXE%_%dbName%]: || set GroupComment=%PROMSEXE%_%dbName%
|
|
ECHO AAA >%TEMP%\VEPROMS\NewFile.txt
|
|
for %%a in (%TEMP%\VEPROMS\NewFile.txt) do Set fdt=%%~ta
|
|
for /F "tokens=1,2,3,4,5,6 delims=/: " %%i in (''echo %fdt%'') do call:sc_FixTime %%k %%i %%j %%n %%l %%m
|
|
set fdt=%fdt::=%_%GroupComment%
|
|
set ServerName=' + @@Servername + '
|
|
md %TEMP%\VEPROMS\%fdt%
|
|
echo %date% %time% Start ' + @@Servername + ' ' + DB_NAME() + '%GroupComment% >>%TEMP%\VEPROMS\%fdt%\Times.txt
|
|
del %TEMP%\VEPROMS\NewFile.txt
|
|
Rem Cleanup output folder before processing
|
|
del %temp%\VEPROMS\*.txt
|
|
del %temp%\VEPROMS\*.pdf
|
|
Rem Delete PDFs
|
|
sqlcmd -E -S%servername% -d%DBNAME% -b -Q "delete from pdfs"
|
|
if ERRORLEVEL 1 goto :oops
|
|
Rem Update Formats
|
|
call :sc_setformats unnecessary unnecessary ' + DB_NAME() + ' unnecessary %PROMSEXE%
|
|
Rem Perform PROMS printing for each Folder ----------------------------------------
|
|
'
|
|
|
|
declare @CommandLine nvarchar(255)
|
|
declare Commands cursor for
|
|
select 'Call :sc_PrintPDF %TEMP%\VEPROMS ' +
|
|
cast(VersionID as varchar(5))+ ' ' + db_name() + ' ' +
|
|
Replace(Replace(ff.name,' ','_'),'-','_') + ' %PROMSEXE%'
|
|
from docversions dv
|
|
join folders ff on dv.folderID = ff.FolderID
|
|
order by versionID
|
|
OPEN Commands
|
|
FETCH NEXT FROM Commands INTO @CommandLine
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
print @CommandLine
|
|
FETCH NEXT FROM Commands INTO @CommandLine
|
|
END
|
|
CLOSE Commands
|
|
DEALLOCATE Commands
|
|
PRINT 'Call :sc_MoveErrorLog ' + db_name() +'
|
|
|
|
echo %date% %time% Done >>%TEMP%\VEPROMS\%fdt%\Times.txt
|
|
Move %TEMP%\VEPROMS\%fdt% C:\PDFs\%fdt%
|
|
|
|
set GroupComment=
|
|
set fdt=
|
|
rem wait 20
|
|
goto:eof
|
|
|
|
:sc_setformats
|
|
echo loading formats from c:\proms\%5\promsformats
|
|
"C:\PROMS\%5\VEPROMS.exe" /UF=c:\proms\%5\promsformats /P= /DB=%ServerName%:%3
|
|
timeout /T 10
|
|
goto:eof
|
|
|
|
:sc_PrintPDF
|
|
echo %date% %time% Start %2 (%4) >>%TEMP%\VEPROMS\%fdt%\Times.txt
|
|
echo Creating PDFs for DocVersion %2 (%4) in %3
|
|
rem del %userprofile%\Documents\VEPROMS\%3*.txt
|
|
"C:\PROMS\%5\VEPROMS.exe" /P=%2 /DB=%ServerName%:%3 /NT /NC
|
|
rem -----------------------------------------------
|
|
rem Add /NW to exclude Word Output to the Meta File
|
|
rem -----------------------------------------------
|
|
echo %date% %time% Done %2 (%4) >>%TEMP%\VEPROMS\%fdt%\Times.txt
|
|
call :sc_AddText %3 %2 %4 %5
|
|
C:
|
|
cd %1
|
|
if not exist DebugP*.txt goto:sc_PrintPDFNoFiles
|
|
set fdt1=%fdt%\%3\%2_%4
|
|
md %fdt1%
|
|
del DOC_*.pdf > nul
|
|
move *.pdf %fdt1% > nul
|
|
move *.txt %fdt1% > nul
|
|
for /F %%c in (''cd'') do echo Files Moved to %%c\%fdt1%
|
|
set fdt1=
|
|
goto:eof
|
|
:sc_PrintPDFNoFiles
|
|
for /F %%d in (''cd'') do echo No Files to Move in %%d
|
|
goto:eof
|
|
|
|
:sc_FixTime
|
|
set fdt=%1%2%3_%5%6
|
|
if "%5%4"=="12PM" goto:sc_FixTimeDone
|
|
if "%5%4"=="12AM" set fdt=%1%2%3_00%6
|
|
if "%4"=="AM" goto:sc_FixTimeDone
|
|
if "%5"=="01" set fdt=%1%2%3_13%6
|
|
if "%5"=="02" set fdt=%1%2%3_14%6
|
|
if "%5"=="03" set fdt=%1%2%3_15%6
|
|
if "%5"=="04" set fdt=%1%2%3_16%6
|
|
if "%5"=="05" set fdt=%1%2%3_17%6
|
|
if "%5"=="06" set fdt=%1%2%3_18%6
|
|
if "%5"=="07" set fdt=%1%2%3_19%6
|
|
if "%5"=="08" set fdt=%1%2%3_20%6
|
|
if "%5"=="09" set fdt=%1%2%3_21%6
|
|
if "%5"=="10" set fdt=%1%2%3_22%6
|
|
if "%5"=="11" set fdt=%1%2%3_23%6
|
|
:sc_FixTimeDone
|
|
echo %2/%3/%1 %5:%6 %4 %fdt%
|
|
goto:eof
|
|
|
|
:sc_MoveErrorLog
|
|
move %userprofile%\Documents\VEPROMS\%1*.txt %fdt%\%1 > nul
|
|
goto:eof
|
|
|
|
:sc_AddText
|
|
for %%a in ("%userprofile%\Documents\VEPROMS\%1 *.txt") do Set fil=%%a
|
|
echo "=========== %4 Printing Complete %2 %3 ===========" >>"%fil%"
|
|
set fil=
|
|
goto :eof
|
|
|
|
oops:
|
|
TIMEOUT /T 60
|
|
' |