download EPMDocument in Windchill

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值