Struktura pliku konfiguracyjnego
Do poprawnego działania PlusDirectoryMonitor potrzebuje pliku konfiguracyjnego, który jest podawany przy wywołaniu programu.
Plik konfiguracyjny:
- w formacie INI,
- kodowanie powinno być ustawione na UTF-8 bez BOM,
- sekcje konfiguracji:
- ustawienia ogólne [Settings],
- konfiguracja webserwisów [WebService],
- ciągu konfiguracji poszczególnych katalogów do monitorowania i związanych z nimi akcjami [Arch#],
- konfiguracji logów programu [Logger].
Ustawienia ogólne
Sekcja [Settings] zawiera podstawowe ustawienia program. Znajdują się tam następujące parametry:
Nazwa parametru | Opis | Uwagi |
---|---|---|
ProcessAtStartup | Określa czy wraz z uruchomieniem programu ma być od razu wykonane przetwarzanie katalogów. | Możliwe wartości: [true, false] |
ProcessOnce | Określa czy program ma zostać wywołany jednorazowo i po przetworzeniu zakończyć swoje działanie, czy też ma cyklicznie monitorować katalogi zgodnie z ustawieniami w konfiguracjach przetwarzania katalogów. | Możliwe wartości: [true, false] |
ShowInfoMessages | W przypadku uruchomienia PlusDirectoryMonitor jako osobny program osadzony w pasku zadań systemu operacyjnego, parametr ten określa czy mają pojawiać się informacje o udanym lub nieudanym przetworzeniu pliku. | Możliwe wartości: [true, false] |
Login | Parametr określający login użytkownika systemu PlusWorkflow, na którym będą dodawane pliki do archiwum dokumentów. | Parametr ten przy pierwszy prawidłowym zalogowaniu się do systemu PlusWorkflow jest szyfrowany i w formie zaszyfrowanej zapisywany do pliku konfiguracyjnego. W przypadku konieczności zmiany loginu zaszyfrowaną wartość można zmienić na tekst jawny i przy kolejnym uruchomieniu zostanie ona ponownie zaszyfrowana. |
Password | Parametr określający hasło do systemu PlusWorkflow użytkownika podanego w parametrze Login. | Podobnie jak login przy pierwszej udanej próbie zalogowania jest ono szyfrowane. |
AccessWithWebService | Parametr określający, czy korzystać z webservice. | Jeżeli parametr nie jest w ogóle podany lub jest ustawiony na false, to domyślnie korzysta z systemowego API. Jeżeli PlusDirectoryMonitor działa jako samodzielna aplikacja, to zawsze wykorzystuje webservice. |
Konfiguracja webserwisów
Sekcja [WebService] zawiera konfigurację połączenia do webserwisów systemu PlusWorkflow. Zawiera następujące parametry:
Nazwa parametru | Opis | Uwagi |
---|---|---|
WSDL_URL | Ścieżka do lokalizacji pliku WSDL. | Standardowa wartość: http://IP_serwera/PlusWorkflow/services/ |
Namespace | Nazwa przestrzeni nazw webserwisów. | W systemie PlusWorkflow jest to: http://services.plusmpm.com |
ServiceName | Nazwa klasy implementującej webserwisy. | W systemie PlusWorkflow jest to: ReleaseService. |
Konfiguracja przetwarzanych katalogów
W celu skonfigurowania przetwarzania katalogu należy utworzyć sekcję [Arch#] w pliku konfiguracyjnym, gdzie # oznacza kolejny numer konfiguracji przetwarzania katalogu.
Każda sekcja [Arch#] dotyczy konfiguracji przetwarzania wybranego katalogu. Poszczególne przetwarzania katalogów odbywają się zgodnie z kolejnością umieszczoną w pliku konfiguracyjnym.
W sekcji tej można ustawić następujące parametry:
- Active - określa czy dana konfiguracja ma być aktywna. Gdy wartość równa false podana konfiguracja pomijana jest przy przetwarzaniu, gdy wartość równa true przetwarzanie katalogu odbywa się przy każdym uruchomieniu.
- ShareId - nazwa własna utworzonej konfiguracji. Nie ma wpływu na przetwarzanie, jest jedynie wykorzystywana jako identyfikator np. logach programu.
- SharePath - ścieżka do przetwarzanego katalogu. Ta sama ścieżka może być wykorzystywana w różnych konfiguracjach [Arch#].
- SearchSubDirectory - parametr określający czy mają być przetwarzane podkatalogi katalogu podanego w SharePath. Jeśli ustawiony na true to przetwarzane są pliki we wszystkich podkatalogach katalogu ustawionego w SharePath, jeśli ustawiony na false to przetwarzane tylko pliki z będące bezpośrednio w katalogu z SharePath.
- FileRegExp - wyrażenie regularne dopasowywane do plików. Jeżeli wyrażenie nie zostanie dopasowane do danej nazwy pliku to zostanie on pominięty przy przetwarzaniu.
- SortFilesBy - opcjonalny parametr służący do sortowania importowanych plików do systemu Plus Workflow wg(możliwe jest sortowanie po nazwie, w tym celu nalezy ustawić wartość na "name" (SortFilesBy = name), lub sortowanie po dacie, odpowiednio ustawiamy wartość na "date" (SortFilesBy = date). Kierunek sortowania można określić za pomocą parametru "SortFilesDirection" (Opisany w poniższym podpunkcie). Domyślnie sortowanie jest wyłączone.
- SortFilesDirection - opcjonalny parametr służący do ustawienia kierunku sortowania importowanych plików. Domyślnie ustawione jest sortowanie rosnąco. W celu ustawienia sortowania malejącego należy ustawić wartość na "SortFilesDirection = desc". W przypadku sortowania po dacie w dla pokrywających się dat sortowanie automatycznie odbywa się po nazwie.
Parametry ogólne | ||
---|---|---|
Nazwa parametru | Opis | Uwagi |
Active | Określa czy dana konfiguracja ma być aktywna. | Gdy wartość równa false, podana konfiguracja pomijana jest przy przetwarzaniu, gdy wartość równa true przetwarzanie katalogu odbywa się przy każdym uruchomieniu. |
ShareId | Nazwa własna utworzonej konfiguracji. | Nie ma wpływu na przetwarzanie, jest jedynie wykorzystywana jako identyfikator np. logach programu. |
SharePath | Ścieżka przetwarzanego katalogu. | Ta sama ścieżka może być wykorzystywana w różnych konfiguracjach [Arch#]. |
ArchiveClass | Identyfikator klasy dokumentów. | Wartość w postaci liczby całkowitej. |
SearchSubDirectory | Parametr określający czy mają być przetwarzane podkatalogi katalogu podanego w SharePath. | Jeśli ustawiony na true to przetwarzane są pliki we wszystkich podkatalogach katalogu ustawionego w SharePath, jeśli ustawiony na false to przetwarzane tylko pliki z będące bezpośrednio w katalogu z SharePath. |
SaveAsNewVersion | Parametr określający, czy w przypadku takich samych indeksów dokument zapisać jako nowa wersja. | Możliwe wartości: [true, false] |
ProcessFilesUnmodifiedBy | Czas od momentu modyfikacji pliku, po jakim zaczynać dopiero przetwarzanie pliku. | Wartość w postaci liczby całkowitej reprezentująca liczbę minut od momentu modyfikacji pliku, po jakiej zaczynać dopiero przetwarzanie pliku. |
SortFilesBy | Opcjonalny parametr służący do określenia kolejności importowania dokumentów. | Możliwe wartości:
|
SortFilesDirection | Opcjonalny parametr słuzący do określenia kierunku przetwarzania importowania dokumentów. | Możliwe wartości:
|
FileType | Typ przetwarzanych dokumentów, domyslnie raw. | Możliwe wartości: [RAW, XML]. Gdy podany jest nieobsługiwany typ to plik jest pomijany |
FileRegExp | Regex, po którym następuje filtrowanie plików po ich pełnych ścieżkach | Jeżeli pełna ścieżka pliku nie spełnia regexa, to plik jest pomijany. |
FileNameRegExmp | Regex, po którym następuje filtrowanie plików po ich nazwach. | Jeśli nazwa pliku nie spełnia regexa, to plik jest pomijany. |
Parametry związane z okresowym uruchamianiem DirectoryMonitor | ||
Nazwa parametru | Opis | Uwagi |
CheckAtTime | Parametr określający czy przetwarzać katalogi o godzinie ProcessTime. | Możliwe wartości: [true, false]. |
ProcessTime | Godzina o której mają byc przetwarzane katalogi, gdy wybrany jest parametr CheckAtTime. | Godzina w formacie:
|
CheckPeriodic | Parametr określający, czy przetwarzać katalogi co określony czas Period | Możliwe wartości: [true, false]. |
Period | Odstęp czasowy, co który mają byc przetwarzane katalogi. | Wartość w postaci liczby całkowitej reprezentującej okres czasowy w milisekundach. |
Parametry związane z typem plików RAW | ||
Nazwa parametru | Opis | Uwagi |
CopyRawFiles | Parametr określajacy czy zapisywać pliki RAW w osobnym katalogu RawFileDestinationPath. | Możliwe wartości, [true, false]. |
RawFileDestinationPath | Ścieżka do zapisu plików RAW, jeżeli wybrano opcję CopyRawFiles. | Wartość w postaci tekstu reprezentującym ścieżkę do katalogu, do którego mają być zapisywane pliki RAW. |
DeleteRawFiles | Jest to parametr określający czy ma nastąpić usunięcie źródłowego pliku RAW jeżeli z powodzeniem przeniesiono go do archiwum, | Możliwe wartości, [true, false]. |
RawFileRegExp | Regex, którym następuje filtrowanie znalezionych ścieżek plików. | Jeżeli w regexie jest grupa (oznaczona okrągłymi nawiasami), to przechwycona grupa jest używana jako nowa ścieżka pliku. |
RawFileMask | Tekst, którym mozna podmienić ścieżkę pliku. | Można w tekście wykorzystywać przechwycone grupy z RawFileRegExp w postaci $1, $2 ... itd. |
RawFileOnError | Parametr określający operację do wykonania dla plików RAW, których nie udało się dodać do archiwum. | Możliwe wartości:
|
RawFileErrorDirectory | Ścieżka do katalogu dla plików RAW, których nie udało się dodać do archiwum. | Wartość w postaci tekstu reprezentującym ścieżkę do katalogu, do którego mają być zapisywane pliki RAW, których nie udało się dodać do archiwum. |
Parametry związane z typem plików XML | ||
Nazwa parametru | Opis | Uwagi |
CopyXMLFiles | Parametr określajacy czy zapisywać pliki XML w osobnym katalogu XMLFileDestinationPath. | Możliwe wartości, [true, false]. |
XMLFileDestinationPath | Ścieżka do zapisu plików XML, jeżeli wybrano opcję CopyXMLFiles. | Wartość w postaci tekstu reprezentującym ścieżkę do katalogu, do którego mają być zapisywane pliki XML. |
DeleteXMLFiles | Jest to parametr określający czy ma nastąpić usunięcie źródłowego pliku XML jeżeli z powodzeniem przeniesiono go do archiwum, | Możliwe wartości, [true, false]. |
XMLRawFileTag | Parametr określający ścieżkę do tagu w pliku XML, który zawiera nazwę pliku do wgrania do archiwum. | Ścieżka do tagu powinna być jednoznaczna. W przypadku braku jednoznaczności wybrana zostanie pierwsza pasująca wartość (TODO do sprawdzenia!). Ścieżka musi był pełna (zawierać wszystkie kolejne tagi). Przykładowo dla pliku XML: Wartość tagu może wynosić jeden z:
Nie powinna wynosić:
|
XMLRawFileAttribute | Parametr określający nazwę atrybutu tagu w pliku XML, który zawiera nazwę pliku do wgrania do archiwum, jeżeli w samym tagu XMLRawFileTag się ona nie znajduje. | Przykładowo dla pliku XML: Wartości XMLRawFileTag i XMLRawFileAttribute mogą wynosić:
|
XMLFileOnError | Parametr określający operację do wykonania dla plików XML, których nie udało się dodać do archiwum. | Możliwe wartości:
|
XMLFileErrorDirectory | Ścieżka do katalogu dla plików XML, których nie udało się dodać do archiwum. | Wartość w postaci tekstu reprezentującym ścieżkę do katalogu, do którego mają być zapisywane pliki XML, których nie udało się dodać do archiwum. |
Parametry związane z niestandardowymi zapytaniami do baz danych (# - kolejny numer zaczynając od 1, gdyż zapytań może być wiele) | ||
Nazwa parametru | Opis | Uwagi |
DBURL# | Adres URL połączenia z bazą, | |
SQLQuery# | Zapytanie do bazy danych, którego wyniki mogą być później wykorzystywane jako wartości indeksów. | W zapytaniu można użyć wartości indeksów, które zostały określone już w inny sposób (np. z nazwy, daty czy pliku xml). W takim wypadku wartość indeksu należy użyć jako: $IndexN (gdzie N to numer jednego z indexów tam gdzie IndexN_Type jest różny od SQL). |
DBUser# | Login użytkownika do bazy danych, | |
DBPassword# | Hasło użytkownika do bazy danych. | |
JDBCDriver# | Sterownik do bazy danych. | |
AllOccurence# | Parametr określający czy ten sam plik jest dodawany do archiwum tyle razy ile rekordów zwróci zapytanie zamiast tylko raz z użyciem pierwszego rekordu. | Dla każdego rekordu ustawiane są wartości odpowiednich indeksów z typem SQL. Pozostałe indeksy dla każdego pliku będą miały tą samą wartość. Ten parametr może wystąpić tylko raz w pliku konfiguracyjnym (brane jest pod uwagę tylko pierwsze takie wystąpienie). |
Konfiguracja logów
Plik konfiguracyjny jest przy starcie programu wykorzystywany przy konfiguracji logów log4j. Konfiguracja taka powinna być umieszczona w sekcji [Logger] i powinna być zgodna ze standardem konfiguracji log4j. Przykładowa konfiguracja:
log4j.appender.PlusDirectoryMonitor = com.plusmpm.util.logger.DailyRollingFileAppender
log4j.appender.PlusDirectoryMonitor.Threshold = DEBUG
log4j.appender.PlusDirectoryMonitor.File = /home/plusmpm/Logs/PlusDirectoryMonitor.log
log4j.appender.PlusDirectoryMonitor.DatePattern = '.'yyyyMMdd
log4j.appender.PlusDirectoryMonitor.layout = org.apache.log4j.PatternLayout
log4j.appender.PlusDirectoryMonitor.layout.ConversionPattern = %-12t%d{yy-MM-dd HH:mm:ss,SSS} %-5p%23C{1}:%-6L-%x- %m%n
log4j.logger.com.plusmpm.directorymonitor=DEBUG,PlusDirectoryMonitor