IBM Case Manager Connection

1.9k Views Asked by At

I'm stuck at work for like a week now,

can some1 with CM JavaAPI exprience guide me what am I doing wrong?

I try to connect to the server where the Case Manger is installed and start a session, maybe I'm doing it all wrong but IBM Knowledge Center did not help.

2

There are 2 best solutions below

0
On

I dont know which version of Case Manager you are talking about. However, for 5.2.1.x, you will find ample references on IBM's site. For example - here and here.

1
On

GOT IT!

package *packacge*;
// jars from the the CM different installation folders on the server
import java.util.List;
import java.util.Locale;

import javax.security.auth.Subject;
import com.filenet.api.core.Connection;
import com.filenet.api.core.ObjectStore;
import com.filenet.api.util.UserContext;
import com.ibm.casemgmt.api.CaseType;
import com.ibm.casemgmt.api.DeployedSolution;
import com.ibm.casemgmt.api.context.CaseMgmtContext;
import com.ibm.casemgmt.api.context.P8ConnectionCache;
import com.ibm.casemgmt.api.context.SimpleP8ConnectionCache;
import com.ibm.casemgmt.api.context.SimpleVWSessionCache;
import com.ibm.casemgmt.api.objectref.ObjectStoreReference;


public class CaseMgmtSession {

    public static void main(String[] args) {
        P8ConnectionCache connCache = new SimpleP8ConnectionCache();
        Connection conn = connCache.getP8Connection("http://*ip of the server CM is installed on*/wsi/FNCEWS40MTOM/");
        Subject subject = UserContext.createSubject(conn, *user of CM builder admin*, *pass of CM builder admin*, "FileNetP8WSI");
        UserContext uc = UserContext.get();
        uc.pushSubject(subject);
        Locale origLocale = uc.getLocale();
        uc.setLocale(Locale.ENGLISH);
        CaseMgmtContext origCmctx = CaseMgmtContext.set(new CaseMgmtContext(new SimpleVWSessionCache(), connCache));
        try {
            // Code that calls the Case Java API or 
            // directly calls the CE Java API
            // checking the connection is working
            ObjectStore os = P8Connector.getObjectStore(*some object store name*);
            ObjectStoreReference osRef = new ObjectStoreReference(os);
            DeployedSolution someSolution = DeployedSolution.fetchInstance(osRef, *some deployed solution name*); 
            System.out.println(someSolution.getSolutionName());
            List<CaseType> caseTypes = someSolution.getCaseTypes();
            for(CaseType ct : caseTypes) {
                System.out.println(ct.getName());
            }
        }
        finally {
            CaseMgmtContext.set(origCmctx);
            uc.setLocale(origLocale);
            uc.popSubject();
        }
    }

}

where P8Connector is a class i wrote that returns an objectstore