Do poprawnego działania PlusDirectoryMonitor potrzebuje pliku konfiguracyjnego, który jest podawany przy wywołaniu programu.
Plik konfiguracyjny:
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. (Domyślnie false) | 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. |
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. |
W celu skonfigurowania przetwarzania katalogu należy utworzyć sekcję [Arch#] w pliku konfiguracyjnym, gdzie # oznacza kolejny numer (zaczynając od 1) 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:
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łużą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. (Domyślnie 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. Przykładowy regexp:
| ||||||||||||||||||||||||
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ść. Ścieżka musi był pełna (zawierać wszystkie kolejne tagi). Jeżeli tagi lub atrybuty mają prefix, to przestrzeń nazw prefixu musi zostać w tym parametrze zdefiniowana. Przykładowo dla pliku XML:
Przykładowe wartości tagów:
Błędne wartości tagów:
| ||||||||||||||||||||||||
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. | Jeżeli atrybut ma prefix, to przestrzeń nazw prefixu musi zostać w parametrze XMLRawFileTag. Przykładowo dla pliku XML:
Przykłądowe wartości XMLRawFileTag i XMLRawFileAttribute:
| ||||||||||||||||||||||||
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 Index#_Type jest różny od SQL). UWAGA! W zapytaniu należy wstawić $IndexN w cudzysłowach. Dla wartości tekstowych należy wstawić podwójnie. Przykładowe zapytanie:
| ||||||||||||||||||||||||
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 dopasowywane jest do każdej wartości po średniku i w przypadku braku dopasowania pojedyncza wartość zamieniana jest na pustą. | ||||||||||||||||||||||||
Index#_Mask | Tekst, którym można 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 | |||||||||||||||||||||||||
Parametry związane z indeksami typu ConstantString (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||||
Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||||
Index#_ConstantString | Tekst (stały) będący wartością indeksu. | |||||||||||||||||||||||||
Parametry związane z indeksami typu SQL (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||||
Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||||
Index#_SQLScheme | Numer połączenia zdefiniowanego w sekcji parametrów związanych z niestandardowymi zapytaniami do baz danych. | Wartością jest liczba całkowita reprezentująca wybrane zapytanie do zrealizowania z sekcji parametrów związanych z niestandardowymi zapytaniami do baz danych. | ||||||||||||||||||||||||
Index#_SQLName | Nazwa kolumny, z której pobierana ma być wartość indeksu. | Wartością jest nazwa kolumny z wyniku zrealizowanego zapytania pod numerem Index#_SQLScheme. | ||||||||||||||||||||||||
Parametry związane z indeksami typu XML (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||||
Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||||
Index#_ValueTag | Parametr określający ścieżkę do tagu w pliku XML, który zawiera wartość indeksu. | Ś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). Jeżeli tagi lub atrybuty mają prefix, to przestrzeń nazw prefixu musi zostać w tym parametrze zdefiniowana. Przykładowo dla pliku XML: Przykładowe wartości tagów:
Błędne wartości tagów:
| ||||||||||||||||||||||||
Index#_ValueAttribute | Parametr określający nazwę atrybutu tagu w pliku XML, który zawiera wartość indeksu, jeżeli w samym tagu Index#_ValueTag się ona nie znajduje. | Jeżeli atrybut ma prefix, to przestrzeń nazw prefixu musi zostać w parametrze Index#_ValueTag. Przykładowo dla pliku XML:
Wartości Index#_ValueTag i Index#_ValueAttribute mogą wynosić:
| ||||||||||||||||||||||||
Index#_MultiValue | Parametr określający, czy indeks przyjmuje wiele wystąpień wartości pasujących do wzorca (wypisując je po średniku), czy tylko jego pierwsze wystąpienie. | Możliwe wartości: [true, false]. Przykładowy xml:
Przykładowe indeksy w konfiguracji ini:
W wyniku zostanie dodany do systemu dokument z wartościami indeksów:
| ||||||||||||||||||||||||
Index#_XMLFileCopy | Parametr określający czy ma nastąpić backup pliku XML do Index#_XMLDestinationPath. | Możliwe wartości: [true, false]. | ||||||||||||||||||||||||
Index#_XMLFileDelete | Parametr określający czy ma nastąpić usunięcie pliku XML po skończeniu przetwarzania. | Możliwe wartości: [true, false]. | ||||||||||||||||||||||||
Index#_XMLDestinationPath | Ścieżka do zapisu plików XML, jeżeli wybrano opcję Index#_XMLFileCopy. | Wartość w postaci tekstu reprezentującym ścieżkę do katalogu, do którego mają być zapisywane kopie zapasowe plików XML. | ||||||||||||||||||||||||
Parametry związane z indeksami typu Barcode2D (# - kolejny numer zaczynając od 1, gdyż indeksów może być wiele) | ||||||||||||||||||||||||||
Nazwa parametru | Opis | Uwagi | ||||||||||||||||||||||||
Index#_XMLPath | Pelna scieżka do katalogu z plikami XML opisujacymi kody 2D. | |||||||||||||||||||||||||
Index#_BarcodeNr | Kod, który należy pobrać z pliku XML. | Wartością jest liczba (domyślnie 1) reprezentujaca kod, który pobrać z pliku XML. |
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