Struktura pliku konfiguracyjnego
Do poprawnego działania PlusDirectoryMonitor potrzebuje pliku konfiguracyjnego, który jest podawany przy wywołaniu programu.
Przykładowy plik konfiguracyjny >
Directory Monitor configuration file >
Plik konfiguracyjny:
- w formacie INI,
- kodowanie powinno być ustawione na UTF-8 bez BOM,
- sekcje konfiguracji:
- [Settings]
- ustawienia ogólne,
- [WebService]
- konfiguracja webserwisów,
- [Arch#]
- ciągu konfiguracji poszczególnych katalogów do monitorowania i związanych z nimi akcjami,
- [Logger]
- konfiguracji logów programu.
- [Settings]
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. (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. |
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 (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. | Nazwa nie może się powtarzać, może to spowodować błędy w trakcie przetwarzania konfiguracji. Jest wykorzystywana jako identyfikator w 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: FileRegExp = (.*)\.xml$ | ||||||||||||||||||||||
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. RawFileRegExp = (.*\.[pP][dD][fF])$ | ||||||||||||||||||||||
RawFileMask | Tekst, którym mozna podmienić ścieżkę pliku. | Można w tekście wykorzystywać przechwycone grupy z RawFileRegExp w postaci $1, $2 ... itd. RawFileMask = $1 | ||||||||||||||||||||||
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). Przykładowo dla pliku XML: <a xmlns:w="http://xmlns.workflow.com"> <b> <w:c>ścieżka do pliku/plik.pdf</w:c> </b> <d> <w:c>inna wartość</w:c> </d> </a> Przykładowe wartości tagów: XMLRawFileTag = <a><b><w:c> XMLRawFileTag = <b><w:c> Błędne wartości tagów (lub niejednoznaczne): XMLRawFileTag = <a><w:c> XMLRawFileTag = <w:c> | ||||||||||||||||||||||
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 xmlns:w="http://xmlns.workflow.com"> <b> <c w:AA="ścieżka do pliku/plik.pdf" BB="inna wartość"/> </b> </a> Przykładowe wartości XMLRawFileTag i XMLRawFileAttribute: XMLRawFileTag = <b><c> XMLRawFileAttribute = w:AA | ||||||||||||||||||||||
XMLRawFileIgnoreNamespaces | Parametr określający czy przy przetwarzaniu powinny być pomijane prefiksy przestrzeni nazw w tagach XML. | Możliwe wartości: [true, false] Przykładowo dla pliku XML: <a xmlns:w="http://xmlns.workflow.com"> <b> <w:c w:AA="ścieżka do pliku/plik.pdf" BB="inna wartość"/> </b> </a> Przykładowe wartości XMLRawFileTag, XMLRawFileAttribute i XMLRawFileIgnoreNamespaces: XMLRawFileTag = <b><c> XMLRawFileAttribute = AA XMLRawFileIgnoreNamespaces = true | ||||||||||||||||||||||
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: SQLQuery1 = SELECT kolumnaVarchar, kolumnaInt, kolumnaFloat FROM Tabela1 WHERE kolumnaVarchar = ''$Index1'' AND kolumnaInt = '$Index2' AND kolumnaFloat = '$Index3' | ||||||||||||||||||||||
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). Przykładowo dla pliku XML: <a xmlns:w="http://xmlns.workflow.com"> <b> <w:c>jakas wartosc</w:c> </b> <d> <w:c>inna wartość</w:c> </d> </a> Przykładowe wartości tagów: Index#_ValueTag = <a><b><w:c> Index#_ValueTag = <b><w:c> Błędne wartości tagów (lub niejednoznaczne): Index#_ValueTag = <a><w:c> Index#_ValueTag = <w:c> | ||||||||||||||||||||||
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. | Przykładowo dla pliku XML: <a xmlns:w="http://xmlns.workflow.com"> <b> <c w:AA="jakas wartosc" BB="inna wartość"/> </b> </a> Wartości Index#_ValueTag i Index#_ValueAttribute mogą wynosić: Index#_ValueTag = <b><c> Index#_ValueAttribute = w:AA | ||||||||||||||||||||||
Index#_ValueIgnoreNamespaces | Parametr określający czy przy przetwarzaniu powinny być pomijane prefiksy przestrzeni nazw w tagach XML. | Możliwe wartości: [true, false] Przykładowo dla pliku XML: <a xmlns:w="http://xmlns.workflow.com"> <b> <c w:AA="jakas wartosc" BB="inna wartość"/> </b> </a> Wartości Index#_ValueTag, Index#_ValueAttribute i Index#_ValueIgnoreNamespaces mogą wynosić: Index#_ValueTag = <b><c> Index#_ValueAttribute = AA Index#_ValueIgnoreNamespaces = true | ||||||||||||||||||||||
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: <Items> <Item> <a>Pierwsza wartość</a> <b>100.99</b> <c>1</c> </Item> <Item> <a>Druga wartość</a> <b></b> <c>2</c> </Item> <Item> <a>Trzecia wartość</a> <b>-580.59</b> <c>3</c> </Item> </Items> Przykładowe indeksy w konfiguracji ini: Index1_Id = 10 Index1_Type = XMLFile Index1_ValueTag = <a> Index2_Id = 11 Index2_Type = XMLFile Index2_ValueTag = <b> Index3_Id = 12 Index3_Type = XMLFile Index3_ValueTag = <c> 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. |
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
Przechwytywanie dodawanego poprzez systemowe API dokumentu do archiwum
Aby przechwycić przetwarzany przez DirectoryMonitor dokument dodawany przez systemowe API do archiwum, należy dodać znacznik directory-monitor w deskryptorze wtyczki - plik suncode-plugin.xml.
W całym systemie może zostać zarejestrowana tylko jedna klasa przechwytująca dokumenty przez DirectoryMonitor. Próby zarejestrowania większej ilości będą zignorowane.
Przykładowy wpis w deskryptorze wtyczki:
<directory-monitor key="directory-monitor" document-upload-listener="com.suncode.plugin.somepluginid.DocumentUploadListenerImpl" <!-- key jest wymagany przez mechanizm modułów wtyczek. Nie ma związku z działaniem tej funkcjonalności -->
Atrybuty:
- document-upload-listener (opcjonalny) - nazwa klasy implementującej interfejs DocumentUploadListener. Umożliwia obsługę reagowania na zdarzenie, gdy przetwarzany przez DirectoryMonitor dokument dodawany jest przez systemowe API do archiwum.
Przykładowa klasa dokonująca modyfikacji indeksów na modyfikowanym dokumencie:
@Slf4j public class ChangeIndexesOnUploadFileListenerImpl implements DocumentUploadListener { @Override public void onDocumentUpload(DocumentDefinition definition) { Map<Long, Object> indexes = definition.getIndexes(); Map<Long, Object> newIndexes = new HashMap<>(); indexes.forEach( (id, value) -> { if (value instanceof String) { newIndexes.put(id, "zmieniony indeks"); } else { newIndexes.put(id, value); } } ); definition.setIndexes(newIndexes); } }
2 Comments
Dział Wdrożeń
PROSIMY O STWORZENIE KOMPLETNEJ INSTRUKCJI Z PRZYKŁADAMI !
Dział Wdrożeń
5 LAT później.. można napisać dokładnie taki sam komentarz. Paweł Lizakowski czy możesz zaradzić?
Add Comment