Skip to end of metadata
Go to start of metadata

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.

 

Ustawienia ogólne

Sekcja [Settings] zawiera podstawowe ustawienia program. Znajdują się tam następujące parametry:

Nazwa parametruOpis

Uwagi

ProcessAtStartupOkreśla czy wraz z uruchomieniem programu ma być od razu wykonane przetwarzanie katalogów.Możliwe wartości: [true, false]
ProcessOnceOkreś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]
ShowInfoMessagesW 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.
PasswordParametr 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.

AccessWithWebServiceParametr 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 parametruOpisUwagi
WSDL_URLŚcieżka do lokalizacji pliku WSDL.Standardowa wartość: http://IP_serwera/PlusWorkflow/services/
NamespaceNazwa przestrzeni nazw webserwisów.W systemie PlusWorkflow jest to: http://services.plusmpm.com
ServiceNameNazwa 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 parametruOpisUwagi
ActiveOkreś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.
ShareIdNazwa 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#].
ArchiveClassIdentyfikator klasy dokumentów.

Wartość w postaci liczby całkowitej.

SearchSubDirectoryParametr 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.
SaveAsNewVersionParametr określający, czy w przypadku takich samych indeksów dokument zapisać jako nowa wersja.Możliwe wartości: [true, false]
ProcessFilesUnmodifiedByCzas 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.
SortFilesByOpcjonalny parametr służący do określenia kolejności importowania dokumentów.

Możliwe wartości:

  • name - sortowanie po nazwie,
  • date - sortowanie po dacie.

Domyślnie kolejność przetwarzania jest nieokreślona.

SortFilesDirectionOpcjonalny parametr służący do określenia kierunku przetwarzania importowania dokumentów.

Możliwe wartości:

  • asc - rosnąco,
  • desc - malejąco.

Domyślnie kierunek przetwarzania jest rosnący.

FileTypeTyp przetwarzanych dokumentów. (Domyślnie RAW)

Możliwe wartości: [RAW, XML].

Gdy podany jest nieobsługiwany typ to plik jest pomijany

FileRegExpRegex, 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$
FileNameRegExmpRegex, 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 parametruOpisUwagi
CheckAtTimeParametr określający czy przetwarzać katalogi o godzinie ProcessTime.

Możliwe wartości: [true, false].

ProcessTimeGodzina o której mają byc przetwarzane katalogi, gdy wybrany jest parametr CheckAtTime.

Godzina w formacie:

  • hh:mm
CheckPeriodicParametr określający, czy przetwarzać katalogi co określony czas PeriodMożliwe wartości: [true, false].
PeriodOdstę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 parametruOpisUwagi
CopyRawFilesParametr 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.
DeleteRawFilesJest 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].
RawFileRegExpRegex, 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])$
RawFileMaskTekst, którym mozna podmienić ścieżkę pliku.

Można w tekście wykorzystywać przechwycone grupy z RawFileRegExp w postaci $1, $2 ... itd.

RawFileMask = $1
RawFileOnErrorParametr określający operację do wykonania dla plików RAW, których nie udało się dodać do archiwum.

Możliwe wartości:

  • None -> brak działania (domyślnie),
  • Copy -> kopiowanie do RawFileErrorDirectory,
  • Move -> przenoszenie do RawFileErrorDirectory,
  • Delete -> usuwanie pliku.
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 parametruOpisUwagi
CopyXMLFilesParametr 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.
DeleteXMLFilesJest 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].
XMLRawFileTagParametr 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>
XMLRawFileAttributeParametr 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
XMLRawFileIgnoreNamespacesParametr 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
XMLFileOnErrorParametr określający operację do wykonania dla plików XML, których nie udało się dodać do archiwum.

Możliwe wartości:

  • None -> brak działania (domyślnie),
  • Copy -> kopiowanie do XMLFileErrorDirectory,
  • Move -> przenoszenie do XMLFileErrorDirectory,
  • Delete -> usuwanie pliku.
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 parametruOpisUwagi
DBURL#Adres URL połączenia z bazą,
  • Postgres: jdbc:postgresql://{host}[:{port}]/[{database}]
  • MsSQL: jdbc:sqlserver://{host}[:{port}];databaseName=[{database}]
  • Oracle: jdbc:oracle:thin:@{host}[:{port}]/{database}

    Przykłady:

    jdbc:postgresql://localhost:8080/BazaPostgres
    jdbc:sqlserver://10.10.0.15:3344;databaseName=BazaMSSQL
    jdbc:oracle:thin:@192.168.1.101:1250/xe
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.
  • Postgres: org.postgresql.Driver
  • MsSQL: com.microsoft.sqlserver.jdbc.SQLServerDriver
  • Oracle: oracle.jdbc.OracleDriver
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 parametruOpisUwagi
Index#_IdIdentyfikator indeksu z tabeli pm_indicies.

Wartość w postaci liczby całkowitej.

Index#_NameNazwa indeksu.Służy do celów informacyjnych - nie jest brana pod uwagę przy przetwarzaniu indeksów.
Index#_TypeTyp indeksu.

Możliwe wartości:

TypOpis
VoidWartością jest pusty string.
PathSegmentWartość związana z Index#_PathSegment.
FileSegmentWartość związana z Index#_FileSegment i Index#_FileSeparator.
DateWartością jest obecna data w formacie dd/mm/yy (z uzupełniami zer).
FileDateWartością jest data ostatniej modyfikacji pliku w formacie yy/mm/dd (bez uzupełnień zer).
ConstantStringWartością jest stała z parametru Index#_ConstantString.
FileNameWartością jest nazw pliku (z pominięciem rozszerzenia).
ExtentionJeżeli istnieje rozszerzenie pliku, to wartością jest to rozszerzenie.
XMLFileWartością indeksu jest zawartość tagu lub wartość jego atrybutu z pliku XML.
SQLWartością jest wynik zapytania jednego ze zdefiniowanych niestandardowych połączeń z użyciem Index#_SQLScheme i Index#_SQLName.
Index#_RegExpRegex, 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#_MaskTekst, którym można podmienić wartość indeksu.Można w tekście wykorzystywać przechwycone grupy z Index#_RegExp w postaci $1, $2 ... itd.
Index#_EncodingParametr określa sposób kodowania wartości indeksu. 
Index#_DecodingParametr określa sposób dekodowania wartości indeksu. 
Index#_MustBeEqualOkreś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 parametruOpisUwagi
Index#_PathSegmentWybrany 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:

  • aaa/bbb/ccc/test.pdf

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 parametruOpisUwagi
Index#_FileSegmentWybrany 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:

  • aaa/bbb/ccc/111_222_333.pdf
  • z Index#_FileSeparator równym "_"

Można wybrać wartość od 1 (czyli 111) do 3 (czyli 333).

Index#_FileSeparatorTekst 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 parametruOpisUwagi
Index#_ConstantStringTekst (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 parametruOpisUwagi
Index#_SQLSchemeNumer 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#_SQLNameNazwa 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 parametruOpisUwagi
Index#_ValueTagParametr 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#_ValueAttributeParametr 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#_ValueTagIndex#_ValueAttribute mogą wynosić:

Index#_ValueTag = <b><c>
Index#_ValueAttribute = w:AA
Index#_ValueIgnoreNamespacesParametr 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#_MultiValueParametr 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:

  • Indeks 10: "Pierwsza wartość;Druga wartość;Trzecia wartość"
  • Indeks 11: "100.99;;-580.59"
  • Indeks 12: "1;2;3"
Index#_XMLFileCopyParametr określający czy ma nastąpić backup pliku XML do Index#_XMLDestinationPath.Możliwe wartości: [true, false].
Index#_XMLFileDeleteParametr 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);
    }

}
  • No labels

2 Comments

  1. PROSIMY O STWORZENIE KOMPLETNEJ INSTRUKCJI Z PRZYKŁADAMI !

  2. 5 LAT później.. można napisać dokładnie taki sam komentarz. Paweł Lizakowski czy możesz zaradzić?

Write a comment…