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:
Domyślnie kolejność przetwarzania jest nieokreślona. | ||||||||||||||||||||||
| SortFilesDirection | Opcjonalny parametr słuzący do określenia kierunku przetwarzania importowania dokumentów. | Możliwe wartości:
Domyślnie kierunek przetwarzania jest rosnący. | ||||||||||||||||||||||
| 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: <a>
<b>
<c>ścieżka do pliku/plik.pdf</c>
</b>
<d>
<c>inna wartość</c>
</d>
</a>
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: <a>
<b>
<c AA="ścieżka do pliku/plik.pdf" BB="inna wartość"/>
</b>
</a>
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). | ||||||||||||||||||||||
| Parametry ogólne związane z indeksami (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||
| Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||
| Index#_Id | Identyfikator indeksu z tabeli pm_indicies. | Wartość w postaci liczby całkowitej. | ||||||||||||||||||||||
| Index#_Name | Nazwa indeksu. | Służy do celów informacyjnych - nie jest brana pod uwagę przy przetwarzaniu indeksów. | ||||||||||||||||||||||
| Index#_Type | Typ indeksu. | Możliwe wartości:
| ||||||||||||||||||||||
| Index#_RegExp | Regex, który powinien spełniać wartość indeksu. | Jeżeli wartość indeksu nie pasuje do wyrażenia, to wartość ustawiana jest na pustą. Dla zaznaczonego Index#_MultiValue = true wyrażenie dopasowyane jest do każdej wartości po średniku i w przypadku braku dopasowania pojedycza wartość zamieniana jest na pustą. | ||||||||||||||||||||||
| Index#_Mask | Tekst, którym mozna podmienić wartość indeksu. | Można w tekście wykorzystywać przechwycone grupy z Index#_RegExp w postaci $1, $2 ... itd. | ||||||||||||||||||||||
| Index#_Encoding | Parametr określa sposób kodowania wartości indeksu. | |||||||||||||||||||||||
| Index#_Decoding | Parametr określa sposób dekodowania wartości indeksu. | |||||||||||||||||||||||
| Index#_MustBeEqual | Określa wartość, jaką musi mieć indeks, aby plik mógł być dodany do archiwum. | W przypadku, gdy indeks wyznaczony jest różny od tej wartości to plik jest pomijany. | ||||||||||||||||||||||
| Parametry związane z indeksami typu PathSegment (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||
| Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||
| Index#_PathSegment | Wybrany segment (tekst między separatorami ścieżki) absolutnej ścieżki pliku (bez samej nazwy pliku czyli ostatniego segmentu). | Wartość typu całkowitego numerowana od 1 bez ostatniego segmentu (czyli nazwy pliku). Przykładowo, w ścieżce:
Można wybrać wartość od 1 (czyli aaa) do 3 (czyli ccc). | ||||||||||||||||||||||
| Parametry związane z indeksami typu FileSegment (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||
| Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||
| Index#_FileSegment | Wybrany segment (tekst z pominiętym rozszerzeniem i kropkami, między separatorami Index#_FileSeparator) nazwy pliku. | Wartość typu całkowitego numerowana od 1. Pominięte w nazwie plików są rozszerzenie pliku oraz kropki w nazwie. Przykładowo, w ścieżce:
Można wybrać wartość od 1 (czyli 111) do 3 (czyli 333). | ||||||||||||||||||||||
| Index#_FileSeparator | Tekst będący separatorem wykorzystywanym w Index#_FileSegment | |||||||||||||||||||||||
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
