@Echo off
 REM ===========================================================================
 REM Basisscript JobManager V2 fuer den Refile mit NX8 in der TC Umgebung
 REM (c) J.Feuerstein 24.11.2006
 rem
 REM Aenderungs Info:
 REM User    Date/Time (Alt+D)  Infotext:
 REM J.Fes   24.11.2006 00:05   Ersterstellung 24.11.2006
 REM J.Fes   01.03.2008 14:00    -SpOpt_RefileReplicaParts
 REM J.Fes   20.07.2009 08:00    -Script angepasst SetColor
 REM J.Fes   01.11.2009 19:00   Scriptinterne Optionsschalter eingefuegt:
 REM                             - JobMgr_Debug
 REM                             - JobMgr_use_PlmJobManagerWatchDog
 REM                             - JobMgr_use_RemoteSoftwareVNC
 REM                             - JobMgr_OnErrorShowResultOnClient
 REM J.Fes   12.12.2009 23:00   Scriptinterne Optionsschalter eingefuegt:
 REM                             -JobMgr_use_DiskConnect
 REM J.Fes   12.12.2009 23:00   Rf Replica mit TC2007.1/NX7.5 neu Optionsschalter beruecksichtigt
 REM                             -replica_bypass=yes und Environ SET UGII_UGMGR_ALLOW_REFILE_REPLICA_BYPASS=true
 REM J.Fes   21.12.2009 13:00   Call :JobParam_List "%RfPara%" ergaenzt
 REM J.Fes   31.05.2010 21:51   Scriptinterne Optionsschalter eingefuegt:
 REM                             - JobMgr_use_TcServerKill
 REM J.Fes   28.08.2010 17:11   JobUser und JobUserPw per cmd P1 und P2 uebernehmen eingefuegt:
 REM                             - set JobMgr_TcUser=
 REM                             - set JobMgr_TcPw=
 REM J.Fes   29.10.2010 20:22   FMS_HOME Check eingebaut + Formatierungen
 REM J.Fes   31.08.2011 18:21   Eingefuegt: Docu 31.08.2011 K.Scholz/J.Feuerstein + Formatierungen
 REM J.Fes   04.04.2012 22:35   Script fuer NX75 Refile angepasst
 REM J.Fes   14.06.2012 18:17   -u=dba als default fuer den Rf User gesetzt
 REM J.Fes   14.06.2012 18:17   entfernt: setlocal EnableDelayedExpansion EnableExtensions
 REM J.Fes   17.08.2012 10:20   umgestellt set UGII_DISABLE_PREVIEW= und  set UGII_DISABLE_QAF_NAMED_REFS=ON
 REM J.Fes   14.07.2013 15:54   Skript umgestellt auf JS Cmd Tools
 REM J.Fes   04.12.2015 16:45   more examples for TC/NX Prompt
 REM ===========================================================================
 
 Echo **************************************************************************
 Echo * Excuting Refile Script for NX10 PLMJobManager Environ                  *
 Echo * Version: V2.1  (c)addPLM GmbH  04.12.2015                              *
 Echo **************************************************************************

 set JobMgr_TcUser=%~1
 set JobMgr_TcPw=%~2

 REM -- Basiseinstellungen fuer das Verhalten es Scriptes ----------------------
 REM Hier können Verschiedene Einstellungen getroffen werden die steuern wie das Script ablaufen soll
 REM      Die mit "#" Gitter eingeschlossenen Variablen werden vom JobServer ersetzt
 
 REM Alle wichtigen Stellen sind mit # gekennzeichnset
 REM #Doc:  steht an allen Dokumentations Stellen
 REM #ToDo: steht an allen Stellen die angepasst werden sollen

 rem wird im JobScript angegben so wird der File:[#JobName#_ObjectsList.txt] nicht dem JobFile hinzugefuegt.
 set JobAddFile_ObjectsList_txt=false
 rem wird im JobScript angegben so wird der File:[#JobName#_ObjectsListAllDetails.txt] nicht dem JobFile hinzugefuegt.
 set JobAddFile_ObjectsListAllDetails_txt=false

 REM Debug: [bei Einzel Test's auf=ON] [sonst auf OFF stellen]
 set JobMgr_Debug=OFF
 REM -- JobScriptParametersExtended:
 REM    Hinweis:"JobScriptParametersExtended" ist nach dem ausfueller der # variablen leer
 REM             wenn das Datenfeld von Script/Param. J.Cmd.ParmExt auch leer ist
 #JobScriptParametersExtended#

 REM Steuert Verhalten wenn ein Error aufgetreten ist [ON=Anhalten] [OFF=automatisch weiter arbeiten!]
 REM allgemein einstellen wie JobMgr_Debug [default=%JobMgr_Debug%]
 set JobMgr_OnErrorShowResultOnClient=%JobMgr_Debug%
 REM set JobMgr_OnErrorShowResultOnClient=ON
 
 REM Disk Connect [default=OFF]
 set JobMgr_use_DiskConnect=OFF

 REM -- #Step: Farbe setzen IsIdel
 call :ColorSet IsIdel

 REM -- Rootpfade setzen -------------------------------------------------------
 set CmdCurRoot_DP=%~dp0
 set CmdCurRoot_DP=%CmdCurRoot_DP:~0,-1%

 REM -- JobServer Variablen ----------------------------------------------------
 set JobManagerRoot_DP=#00-ApplRoot_DP#
 set BinServer_DP=#01-BinServer_DP#
 set BinClient_DP=#02-BinClient_DP#
 set BinPublic_DP=#03-BinPublic_DP#
 set BinPublic_Custom_DP=#03-BinPublic_Custom_DP#
 set BinPublic_ClientServer_DP=#03_BinPublic_ClientServer_DP#

 REM -- JobData ----------------------------------------------------------------
 set JobScripts_DP=#10-JobScripts_DP#
 set JobName=#JobName#
 set JobPacket_NE=#JobPacket_NE#
 set JobParameter=#JobParameter#

 set DataRoot_CustomWorkInst_DP=#DataRoot_CustomWorkInst_DP#

 REM -- uebergabe SiteDef ------------------------------------------------------
 set TcSiteId=#TcSiteId#

 REM -- PathVariable erweitern
 set path=%CmdCurRoot_DP%;%BinPublic_Custom_DP%;%BinPublic_ClientServer_DP%;%BinPublic_DP%;%Path%


 set title_str=Rf:[%JobName%][%TcSiteId%][%Date% %time:~0,5%][\\%ComputerName%]
 title %title_str%

 if /i "%JobMgr_Debug%" neq "ON" goto :JumbOver
   Echo ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  --
   Banner Debug:%JobMgr_Debug%
   Echo ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  --
   pause
   Echo #Debug....: Start Explorer
   Echo at JobDir.: [%CmdCurRoot_DP%]
   start "" Explorer "%CmdCurRoot_DP%"
   Echo ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  ----  --
:JumbOver

 REM -- temp dir Organiesieren -------------------------------------------------
 set tempOrig_DP=%temp%

 Echo --------------------------------------------------------------------------
 Echo Info: Executing TcPrompt to get "Tc-Environment"

 REM #Doc: SetUp TcPrompt
 REM #ToDo: Setup Customer Scripts  Done:#??.??.??#
 REM #Doc: 31.08.2011 J.Feuerstein
 REM #Doc: Wichtig!! es muss geprueft werden ob beim durchlaufen des
 REM #Doc:           TC.Prompt-Script der FCC neu gestartet wird.
 REM #Doc:           wenn ja dann darf immer nur ein Job je Client laufen

REM #Doc: Example  Generic: fuer TC10
if /i "#TcSiteId#" neq "#Generic_Example1#" goto :Next
 rem SET TC_ROOT=d:\ugs\tc10
 rem SET TC_DATA=\\SRV_XXX\PLMShare\tc10data\windows
 set TcPromtCmd=%TC_DATA%\tc_profilevars.bat
 set TcPromtCmdOpt=
:Next

REM #Doc: Example SIDT Standard:
 if /i "#TcSiteId#" neq "#SIDT_Example1#" goto :Next
  set SIDT_DEBUG=0
  set TcPromtCmd=%UGS_SHR_DIR%\start_apps\windows\start_nx10.bat
  set TcPromtCmdOpt=de tc_prompt #TcSiteId# tc10
:Next


REM #Doc: Example: BCT-1 Prompt
 if /i "#TcSiteId#" neq "#BCT_Example1#" goto :Next
  set TcPromtCmd=\\SRV_XXX\bctsi_custom\scripts\bctsi_env.bat
  set TcPromtCmdOpt=
:Next

REM #Doc: Example: BCT-2 Prompt
 if /i "#TcSiteId#" neq "#BCT_Example2#" goto :Next
  set TcPromtCmd=\\SRV_XXX\bctsi_custom\scripts\bctsi_start.bat
  rem CHECK -- Parmater3: NX10 oder NX100 --
  set TcPromtCmdOpt=env bct_v161 NX100 - tc101 plm1 de
:Next

REM #Doc: Example: addPLM - VM.TEST
 if /i "#TcSiteId#" neq "tc10" goto :Next
  set TcPromtCmd=c:\splm\tc10\tc_menu\tc10_tc10.bat
  set TcPromtCmdOpt=
:Next

 REM -- #Step: Start TC-Prompt
 if     exist "%TcPromtCmd%" call "%TcPromtCmd%" %TcPromtCmdOpt%
 if not exist "%TcPromtCmd%" goto :TcPromtCmdError


 if /i "%JobMgr_Debug%" neq "ON" goto :JumbOver
  Echo #Debug:
  Echo after excuting:
  Echo TcPromtCmd....: [%TcPromtCmd%]
  Echo TcPromtCmdOpt.: [%TcPromtCmdOpt%]
  Echo FMS_HOME......: [%FMS_HOME%]
  pause
:JumbOver

 Call "%CmdCurRoot_DP%\RfExecute.cmd" "%JobMgr_TcUser%" "%JobMgr_TcPW%" "dba"

 if /i "%JobMgr_Test%" neq "ON" goto :JumbOver
  Banner Test:End
  Echo -------------------------------------------------------------------------
  Echo #TestMode.........: End of Refile Test
  Echo JobName...........: [%JobName%]
  Echo -------------------------------------------------------------------------
  pause
:JumbOver

  rem #New: 14/11/2014/J.Fes
  Echo CleanUp......: %CmdCurRoot_DP%\startup\..
  rd /S /Q "%CmdCurRoot_DP%\startup"
  Echo CleanUp......: %CmdCurRoot_DP%\Resources\..
  rd /S /Q "%CmdCurRoot_DP%\Resources"
  del /S /Q "%CmdCurRoot_DP%\*.fscproxylog"

  rem #New:24/11/2014 18:12/J.Fes preventing sending big logfies to JobServer
  call robocopy "%CmdCurRoot_DP%" "%CmdCurRoot_DP%\..\_JobLogFilesNotSendBackToJobServer\%JobName%" "*.*log*" /S /MIN:3072000 /R:5 /W:1


goto :end


REM ###### ------------ Standard Subroutines ---------------------- ##########
REM ============================================================================
:TcPromtCmdError
 Call :ColorSet ERR
 set ErrLog_DPNE=%temp%\__Err_MissingTcPromtCmd_DeaktivateComputer.txt
 set title_str=ERR: !! cannot start refile on:\\%ComputerName% missing TcPromptCmd [%Date%/%time:~0,8%] !!
 title %title_str%
 Echo --------------------------------------------------------------------------
 call :ErrLogHeaderWrite
 Echo %title_str%>>"%ErrLog_DPNE%"
 Echo TcPromtCmd:=%TcPromtCmd%>>"%ErrLog_DPNE%"

 Type "%ErrLog_DPNE%"
 call :ErrLogFooterWrite
 REM Exit wenn nicht auf dem Client das Ergebniss angezeigt werden soll
 if /i "%JobMgr_OnErrorShowResultOnClient%" neq "ON" goto :end

 Echo.
 Echo after press enter you will see the error reason in notepad editor ....
 Echo Info: explorer start's with dir %temp%
 pause
 start "" Notepad.exe "%ErrLog_DPNE%"
 start "" Explorer "%temp%"
 Echo type exit script continues
 cmd
 goto :end


REM ============================================================================
:ErrLogHeaderWrite
 REM schreibt die erweiterten Infos an einen ErrLogFile
 REM Info: die Variable ErrLog_DPNE muss gesetzt sein!!
 Echo JobClient Error Report  created %date% %time%>>"%ErrLog_DPNE%"
 Echo Computer: %ComputerName% >>"%ErrLog_DPNE%"
 Echo User:     %UserName% >>"%ErrLog_DPNE%"
 Echo -------------------------------------------------------------------------->>"%ErrLog_DPNE%"
 goto :eof

REM ============================================================================
:ErrLogFooterWrite
 REM schreibt die erweiterten Infos an einen ErrLogFile
 REM Info: die Variable ErrLog_DPNE muss gesetzt sein!!
 Echo.>>"%ErrLog_DPNE%"
 Echo -------------------------------------------------------------------------->>"%ErrLog_DPNE%"
 Echo Environ Info of:\\%ComputerName%>>"%ErrLog_DPNE%"
 Echo.>>"%ErrLog_DPNE%"
 Echo -- Path Environ ---------------------------------------------------------->>"%ErrLog_DPNE%"
 set PATH>>"%ErrLog_DPNE%"

 Echo -- UG* Environ ----------------------------------------------------------->>"%ErrLog_DPNE%"
 set UG>>"%ErrLog_DPNE%"
 Echo -- IMAN* Environ --------------------------------------------------------->>"%ErrLog_DPNE%"
 set IMAN>>"%ErrLog_DPNE%"
 Echo -- All Environ ----------------------------------------------------------->>"%ErrLog_DPNE%"
 set>>"%ErrLog_DPNE%"
 goto :eof

REM ============================================================================
:ColorSet
Rem Stand 25.06.2011
Rem Examples:
 REM call :ColorSet Standard
 REM call :ColorSet IsExecuting
 REM call :ColorSet IsIdel
 REM call :ColorSet End
 REM call :ColorSet Ende
 REM call :ColorSet Ok
 REM call :ColorSet Err

 REM -- cmd Color Farbinfo:
 REM    0 = Schwarz        8 = Dunkelgrau
 REM    1 = Dunkelblau     9 = Blau
 REM    2 = Dunkelgrün     A = Grün
 REM    3 = Blaugrün       B = Zyan
 REM    4 = Dunkelrot      C = Rot
 REM    5 = Lila           D = Magenta
 REM    6 = Ocker          E = Gelb
 REM    7 = Hellgrau       F = Weiß
 REM -- Farben nach Status setzen
 REM Gelb Schwarz
 if /I "%~1" equ "Standard"    set JobColorLast=E0
 REM 25.06.2011 07:00 Standard eingef. IsExecuting Neu
 if /I "%~1" equ "IsExecuting" set JobColorLast=D0
 REM Blaugrün Schwarz 15.11.2010 07:45 Hellgrau Schwarz
 if /I "%~1" equ "IsIdel"      set JobColorLast=70
 REM Hellgrau Schwarz
 if /I "%~1" equ "End"         set JobColorLast=70
 if /I "%~1" equ "Ende"        set JobColorLast=70
 REM Gruen Schwarz
 if /I "%~1" equ "Ok"          set JobColorLast=A0
 REM Rot Schwarz
 if /I "%~1" equ "Err"         set JobColorLast=C0

 REM jetzt die Farbe setzen
 if "%JobColorLast%" neq "" color %JobColorLast%
 goto :eof

REM ============================================================================
:TypeFile
 REM Types the description and the contens of a file
 setlocal
  set FileToType_DPNE=%~1
  set FileDescription=%~2
  Echo ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---
  Echo Description    : %FileDescription%
  Echo Contens of File: %FileToType_DPNE%
  if     exist "%FileToType_DPNE%" type "%FileToType_DPNE%"
  if not exist "%FileToType_DPNE%" Echo Info...........: File not exist
 endlocal
 goto :eof

REM ============================================================================
:Wait
 set waitTime=2
 if "%1" neq "" set waitTime=%1
 CHOICE.exe /C:w /N /T:w,%waitTime% "warte %waitTime%[sec] oder [w] druecken fuer weiter: "
 goto :eof

REM ============================================================================ 
:Parse_ALL
 REM parst alle File Bezeichner aus
 REM "\" abschneiden
 set Parse_all$temp=%~dp1
 set Parse_all$temp=%Parse_all$temp:~0,-1%
 set %2_DP=%Parse_all$temp%
 set %2_D=%~d1
 REM "\" hinten und vorne abschneiden
 set Parse_all$temp=%~p1
 set Parse_all$temp=%Parse_all$temp:~1,-1%
 set %2_P=%Parse_all$temp%
 set %2_NE=%~nx1
 set %2_N=%~n1
 set %2_E=%~x1
 set %2_DPNE=%1
 set %2_DPN=%~dpn1
 set Parse_all$temp=
goto :eof 

REM ============================================================================
:Ugsshare_DiskConnectErr
 set ErrLog_DPNE=%temp%\__Err_Ugsshare_DiskConnect.txt
 REM schreibt die erweiterten Infos an einen ErrLogFile
 Echo Err: erf. Netzwerkverb. fuer: %TcSiteId% [%ConnectNetUnc_to_Info%] konnte nicht richtig verbunden werden!!>>"%ErrLog_DPNE%"
 Echo Computer: %ComputerName% >>"%ErrLog_DPNE%"
 Echo User:     %UserName% >>"%ErrLog_DPNE%"
 Echo --------------------------------------------------------------------->>"%ErrLog_DPNE%"
 type "%ErrLog_DPNE%"
 Echo !!Einstellungen oder Netzwerkverbindungen pruefen!!
 cmd 
 Pause
 goto :eof

REM ============================================================================
:end
 cd /d "%tempOrig_DP%"
 Echo --------------------------------------------------------------------------
 Echo Info: all files in: [%temp%]
 Echo       will be zipt by JobClient and send to JobServer
 REM -- farbe wieder auf standard zurueck setzen
 Call :ColorSet End
