Aktualizacja klientów

Wstęp

Zakladając, że nasz program działa na zasadzie podziału: frontend i backend, wcześniej czy później trafiamy na problem aktualizacji klientów w sieci. O ile aktualizcha backendu nie sprawia kłopotu bo jest jeden, o tyle już wycieczka po kilku stanowiskach w celu aktualizacji fornt-endu już tak…

Opis problemu

Nie podlega watpliwości, ze wszyscy użytkownicy powinni działać na tej samej wersji frontonu. Problem pojawia się w momencie wprowadzenia aktualizacji wtedy zostaje “ręczna” aktualizacjia, jak problematyczna to zależy od ilości użytkowników i dostepu do ich maszyn. Na rynku znajdziemy kilka narzędzi które pomogą nam nad tym zapanować m.in.:

Nigdy mówiąc szczerze z nich nie korzystałem bo nie spełniały moich oczekiwań, w pierwszej wersji korzystałem z pliku bat z prostym skryptem do uruchomienia programu, teraz korzystam z wlasnego execa napisanego przy pomocy AutoIt konfigurowanego za pomocą pliku ini, to było jednak wymuszone przez zrobienie instalatora…

Wracjąc jednak do głównego wątku wszystkie te narzędzia opierają się na tym, ze gdzieś na udziale sieciowym jest wersja aktualna i w razie potrzeby jest kopiowania na komputer klienta i uruchamiana.

Rozwiązanie

Założenia:

  1. Wersja pliku wzorca ma nazwę app.mdb
  2. Umieszczona jest na udziale sieciowym: \\serwer\aplikacje\app\
  3. Każdy użytkownik ma prawo dodawania i zmiany plików w tym udziale

Ręcznie dla użytkownika to by było tak:

  1. Sprawdź czy na udziale sieciowym nie ma nowej aktualizacji
  2. Jak jest to ja przegraj i uruchom

Odnośnie punktu sprawdzenia to dobrym sposobem jest stworzenie pliku tekstowego złożoną z pary: nazwa komputera + uzytkownik, jezeli takiego pliku nie ma to podmieniamy, jezeli jest to uruchamiamy to co mamy na stacji, to dobrze zrealizuje ten skrypt:

@echo off
CLS
set masterFile=app.mdb
set shareMaster=\\serwer\aplikacje\app\
set destFolder=%AppData%\AppName\
set mark=%computername%_%username%
echo %destFolder%

IF not EXIST %sharemaster%%mark%.txt GOTO AKTUALIZACJA
GOTO URUCHOMIENIE

:AKTUALIZACJA
ECHO Program wymaga aktualizacji...
IF not EXIST %destFolder% MKDIR %destFolder%
COPY %sharemaster%%masterFile% %destFolder%%masterFile% /Y
ECHO %sharemaster%%mark% > %sharemaster%%mark%.txt


:URUCHOMIENIE
echo Uruchamianie aplikacji..
c:
cd "\Program Files\Microsoft Office\OFFICE11\"
start MSACCESS.EXE  %destFolder%%masterFile%

Podsumowanie

Najważniejsza zmiana to link do aplikacji nie odnosi się do pliku access’a a do takiego bata.
My w praktyce po aktualizacji wgrywamy nową wersje udziału sieciowego i usuwamy z niego pliki tekstowe. Przyrost plików tekstowych pokaże nam kto i kiedy się zaktualizował.

  1. Chyba o jedno > za malo?

  2. Nie, jest ok, i tak pliki muszą być skasowane aby bat pobrał aktualizacje, w przeciwnym razie przejdzie od razu do uruchomienia programu, celem tego jest to żeby bez sensu nie kopiowac za każdym razem frontonu, tylko wtedy kiedy jest potrzeba…

Reply to programistaaccess ¬
Cancel reply

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar