windchill 更改文档编号生成规则

站点 下 找到 实用程序 ,进入 对象初始化规则

找到 document ,下载编辑

找到 set the number to a generated number

可以在 AttrValue 中 ,增加 Arg 标签,增加文档编号的固定值

 <AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
      <Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
</AttrValue> 

如:增加 <Arg>    WD </Arg>

<AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
     <Arg>	WD </Arg>
     <Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
</AttrValue> 

则生成出的文档编号为:

 也可以自定义类,重置编码生成逻辑;

如:自定义编号(eg:A2020123)A+年份+三位序号



package ext.lyric.test;

import wt.rule.algorithm.RuleAlgorithm;
import wt.util.WTException;
import wt.inf.container.WTContainerRef;
import wt.pds.oracle81.OracleDataSource;
import java.util.TimeZone;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.*;
import java.util.*;

/**
 * 打开“站点/实用程序/对象初始化规则管理器”,然后在初始化规则管理里找到wt.doc.WTDocument,
 * 下载其初始化规则文件rule.xml到本地机,修改rule.xml文件,把编码代码行注释掉,使其不起作用,
 * 然后把修改后的文件再上传到windchill系统,更新Document的初始化规则
 *  <!-- set the number to a generated number -->
 *  <!-- <AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
 *   <Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
 *   </AttrValue> -->
 *   替换成:
 *   <AttrValue id="number" algorithm="ext.lyric.test.DocNumTest">
 *   <Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg> 
 *   </AttrValue>   
 *  可以在 <AttrValue> 之间 加 <Arg> WD </Arg> 在编码前/后定义固定值    
 * @description 文档编码规则更改
 * @author zhenqingshi
 *
 * 2023年3月14日
 */
public class DocNumTest implements RuleAlgorithm {
	/**
	 * @description A + 年 + 三位流水号
	 * @author Lin
	 * @date 2023年3月14日
	 * @param args
	 * @param container
	 * @return
	 * @throws WTException
	 */
	public Object calculate(Object args[], WTContainerRef container) throws WTException {
		Calendar gmtlocal = new GregorianCalendar(TimeZone.getTimeZone("GMT+8"));
		SimpleDateFormat sf = new SimpleDateFormat("YYYY");
		sf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
		String head = "A" + sf.format(gmtlocal.getTime());
		String num = getDocumentNumber(head);
		if (num.length() == 1) {
			num = "00" + num;
		} else if (num.length() == 2) {
			num = "0" + num;
		}
		return head + num;
	}

	public static String getDocumentNumber(String head) {
		int n = 0;
		try {
			Connection dbConnection = OracleDataSource.getOracleDataSource().getConnection();

			String sql = String.format(
					"SELECT WTDOCUMENTNUMBER FROM WTDOCUMENTMASTER WHERE WTDOCUMENTNUMBER LIKE '%s%%' ORDER BY WTDOCUMENTNUMBER DESC",
					head);
			PreparedStatement ps = dbConnection.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			if (rs.next()) {
				n = Integer.parseInt(rs.getString(1).substring(5)) + 1;
			} else {
				n = 1;
			}
			rs.close();
			ps.close();
			dbConnection.close();
		} catch (SQLException e) {
			System.out.println("Please chekc the oracle table ReviewInfo was created or not!");
			e.printStackTrace();
		}
		return n + "";
	}
}

将编译好的文件放到对应的文件夹中,然后上传后对象初始化规则;

更新对象初始化规则文件,修改指定编码对应 类,从:

<AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
	<Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
</AttrValue> 

修改为:

<AttrValue id="number" algorithm="ext.lyric.test.DocNumTest">       
		<Arg>{GEN:wt.enterprise.SequenceGenerator:WTDOCUMENTID_seq:10:0}</Arg>
</AttrValue>

新增文档,编码则为 A2023002

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windchill文档数据库中,有许多字段名用于描述和管理各种文档的信息。以下是一些常见的字段名及其功能: 1. 名称(Name):用于记录文档的名称或标题。该字段通常是必填字段,用于标识文档的唯一性。 2. 文档编号(Document Number):用于唯一标识文档,并可以作为文档的快速检索标识。该字段通常是自动递增的。 3. 状态(Status):用于跟踪和记录文档的当前状态,如草稿、审批中、发布等。 4. 文件类型(File Type):用于记录文档的文件类型,如Word文档、Excel电子表格、PDF文件等。 5. 版本(Version):用于记录文档的不同版本。每次修改文档时,版本号会递增,以便跟踪文档的历史记录。 6. 所有者(Owner):用于记录文档的所有者或责任人。该字段通常与用户或用户组关联。 7. 创建日期(Creation Date):用于记录文档的创建日期。 8. 修改日期(Modification Date):用于记录文档的最后一次修改日期。 9. 关键字(Keywords):用于记录描述文档内容的关键词或标签,以便更好地进行检索和分类。 10. 审批人(Approver):用于记录需要审批文档的相关人员或角色。 这些字段名的使用可以有效地帮助用户对Windchill文档数据库中的文档进行管理、检索和跟踪。通过填写和利用这些字段,用户可以更轻松地维护和组织文档资源,并从中快速找到所需的文档

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值