dd
package ext;
import java.util.*;
import java.rmi.RemoteException;
import java.net.URL;
import java.beans.PropertyVetoException;
import java.io.*;
import wt.util.*;
import wt.fc.*;
import wt.vc.*;
import wt.query.*;
import wt.part.*;
import wt.epm.*;
import wt.httpgw.GatewayAuthenticator;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.content.*;
import wt.representation.*;
import wt.fv.StandardFvService;
import wt.lifecycle.*;
import wt.lifecycle.State;
import com.ptc.wvs.common.util.WVSProperties;
import com.ptc.wvs.server.util.PublishUtils;
import com.ptc.wvs.server.util.WVSContentHelper;
import wt.security.FileAccess;
import wt.security.WTSecurityException;
import wt.services.ManagerService;
import wt.services.ManagerServiceFactory;
import wt.session.SessionHelper;
import wt.session.SessionManager;
public class epmDown implements RemoteAccess, Serializable {
public static Enumeration FindEpmNumbered(String conTyp, String dlLoc, String drwNo) throws WTException, WTPropertyVetoException {
QuerySpec qs = new QuerySpec(EPMDocument.class);
qs.appendWhere(new SearchCondition(EPMDocument.class,EPMDocument.NUMBER,SearchCondition.LIKE, drwNo));
qs.appendAnd();
qs.appendWhere(new SearchCondition(EPMDocument.class, "iterationInfo.latest", "TRUE"));
final QueryResult qr = PersistenceHelper.manager.find(qs);
while (qr.hasMoreElements()) {
EPMDocument epmm = (EPMDocument)qr.nextElement();
if (epmm.getNumber().endsWith(".drw") ) {
LifeCycleManaged LMObject = (LifeCycleManaged)epmm;
String StStg = (String)LMObject.getLifeCycleState().toString();
if (StStg.compareTo("RELEASED") == 0) {
System.out.println( "\nEPMDoc - Number: " + epmm.getNumber() + " - Name: " + epmm.getName()+ " - CadName: " + epmm.getCADName() );
System.out.println( "EPMDocument " + epmm.getNumber() + " -Version: " + epmm.getVersionIdentifier().getValue() + " - Iteration:"+epmm.getIterationIdentifier().getValue());
System.out.println( "Life Cycle State: "+StStg);
try {
Representation defaultRep=RepresentationHelper.service.getDefaultRepresentation(epmm);
ContentHolder holder=ContentHelper.service.getContents(defaultRep);
Vector contents=ContentHelper.getContentListAll(holder);
ApplicationData data=null;
for (int i=0;i<contents.size();i++)
{
if (contents.get(i) instanceof ApplicationData)
{
data=(ApplicationData)contents.get(i);
if (data!=null && data.getFileName().endsWith(conTyp))
{
String path = dlLoc+"\\"+data.getFileName();
ContentServerHelper.service.writeContentStream(data, path);
break;
}
}
}
}
catch(Exception exception)
{
exception.printStackTrace();
}
queCnt++;
}
}
}
return new Enumeration() {
public boolean hasMoreElements() {
return qr.hasMoreElements();
}
public Object nextElement() throws NoSuchElementException {
return ((Persistable[])qr.nextElement());
}
};
}
public static void main(String[] args) {
if(args.length < 3)
{
System.out.println("Usage: windchill epmDown <content type> <path-where-file-should be saved> <number search string>");
System.exit(0);
} else
{
try {
RemoteMethodServer rms = RemoteMethodServer.getDefault();
GatewayAuthenticator auth = new GatewayAuthenticator();
auth.setRemoteUser("wcadmin");
rms.setAuthenticator(auth);
String conTyp = args[0];
String dlLoc = args[1];
String drwNo = args[2];
Class aclass[] = new Class[3];
aclass[0] = java.lang.String.class;
aclass[1] = java.lang.String.class;
aclass[2] = java.lang.String.class;
Object aobj[] = { conTyp, dlLoc, drwNo };
try {
rms.invoke("FindEpmNumbered", "ext.epmDown", null, aclass, aobj);
Enumeration e = FindEpmNumbered(conTyp,dlLoc,drwNo);
while (e.hasMoreElements()) {
System.out.println(((EPMDocument)e.nextElement()).getIdentity());
}
System.out.println(queCnt+" Objects Queried.");
}
catch (WTException wtee) {
wtee.printStackTrace();
}
catch (WTPropertyVetoException wtpe) {
wtpe.printStackTrace();
}
finally {
System.exit(0);
}
System.exit(0);
}
catch(Exception exceptionMain)
{
System.out.println("Exception in Main: "+exceptionMain);
exceptionMain.printStackTrace();
}
}
}
static int queCnt=0;
}
转载于:https://my.oschina.net/zengbo/blog/115487