Windchill 11 之筛选器编辑原理及客制化

16 篇文章 0 订阅
4 篇文章 0 订阅

筛选器编辑

​ 筛选器编辑中约束规则校验借用的是Drools规则引擎框架,具体包括如下步骤:

  1. 初始化规则引擎:单值的选项直接选中,返回所有最新的选项值状态信息。(约束规则生效后的状态,如:选项1下只有一个选择“选择1”,且有必选约束规则:“选择1必选选择2”,则最终返回的信息 选择1和选择2都是选中状态的)

    com.ptc.windchill.option.choicecomponent.controller.ChoiceComponentSessionController#processRequest
    com.ptc.windchill.option.choicecomponent.controller.ChoiceComponentSessionController#startSession

    其中“choicecompaction”参数值为:“choicecomp.init”,即调用的是RulesEngineSession

  2. 修改选项值的状态:依据选项值的选中状态生效约束规则,并返回对应选项下的所有选项值的状态信息。

    com.ptc.windchill.option.choicecomponent.controller.ChoiceComponentSessionController#processRequest
    com.ptc.windchill.option.choicecomponent.controller.ChoiceComponentSessionController#startSession

    其中“choicecompaction”参数值为:"choicecomp.choiceselect,即调用的是ChoiceSelectAction

  3. 查询指定选项下所有选项值的状态信息

    com.ptc.windchill.option.choicecomponent.controller.ChoiceSelectorComponentController

    –> 调用getSelectableChoices方法返回当前选项下的所有选项值的状态信息。

以上为PTC原始的处理逻辑,可以仿照其做如下客制化:

  1. 初始化规则引擎:

    构造NmCommandBean对象,其中“choicecompaction”参数值为:“choicecomp.init” 调用ChoiceComponentSessionGenerator中的processAction方法,返回sessionId

  2. 修改选项值状态:

    构造NmCommandBean对象,其中“choicecompaction”参数值为:“choicecomp.choiceselect”,同时传入操作的选项和选项值OID、sessionId及选中状态, 调用ChoiceComponentSessionGenerator中的processAction方法,返回当前选项下的所有选项值的最新状态

  3. 返回所有选项值的状态:通过sessionId获取RulesEngineSession对象,再调用getChoiceFacts方法获取所有选项值的状态信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛_snail

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值