所有与Teamcenter相关的文章都在此发表,其他文章在BlobBus发表http://guoy.blogbus.com

好久没有来CSDN的BLOG了,发现比以前好用多了。

所有与Teamcenter相关的文章都在此发表。其他文章在BlobBus发表 :

http://guoy.blogbus.com 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是使用 Java 语言在 Teamcenter 中添加物料属性签入保存校验的示例代码: ``` import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentForm; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.services.rac.core._2008_06.DataManagement.PropertyValues; import com.teamcenter.services.rac.core._2008_06.DataManagement.SaveAs; import com.teamcenter.services.rac.core._2008_06.DataManagement.UpdateItemInfoIn; public class CheckinWithValidation { public static void main(String[] args) { TCSession session = (TCSession) args[0]; TCComponentItem item = (TCComponentItem) args[1]; try { // 获取当前物料的属性表单 TCComponentForm form = item.getLatestItemRevision().getForm(); // 设置校验的属性值 PropertyValues pv = new PropertyValues(); pv.stringValues = new String[] { "value1", "value2" }; form.setProperties("attribute_name", pv); // 设置签入的选项 SaveAs saveAs = new SaveAs(); saveAs.asNew = false; saveAs.promote = true; saveAs.makeActive = true; saveAs.copyFile = false; // 保存并校验 UpdateItemInfoIn updateInfo = new UpdateItemInfoIn(); updateInfo.items = new TCComponent[] { form }; updateInfo.propertyValues = new PropertyValues[] { pv }; updateInfo.options = saveAs; session.getDataManagementService().updateItemInfo(updateInfo); } catch (TCException e) { e.printStackTrace(); } } } ``` 请注意,上述代码仅是示例,需要根据您的实际情况进行修改。 ### 回答2: 在Teamcenter中使用Java语言添加校验来保存物料属性时,可以通过自定义保存事件进行实现。示例代码如下: import com.teamcenter.rac.aif.AbstractAIFCommand; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCPropertyValue; import com.teamcenter.rac.kernel.TCTextService; public class CustomSaveCommand extends AbstractAIFCommand { private TCComponent component; public CustomSaveCommand(TCComponent comp) { component = comp; } @Override public void runCommand() throws Exception { // 获取需要保存的物料组件的属性 TCProperty property = component.getTCProperty("物料属性名称"); // 获取属性值 TCPropertyValue value = property.getTCPropertyValue(); // 进行校验 if (value == null || value.toString().isEmpty()) { // 属性值为空时,抛出异常 TCTextService textService = component.getSession().getTCTextService(); String errorMsg = textService.getTextValue("显示名称"); throw new TCException(errorMsg + "不能为空"); } // 执行保存操作 if (component instanceof InterfaceAIFComponent) { ((InterfaceAIFComponent) component).save(); } else { AIFUtility.getActiveDesktop().saveSession(); } } } 在以上示例代码中,首先定义了一个CustomSaveCommand类,继承自AbstractAIFCommand,实现了自定义的保存逻辑。在runCommand方法中,获取需要保存的物料属性值,并进行校验。如果属性值为空,则抛出异常,否则执行保存操作。 需要注意的是,示例代码中的"物料属性名称"需要替换为实际需要校验的属性名称,"显示名称"需要替换为实际需要显示的错误信息。 可以将以上代码添加到Teamcenter自定义扩展中,并使用适当的触发器来激活自定义保存事件,以实现在物料属性签入保存时添加校验的功能。 ### 回答3: 示例代码如下: ```java import com.teamcenter.services.strong.core._2012_06.DataManagement.Applicability; import com.teamcenter.services.strong.core._2012_06.DataManagement.ApplicabilityRule; import com.teamcenter.services.strong.core._2012_06.DataManagement.ApplicabilityType; import com.teamcenter.services.strong.core._2012_06.DataManagement.SaveResponse; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecApplicabilityAssignment; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecApplicabilityRule; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecApplicabilityRuleSet; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecEnabledRule; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecEnabledRuleSet; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecPropInheritanceRule; import com.teamcenter.services.strong.core._2008_06.DataManagement.VecProperty; public class MaterialValidation { public static void main(String[] args) { String itemId = "MATERIAL_ID"; // 物料ID String propertyName = "MATERIAL_PROPERTY"; // 物料属性名称 String propertyValue = "MATERIAL_VALUE"; // 物料属性值 // 构建校验规则 VecEnabledRule enabledRule = new VecEnabledRule(); enabledRule.setEnabled(true); // 启用规则 VecProperty property = new VecProperty(); property.setName(propertyName); property.setValue(propertyValue); VecEnabledRuleSet enabledRuleSet = new VecEnabledRuleSet(); enabledRuleSet.getVecEnabledRule().add(enabledRule); VecPropInheritanceRule inheritanceRule = new VecPropInheritanceRule(); inheritanceRule.setInheritFromParent(true); // 从父级继承规则 inheritanceRule.setVecEnabledRuleSet(enabledRuleSet); VecApplicabilityRule applicabilityRule = new VecApplicabilityRule(); applicabilityRule.getProperty().add(property); applicabilityRule.setVecPropInheritanceRule(inheritanceRule); VecApplicabilityRuleSet applicabilityRuleSet = new VecApplicabilityRuleSet(); applicabilityRuleSet.getVecApplicabilityRule().add(applicabilityRule); VecApplicabilityAssignment applicabilityAssignment = new VecApplicabilityAssignment(); applicabilityAssignment.setRuleSetId(applicabilityRuleSet); Applicability applicability = new Applicability(); applicability.setApplicabilityId(itemId); applicability.setType(ApplicabilityType.TYPE_RULE_ASSIGNMENT); applicability.getAssignments().add(applicabilityAssignment); ApplicabilityRule applicabilityRuleObj = new ApplicabilityRule(); applicabilityRuleObj.getApplicabilities().add(applicability); // 将校验规则保存到物料属性 try { SaveResponse saveResponse = SaveResponse.of(itemId, applicabilityRuleObj); boolean isSaved = saveResponse.isSaved(); if (isSaved) { System.out.println("物料属性校验规则保存成功!"); } else { System.out.println("物料属性校验规则保存失败!"); } } catch (Exception e) { System.out.println("保存物料属性校验规则发生异常:" + e.getMessage()); } } } ``` 以上示例代码演示了如何在Teamcenter中使用Java语言添加物料属性的校验规则,并将其保存到系统中。具体步骤包括:构建校验规则对象、创建校验规则集合、创建规则集合的分配对象、创建适用性对象等。最后通过调用SaveResponse方法保存校验规则到物料属性,并根据返回结果判断保存是否成功。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值