:: *********************************************************** :: Name : batch-candid-adam.bat :: Purpose: This script reads in program names from CANDID and execute :: Date : 28-SEP-2021 ::************************************************************ @echo off cd . :: Convert . to _ in username to read the CANDID API file set uname=%username% set uname=%uname:.=_% ::************************* :: global variables ::************************* setlocal enabledelayedexpansion set sascmd=start "Batch Submission" /abovenormal /wait ".......SAS94\SASHome\SASFoundation\9.4\SAS.EXE" set sasparm=-nologo -icon -rsasuser set apifile=Candid_API_output_%uname%.txt ::************************* :: run candid API ::************************* echo. echo Running CANDID API to get program names echo. REM created program to read candid contents echo %%inc setup; %%setup; > read_candid_pgm.sas echo %%include "..\candidInc.sas"; >> read_candid_pgm.sas echo filename getxls "temp_candid.xlsx"; >> read_candid_pgm.sas echo proc http url="http:\\candid excel export path" >> read_candid_pgm.sas echo out=getxls >> read_candid_pgm.sas echo method="GET"; >> read_candid_pgm.sas echo run; >> read_candid_pgm.sas echo. >> read_candid_pgm.sas echo proc import datafile=".\temp_candid.xlsx" out=candid >> read_candid_pgm.sas echo dbms=excel >> read_candid_pgm.sas echo replace; >> read_candid_pgm.sas echo getnames=YES; >> read_candid_pgm.sas echo sheet="Datasets"; >> read_candid_pgm.sas echo run; >> read_candid_pgm.sas echo. >> read_candid_pgm.sas echo data runme; >> read_candid_pgm.sas echo set candid; >> read_candid_pgm.sas echo if upcase(standard)='ADAM-IG' and upcase(program)=:'AD'; >> read_candid_pgm.sas echo length prodpgm qcpgm $60; >> read_candid_pgm.sas echo prodpgm=strip(scan(program, 1, '.'))^|^|'.sas'; >> read_candid_pgm.sas echo qcpgm=strip(scan(default_test_program, 1, '.'))^|^|'.sas'; >> read_candid_pgm.sas echo keep run_order prodpgm qcpgm; >> read_candid_pgm.sas echo run; >> read_candid_pgm.sas echo. >> read_candid_pgm.sas echo proc sort data=runme nodupkey; by run_order prodpgm qcpgm; run; >> read_candid_pgm.sas echo proc export data=runme >> read_candid_pgm.sas echo outfile="..\..\..\data\adam\candid_adam.tmp" >> read_candid_pgm.sas echo dbms=dlm replace; >> read_candid_pgm.sas echo delimiter='^|'; >> read_candid_pgm.sas echo putnames=no; >> read_candid_pgm.sas echo run; >> read_candid_pgm.sas REM run read_candid_pgm.sas %sascmd% read_candid_pgm.sas %sasparm% del read_candid_pgm.* del temp_candid.xlsx ::******************************************** :: run production programs ::******************************************** cd ..\..\..\data\adam echo Production Programs Path: echo %cd% echo. for /f "usebackq tokens=2 delims=|" %%a in ("candid_adam.tmp") do ( if exist "%%a" ( echo Running %%a %sascmd% %%a %sasparm% ) else ( echo ERROR: %%a does not exist!!!************** ) ) ::******************************************** :: run qc programs ::******************************************** cd verify echo. echo QC Programs Path: echo %cd% echo. for /f "usebackq tokens=3 delims=|" %%a in ("..\candid_adam.tmp") do ( if exist "%%a" ( echo Running %%a %sascmd% %%a %sasparm% ) else ( echo ERROR: %%a does not exist!!!************** ) ) ::************************************* :: Clean-up candid API and temp files ::************************************* del ..\candid_adam.tmp echo. echo. echo ********** DONE!!! ********** pause