Teamcenter SOA开发获取属性的LOV值

alwaysmove / 2024-03-04 / 原文

1、普通属性的LOV值,可参考此篇文章。

但是BOMLine属性,似乎不能用上面的方法来做到。因为BOMLine没有object_type属性

 

解决:采取了另外一种方式 

1、通过SOA代码,拿到LOV的uid

dmService.refreshObjects(new ModelObject[]{childrenBomLine});
			dmService.getProperties(new ModelObject[]{childrenBomLine}, new String[]{"fnd0AssemblyIndicator"});
			Property propertyObject = childrenBomLine.getPropertyObject("fnd0AssemblyIndicator");  //bl_is_precise、bl_quantity
			if(propertyObject != null) {
				PropertyDescription propertyDescription = propertyObject.getPropertyDescription();
				boolean isModifiable = propertyDescription.isModifiable();
				String lovUid = propertyDescription.getLovUid();//LOV的uid
				System.out.println();
			}

2、执行SQL,获取改LOV的LOV条目

SELECT * FROM PFND0LOVDICTIONARYENTRY WHERE rfnd0lovu = 'jiGAAAQ0ZqxMrD'

3、返回中文的条目值

SELECT * FROM VL10N_FND0ENTRY WHERE puid = #{第二步返回的uid} AND locale = 'zh_CN'