Showing posts with label Content Engine API. Show all posts
Showing posts with label Content Engine API. Show all posts

Tuesday 8 November 2016

Java code to Cancel Check-out a CE document (FileNet Content Engine API)

//Java code to Cancel check-out a CE document (FileNet Content Engine API)

import java.io.IOException;
import java.util.Iterator;
import javax.security.auth.Subject;
import com.filenet.api.collection.IndependentObjectSet;
import com.filenet.api.constants.RefreshMode;
import com.filenet.api.constants.ReservationType;
import com.filenet.api.core.Connection;
import com.filenet.api.core.Document;
import com.filenet.api.core.Domain;
import com.filenet.api.core.Factory;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.query.SearchSQL;
import com.filenet.api.query.SearchScope;
import com.filenet.api.util.UserContext;
public class CEUtil {
private static Connection conn = null;

public static Connection getCEConnection()
{
try {
String ceURI = "http://localhost:9080/wsi/FNCEWS40MTOM/";
String userName ="ceusr";
String password ="pwd";
if(conn==null){
conn = Factory.Connection.getConnection(ceURI);
Subject subject = UserContext.createSubject(conn, userName, password, null);
UserContext uc = UserContext.get();
uc.pushSubject(subject);
}

} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("CE Connection"+conn);
return conn;
}
public static void cancelCheckOutDocument(String osName) throws IOException{

try{
Connection conn = getCEConnection();
Domain domain = Factory.Domain.fetchInstance(conn,null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain, osName,null);
SearchScope searchScope = new SearchScope(objStore);
int count=0;
String sqlStr = "Select * FROM docClass where DocumentTitle='doc123.pdf4'";
SearchSQL searchSQL = new SearchSQL(sqlStr);
System.out.println("Query ::"+sqlStr);
IndependentObjectSet independentObjectSet = searchScope.fetchObjects(searchSQL, new Integer(10), null, new Boolean(true)); 
if(!(independentObjectSet.isEmpty())){
Iterator it=independentObjectSet.iterator();

while(it.hasNext()) {
Document doc=(Document)it.next();

if(doc.get_IsCurrentVersion().booleanValue()== false)
{
doc=(Document)doc.get_CurrentVersion();
}
if (doc.get_IsReserved().booleanValue()== true)
{
Document reservationdoc= (Document)doc.cancelCheckout();
reservationdoc.save(RefreshMode.REFRESH);
}
count++;
   System.out.println("Count:::"+count);
}
System.out.println("Count:::;"+count);
System.out.println("Done");
}

}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
cancelCheckOutDocument("OSNAME"); //Object Store
}
}


Sample code to check out a document (Filenet Content Engine API)

//Sample code to check out a document (Filenet Content Engine API)

import java.io.IOException;
import java.util.Iterator;
import javax.security.auth.Subject;
import com.filenet.api.collection.IndependentObjectSet;
import com.filenet.api.constants.RefreshMode;
import com.filenet.api.constants.ReservationType;
import com.filenet.api.core.Connection;
import com.filenet.api.core.Document;
import com.filenet.api.core.Domain;
import com.filenet.api.core.Factory;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.query.SearchSQL;
import com.filenet.api.query.SearchScope;
import com.filenet.api.util.UserContext;
public class CEUtil {
private static Connection conn = null;
public static Connection getCEConnection()
{
try {
String ceURI = "http://localhost:9080/wsi/FNCEWS40MTOM/";
String userName ="ceusr";
String password ="pwd";
if(conn==null){
conn = Factory.Connection.getConnection(ceURI);
Subject subject = UserContext.createSubject(conn, userName, password, null);
UserContext uc = UserContext.get();
uc.pushSubject(subject);
}

} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("CE Connection"+conn);
return conn;
}
public static void checkOut(String osName) throws IOException{

try{
Connection conn = getCEConnection();
Domain domain = Factory.Domain.fetchInstance(conn,null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain, osName,null);
SearchScope searchScope = new SearchScope(objStore);
int count=0;
String sqlStr = "Select * FROM docTitle where DocumentTitle='doc123.pdf'";
SearchSQL searchSQL = new SearchSQL(sqlStr);
System.out.println("Query ::"+sqlStr);
IndependentObjectSet independentObjectSet = searchScope.fetchObjects(searchSQL, new Integer(10), null, new Boolean(true)); 
if(!(independentObjectSet.isEmpty())){
Iterator it=independentObjectSet.iterator();

while(it.hasNext()) {
Document doc=(Document)it.next();
//Check out the document
if (doc.get_IsCurrentVersion().booleanValue()== false) 
doc =(Document)doc.get_CurrentVersion();
if (doc.get_IsReserved().booleanValue() == false) 
{
doc.checkout(ReservationType.EXCLUSIVE,null, null, null);
doc.save(RefreshMode.REFRESH);
}
count++;
   System.out.println("Count:::"+count);
}
System.out.println("Count:::;"+count);
System.out.println("Done");
}

}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
checkOut("OSNAME"); //Object store
}
}

Java code to retrieve Versions and Version Series for a CE document

//Java code to retrieve Versions and Version Series for a CE document

import java.io.IOException;
import java.util.Iterator;
import javax.security.auth.Subject;
import com.filenet.api.collection.IndependentObjectSet;
import com.filenet.api.collection.VersionableSet;
import com.filenet.api.core.Connection;
import com.filenet.api.core.Document;
import com.filenet.api.core.Domain;
import com.filenet.api.core.Factory;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.core.VersionSeries;
import com.filenet.api.core.Versionable;
import com.filenet.api.query.SearchSQL;
import com.filenet.api.query.SearchScope;
import com.filenet.api.util.UserContext;

public class CEUtil {
private static Connection conn = null;

public static Connection getCEConnection()
{
try {
String ceURI = "http://localhost:9080/wsi/FNCEWS40MTOM/";
String userName ="ceusr";
String password ="pwd";
if(conn==null){
conn = Factory.Connection.getConnection(ceURI);
Subject subject = UserContext.createSubject(conn, userName, password, null);
UserContext uc = UserContext.get();
uc.pushSubject(subject);
}

} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("CE Connection"+conn);
return conn;
}
public static void getVersions(String osName) throws IOException{

try{
Connection conn = getCEConnection();
Domain domain = Factory.Domain.fetchInstance(conn,null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain, osName,null);
SearchScope searchScope = new SearchScope(objStore);
int count=0;
String sqlStr = "Select * FROM docClass where DocumentTitle='documeny07'";
SearchSQL searchSQL = new SearchSQL(sqlStr);
System.out.println("Query ::"+sqlStr);
IndependentObjectSet independentObjectSet = searchScope.fetchObjects(searchSQL, new Integer(10), null, new Boolean(true)); 

if(!(independentObjectSet.isEmpty())){
Iterator it=independentObjectSet.iterator();

while(it.hasNext()) {
Document doc=(Document)it.next();

//get versions
VersionableSet versions = doc.get_Versions();
Versionable versionable;
Iterator it1 = versions.iterator();
while (it1.hasNext())
{
versionable = (Versionable)it1.next();
Integer majorNum= versionable.get_MajorVersionNumber();
System.out.println("Major Version"+majorNum);
Integer minorNum= versionable.get_MinorVersionNumber();
System.out.println("Minor Version"+minorNum);
String versionStatus= versionable.get_VersionStatus().toString();
System.out.println("Version Status =" + versionStatus);
}

//Get Version series
VersionSeries versionSeries = doc.get_VersionSeries();
Document releasedDoc= (Document)versionSeries.get_ReleasedVersion();
Integer majorNum= releasedDoc.get_MajorVersionNumber();
System.out.println("Major Version series"+majorNum);
Integer minorNum= releasedDoc.get_MinorVersionNumber();
System.out.println("Minor Version series"+minorNum);

//Current version details
Document CurMajorDoc= (Document)versionSeries.get_CurrentVersion();
Integer CurMajorNum= CurMajorDoc.get_MajorVersionNumber();
Integer CurMinorNum= CurMajorDoc.get_MinorVersionNumber();
System.out.println("Currentmajor version =" + CurMajorNum);
System.out.println("Currentminor version =" + CurMinorNum);

count++;
    System.out.println("Count:::"+count);
}
System.out.println("Count:::;"+count);
System.out.println("Done");
}

}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
getVersions("OSNAME"); //Param = Object Store
}
}

Thursday 12 May 2016

Retrieving Documents and properties based on Content Based Retrieval(CBR)

//Retrieving Documents and properties based on Content Based Retrieval(CBR)

//content-based document searching

import java.util.Iterator;
import javax.security.auth.Subject;

import com.filenet.api.collection.DocumentSet;
import com.filenet.api.core.Connection;
import com.filenet.api.core.Document;
import com.filenet.api.core.Domain;
import com.filenet.api.core.Factory;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.query.SearchSQL;
import com.filenet.api.query.SearchScope;
import com.filenet.api.util.UserContext;

public class ceUtil {

public static void main(String[] args) {
ceUtil obj = new ceUtil();
obj.FetchCEObjects(obj.getCEConnection());


}

public Connection getCEConnection() {

Connection conn = null;
try {

String ceURI = "http://localhost:9080/wsi/FNCEWS40MTOM/";

String userName = "userName";
String password = "password";
conn = Factory.Connection.getConnection(ceURI);
Subject subject = UserContext.createSubject(conn, userName,
password, null);
UserContext uc = UserContext.get();
uc.pushSubject(subject);
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("CE Connection" + conn);
return conn;
}

public void FetchCEObjects(Connection conn) {
try {
Domain domain = Factory.Domain.fetchInstance(conn, null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain,"OSNAME", null);

SearchScope search = new SearchScope(objStore);
String keyWord = "keyword in attachment";

String mySQLString= "SELECT d.this, DocumentTitle,Name FROM docClass d INNER JOIN ContentSearch v ON v.QueriedObject= d.This WHERE d.IsCurrentVersion= TRUE AND CONTAINS(d.*,'" + keyWord+ "')";
SearchSQL sql= new SearchSQL(mySQLString); 
DocumentSet documents = (DocumentSet) search.fetchObjects(sql,Integer.valueOf("50"),null, Boolean.valueOf(true));
com.filenet.api.core.Document doc; 

Iterator it = documents.iterator();
while (it.hasNext())
{
doc = (Document)it.next();
System.out.println("document="+doc.get_Name());
}

} catch (Exception e) {
e.printStackTrace();
}
}

}


/*
Additinal Queries for Content Based search

SELECT d.This, DocumentTitle, Name FROM docClass d INNER JOIN VerityContentSearch v ON v.QueriedObject= d.This WHERE d.IsCurrentVersion= TRUE AND CONTAINS(d.*,'model <SENTENCE> Deluxe')
//Search for documents that contain the two key words in a sentence (use with <SENTENCE>).

SELECT d.This, DocumentTitle, Name FROM docClass d INNER JOIN VerityContentSearch v ON v.QueriedObject= d.This WHERE d.IsCurrentVersion= TRUE AND CONTAINS(d.*, 'tested <NEAR/25> passed')
//Search for documents that contain the two key words located close to each other (use with <NEAR>)
*/

*******************************************************************************

//Sample code for retrieving the properties based on CBR

RepositoryRowSet rowSet= search.fetchRows(sql, Integer.valueOf("50"),null,Boolean.valueOf(true));
Iterator itRow= rowSet.iterator();
RepositoryRow row; 
com.filenet.api.property.Properties props; 
com.filenet.api.property.Property prop; 
while (itRow.hasNext()) 
{
row = (RepositoryRow)itRow.next();
props = row.getProperties(); 
Iterator itProp= props.iterator(); 
while (itProp.hasNext())
{
prop =(com.filenet.api.property.Property) itProp.next();
if(prop.getPropertyName().equalsIgnoreCase("Rank"))
{
System.out.println(prop.getPropertyName() +" = " + prop.getFloat64Value().toString());
else
System.out.println(prop.getPropertyName()+" = " + prop.getStringValue());
}
}
}

Searching or Retriving Documents from Multiple Object stores in FileNet Content Engine

//Searching or Retriving Documents from Multiple Object stores in FileNet Content Engine

import java.util.Iterator;
import javax.security.auth.Subject;

import com.filenet.api.collection.DocumentSet;
import com.filenet.api.constants.MergeMode;
import com.filenet.api.core.Connection;
import com.filenet.api.core.Document;
import com.filenet.api.core.Domain;
import com.filenet.api.core.Factory;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.property.FilterElement;
import com.filenet.api.property.PropertyFilter;
import com.filenet.api.query.SearchSQL;
import com.filenet.api.query.SearchScope;
import com.filenet.api.util.UserContext;


public class ceUtil {


public static void main(String[] args) {
ceUtil obj = new ceUtil();
obj.FetchCEObjects(obj.getCEConnection());


}

public Connection getCEConnection() {

Connection conn = null;
try {

String ceURI = "http://localhost:9080/wsi/FNCEWS40MTOM/";

String userName = "username";
String password = "password";
conn = Factory.Connection.getConnection(ceURI);
Subject subject = UserContext.createSubject(conn, userName,
password, null);
UserContext uc = UserContext.get();
uc.pushSubject(subject);
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("CE Connection" + conn);
return conn;
}

public void FetchCEObjects(Connection conn) {

try {
Domain domain = Factory.Domain.fetchInstance(conn, null, null);

ObjectStore objectStores[] = new ObjectStore[2];
objectStores[0] = Factory.ObjectStore.fetchInstance(domain,"DESIGNOS", null);
objectStores[1] = Factory.ObjectStore.fetchInstance(domain,"TARGETOS", null);
System.out.println("Object Store 1 : "+objectStores[0].get_DisplayName());
System.out.println("Object Store 2 : "+objectStores[1].get_DisplayName());

PropertyFilter pf= new PropertyFilter();
pf.addIncludeProperty(new FilterElement(Integer.getInteger("2"),null, Boolean.valueOf(true),"Name"));
SearchScope search = new SearchScope(objectStores, MergeMode.UNION);
SearchSQL sql= new SearchSQL("Select * from docClass where Creator='p8admin'");
DocumentSet documents = (DocumentSet)search.fetchObjects(sql,Integer.getInteger("50"),pf, Boolean.valueOf(true));

Document doc;
Iterator it = documents.iterator();
while (it.hasNext()){doc = (Document)it.next();
System.out.println("document="+doc.get_Name());
}

} catch (Exception e) {
e.printStackTrace();
}
}
}

Searching Documents with Paging concept in FileNet Content Engine

PageIterator (Paging)  (FileNet Content Engine API)

Provides paging functionality for sets of independent objects and repository rows.


Sets of independent objects and repository rows are divided into pages;each page is a number of collection elements (objects or rows) that represent a subset of the collection elements. You can iterate a page at a time instead of one object or row at a time. 

As an example, if a page is defined as 10 elements, and the collection has a total of 22 elements, the first paging operation returns a page containing 10 elements, the second page returns the next 10 elements, and the third page returns the last 2 elements. This page iteration is especially useful for interactive applications that display a page of information at a time.


//Searching Documents with Paging concept in FileNet Content Engine

import java.util.Iterator;
import javax.security.auth.Subject;
import com.filenet.api.collection.ClassDescriptionSet;
import com.filenet.api.collection.DocumentSet;
import com.filenet.api.collection.PageIterator;
import com.filenet.api.core.Connection;
import com.filenet.api.core.Document;
import com.filenet.api.core.Domain;
import com.filenet.api.core.Factory;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.meta.ClassDescription;
import com.filenet.api.query.SearchSQL;
import com.filenet.api.query.SearchScope;
import com.filenet.api.util.UserContext;

public class ceUtil {

public static void main(String[] args) {
ceUtil obj = new ceUtil();
obj.FetchCEObjects(obj.getCEConnection());
}

public Connection getCEConnection() {

Connection conn = null;
try {
String ceURI = "http://localhost:9080/wsi/FNCEWS40MTOM/";
String userName = "username";
String password = "password!";
conn = Factory.Connection.getConnection(ceURI);
Subject subject = UserContext.createSubject(conn, userName,
password, null);
UserContext uc = UserContext.get();
uc.pushSubject(subject);
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("CE Connection" + conn);
return conn;
}

public void FetchCEDocs(Connection conn) {


try {
Domain domain = Factory.Domain.fetchInstance(conn, null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain,"OS NAME", null);
String folder= "/TestEform";

SearchScope search = new SearchScope(objStore);
String sql1 = "Select * from docClass where Creator='p8admin'";
SearchSQL searchSQL= new SearchSQL(sql1); 
DocumentSet documents = (DocumentSet) search.fetchObjects(searchSQL,Integer.valueOf("50"),null, Boolean.valueOf(true)); 

//Without Paging Concept
Document doc;
Iterator DocIt= documents.iterator();
while (DocIt.hasNext())
{
doc = (Document)DocIt.next();
System.out.println("document="+doc.get_Name());
}

// With Paging Concept
PageIterator pageIter= documents.pageIterator();
pageIter.getPageSize();pageIter.setPageSize(5);
int pageCount= 0; 
while (pageIter.nextPage() == true) 
{
pageCount++;
int elementCount= pageIter.getElementCount();
System.out.println("Element Count = "+elementCount);
Object[] pageObjects= pageIter.getCurrentPage();
for (int index=0; index<pageObjects.length;index++)
{
Document document = (Document)pageObjects[index];
System.out.println("document= "+ document.get_Name());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Wednesday 11 May 2016

Java Sample Code for Creating Custom Object in FileNet

// Java Sample Code for Creating Custom Object in FileNet

public void CreateCustomObject(Connection conn) {


try {
Domain domain = Factory.Domain.fetchInstance(conn, null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain,"OSNAME", null);

System.out.println("del"+folderOj.get_Name());

//Creaing Custome Object and setting properties

CustomObject myObject= Factory.CustomObject.createInstance(objStore,"Student"); //Object store, Costome Object Class Name
com.filenet.api.property.Properties props = myObject.getProperties();
props.putValue("TitleName","stuInfo022");
props.putValue("StuID", "RK1234");
props.putValue("StuMailID", "p8@filenet.com");
props.putValue("age", 13);
DateFormat date = new SimpleDateFormat("dd/MM/yyyy");
Date memeberDate= date.parse("20/12/2015");
props.putValue("JoiningDate", memeberDate);
myObject.save(RefreshMode.REFRESH);
System.out.println("Customobject " + myObject.get_Name() + " created");

//Saving the Custome Object into folder
String folder= "/Test";
com.filenet.api.core.Folder folderOj= Factory.Folder.fetchInstance(objStore,folder, null);
ReferentialContainmentRelationship rel = folderOj.file(myObject,AutoUniqueName.AUTO_UNIQUE,null,DefineSecurityParentage.DO_NOT_DEFINE_SECURITY_PARENTAGE);
rel.save(RefreshMode.REFRESH);

} catch (Exception e) {
e.printStackTrace();
}
}

Java Sample code to retrieve a custom object in FileNet

//Java Sample code to retrieve a custom object in FileNet

public void FetchCEObjects(Connection conn) {



try {
Domain domain = Factory.Domain.fetchInstance(conn, null, null);
ObjectStore objStore = Factory.ObjectStore.fetchInstance(domain,"OSNAME", null);
String customeObjectPath= "/Test/stuInfo022"; // Full Path of Custome Object

CustomObject myObject= Factory.CustomObject.fetchInstance(objStore,customeObjectPath, null);

 
String TitleName= myObject.get_Name();
System.out.println(TitleName+ " Name is retrieved");
 
com.filenet.api.property.Properties props = myObject.getProperties();
 
   String StuID = props.getStringValue("StuID");
String StuMailID= props.getStringValue("ICCMailUID");
Integer age = props.getInteger32Value("age");
Date dateCreated= props.getDateTimeValue(PropertyNames.DATE_CREATED);
Date JoiningDate= props.getDateTimeValue("JoiningDate");
 
   System.out.println("Student ID: " + StuID );
System.out.println("Student age: " + age);
System.out.println("Mail ID: " + StuMailID);
System.out.println("Date created: " + dateCreated);
System.out.println("Joining Date : " + JoiningDate);

} catch (Exception e) {

e.printStackTrace();
}
}