Auditing code 举例
package com.testAuditing;import java.util.Iterator;import org.apache.log4j.Logger;import com.filenet.api.collection.EventSet;import com.filenet.api.collection.VersionableSet;import com.filenet.api.core.Connection;import com.filenet.api.core.Document;import com.filenet.api.core.Factory;import com.filenet.api.core.ObjectStore;import com.filenet.api.core.Versionable;import com.filenet.api.events.Event;import com.filenet.api.util.Id;import com.util.CEHelper;import junit.framework.TestCase;public class AuditingTest extends TestCase {Logger logger = Logger.getLogger(AuditingTest.class.toString());/** * auditing一个文档的getContent、checkout、checkin等事件, * 一旦一个文档当前版本(A1)发生checkin到另一个主版本(A2)后,则checkin被auditing到A2版本上。 */public void testRetrive(){Connection conn = CEHelper.getConnection();CEHelper.pushSubject(conn, "administrator", "filenet");ObjectStore os = CEHelper.getObjectStore(conn);Document doc = Factory.Document.fetchInstance(os, new Id("{413083CB-9D09-4666-A348-9D4B3AC135D1}"), null);EventSet events = doc.get_AuditedEvents();Iterator<Event> iter = events.iterator();Event e = null;while(iter.hasNext()){e = (Event)iter.next();logger.info("e.get_Creator() = " + e.get_Creator());logger.info("e.get_EventStatus() = " + e.get_EventStatus());logger.info("e.get_ClassDescription().get_DisplayName() = " + e.get_ClassDescription().get_DisplayName());logger.info("e.get_DateCreated() = " + e.get_DateCreated());logger.info("e.get_Name() = " + e.get_Name());}Document doc1 = Factory.Document.fetchInstance(os, new Id("{157BE333-70AB-4B85-8F0E-9AC587E26FF2}"), null);EventSet events1 = doc1.get_AuditedEvents();Iterator<Event> iter1 = events1.iterator();Event e1 = null;while(iter1.hasNext()){e1 = (Event)iter1.next();logger.info("e1.get_Creator() = " + e1.get_Creator());logger.info("e1.get_EventStatus() = " + e1.get_EventStatus());logger.info("e1.get_ClassDescription().get_DisplayName() = " + e1.get_ClassDescription().get_DisplayName());logger.info("e1.get_DateCreated() = " + e1.get_DateCreated());logger.info("e1.get_Name() = " + e1.get_Name());}CEHelper.popSubject();}/** * 通过一个ID获取到该文档的各个版本,将对应版本转化为Document后即可获取到该版本的auditing */public void testVersions(){Connection conn = CEHelper.getConnection();CEHelper.pushSubject(conn, "administrator", "filenet");ObjectStore os = CEHelper.getObjectStore(conn);Document doc = Factory.Document.fetchInstance(os, new Id("{157BE333-70AB-4B85-8F0E-9AC587E26FF2}"), null);VersionableSet versions = doc.get_Versions();Iterator<Versionable> iter = versions.iterator();Document doc_temp = null;Event e1 = null;while(iter.hasNext()){doc_temp = (Document)iter.next();EventSet events = doc_temp.get_AuditedEvents();logger.info("doc_temp.get_Id().toString() = " + doc_temp.get_Id().toString() );Iterator<Event> iter1 = events.iterator();while(iter1.hasNext()){e1 = (Event)iter1.next();logger.info("e1.get_Creator() = " + e1.get_Creator());logger.info("e1.get_EventStatus() = " + e1.get_EventStatus());logger.info("e1.get_ClassDescription().get_DisplayName() = " + e1.get_ClassDescription().get_DisplayName());logger.info("e1.get_DateCreated() = " + e1.get_DateCreated());logger.info("e1.get_Name() = " + e1.get_Name());}}CEHelper.popSubject();}public void testDeletion(){}}