@if "%~1" equ "" @Echo off
REM -------------------------------------------------------------------------
REM  #Description.............: Organices start JFProcessMonitor.exe
REM  #New.....................: 16.10.2024/J.Fes
REM  #LUp.....................: 08.01.2026/J.Fes ready for use
REM -------------------------------------------------------------------------
REM  #EXA.....................:
rem Call PMonRunControler.cmd  ":PMonSet/:PMonStart"   "#ProcessName#"  "#ProcessTitle#" "3600"                   "%temp%\_PMon_Result.xml"    "15000"                   "%temp%\*.*;600"       "%temp%\%username%*.syslog" [%temp%\zzPLMPerf1_PMon_sys.log]      ["#LogFile_NE#"}
REM                             :PMonSet/:PMonStart     P1:ProcessName   P2:title         P3:runtimeLimitSeconds   [P4:PMon_ResultXml]          [P5:WaitTiForProc (msec)] [P6:fileLastWriteTime] [P7:tailTextFile search]    [P8:tailTextFile PMon output sys.log] P9
REM -------------------------------------------------------------------------
REM Check Env: %PLMPerf_PMonUse% JobMgr_PMonUse
Rem Call Echo2 "Start PMon please add to your script" "#PMonPEx_toStart# -or- #PMonPEx_toRun#"

set PMonP00_use_p=%~1
if /I "%PMonP00_use_p%" equ ":PMonSet"    Call :PMonSet %*
if /I "%PMonP00_use_p%" equ "PMonSet"    Call :PMonSet %*
if /I "%PMonP00_use_p%" equ "PMonStart"  Call :PMonStart
if /I "%PMonP00_use_p%" equ ":PMonStart"  Call :PMonStart
goto :eof

REM ----------------------------------------------------------------------------
:PMonStart
 Call ColorSet WRN
 Call Echo2 "."
 Call Echo2 "."
 Call Echo2 "."
 Call Echo2 "#--#" "#--#"
 Call Echo2 "Call PMonRunControler.cmd ':PMonStart'" "is replaced please modifiy your script"
 Call Echo2 "Start PMon please add to your script" "#PMonPEx_toStart# -or- Start "Pmon" #PMonPEx_toRun#"
 Call Echo2 "#--#" "#--#"
 Timeout /T:40
 Call Echo2 "."
 Call :ColorSet
 goto :MyEnd

 :MyExitIssue1
 set PMonP94_StatusInfo=%PMonP94_StatusInfo%:Issue:Env:PMonPEx_toRun not set
 Call Echo2 "PMon ERR" "%PMonP94_StatusInfo%"
 goto :MyEnd

 :MyEnd
 goto :eof

REM ----------------------------------------------------------------------------
:PMonStartNo
 set PMonP94_StatusInfo=Execute:No
 Call Echo2 "#PMon:%PMonP94_StatusInfo%" "%PMonP02_titlePrefix_p%"
 set PMonPEx_toRun=
goto :eof

REM ----------------------------------------------------------------------------
:PMonSet
 set PMonPEx_toRun=
 set PMonP94_StatusInfo=SetPmon
 shift
 set PMonP01_processName_p=%~1
 shift
 set PMonP02_titlePrefix_p=%~1
 shift
 set PMonP03_runtimeLimitSeconds_p=0
 if "%~1" neq "" set PMonP03_runtimeLimitSeconds_p=%~1
 shift
 set PMonP04_ResultXml_DPNE_p=%temp%\_PMon_Result.xml
 if "%~1" neq "" set PMonP04_ResultXml_DPNE_p=%~1
 shift
 set PMonP05_waitForProcessSec_p=120 * 1000
 if "%~1" neq "" set /a PMonP05_waitForProcessSec_p=%~1 * 1000
 shift
 set PMonP06_fileLastWriteTime_p=%temp%\*.*;600
 if "%~1" neq "" set PMonP06_fileLastWriteTime_p=%~1
 shift
 set PMonP07_tailTextFile_p=
 if "%~1" neq "" set PMonP07_tailTextFile_p=%~1
 shift
 set PMonP08_tailTextFile_log_p=%~1
 if "%~1" neq "" set PMonP08_tailTextFile_log_p=%~1
 shift
 set PMonP09_duraTimeSpanIfGreaterThen_p=1000
 if "%~1" neq "" set PMonP09_duraTimeSpanIfGreaterThen_p=%~1

 set PMonPEx_exeL_DPNE=
 call SetEnvFirstFound PMonPEx_exeL_DPNE^
 "%PMonPEx_exeL_DPNE%"^
 "%BinL_DP%\JFProcessMonitor.exe"^
 "%JFProcessMonitorL_DPNE%"^
 "%JobClient_ServerProvidedResources_DP%\JFProcessMonitor.exe"

REM Only for addPLM debug
REM  "V:\JobManager\ProgEntw\Ver03\JobManagerV3\03-BinPublic.ClientServer\JFProcessMonitor.exe"

 if not exist "%PMonPEx_exeL_DPNE%" goto :IssueExitPmonExefnf
 set PMonP94_StatusInfo=%PMonP94_StatusInfo%:PmonExe(ff):OK
 Call Echo2 "#PMon:%PMonP94_StatusInfo%" "%PMonP01_processName_p%:%PMonP02_titlePrefix_p%"

 REM -- #Doc:18.12.2025/J.Fes set Parameters
REM  "%JobMgr_Debug%"
 call ToEnvAddParam.cmd^
 "ON"^
 PMonPEx_toRun^
 "%PMonPEx_exeL_DPNE%"^
 "--processName ''%PMonP01_processName_p%''"^
 "--titlePrefix ''%PMonP02_titlePrefix_p%''"^
 "--runtimeLimitSeconds ''%PMonP03_runtimeLimitSeconds_p%''"^
 "--saveResultsTo ''%PMonP04_ResultXml_DPNE_p%''"^
 "--waitForProcess ''%PMonP05_waitForProcessSec_p%''"^
 "--fileLastWriteTime ''%PMonP06_fileLastWriteTime_p%''"^
 "--parentProcessId ''0''"^
	"--killChildProcesses"

 if not defined PMonP07_tailTextFile_p goto :next
 Call Echo2 "add PMonPEx_toRun Parameter(s)" "for TextFile tailing:..."
 call ToEnvAddParam.cmd^
  "ON"^
  PMonPEx_toRun^
  "--tailTextFile ''%PMonP07_tailTextFile_p%''"^
  "--tailTextFile_log ''%PMonP08_tailTextFile_log_p%''"^
  "--duraTimeSpanIfGreaterThen ''%PMonP09_duraTimeSpanIfGreaterThen_p%''"^
  "--tailForceMilliseconds ''500''"
 :next

 set PMonP94_StatusInfo=Exceute:Yes
 if not defined PMonPEx_toRun goto :MyExitIssue1
 Call Echo2 "PMon:%PMonP94_StatusInfo%" "%PMonP02_titlePrefix_p% WinMode:%JobMgr_WINMode%"
 if /i "%JobMgr_WINMode%" neq "Normal" (
   Call Echo2 "PMon:Start:Yes" "%PMonP94_StatusInfo% (Start in Minimised mode)"
   set PMonPEx_toStart=start "PMon Job:[%JobName%][%TcSiteId%]" /Min %PMonPEx_toRun%
 ) else (
   Call Echo2 "PMon:Start:Yes" "%PMonP94_StatusInfo%"
   set PMonPEx_toStart=start "PMon Job:[%JobName%][%TcSiteId%]" %PMonPEx_toRun%
 )
 set PMonPEx_toRunForPrint=%PMonPEx_toRun:"='%
 set PMonPEx_toRunForPrint=%PMonPEx_toRunForPrint:''='%
 Call Echo2 "Start PMon please add to your script" "#PMonPEx_toStart# -or- #PMonPEx_toRun#"
 goto :MyExit

:IssueExitPmonExefnf
 set PMonP94_StatusInfo=%PMonP94_StatusInfo%:PmonExe(Issue:fnf)
 Call Echo2 "PMon ERR" "%PMonP94_StatusInfo%"
 goto :MyExit

:MyExit
goto :eof

