简体中文
常见问题
约 466 字大约 2 分钟
2026-01-09
闭坑指南
- 删除从对象数据 使用removeDetail函数删除从数据,where闭包中需要将符合条件的数据筛选出来。 同一个UIEvent中如果有多个removeDetail删除同一对象数据,则以最后一个removeDetail为最终结果。
参考代码:
List list = context.details['object_I71Sd__c']
UIEvent event = UIEvent.build(context) {
List deleteList = []
list.each { item ->
def map = item as Map
if (map['field_xxx__c'] == '001') {
deleteList.add(map)
}
//统一删除明细
log.info('执行统一删除,需要删除的明细:' + deleteList)
}
removeDetail 'object_I71Sd__c' where { x -> (deleteList.contains(x['field_2Q2qf__c'] as String)) }
}
return event- 复杂场景中使用UI事件(1主多从) UI事件函数使用多个从对象及数据判断,使用下面截图中的高级能力时,在循环中使用不生效。(跟预想的结果不一样)。
错误示例(高阶能力不生效):
UIEvent event = UIEvent.build(context) {
// 回填主对象数据
// 使用UI事件高阶能力 如:隐藏从对象 隐藏从对象按钮 业务类型 字段等
}
//获取当前操作的从对象数据
Map currentData = event.getCurrentDetail()
// 查询数据以及赋值操作
event = UIEvent.build(context) {
// 编辑从对象数据
editDetail "object_uw3UD__c" set("field_jjulF__c": pro_unit, "field_68p0q__c": pro_kemu_id, "field_vmevL__c": pro_kemu_code) where { x -> (x["field_L72j3__c"] as String) == pro_id }
}
return event可以使用下面的写法来改写上面函数。推荐使用更灵活
UIEvent.Builder builder = UIEvent.Builder.create(context)
// 调用直接 builder.UI事件文档中的方法,见截图
builder.editObject 'object_0wK5p__c' hidden(true)
return builder.getUIEvent()
改写函数
UIEvent.Builder builder = UIEvent.Builder.create(context)
// 回填主对象数据
builder.editMaster("name": "test", "b": 2)
// UI事件高阶能力 如下面隐藏从对象
builder.editObject 'object_0wK5p__c' hidden(true)
//获取当前操作的从对象数据
UIEvent event = UIEvent.build(context) {
}
Map currentData = event.getCurrentDetail()
// 查询数据以及赋值操作
Fx.object.find('xxxx', xxx)
// 编辑从对象数据
builder.editDetail "object_uw3UD__c" set("field_jjulF__c": pro_unit, "field_68p0q__c": pro_kemu_id, "field_vmevL__c": pro_kemu_code) where { x -> (x["field_L72j3__c"] as String) == pro_id } ‘
return builder.getUIEvent()