PTC FlexPLM rfa 常用功能api
1.根据款号查询产品
public LCSProduct GetProductByName(String SKC) throws WTException {
//声明查询
PreparedQueryStatement statement = new PreparedQueryStatement();
statement.appendFromTable("LCSPRODUCT");
//获取FlexType类型,也就是系列
String flextypePath = "Product";
FlexType flextype = FlexTypeCache.getFlexTypeFromPath(flextypePath);// the flextype of product flextype
//设置SQL语句的列名
String columnFtaName = null;
columnFtaName = flextype.getAttribute("productName").getVariableName();
statement.appendSelectColumn("LCSPRODUCT", columnFtaName);
statement.appendSelectColumn("LCSPRODUCT", "BRANCHIDITERATIONINFO");
//设置SQL中的Where条件
//款号条件
if(SKC.trim().length()>0){
statement.appendAndIfNeeded();
statement.appendCriteria(new Criteria("LCSPRODUCT",flextype.getAttribute("EPAstyleNumber").getVariableName(),SKC,Criteria.EQUALS));
}
statement.appendAndIfNeeded(); //版本号为A
statement.appendCriteria(new Criteria("LCSPRODUCT", "VERSIONIDA2VERSIONINFO", "A", Criteria.EQUALS));
statement.appendAndIfNeeded();//并且为最大版本号
statement.appendCriteria(new Criteria("LCSPRODUCT", "LATESTITERATIONINFO", "1", Criteria.EQUALS));
SearchResults results = LCSQuery.runDirectQuery(statement);//执行查询
Vector vRlt = results.getResults(); //获取所有行的信息
int iRecNum = vRlt.size();
if (iRecNum == 0 || iRecNum > 1) {
System.out.println("1-无法定位产品");
return null;
}
FlexObject obj = (FlexObject) vRlt.get(0);//获取产品
String oid="VR:com.lcs.wc.product.LCSProduct:"+obj.getString("LCSPRODUCT.BRANCHIDITERATIONINFO");//取出该产品的oid
//通过接口查询处产品实体
return (LCSProduct)(new LCSProductQuery()).findObjectById(oid);
}
2.根据产品获取所属季节对象
public LCSSeason GetSeasonByProduct(LCSProduct product)throws Exception{
SeasonProductLocator seasonProductLocator = new SeasonProductLocator();
LCSSeasonProductLink seasonProductLink = seasonProductLocator.getSeasonProductLink(product);
LCSSeason season = (LCSSeason)seasonProductLocator.getSeasonRev(seasonProductLink);
return season;
}
3.获取季节和产品的关联对象
SeasonProductLocator seasonProductLocator = new SeasonProductLocator();
LCSSeasonProductLink seasonProductLink = seasonProductLocator.getSeasonProductLink(product);
4.获取产品的采购来源(1:m)
Collection sourcing = LCSSourcingConfigQuery.getSourcingConfigsForProduct(product);
Iterator it = sourcing.iterator();
LCSSourcingConfig configSource=null;
while (it.hasNext()) {
configSource = (LCSSourcingConfig)it.next();
}
5.获取产品采购来源下的所有规格
SearchResults gg = FlexSpecQuery.findSpecsByOwner((WTPartMaster)product.getMaster(), (WTPartMaster)season.getMaster(), null, null);
Collection coll = LCSQuery.getObjectsFromResults(gg, "VR:com.lcs.wc.specification.FlexSpecification:", "FLEXSPECIFICATION.BRANCHIDITERATIONINFO");
for(int n=0;n<coll.size();n++){
specification = (FlexSpecification) coll.toArray()[n];
}
6.获取产品下的所有图像文档集合
LCSProductQuery prodQuery = new LCSProductQuery();
Collection prodImagePages = prodQuery.findImagePages(product, null, null, true);
prodImagePages = CollectionUtil.distinctResults(prodImagePages, "LCSDOCUMENT.BRANCHIDITERATIONINFO");
Iterator imagePageIter = prodImagePages.iterator();
while(imagePageIter.hasNext()){
FlexObject obj = (FlexObject) imagePageIter.next();
...
}
7.获取产品下的所有工艺包
Collection construction = LCSQuery.runDirectQuery(LCSConstructionQuery.findConstructionForProductQuery(product, null, true)).getResults();
Iterator constIter = construction.iterator();
while(constIter.hasNext()){
FlexObject obj = (FlexObject) constIter.next();
}
8.获取产品下的所有版型集合
Collection measurements = LCSQuery.runDirectQuery(LCSMeasurementsQuery.findMeasurmentsForProductQuery(product, null, true)).getResults();
Iterator measIter = measurements.iterator();
while(measIter.hasNext()){
FlexObject obj = (FlexObject) measIter.next();
}
9.获取产品下的所有BOM
LCSFlexBOMQuery bomQuery = new LCSFlexBOMQuery();
QueryStatement bomQueryStatement = bomQuery.findBOMPartsForOwnerQuery((WTPartMaster)product.getMaster(), "", true);
Collection bomResults = LCSQuery.runDirectQuery(bomQueryStatement).getResults();
Iterator bomIter = bomResults.iterator();
while(bomIter.hasNext()){
FlexObject obj = (FlexObject) bomIter.next();
}
10.给FlexModel批量赋值,Collection操作
Map specMap=new HashMap();
specMap.put("specOwnerId",specOwnerId);
specMap.put("sourceIds",sourceIds);
specMap.put("specSourceId",specSourceId);
specMap.put("specSeason",specSeason);
specMap.put("typeId",typeId);
specMap.put(att1Name,"颁行");
//操作Collection
Collection c_sourceIds = new HashSet();
c_sourceIds.add(sourceIds);
AttributeValueSetter.setAllAttributes(flexSpecModel, specMap);
11.获取产品的颜色
public String GetProductColor(LCSProduct product){
try{
String str="";
LCSSKUQuery query = new LCSSKUQuery();
Collection skuList = query.findSKUs(product);
for (Iterator iter = skuList.iterator(); iter.hasNext();) {
LCSSKU sku=(LCSSKU)iter.next();
str+=sku.getName().replace(" ("+product.getValue("productName")+")","\\");
}
if(str=="") return "无";
return str.substring(0,str.length()-1);
}
catch(Exception e){
return "ERROR";
}
}
12.根据用户名,获取用户对象
public WTUser getUser(String name) throws WTException {
Enumeration enumUser = OrganizationServicesHelper.manager.findUser(WTUser.NAME, name);
WTUser user = null;
if (enumUser.hasMoreElements())
user = (WTUser) enumUser.nextElement();
if (user == null) {
enumUser = OrganizationServicesHelper.manager.findUser(WTUser.FULL_NAME, name);
if (enumUser.hasMoreElements())
user = (WTUser) enumUser.nextElement();
}
if (user == null) {
throw new WTException("系统中不存在用户名为'" + name + "'的用户!");
}
return user;
}
13.FlexPLM键值对查找
public String GetBusinessObjDispKey(String Key,String Disp,String path,String Att){
try{
//准备关键字和值的转换
FlexTypeAttribute LoadAtt=FlexTypeCache.getFlexTypeFromPath(path).getAttribute(Att);
Collection pathData = LoadAtt.getAttValueList().getDataSet();
for(Iterator iter=pathData.iterator();iter.hasNext();){
FlexObject fo=(FlexObject)iter.next();
String key=fo.getString("KEY");
String disp=fo.getString("VALUE_ZH_CN");
if(!Key.equals("") && key.equals(Key))
return disp;
else if(!Disp.equals("") && disp.equals(Disp))
return key;
}
return Key;
}
catch(Exception e){
System.out.println("GetValueByKey====Error:"+e);
return "";
}
}
14.获取打样品颜色列表
FlexTypeAttribute LoadAtt=FlexTypeCache.getFlexTypeFromPath("Business Object\\PTCOListOfValue\\PTCOCommonLov\\PTCOCommon1Lov").getAttribute("LovSampleColor");
Collection pathData = LoadAtt.getAttValueList().getDataSet();
for(Iterator iter=pathData.iterator();iter.hasNext();){
FlexObject fo=(FlexObject)iter.next();
String key=fo.getString("KEY");
String disp=fo.getString("VALUE_ZH_CN");
}
15.根据产品和用户获取用户下的所有工作流,并驱动执行
String OjbectID="VR:com.lcs.wc.product.LCSProduct:"+(int)spl.getProductSeasonRevId();
//获取用户实体
WTUser user = getUserFromName(UserName);
//根据用户和ObjectID定位项目
SearchResults res = (new LCSWorkitemQuery()).getUserWorkList(user,OjbectID);
Collection coll = res.getResults();
System.out.println("根据用户和ObjectID获取" + coll.size());
if(coll.size()<=0) {
out.println("1-没有找到该工作项!");
return;
}
String WorkName="",WorkItemID="";
for (int i = 0; i < coll.size(); i++) {
FlexObject item=(FlexObject)coll.toArray()[i];
System.out.println(item);
WorkName=item.getString("WFASSIGNEDACTIVITY.NAME");
WorkItemID="OR:wt.workflow.work.WorkItem:"+item.getString("WORKITEM.IDA2A2");
}
if(!WorkName.equals("商品部主导初样评审"))
{
out.println("1-状态错误");
return;
}
//执行工作流
String workIds = "|~*~|"+WorkItemID;
Collection workIdsCollection = MOAHelper.getMOACollection(workIds);
WFHelper.getService().processWFTasks(workIdsCollection, workEvent);
16.获取产品下的尺码
Collection productSizeCats = new SizingQuery().findProductSizeCategoriesForProduct(product).getResults();
Iterator itor=productSizeCats.iterator();
String productSizeCategory="";
while(itor.hasNext()){
FlexObject obj = (FlexObject)itor.next();
if(obj.getString("SIZECATEGORY.NAME").equals(brand)){
productSizeCategory="OR:com.lcs.wc.measurements.ProductSizeCategory:"+obj.getString("PRODUCTSIZECATEGORY.IDA2A2");
break;
}
}
17.jsp页面接收xml流,格式化为字符串,打印
InputStream input = request.getInputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte buffer[] = new byte[1024];
int len = -1;
try {
while ((len = input.read(buffer, 0, buffer.length)) > 0) {
output.write(buffer, 0, len);
}
} finally {
if (output != null)
output.close();
}
buffer = output.toByteArray();
if (buffer == null || buffer.length == 0) {
throw new LCSException(RB.XML, "noDataForProduct_ERR", RB.objA);
} if (DEBUG) {
String message = new String(buffer, DEFAULT_ENCODING);
System.out.println("-----------------");
System.out.println("XML message="+message);
}
PTC FlexPLM rfa 常用功能api的更多相关文章
- 常用Java API之Scanner:功能与使用方法
Scanner 常用Java API之Scanner:功能与使用方法 Scanner类的功能:可以实现键盘输入数据到程序当中. 引用类型的一般使用步骤:(Scanner是引用类型的) 1.导包 imp ...
- [转]WebPack 常用功能介绍
概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...
- React常用的API说明
楼主刚开始学习react,感受到了他的博大精深,看到很多莫名的用法,不知云云,找了很多没有找到参考手册,只有在中文社区和react官方看了一些,收集了一些比较常用的API,有补充的可以楼下评论补充.后 ...
- elasticsearch中常用的API
elasticsearch中常用的API分类如下: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作,查看索引信息等 查看API: ...
- 项目中常用功能,如:流媒体、健康数据(步数等)等-b
整理iOS开发中使用的各种流媒体和常用的高级功能.由于时间关系,目前只写了一部分功能,全部都采用的是系统方法,没用第三方,截图如下: screen1.png screen2.png 个人比较懒,不爱多 ...
- 非常好用的弹出层 layer,常用功能demo,快速上手!
功能强大,实用,操作方便,文档齐全. 参数灵活,丰富.可以作为开发项目的公共模块,多处使用.老文档地址:http://layer.layui.com/api.html 已经停止维护 新文档地址:htt ...
- 开源三维地球GIS引擎Cesium常用功能的开发
Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...
- Atiit 常见功能 常用功能与模块的最快速解决方案
Atiit 常见功能 常用功能与模块的最快速解决方案 一.大力使用第三方API接口 一.导出excel jquery.table2excel 二.Form表单验证,使用h5验证属性 验证发生在form ...
- Atitit.java swing打印功能 api attilax总结
Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...
随机推荐
- python .dcm文件读取,并转化为.jpg格式
.dcm文件是DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信中记录医学图像和相关信息的文件,在用于医学图像处理的时候我们 ...
- mysql 大数据提取
今天要重五百多万的一个数据库表 提取 大约五十万条数据,刚开始的解决思路是: 先把数据查询出来,然后再导出来,然后再设计一个数据库表格,把这些数据导入,最后导出数据和导入数据花费了很多时间,最后向同事 ...
- 跨系统-跨数据库访问表或创建映射视图-PB访问数据库的特殊处理
一. 在项目中可能会遇到在一个项目中会出现多个数据库的操作. 二. 也可能会多个系统多个数据库之间进行交互操作显示. 三. 经常需要两个数据库关联查询或需要翻译显示内容时会很麻烦. 四. 今天就有个简 ...
- nginx 读取文件 permission denied
nginx 是在root用户下安装的,静态网页的目录/var/www/html/ 目录下的内容所有者也是root 用户,按照 nginx配置文件中location说明 配置静态文件访问地址. 使用网址 ...
- windowns 2008(apache2.2.25 x86 openssl0.98y) 升级openssl1.0.1e(为了支持小程序接口TLS1.2)
原来只知道微信小程序,服务器接口必须支持 https, 所以在搭建环境的时候没有注意, 只是在原来已有的系统框架上,稳健升级,把apache2.2.25 X86_no_openssl升级为了apach ...
- Ingress 原理及实例
什么是Ingress 在Kubernetes中,Service和Pod的IP地址只能在集群内部网络中路由,所有到达“边界路由器”(Edge Router)的网络流量要么被丢弃,要么被转发到别处,从概念 ...
- jQuery学习笔记(简介,选择器)
jQuery优势 1. 强大的选择器.jQuery允许开发者使用从CSS1到CSS3几乎所有的选择器,以及jQuery独创的高级而复杂的选择器. 2. 出色的DOM操作封装 3. 可靠的事件处理机制 ...
- Android基础知识之API等级介绍
原文:http://android.eoe.cn/topic/android_sdk :可以让开发者通过一个表示API级别的整数来描述程序在android平台上的兼容性,系统会将与系统本身提供的API ...
- [MeetCoder] Count Pairs
Count Pairs Description You are given n circles centered on Y-aixs. The ith circle’s center is at po ...
- 【Unity】8.5 扩展编辑器
分类:Unity.C#.VS2015 创建日期:2016-04-27 一.简介 可以通过编辑器窗口 (Editor Windows) 创建自己在 Unity 中的自定义设计工具.来自EditorWin ...