diff --git a/proxmox/lxc108-oracle/roa-windows-setup/scripts/03-import-contafin.ps1 b/proxmox/lxc108-oracle/roa-windows-setup/scripts/03-import-contafin.ps1 index 8d15e1c..e398d94 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/scripts/03-import-contafin.ps1 +++ b/proxmox/lxc108-oracle/roa-windows-setup/scripts/03-import-contafin.ps1 @@ -11,7 +11,7 @@ - Verifies import (object count, invalid objects) .PARAMETER DumpFile - Path to the CONTAFIN_ORACLE DMP file. Required. + Path to the CONTAFIN_ORACLE DMP file. If not specified, auto-detects from DmpDir. .PARAMETER OracleHome Oracle home directory. If not specified, auto-detects. @@ -45,8 +45,7 @@ [CmdletBinding()] param( - [Parameter(Mandatory = $true)] - [ValidateScript({ Test-Path $_ })] + [Parameter(Mandatory = $false)] [string]$DumpFile, [Parameter(Mandatory = $false)] @@ -79,6 +78,24 @@ $ErrorActionPreference = 'Stop' $logPath = Join-Path $PSScriptRoot "..\logs\03-import-contafin_$(Get-Date -Format 'yyyyMMdd_HHmmss').log" Initialize-LogFile -LogPath $logPath -ScriptName "03-import-contafin.ps1" +# Auto-detect DumpFile if not specified +if (-not $DumpFile) { + Write-Host "[INFO] DumpFile not specified, searching in $DmpDir..." -ForegroundColor Yellow + $candidates = Get-ChildItem -Path $DmpDir -Filter "*contafin*.dmp" -ErrorAction SilentlyContinue | + Sort-Object LastWriteTime -Descending + if ($candidates) { + $DumpFile = $candidates[0].FullName + Write-Host "[INFO] Auto-detected DumpFile: $DumpFile" -ForegroundColor Green + } else { + throw "No CONTAFIN_ORACLE dump file found in $DmpDir. Please specify -DumpFile parameter or copy *contafin*.dmp to $DmpDir" + } +} + +# Validate DumpFile exists +if (-not (Test-Path $DumpFile)) { + throw "DumpFile not found: $DumpFile" +} + try { Write-LogSection "Importing CONTAFIN_ORACLE Schema" diff --git a/proxmox/lxc108-oracle/roa-windows-setup/scripts/05-import-companies.ps1 b/proxmox/lxc108-oracle/roa-windows-setup/scripts/05-import-companies.ps1 index 88f4273..c53f9a1 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/scripts/05-import-companies.ps1 +++ b/proxmox/lxc108-oracle/roa-windows-setup/scripts/05-import-companies.ps1 @@ -16,7 +16,7 @@ 5. Logs progress .PARAMETER DumpDirectory - Directory containing company DMP files. Required. + Directory containing company DMP files. If not specified, defaults to C:\DMPDIR. .PARAMETER OracleHome Oracle home directory. If not specified, auto-detects. @@ -53,9 +53,8 @@ [CmdletBinding()] param( - [Parameter(Mandatory = $true)] - [ValidateScript({ Test-Path $_ -PathType Container })] - [string]$DumpDirectory, + [Parameter(Mandatory = $false)] + [string]$DumpDirectory = "C:\DMPDIR", [Parameter(Mandatory = $false)] [string]$OracleHome, @@ -89,6 +88,12 @@ Initialize-LogFile -LogPath $logPath -ScriptName "05-import-companies.ps1" try { Write-LogSection "Batch Import Company Schemas" + # Validate DumpDirectory exists + if (-not (Test-Path $DumpDirectory -PathType Container)) { + throw "DumpDirectory not found: $DumpDirectory" + } + Write-Log "Using dump directory: $DumpDirectory" + if ($DryRun) { Write-LogWarning "DRY RUN MODE - No changes will be made" } diff --git a/proxmox/lxc108-oracle/roa-windows-setup/scripts/08-post-install-config.ps1 b/proxmox/lxc108-oracle/roa-windows-setup/scripts/08-post-install-config.ps1 index 45e6e8c..b80eca5 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/scripts/08-post-install-config.ps1 +++ b/proxmox/lxc108-oracle/roa-windows-setup/scripts/08-post-install-config.ps1 @@ -345,122 +345,122 @@ SET FEEDBACK ON SERVEROUTPUT ON VERIFY OFF -- System passwords (encoded) MERGE INTO server_info t -USING (SELECT 'PASSWORD_SYS' AS varname, '$sysPasswordEncoded' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'PASSWORD_SYS' AS name, '$sysPasswordEncoded' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'PASSWORD_CONTAFIN_ORACLE' AS varname, '$contafinPasswordEncoded' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'PASSWORD_CONTAFIN_ORACLE' AS name, '$contafinPasswordEncoded' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); -- Local paths MERGE INTO server_info t -USING (SELECT 'ROAUPDATEPATH' AS varname, '$RoaUpdatePath' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'ROAUPDATEPATH' AS name, '$RoaUpdatePath' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'SQLPLUSPATH' AS varname, '$sqlplusPath' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'SQLPLUSPATH' AS name, '$sqlplusPath' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'POWERSHELLPATH' AS varname, 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'POWERSHELLPATH' AS name, 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); -- Update configuration MERGE INTO server_info t -USING (SELECT 'UPDATEPREREQ' AS varname, '1' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'UPDATEPREREQ' AS name, '1' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'POWERSHELLDOWNLOAD' AS varname, '1' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'POWERSHELLDOWNLOAD' AS name, '1' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'POWERSHELLTIMEOUT' AS varname, '30' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'POWERSHELLTIMEOUT' AS name, '30' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); -- Email configuration MERGE INTO server_info t -USING (SELECT 'EMAIL_FROM' AS varname, '$EmailFrom' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_FROM' AS name, '$EmailFrom' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_TO' AS varname, '$EmailTo' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_TO' AS name, '$EmailTo' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_CC' AS varname, '' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_CC' AS name, '' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_SMTP' AS varname, '$EmailSmtp' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_SMTP' AS name, '$EmailSmtp' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_PORT' AS varname, '25' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_PORT' AS name, '25' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_METHOD' AS varname, 'UTL_SMTP' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_METHOD' AS name, 'UTL_SMTP' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_USERNAME' AS varname, '$EmailUsername' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_USERNAME' AS name, '$EmailUsername' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'EMAIL_PASSWORD' AS varname, '$EmailPassword' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'EMAIL_PASSWORD' AS name, '$EmailPassword' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); -- Update server URLs MERGE INTO server_info t -USING (SELECT 'UPD_URL_APP' AS varname, 'https://update.romfast.ro/roa/' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'UPD_URL_APP' AS name, 'https://update.romfast.ro/roa/' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'UPD_URL_APP_BACKUP' AS varname, 'https://update2.romfast.ro/roa/' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'UPD_URL_APP_BACKUP' AS name, 'https://update2.romfast.ro/roa/' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); MERGE INTO server_info t -USING (SELECT 'UPD_URL_VERSION' AS varname, 'https://update.romfast.ro/version.txt' AS varvalue FROM dual) s -ON (t.varname = s.varname) -WHEN MATCHED THEN UPDATE SET t.varvalue = s.varvalue -WHEN NOT MATCHED THEN INSERT (varname, varvalue) VALUES (s.varname, s.varvalue); +USING (SELECT 'UPD_URL_VERSION' AS name, 'https://update.romfast.ro/version.txt' AS value FROM dual) s +ON (t.name = s.name) +WHEN MATCHED THEN UPDATE SET t.value = s.value +WHEN NOT MATCHED THEN INSERT (id_server_info, name, value) VALUES ((SELECT NVL(MAX(id_server_info),0)+1 FROM server_info), s.name, s.value); COMMIT; @@ -563,18 +563,18 @@ ORDER BY directory_name; PROMPT PROMPT === SERVER_INFO Configuration === -SELECT varname, - CASE WHEN UPPER(varname) LIKE '%PASSWORD%' THEN '***HIDDEN***' - ELSE SUBSTR(varvalue, 1, 50) - END AS varvalue +SELECT name, + CASE WHEN UPPER(name) LIKE '%PASSWORD%' THEN '***HIDDEN***' + ELSE SUBSTR(value, 1, 50) + END AS value FROM contafin_oracle.server_info -WHERE varname IN ( +WHERE name IN ( 'ROAUPDATEPATH', 'SQLPLUSPATH', 'POWERSHELLPATH', 'UPDATEPREREQ', 'POWERSHELLDOWNLOAD', 'EMAIL_FROM', 'EMAIL_TO', 'EMAIL_SMTP', 'UPD_URL_APP', 'PASSWORD_SYS', 'PASSWORD_CONTAFIN_ORACLE' ) -ORDER BY varname; +ORDER BY name; PROMPT PROMPT === AUTH_DETALII Customer ID ===