package ext.publishing; import com.ptc.wvs.server.util.PublishUtils; import wt.content.ApplicationData; import wt.content.ContentHelper; import wt.content.ContentHolder; import wt.content.ContentItem; import wt.doc.*; import wt.epm.*; import wt.epm.EPMAuthoringAppType; import wt.epm.EPMDocConfigSpec; import wt.fc.ObjectVector; import wt.fc.ObjectVectorIfc; import wt.fc.Persistable; import wt.fc.PersistenceHelper; import wt.fc.PersistenceServerHelper; import wt.fc.QueryResult; import wt.inf.container.*; import wt.lifecycle.*; import wt.lifecycle.State; import wt.query.QuerySpec; import wt.query.SearchCondition; import wt.representation.Representation; import wt.vc.VersionControlHelper; import wt.vc.config.ConfigHelper; import wt.vc.config.LatestConfigSpec; import wt.vc.config.LifeCycleConfigSpec; import wt.viewmarkup.DerivedImage; public class ScheduleJobsExt { public static QueryResult ProtoEpmAll() { QueryResult result = QueRun("ALL","ALL","PROTOTYPE"); return result; } public static QueryResult RelEpmAll() { QueryResult result = QueRun("ALL","ALL","RELEASED"); return result; } public static QueryResult ProtoEpmNoRep() { QueryResult result = QueRun("ALL","NoRep","PROTOTYPE"); return result; } public static QueryResult RelEpmNoRep() { QueryResult result = QueRun("ALL","NoRep","RELEASED"); return result; } public static QueryResult ProtoDrwAll() { QueryResult result = QueRun("%.DRW","ALL","PROTOTYPE"); return result; } public static QueryResult ProtoPrtAll() { QueryResult result = QueRun("%.PRT","ALL","PROTOTYPE"); return result; } public static QueryResult ProtoAsmAll() { QueryResult result = QueRun("%.ASM","ALL","PROTOTYPE"); return result; } public static QueryResult RelDrwAll() { QueryResult result = QueRun("%.DRW","ALL","RELEASED"); return result; } public static QueryResult RelPrtAll() { QueryResult result = QueRun("%.PRT","ALL","RELEASED"); return result; } public static QueryResult RelAsmAll() { QueryResult result = QueRun("%.ASM","ALL","RELEASED"); return result; } public static QueryResult ProtoDrwNoRep() { QueryResult result = QueRun("%.DRW","NoRep","PROTOTYPE"); return result; } public static QueryResult ProtoPrtNoRep() { QueryResult result = QueRun("%.PRT","NoRep","PROTOTYPE"); return result; } public static QueryResult ProtoAsmNoRep() { QueryResult result = QueRun("%.ASM","NoRep","PROTOTYPE"); return result; } public static QueryResult RelDrwNoRep() { QueryResult result = QueRun("%.DRW","NoRep","RELEASED"); return result; } public static QueryResult RelPrtNoRep() { QueryResult result = QueRun("%.PRT","NoRep","RELEASED"); return result; } public static QueryResult RelAsmNoRep() { QueryResult result = QueRun("%.ASM","NoRep","RELEASED"); return result; } public static QueryResult QueRun( String EpmType, String RepType, String targetState ) { ObjectVector objectvector = new ObjectVector(); //System.out.println("EpmType: "+EpmType+" - RepType: "+RepType+" - targetState: "+targetState); try { QuerySpec qs = new QuerySpec(wt.epm.EPMDocumentMaster.class); if(EpmType.equals("ALL")) { System.out.println("EpmType (ALL): "+EpmType); qs.appendSearchCondition(new SearchCondition(wt.epm.EPMDocumentMaster.class, wt.epm.EPMDocumentMaster.NUMBER, SearchCondition.LIKE, "%.DRW")); qs.appendOr(); qs.appendSearchCondition(new SearchCondition(wt.epm.EPMDocumentMaster.class, wt.epm.EPMDocumentMaster.NUMBER, SearchCondition.LIKE, "%.PRT")); qs.appendOr(); qs.appendSearchCondition(new SearchCondition(wt.epm.EPMDocumentMaster.class, wt.epm.EPMDocumentMaster.NUMBER, SearchCondition.LIKE, "%.ASM")); } else { System.out.println("EpmType (NOT ALL): "+EpmType); qs.appendSearchCondition(new SearchCondition(wt.epm.EPMDocumentMaster.class, wt.epm.EPMDocumentMaster.NUMBER, SearchCondition.LIKE, EpmType)); } QueryResult qr = PersistenceHelper.manager.find(qs); do { if(!qr.hasMoreElements()) break; EPMDocumentMaster epmdocumentmaster = (EPMDocumentMaster)qr.nextElement(); EPMDocConfigSpec epmConfigSpec = EPMDocConfigSpec.newEPMDocConfigSpec(); epmConfigSpec.setLifeCycleActive(true); QueryResult qr1 = ConfigHelper.service.filteredIterationsOf( epmdocumentmaster, epmConfigSpec ); if(qr1.hasMoreElements()){ EPMDocument epmdocument =(EPMDocument)qr1.nextElement(); LifeCycleManaged LMObject = (LifeCycleManaged)epmdocument; String StStg = (String)LMObject.getLifeCycleState().toString(); //System.out.println("1)STATE: "+StStg+" Found: - EPMDoc ID: "+epmdocument+" - EPMDoc Version: "+PublishUtils.getIterationIdentifier(epmdocument)); //System.out.println("2)EPMDoc - Number: " + epmdocument.getNumber() + " - Name: " + epmdocument.getName()+ " - CadName: " + epmdocument.getCADName() + "\n" ); if(StStg.equals(targetState)) { Representation representation = PublishUtils.getRepresentation(epmdocument); System.out.println("STATE: "+StStg+" Found: - EPMDoc ID: "+epmdocument+" - EPMDoc Version: "+PublishUtils.getIterationIdentifier(epmdocument)); System.out.println("EPMDoc - Number: " + epmdocument.getNumber() + " - Name: " + epmdocument.getName()+ " - CadName: " + epmdocument.getCADName() + "\n" ); if(RepType.equals("ALL")) { //System.out.println("RepType (ALL): "+RepType); objectvector.addElement(epmdocument); } else { //System.out.println("RepType (NOT ALL): "+RepType); if(representation == null) objectvector.addElement(epmdocument); } } } } while(true); } catch(Exception exception) { exception.printStackTrace(); objectvector = new ObjectVector(); } return new QueryResult(objectvector); } //Used to remove all viewables public static QueryResult DelAllRep() { Object obj = null; QueryResult queryresult = null; try { QuerySpec queryspec = new QuerySpec(wt.viewmarkup.DerivedImage.class); SearchCondition searchcondition = new SearchCondition(wt.viewmarkup.DerivedImage.class, "defaultRepresentation", "TRUE"); SearchCondition searchcondition1 = new SearchCondition(wt.viewmarkup.DerivedImage.class, "derivedFromReference.key.id", "<>", 0L); queryspec.appendWhere(searchcondition); queryspec.appendAnd(); queryspec.appendWhere(searchcondition1); queryresult = PersistenceHelper.manager.find(queryspec); ObjectVector objectvector = new ObjectVector(); do { if(!queryresult.hasMoreElements()) break; DerivedImage derivedimage = (DerivedImage)queryresult.nextElement(); wt.viewmarkup.ViewMarkUpHelper.service.deleteDerivedImage(derivedimage,true); } while(true); queryresult = new QueryResult(objectvector); } catch(Exception exception) { exception.printStackTrace(); } return queryresult; } }