Auditing code 举例来说
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(){
}
}