@echo off REM ============================================================================= REM ROA Oracle - instalare la client, neinteractiva REM ============================================================================= REM Ruleaza pasii 01..08 in ordine, din radacina kitului. REM REM Spre deosebire de RunAll.cmd, scriptul asta NU foloseste "set /p", deci REM poate fi rulat si prin SSH / dintr-o sesiune fara tastatura. REM REM Utilizare: REM INSTALEAZA.cmd curat [IdClient] [ServerSMTP] REM INSTALEAZA.cmd migrare [IdClient] [ServerSMTP] REM REM Exemple: REM INSTALEAZA.cmd curat 138 mail.romfast.ro REM INSTALEAZA.cmd migrare 214 REM ============================================================================= setlocal enabledelayedexpansion set "KIT=%~dp0" set "SCEN=%~1" set "IDCLIENT=%~2" set "SMTP=%~3" set "DMPDEST=C:\DMPDIR" if /i "%SCEN%"=="curat" goto :scenar_ok if /i "%SCEN%"=="migrare" goto :scenar_ok goto :utilizare :scenar_ok if "%SMTP%"=="" set "SMTP=mail.romfast.ro" echo. echo ============================================================ echo ROA Oracle - instalare (%SCEN%) echo ============================================================ echo. echo Kit: %KIT% echo DMPDIR tinta: %DMPDEST% echo Id client: %IDCLIENT% echo Server SMTP: %SMTP% echo. REM --------------------------------------------------------------------------- REM Pregatirea DMPDIR REM --------------------------------------------------------------------------- if not exist "%KIT%DMPDIR\FIRMANOUA.dmp" ( echo [EROARE] Lipseste "%KIT%DMPDIR\FIRMANOUA.dmp". echo Fara sablonul de firma noua, clientul nu va putea adauga firme. echo Reconstruieste kitul cu build-client-kit.ps1. exit /b 1 ) dir /b "%KIT%DMPDIR\*contafin*.dmp" >nul 2>&1 if errorlevel 1 ( echo [EROARE] Lipseste un fisier *contafin*.dmp din "%KIT%DMPDIR". exit /b 1 ) if /i "%SCEN%"=="migrare" ( REM Kitul contine mereu 2 sabloane: *contafin*.dmp si FIRMANOUA.dmp. REM Orice peste 2 sunt DMP-urile de firma ale clientului. set /a TOTALDMP=0 for %%F in ("%KIT%DMPDIR\*.dmp") do set /a TOTALDMP+=1 if !TOTALDMP! LEQ 2 ( echo [ATENTIE] In "%KIT%DMPDIR" sunt doar !TOTALDMP! fisiere DMP, echo adica doar sabloanele. La o migrare ar trebui sa existe echo si cate un DMP per firma a clientului. echo Continui - pasul 05 va raporta firmele lipsa. echo. ) ) if not exist "%DMPDEST%" mkdir "%DMPDEST%" echo [1/9] Copiez fisierele DMP in %DMPDEST% ... copy /Y "%KIT%DMPDIR\*.dmp" "%DMPDEST%\" >nul if errorlevel 1 ( echo [EROARE] Copierea DMP-urilor a esuat. exit /b 1 ) REM Serviciul Oracle citeste fisierele cu contul lui, nu cu al tau. Fara REM drepturi explicite, Data Pump da ORA-39002 / LFI la deschiderea fisierului. icacls "%DMPDEST%" /grant "NT SERVICE\OracleServiceXE:(OI)(CI)F" /T >nul 2>&1 echo Gata. REM --------------------------------------------------------------------------- REM Pasii de instalare REM --------------------------------------------------------------------------- echo. echo [2/9] 01-setup-database.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\01-setup-database.ps1" if errorlevel 1 goto :esec_01 echo. echo [3/9] 02-create-sys-objects.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\02-create-sys-objects.ps1" if errorlevel 1 goto :esec_02 echo. echo [4/9] 03-import-contafin.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\03-import-contafin.ps1" set RC=!ERRORLEVEL! REM Codul 5 e normal aici: Data Pump raporteaza "completed with errors" pentru REM ORA-31684 (userul e creat deja de pasul 01) si ORA-39082 (warning-uri de REM compilare, rezolvate la pasul 04). Orice alt cod nenul e esec real. if "!RC!"=="0" goto :pas_04 if "!RC!"=="5" ( echo [INFO] Cod de iesire 5 - normal pentru Data Pump, se continua. goto :pas_04 ) echo [EROARE] 03-import-contafin.ps1 a iesit cu codul !RC!. exit /b !RC! :pas_04 echo. echo [5/9] 04-create-synonyms-grants.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\04-create-synonyms-grants.ps1" if errorlevel 1 goto :esec_04 echo. echo [6/9] 05-import-companies.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\05-import-companies.ps1" if errorlevel 1 goto :esec_05 echo. echo [7/9] 08-post-install-config.ps1 if "%IDCLIENT%"=="" ( powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\08-post-install-config.ps1" -EmailSmtp "%SMTP%" ) else ( powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\08-post-install-config.ps1" -CustomerId "%IDCLIENT%" -EmailSmtp "%SMTP%" ) if errorlevel 1 goto :esec_08 echo. echo [8/9] 07-verify-installation.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\07-verify-installation.ps1" set RCVERIF=!ERRORLEVEL! echo. echo [9/9] Rezultat echo ============================================================ if "!RCVERIF!"=="0" ( echo INSTALARE COMPLETA - verificarea a trecut integral. ) else ( echo INSTALARE TERMINATA, DAR VERIFICAREA A SEMNALAT PROBLEME. echo Citeste lista din raportul de mai sus si logurile din logs\. if /i "%SCEN%"=="migrare" ( echo. echo La migrare, "N company schemas are missing" inseamna ca lipsesc echo DMP-urile firmelor respective. Copiaza-le in %DMPDEST% si reia echo doar pasul 05. ) ) echo ============================================================ echo. if /i "%SCEN%"=="curat" ( echo PASUL URMATOR - prima firma: echo. echo Se creeaza DIN APLICATIA ROA, nu din scripturi. Aplicatia scrie firma echo in CONTAFIN_ORACLE.NOM_FIRME si apeleaza SYS.NEWSCHEMA, care importa echo structura din %DMPDEST%\FIRMANOUA.dmp. echo. echo NU sterge FIRMANOUA.dmp din %DMPDEST% - e folosit la fiecare firma echo noua, oricand pe viitor. echo. ) endlocal & exit /b %RCVERIF% REM --------------------------------------------------------------------------- :esec_01 echo [EROARE] 01-setup-database.ps1 a esuat. Instalarea se opreste. exit /b 1 :esec_02 echo [EROARE] 02-create-sys-objects.ps1 a esuat. Instalarea se opreste. exit /b 1 :esec_04 echo [EROARE] 04-create-synonyms-grants.ps1 a esuat. Instalarea se opreste. exit /b 1 :esec_05 echo [EROARE] 05-import-companies.ps1 a esuat. Instalarea se opreste. exit /b 1 :esec_08 echo [EROARE] 08-post-install-config.ps1 a esuat. Instalarea se opreste. exit /b 1 :utilizare echo. echo Utilizare: echo INSTALEAZA.cmd curat [IdClient] [ServerSMTP] echo INSTALEAZA.cmd migrare [IdClient] [ServerSMTP] echo. echo curat Client nou, fara firme anterioare. In DMPDIR trebuie sa fie echo doar sabloanele: contafin_oracle.dmp si FIRMANOUA.dmp. echo. echo migrare Client cu date existente. In DMPDIR trebuie sa fie echo contafin_oracle.dmp AL CLIENTULUI, cate un DMP per firma, echo plus sablonul FIRMANOUA.dmp. echo. echo ServerSMTP e optional (implicit mail.romfast.ro). echo. exit /b 2