You can optionally federate IBM® FileNet® Content Services documents that have offline content. A document is considered offline if it was archived.
Federated documents that have offline content are represented in the target Content Platform Engine object store as document objects that have content elements that are subtyped as content references instead of content transfers. Content Platform Engine documents that have content references are also known as external documents. The difference between a content transfer and a content reference is that the former returns the actual content while the latter has a content location property that typically contains a URI that points to the actual location of the content. In the case of content that is federated from Content Services, the location property contains a unique identifier of the document in the source repository.
Federated documents that have offline content can be declared as records. But IBM Enterprise Records must be aware that the actual content is not under the control of federateOfflineContent and therefore is not deleted when the federated document that the record points to is deleted. For that reason, federated documents with offline content must be treated much like physical records; that is, a manual procedure is required to look up the identity of the actual document in the source repository and ensure that its destruction is carried out appropriately.
To configure IBM Enterprise Records to declare documents that have offline content as records automatically upon federation, make the following modifications to the auto-declaration event action script:
public void onEvent(ObjectChangeEvent event, Id subId)
{
// Get the source object and object store from the event context.
IndependentObject source = event.get_SourceObject();
com.filenet.api.core.ObjectStore srcOS = event.getObjectStore();
srcOS.refresh();
if (source instanceof com.filenet.api.core.Document
&& event instanceof CheckinEvent)
{
Id sourceDocId = ((Document) source).get_Id();
// fetch the source document instance.
// (Make sure property filter includes ContentElements property)
Document doc = Factory.Document.fetchInstance(srcOS,
((Document) source).get_Id(),
getPropertyFilter());
ContentElement Content Engine = doc.get_ContentElements().getItem(0);
if (ce instanceof ContentReference)
{
// This method sets appropriate record class and destination
// for offline records
doDeclareOfflineContentRecord(doc);
}
else
{
// This method does normal electronic record declaration
doDeclareElectronicRecord(doc);
}
}
}