Pod pojęciem "plik INI aplikacji" jest rozumiany plik INI w folderze aplikacji, który nosi tę samą nazwę jako plik
PRA. Na przykład jest aplikacja
"Kotlownia.pra" i system PROMOTIC automatycznie do tego pliku wytworzy plik
"Kotlownia.ini".
Plik INI aplikacji można eydtować jako zwykły plik tekstowy. Można go także otworzyć i edytować bezpośrednio w systemie PROMOTIC w menu "
> Otwórz plik aplikacji > Aplikacja.ini".
X pliku INI aplikacji znajdują się proste ustawienia wymagane przez środowisko deweloperskie lub przez tryb runtime. Niżej zostaną opisane podstawowe użyteczne parametry, które można ustawiać.
Opis kluczy w sekcji [Promotic]
W tej sekcji znajdują się globalne parametry ustawienia aplikacji.
[Promotic]
Running=0
RtStartDelay=0
ErrRedir=0
MultipleRun=0
VerifyName=1
XmlClientTimeout=10
Running:
=0 nie znajduje się w runtime,
=1 znajduje się w runtime. Służy do ustawiania parametru
pEvent.Reset w zdarzeniu
PmaRoot.onAppStartBegin. Nie można go ustawiać manualnie, jest zawsze ustawiany tylko przez system PROMOTIC.
RtStartDelay:
(domyślnie: 0). Czas opóźnienia uruchomienia aplikacji PROMOTIC w sekundach. Opcja ta jest stosowana, jeżeli runtime aplikacji PROMOTIC jest zależny od innych oprogramowań (bazy danych, serwer komunikacyjny, itd.). Tym jest zapewnione, że aplikacja PROMOTIC nie uruchomi się prędzej niż aplikacje, od których jest zależna i w ten sposób nie dojdzie do błędów.
Inna możliwość opóźnionego uruchomienia: patrz
Oprogramowanie RunLater.
ErrRedir:
Przy powstaniu błędu w aplikacji jest opis błędu zawsze zarejetrowany w
INFO systemie pod pozycją
Errors.
Opisywanym ustawieniem można osiągnąć, że taki błąd (nawet powtarzający się) zostanie równocześnie zalogowany także do
pozycji Debug INFO systemu:
=0 (domyślnie) - błąd nie jest logowany
=1 - błąd jest logowany do karty "
Debug1"
=2 - błąd jest logowany do karty "
Debug2"
MultipleRun:
=1/0 (domyślnie: 0), Zezwolenie/zakaz uruchomienia jednej aplikacji kilkakrotnie równocześnie. To znaczy, że plik
PRA zostanie uwolniony po wczytaniu aplikacji (opcja działa tylko z licencją runtime).
VerifyName:
Sprawdzać nazwy systemowe (nazwy obiektów i nazwy zmiennych w obiektach z danymi):
=1 (domyślnie) Sprawdzać
=0 Nie sprawdzać. Można ustawić tylko wyjątkowo dla istniejących aplikacji, w których już znajdują się nazwy niesystemowe.
XmlClientTimeout:
(domyślnie 10) Określa maks. okres czekania na zakończenie komunikacji z Web serwerem w sekundach. Chodzi o oczekiwanie na uzyskanie adresu IP oraz nazwy, o oczekiwanie na połączenie z Web serwerem, o oczekiwanie na odpowiedź z Web serwera.
WebView2:
Określa domyślną przeglądarkę stron Webowych aplikacji patrz
Przeglądarka stron Webowych (/#glob/webbrowser).
=0 (domyślnie) Zostanie zastosowana starsza przeglądarka WebBrowser oparta na InternetExplorer 11.
=1 Zostanie zastosowana nowa przeglądarka WebWiew2 oparta na Edge (Chrome).
Opis kluczy w sekcji [Licence]
W tej sekcji znajdują się parametry ustawienia nośnika licencji, patrz
Typy nośników licencji PROMOTIC.
[Licence]
Medium=hwkey:k1234
Medium:
Klucz zawiera listę nośników licencji. Separatorem jest znak "przecinek" (
,). Licencja jest wyszukiwana w liście z lewej w prawo. Zastosowana zostanie pierwsza znaleziona licencja.
Jeżeli klucz nie jest przedstawiony, wtedy zostanie zastosowane ustawienie domyślne
Medium=hwkey, zapewniające ewentualne wczytanie licencji z
Sprzętowy klucz (USB) zawierający licencje.
=
hwkey - Nośnikiem licencji jest
Sprzętowy klucz (USB) zawierający licencje lub
Plik licencyjny SWK rozszerzający zawartość klucza licencyjnego. Można również bliżej określić typ licencji (developerska/runtime) lub nawet odwołać się do kontretnej licencji (poprzez numer licencji). To na przykład umożliwia najpierw wyszukiwać licencję develop (lub konkretną licencję) a następnie dopiero wczytać licencję runtime lub sieciową licencję runtime itd. W taki sposób można rozwiązac sytuację, kiedy aplikacja standardowo korzysta z licencji runtime (z dowolnego medium), ale podczas włożenia klucza sprzętowego develop aplikacja będzie preferencyjnie wczytywać licencję develop.
=hwkey - Klucz z licencją developerską lub runtime (bez specyfikacji).
=hwkey:dev - Klucz z licencją developerską.
=hwkey:rt - Klucz z licencją runtime.
=hwkey:k-XXXX - Klucz z numerem licencji innym aniżeli XXXX.
=
hwkey:kXXXX - Klucz z numerem licencji
XXXX.
Do wczytania klucza sprzętowego poprzez lokalny serwer licencyjny PmLicServer jest to jedyna działająca opcja. Jest stosowana zwłaszcza do rozwiązania problemów dotyczących protokołu
RDP. Opcja ta umożliwia również bezpośrednie wczytanie licencji. Dla aplikacji runtime z licencją w kluczu sprzętowym jest to zalecany sposób.
Przykład:
Różne przykłady zastosowania stopniowego wyszukiwania dostępnych licencji:
Medium=hwkey:k1234
lub
Medium=swkey:Pm1234.swk
lub
Medium=netkey:http://192.168.1.2:5656/Pm1234.swk
lub
Medium=hwkey:dev,hwkey
lub
Medium=hwkey:dev,netkey:http://192.168.1.2:5656/Pm1234.swk
lub
Medium=hwkey:dev,swkey:Pm1234.swk
lub
Medium=hwkey:k1234,hwkey:k4321,hwkey:rt
lub
Medium=hwkey:k1234,hwkey:k1111
MediumDt:
Klucz zawiera listę nośników licencji dla środowiska deweloperskiego. Składnia jest taka sama jako w przypadku klucza
Medium. Klucz umożliwia ustawić aplikacji
odrębną licencję dla środowiska deweloperskiego oraz dla trybu runtime. Opis uzyskania listy licencji polega na kolejnym wyszukiwaniu ustawionego klucza typu
Medium. Środowisko deweloperskie kolejno szuka klucz w kolejności:
- Medium: w pliku INI środowiska deweloperskiego PromoticDt.ini
MediumRt:
Klucz zawiera listę nośników licencji dla trybu runtime. Składnia jest taka sama jako w przypadku klucza
Medium. Klucz umożliwia ustawić aplikacji
odrębną licencję dla środowiska deweloperskiego oraz dla trybu runtime. Opis uzyskania listy licencji polega na kolejnym wyszukiwaniu ustawionego klucza typu
Medium. Tryb runtime kolejno szuka klucz w kolejności:
- Medium: w pliku INI runtime PromoticRt.ini
UseLicServerHwk:
Klucz określa, czy nośnik licencji
hwkey będzie wczytywany
bezpośrednio lub przy pomocy
lokalnego PmLicServer.
0 (domyślnie) -
hwkey będzie wczytywany
bezpośrednio
Opis kluczy w sekcji [InfoSystem]
W niniejszej sekcji można ustawić sposób zapisywania stanu
INFO systemu.
Jeżeli klucz
StoreType jest ustawiony na wartość 2 lub 3 (tzn. zapisywanie zezwolone), wtedy podczas zamykania okna
INFO systemu w tej sekcji zostaną wytworzone następne nowe klucze z wartościami stanu okna.
Chodzi o zapisanie pozycji i rozmiar okna, szybkości odświeżania
INFO systemu oraz zapisanie ostatnio przeglądanej karty włącznie z szerokościami kolumn.
Sekcja
[InfoSystem] z kluczem
StoreType=0 zostanie wytworzona automatycznie przy pierwszym otwarciu okna
INFO systemu (jeżeli taki klucz nie był zapisany w pliku).
StoreType: Określa, czy można następne klucze niniejszej sekcji odczytywać i zapisywać:
=0 odczyt oraz zapis nie jest zezwolony
=1 jest zezwolony tylko odczyt ustawień z pliku INI
=2 jest zezwolony tylko zapis ustawień do pliku INI
=3 jest zezwolony odczyt oraz zapis
Następne klucze niniejszej sekcji są przeznaczone do zapamiętania wartości stanu, są wytwyrzane automatycznie i nie będą tutaj opisywane.
Opis kluczy w sekcji [Log]
W niniejszej sekcji można ustawić parametry
"logowania" aplikacji. Tym jest rozumiany taki tryb aplikacji, że pewne operacje będą zawsze zapisywane na dysk do pliku
Aplikacja.log (na przykład jeżeli projekt nosi nazwę
"Kotlownia.pra", wtedy logi są zapisywane do pliku
"Kotlownia.log"). Tryb ten jest korzystne włączyć przy wytwarzaniu aplikacji, kiedy chcesz mieć wgląd do wytwarzania i równocześnie chcesz stwierdzić informacje jeżeli aplikacja ulegnie awarii, itd. Przy zwyczajnym trybie pracy zalecamy logowanie aplikacji według wstępnie ustawionych wartości kluczy (tzn. jeden klucz:
EnableBase=2).
System PROMOTIC wartości kluczy w tej sekcji nie ustawia lecz tylko odczytuje. Ustawić klucze (i na początku całą sekcję) musi projektant samodzielnie - jeżeli chce logować.
[Log]
DeleteOnSize=1000
AfterWrite=2
EnableBase=2
EnableGlobErr=0
EnableDebug=0
EnableObject=0
EnableSql=0
EnableUser=0
DeleteOnSize: Wielkość pliku tekstowego
log w kB (domyślnie 1000).
Jeżeli przy wczytywaniu aplikacji plik
log jest większe niż ustawienie, wtedy pierwotny plik "
Aplikacja.log" zostanie przemianowany na "
Aplikacja.log.old" i jest wytworzony nowy pusty plik
"Aplikacja.log".
Jest to bardzo proste zabezpieczenie przed nieograniczonym wzrostem pliku log.
AfterWrite:
=0 plik log nie zostanie zamknięty po zapisaniu nowej linii
=1 po zapisaniu plik ni ezostanie zamknięty lecz zostanie wykonany flush (tzn. dane z bufora zostaną zapisane na dysk)
=2 (domyślnie) po każdym zapisaniu plik zostanie zamknięty
Jest to prosty sposób optymalizacji zapisu, ponieważ przy niektórych ustawieniach mogą być zapisywane duże ilości danych (linii).
EnableBase:
=0 Zupełny zakaz logowania
=1 Logowanie zezwolone (tzn. logować według ustawienia EnableGlobErr, EnableDebug, EnableObject)
=2 (domyślnie) Logowanie zezwolone (tak samo jako 1), dodatkowo będą logowane podstawowe zdarzenia systemowe (uruchomienie i zatrzymanie aplikacji, zdarzenie
onTimeChange, wołanie metod
Pm.AppStop,
Pm.ShutDown, itd.)
EnableGlobErr:
=0 Zakaz logowania błędów globalnych
=1 (domyślnie) Zezwolone logowanie tylko nowych błędów (tzn. które powstały po raz pierwszy)
=2 Zezwolone logowanie wszystkich globalnych błędów (nie jest zalecane w stałej eksploatacji, ponieważ wtedy logi mogą przybywać bez ograniczenia a plik log będzie rosnąć bez ograniczeń)
Można również ustawić, żeby błędy były logowane równocześnie do
pozycji Debug INFO systemu. Patrz klucz
ErrRedir w
Opis kluczy w sekcji [Promotic].
EnableDebug:
=1 zezwolenie logowania karty "
Debug1"
=2 zezwolenie logowania karty "
Debug2"
EnableObject:
=0 zakaz (domyślnie), w innym przypadku suma wartości:
=1 kiedy obiekt jest wytwarzany (tzn. kiedy obiekt jest wczytywany z pliku pra i jest wytwarzany w pamięci komputera)
=2 kiedy obiekt zanika (tzn. kiedy obiekt jest usuwany z pamięci komputera)
=4 kiedy obiekt jest uruchomiony w runtime - kiedy zdarzenie
onStart
=8 kiedy obiekt jest zatrzymywany w runtime - kiedy zdarzenie
onStop
EnableSql:
=0 logowanie zapytań SQL wyłączone (domyślnie), w innym przypadku albo wartość 1 lub suma wartości 2, 4 lub 8:
=1 logować zapytania SQL wszystkich komponentów
EnableUser:
=0 Logowanie zalogowanych użytkowników wyłączone (domyślnie)
=1 Logować zalogowanie użytkowników Webowych (nazwa + adres IP)
Opis kluczy w sekcji [Info]
W niniejszej sekcji można odczytać najważniejsze informacje o aplikacji oraz o wersji PROMOTIC. Najważniejszą informacją, którą można w sekcji odczytać, jest wersja PROMOTIC, w której aplikacja była ostatni raz uruchomiona. Przy zajrzeniu do kopii zapasowej aplikacji można z tej sekcji stwierdzić, w której wersji PROMOTIC została wykonana kopia zapasowa aplikacji. Informacje te są pożytecznymi również przy odległym podłączeniu do rzeczywistej aplikacji (np. przy pomocy
VPN) lub jeżeli jest na jednym komputerze kilka aplikacji uruchomionych równocześnie w różnych wersjach PROMOTIC. Patrz:
Jak można stwierdzić wersję PROMOTIC.
Dane w opisywanej sekcji służą tylko do celów informacyjnych, są wytwarzane podczas każdego uruchamiania aplikacji. Ewentualna edycja tych danych nie ma żadnego wpływu na aplikację.
[Info]
AppLastRunVer=Promotic7.3.4
AppLastEditVer=Promotic7.3.3
AppLastEditTime=2008.04.16 14:00:33.468
AppCreatedVer=Promotic7.2.1
AppLastRunVer: Wersja PROMOTIC, w której aplikacja była ostatni raz uruchomiona.
AppLastEditVer: Wersja PROMOTIC w której aplikacja była ostatni raz edytowana.
AppLastEditTime: Data oraz czas ostatniej edycji aplikacji.
AppCreatedVer: Wersja PROMOTIC, w której aplikacja została wytworzona (wartość ta w jednej aplikacji nigdy się nie zmienia).
Pozostałe sekcje
W sekcji
[MainFrame],
[Settings], itd. znajdują się parametry ustawienia dla środowiska deweloperskiego (wielkości okien, itd.), trubu runtime, czcionek, itd.
Zmiana kluczy znajdujących się w omawianych sekcjach nie jest zalecana, i dlatego sekcje te nie są bliżej opisywane.