Speichern von FileNet IS (FNIS) Annotationen

Es werden alle Annotationen vom Dokument in ein Datenobjekt geschrieben.

Formatspezifischen Daten (Benutzer, Berechtigung, usw.) können anhand der FNISAnnotationWriterSettings-Klasse gesetzt werden.

FNISAnnotationWriterSettings Konfiguration:

  • setEncoding(String) (Default = "ISO-8859-1")

    Encoding der XML-Annotationsdaten. In der XML-Datei, die vom FileNet IS Archiv geliefert wird, ist als Encoding UTF-8 angegeben, die Daten sind aber in ISO-8859-1 codiert. Falls vom Archiv ein anderes Encoding verwendet wird, kann dies hier entsprechend konfiguriert werden.

  • setClientPermission(String) (Default = "change")

    Client-Berechtigung, siehe FileNet IS Dokumentation.

  • setDocId(String) (Default = "000000")

    ID des FileNet IS Dokuments, zu welchem die Annotationen gespeichert werden sollen.

  • setDomain(String) (Default = "Imaging")

    FileNet IS Archiv Domain-ID, siehe FileNet IS Dokumentation.

  • setLibrary(String) (Default = "DefaultIMS")

    FileNet IS Archiv Library-ID, siehe FileNet IS Dokumentation.

  • setOrganisation(String) (Default = "FileNet")

    FileNet IS Archiv Organisation-ID, siehe FileNet IS Dokumentation.

  • setPermissionNameAppend(String) (Default = "(ANYONE)")

    Berechtigung 'Append' Benutzername, siehe FileNet IS Dokumentation.

  • setPermissionNameRead(String) (Default = "(ANYONE)")

    Berechtigung 'Read' Benutzername, siehe FileNet IS Dokumentation.

  • setPermissionNameWrite(String) (Default = "(ANYONE)")

    Berechtigung 'Write' Benutzername, siehe FileNet IS Dokumentation.

  • setPermissionTypeAppend(String) (Default = "user")

    Typ für 'Append' Berechtigung, siehe FileNet IS Dokumentation.

  • setPermissionTypeRead(String) (Default = "user")

    Typ für 'Read' Berechtigung, siehe FileNet IS Dokumentation.

  • setPermissionTypeWrite(String) (Default = "user")

    Typ für 'Write' Berechtigung, siehe FileNet IS Dokumentation.

  • setUseDefaultPermission(boolean) (Default = false)

    Bei geladenen Annotationen aus den Archiv wird bei der Einstellung true die bereits vorhandene Berechtigungsdefinition verwendet, ansonsten wird eine neue Berechtigungsdefinition mit den Angaben aus der FNISAnnotationWriterSettings Klasse generiert.

Codebeispiel:

FNISAnnotationWriter writer = new FNISAnnotationWriter();
DefaultWriterControls controls = new DefaultWriterControls();
controls.getSettings(FNISAnnotationWriterSettings.class)
		.setAnnotationProfile(profile);
writer.write(<<Document-Instanz>>, <<Outputstream>>, controls);

Nach dem Speichern der Annotationen im FileNet IS Archiv sollte das Dokument mit Annotationen erneut geladen werden um den aktuellen Annotationstand aus dem Archiv zu erhalten. Damit man die Dokumentdaten nicht erneut aus dem Archiv holen muss, besteht die Möglichkeit den Datenstrom aus den entsprechenden Seiten zu holen:

final Document document = <Jadice Document-Instanz>

final TreeMap<Integer, InputStream> streamMap = new TreeMap<Integer, InputStream>();

for (final Page page : document.getPages()) {
  final PageSegmentSource source = page.getPageSegment(DocumentLayer.DEFAULT).getSource();
  // Stream-Index
  final int streamIndex = source.getStreamIndex();
  // Document-Stream
  final InputStream stream = source.getStream();
  streamMap.put(streamIndex, stream);
}

// alle Seiten entfernen
document.getPages().clear();

final DefaultReaderControls controls = new DefaultReaderControls();

// Für Tiff-Dokumente ohne Auflösungsdefinition muss eine Auflösung von 100 DPI
// verwendet werden
controls.getSettings(TIFFReaderSettings.class).setInvalidResolutionHandling(InvalidResolutionHandling.USE_DEFAULT);
controls.getSettings(TIFFReaderSettings.class).setDefaultResolution(new Resolution(100));
		
final URL profileUrl = FNISAnnotationReader.class
		.getResource("/filenet-is-annotation-profile.xml");
final AnnotationProfile profile = AnnotationProfile
		.load(profileUrl);
controls.getSettings(FNISAnnotationReaderSettings.class)
		.setAnnotationProfile(profile);

// Dokument neu laden
final Reader reader = new Reader();
// ReaderControls setzen
reader.setReaderControls(controls);
reader.setDocument(document);
reader.setFormat(null);

// Dokumentdaten neu laden
for (final Integer streamIndex : streamMap.keySet()) {
  final InputStream stream = streamMap.get(streamIndex);
  reader.read(stream);
}

// Annos neu laden
reader.setFormat(new FNISAnnotationFormat());
final DefaultReaderControls controls = new DefaultReaderControls();
controls.getSettings(FNISAnnotationReaderSettings.class).setAnnotationProfile(AnnotationProfile.getDefaultProfile());
reader.setReaderControls(controls);
reader.read(<<Anno-Daten>>);

reader.complete();

FNP8AnnotationReaderSettings Konfiguration:

  • setEncoding(String) (Default = "UTF-8")

    Encoding der XML-Annotationsdaten. In der XML-Datei, die vom FileNet P8 Archiv geliefert wird, ist kein Encoding definiert. Hier kann eine entsprechendes Encoding gesetzt werden.

    Zu beachten: Beim Schreiben muss das Encoding passend gesetzt werden.

  • setIgnoreMissingMultiPageAttribute(boolean) (Default = false)

    Anwendungsfall: Es kann vorkommen, dass das F_MULTIPAGETIFFPAGENUMBER Attribut in der XML-Datei fehlt. In diesem Fall muss die Einstellung auf true gesetzt werden, damit der Ladevorgang korrekt funktioniert.

[jadice document platform Version 5.5.12.1: Dokumentation für Entwickler. Veröffentlicht: 2021-08-17]