ID是单据和基础资料数据的唯一标识,EAS系统里的所有数据都具有ID,都是通过ID进行识别。ID在把数据保存到数据库的时候生成,开发者也可以调用生成id的方法提取为单据生成ID。
BosObjectType是单据类型的唯一标识,是在BIM或BOS Studio建立模型时,BOS自动计算固化下来。一般的单据ID里会包含BosObjectType信息,可以根据单据ID获取相应的BosObjectType。
系统提供了BOSUuid、IObjectPK用于描述单据的ID,IObjectPK是一个Interface,对应的常用实现类是ObjectUuidPK。
BOSUuid、ObjectUuidPK及String间的相互转化方法如下:
源类型 |
目标类型 |
方 法 |
String |
ObjectUuidPK/IObjectPK |
new ObjectUuidPK(String) |
BOSUuid |
ObjectUuidPK/IObjectPK |
new ObjectUuidPK(BOSUuid) |
String |
BOSUuid |
BOSUuid.read(String) |
ObjectUuidPK/IObjectPK |
BOSUuid |
ObjectUuidPK .getKeyValue() BOSUuid.read(ObjectUuidPK.toString()) |
BOSUuid |
String |
BOSUuid.toString() |
ObjectUuidPK/IObjectPK |
String |
ObjectUuidPK.toString() |
BOSObjectType是单据类型标识,8位字符串,每个entity和facade都有唯一的BOSObjectType,BOS根据元数据的包路径和名称生成,发布时会分别在entity_pkmapping.properties和facade_pkmapping.properties这两个文件中注册,部署时也需要同步部署到EAS服务器,保存BOSObjectType和元数据包路径和名称的对应关系,如果丢失这种关系,系统运行时会提示找不到XXXXXXXX对应的元数据。。
系统提供BOSObjectType对象描述单据类型标识,代码获取BOSObjectType,以及从BOSObjectTypeID创建单据ID的方法如下:
源类型 |
目标类型 |
方 法 |
ObjectUuidPK |
BOSObjectType |
ObjectUuidPK .getObjectType() |
BOSUuid |
BOSObjectType |
BOSUuid.getType() |
BOSObjectType |
ObjectUuidPK |
BOSUuid.create(BOSObjectType) |
BOSObjectType |
BOSUuid |
new ObjectUuidPK (BOSObjectType) |
Java代码生成ID:
1. id字符串转换为IObjectPK/ObjectUuidPK:ObjectUuid pk = new ObjectUuidPK(String);
2. 已有BOSObjectType,创建BOSUuid:info.setId(BOSUuid.create(BOSObjectType));
3. 已有BOSUuid转为IObjectPK:ObjectUuid pk = new ObjectUuidPK(BOSUuid.toString());
4. 已有IObjectPK转为BOSUuid:BOSUuid.read(IObjectPK.toString)