如何在Polarion的IFormExtension中通过Java设置自定义字段并开启写事务
Polarion中IFormExtension开启写事务并保存WorkItem的解决方案
在Polarion的IFormExtension上下文里,默认事务是只读的,直接修改WorkItem会触发你遇到的只读事务异常。要开启写事务并完成保存,按以下步骤操作:
获取事务服务实例
通过Polarion的平台服务查找器获取ITransactionService,这是处理事务的核心类:ITransactionService transactionService = PlatformContext.getPlatform().lookupService(ITransactionService.class);在写事务中执行修改与保存
调用transactionService.runInTransaction方法,指定TransactionOption.WRITE开启写事务,在回调逻辑内完成字段修改和WorkItem保存:try { transactionService.runInTransaction(TransactionOption.WRITE, () -> { // 替换成你的自定义字段键和目标值 workItem.setCustomFieldValue("custom_field_id", "updated_value"); // 执行保存操作 workItem.save(); return null; }); } catch (TransactionException e) { // 处理事务执行异常,比如日志记录或前端提示 e.printStackTrace(); }关键注意事项
- 选对操作时机:不要在表单初始化的只读阶段执行修改,建议绑定到用户触发的动作(比如按钮点击事件)
- 验证WorkItem实例:确认你拿到的WorkItem不是只读代理对象,部分场景下Polarion会返回只读实例,需要重新获取可写实例
- 精简事务内逻辑:避免在事务中执行耗时操作,防止占用数据库连接资源
内容的提问来源于stack exchange,提问作者user3782554
相关产品推荐
相关产品推荐

