Pro optimalizaci spouštění aplikace přes VPN je možné umístit kompletní adresář CAQdesktop na lokální disk uživatele a tím velice zrychlit start aplikace. Samotná aplikace si tak bude přes VPN stahovat pouze data z MSSQL serveru. Je vhodné nastavení také výchozího filtru pro konkrétní modul a omezit tak množství dat, které se mají při spuštění načíst.
Toto řešení spouštění ovšem komplikuje samotné provádění Upgrade aplikace CAQdesktop, kdy je nutné zajistit stejné verze na všech stanicích. Jednou z možností je použití scriptu viz níže, který budou uživatelé používat pro spuštění aplikace. Script si zkontroluje a porovná místní a síťový adresář s aplikací a dle toho se rozhodne zda je nutné provést aktualizaci místní kopie ze které následně spustí samotný program.
Při provádění aktualizace na serveru je nutné zjistit uživatele, kteří momentálně s Palstat CAQdesktop pracují a vyzvat je k ukončení aplikace na lokálních stanicích, jinak může dojít k situaci, kdy se změní na serveru struktura databází a aplikace, která nebyla aktualizována se může dostat do nepředvídatelného chybového stavu.
Seznam uživatelů, kteří momentálně v systému poracují je možné zjistit pomocí aplikace ./APL/CaqAdmin.exe pod záložkou "Licence" vis. screenshot.
Spuštění modulu Launcher
C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy Bypass -File "c:/Palstat3G_local_production/RUN_Palstat.ps1"
Spuštění modulu Měřidla
vložení názvu modulu na konec příkazu "measures" odpovídá názvu dle EXE souborů v adresáři APL
C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy Bypass -File "c:/Palstat3G_local_production/RUN_Palstat.ps1" measures
Stažení ukázkových zástupců ve formátu ZIP
Ukázka lokálního adresáře na klientské stanici, zástupce lze umístit na sítový disk pro snadnější správu, nebo rozšířit script a zástupce si kopírtovat ze sítové disku na lokální stanice.
cls
<#
v1.3 - add Set-Location
v1.2 - accept custom config.xml file for local users
v1.1 - external argument as runable programm
v1.0 - first release
#>
$sourcePalstatDir = "//10.0.01/VPN/Palstat3G/"; # demand # network directory of CAQdesktop
$targetPalstatDir = "c:/Palstat3G_local_production/"; # demand # local directory
$targetPalstatClientConfig = "config.LocalClient.xml"; # optional # name of custom config file for users with local copy of CAQdesktop
$sourcePalstatRelease = $sourcePalstatDir + "APL/release.xml";
$targetPalstatRelease = $targetPalstatDir + "APL/release.xml";
"
-----------------------------------------------------------------
- PalstatCAQ LOCAL COPY CHECK
- compare, copy, run both Palstat Directory
- ergument represent name of module exp: 'measures'
-
- SOURCE: $sourcePalstatDir
- TARGET: $targetPalstatDir
- ARGUMENTS: $($args.count)
-----------------------------------------------------------------
"
if ( $($args.count) -eq 1 ) {
$arg_file = $sourcePalstatDir+"APL/"+$($args[0])+".exe";
$arg_file2 = $targetPalstatDir+"APL/"+$($args[0])+".exe";
"[I]: Script accepted argument"
"[I]: Argument -> $($args[0])"
"[I]: Argument -> $arg_file"
#hledame zda takovy soubor vubec existuje
if (!(Test-Path $arg_file) -and !(Test-Path $arg_file2) ) {
"[E]: Argument -> file not exist -> $arg_file"
exit;
}else{
$_run_argument = $arg_file2;
}
}else{
$_run_argument = "NO";
}
"[I]: Check release.xml files in source and target directory"
if (!(Test-Path $targetPalstatRelease) ) {
"[W]: NOT EXIST Target Directory '$targetPalstatDir'"
New-Item -Path "$targetPalstatDir" -Name "APL" -ItemType "directory" | Out-Null
New-Item -Path "$targetPalstatDir/APL/" -Name "release.xml" -ItemType "file" -Value "First RUN" | Out-Null
"[I]: Directory Created"
}
if (!(Test-Path $sourcePalstatRelease) ) {
"[E]: NOT EXIST -> $sourcePalstatRelease"
exit;
}
if (!(Test-Path $targetPalstatRelease) ) {
"[E]: NOT EXIST -> $targetPalstatRelease"
}
"[I]: OK"
if(Compare-Object -ReferenceObject $(Get-Content $targetPalstatRelease) -DifferenceObject $(Get-Content $sourcePalstatRelease)){
"[I]: Versions are different, copy actual from server!!!"
if ((Test-Path "$targetPalstatDir/APLOLD/") ) {
Remove-Item "$targetPalstatDir/APLOLD/" -Recurse
}
#### zkusime prejmenovat jestli neni slozka nekym drzena
if ((Test-Path "$targetPalstatDir/APL/") ) {
"[I]: Old APL exist, try rename to check if isnt block"
Rename-Item -path "$targetPalstatDir/APL" -newName "$targetPalstatDir/APLOLD" | Out-Null
if (!(Test-Path "$targetPalstatDir/APLOLD/") ) {
"[E]: unable rename '$targetPalstatDir/APL', some application is open?"
exit;
}
}
if ((Test-Path "$targetPalstatDir/CONFIG/") ) {
"[I]: Delete Dir CONFIG - done"
Remove-Item "$targetPalstatDir/CONFIG/" -Recurse
}
New-Item -Path "$targetPalstatDir" -Name "CONFIG" -ItemType "directory" | Out-Null
if ((Test-Path "$targetPalstatDir/APL/") ) {
"[I]: Delete Dir APL - done"
Remove-Item "$targetPalstatDir/APL/" -Recurse
}
New-Item -Path "$targetPalstatDir" -Name "APL" -ItemType "directory" | Out-Null
if ((Test-Path "$targetPalstatDir/DOC/") ) {
"[I]: Delete Dir DOC - done"
Remove-Item "$targetPalstatDir/DOC/" -Recurse
}
New-Item -Path "$targetPalstatDir" -Name "DOC" -ItemType "directory" | Out-Null
if ((Test-Path "$targetPalstatDir/SETUP/") ) {
"[I]: Delete Dir SETUP - done"
Remove-Item "$targetPalstatDir/SETUP/" -Recurse
}
New-Item -Path "$targetPalstatDir" -Name "SETUP" -ItemType "directory" | Out-Null
Copy-Item -Path "$sourcePalstatDir/CONFIG/*" -Destination "$targetPalstatDir/CONFIG" -Recurse
"[I]: Copy Dir CONFIG - done"
Copy-Item -Path "$sourcePalstatDir/SETUP/*" -Destination "$targetPalstatDir/SETUP" -Recurse
"[I]: Copy Dir SETUP - done"
Copy-Item -Path "$sourcePalstatDir/DOC/*" -Destination "$targetPalstatDir/DOC" -Recurse
"[I]: Copy Dir DOC - done"
Copy-Item -Path "$sourcePalstatDir/APL/*" -Destination "$targetPalstatDir/APL" -Recurse
"[I]: Copy Dir APL - done"
}
#run CAQdesktop from local destination
if ((Test-Path $targetPalstatRelease) ) {
if ( !([string]::IsNullOrWhitespace($targetPalstatClientConfig)) ) {
"[I]: Local custom config file -> defined"
$customCfg = $sourcePalstatDir+"CONFIG/"+$targetPalstatClientConfig;
if ((Test-Path $customCfg) ) {
"[I]: Local custom config file -> delete old file from local destination"
Remove-Item "$targetPalstatDir/CONFIG/config.xml" | Out-Null
"[I]: Local custom config file -> copy to local destination"
Copy-Item -Path "$customCfg" -Destination "$targetPalstatDir/CONFIG/config.xml" | Out-Null
}else{
"[W]: Local custom config file -> defined but not exist "+$customCfg
}
}else{
"[I]: Local custom config file -> NOdefined"
}
Set-Location "$targetPalstatDir/APL"
if ( $_run_argument -eq "NO" ){
"[I]: Versions are same, RUN LAUNCHER"
$targetPalstat = $targetPalstatDir+"APL/Launcher.exe"
$targetPalstatApl = $targetPalstatDir+"APL/"
Start-Process -FilePath "$targetPalstat" -WorkingDirectory "$targetPalstatApl"
}else{
"[I]: Versions are same, RUN ARGUMENT"
&$_run_argument
}
}
##
© Copyright 1992 - 2024 PALSTAT s.r.o. |
PALSTAT s.r.o. Bucharova 230 543 02 Vrchlabí CZECH REPUBLIC |
tel.: +420 499 422 044 tel.: +420 499 692 016 www.palstat.cz |
» Hlavní strana » Školení » Reference » Novinky |
» Události » Partneři » Podpora » Kontakt |
» Produkty » Zákaznický portál » Vzdálená pomoc » Aktualizace |
» Obchodní podmínky » Fotogalerie » GDPR, zásady ochrany soukromí » Portal 2 |