用于在新建/編輯查找關(guān)聯(lián)字段時(shí),設(shè)置該字段可選擇的范圍
配置方式:在新建、編輯查找關(guān)聯(lián)字段時(shí),將可選擇的數(shù)據(jù)范圍設(shè)置為「符合以下條件」- 設(shè)置條件 - 基于自定義函數(shù) - 添加自定義函數(shù)
1、返回類(lèi)型為集合(List)
函數(shù)編寫(xiě)模板:
//定義id List List objectIds = [] ... //寫(xiě)函數(shù)邏輯,并將可選擇數(shù)據(jù)Id添加到objectIds里 objectIds.add() //最后返回的數(shù)據(jù)結(jié)果為 List<String> 里面包含滿足條件的數(shù)據(jù)id return objectIds
實(shí)際場(chǎng)景:報(bào)價(jià)單明細(xì)按產(chǎn)品分類(lèi)限制可選擇產(chǎn)品范圍,不同業(yè)務(wù)類(lèi)型的報(bào)價(jià)單明細(xì)選擇不同分類(lèi)的產(chǎn)品數(shù)據(jù)。
根據(jù)以上實(shí)際場(chǎng)景的模板案例:
//獲取當(dāng)前操作對(duì)象實(shí)例的字段值 String product = context.data.field_wPnHu__c //根據(jù)條件查找數(shù)據(jù),根據(jù)需要的業(yè)務(wù)邏輯查詢出需要的數(shù)據(jù) def ret = Fx.object.find("查找關(guān)聯(lián)字段所對(duì)應(yīng)的對(duì)象ApiName",[["field_1tG48__c":product]],100,0) //如果查詢錯(cuò)誤直接return返回 if( ret[0] ){ Fx.log.info("查詢異常") return [] } //定義id List List objectIds = [] QueryResult result = ret[1] as QueryResult //遍歷查詢結(jié)果,將所有Id添加到objectIds中 result.dataList.each{ item -> Map map = item as Map objectIds.add(map._id) } //最后返回objectIds return objectIds
2、返回類(lèi)型為QueryTemplate
QueryTemplate作為關(guān)聯(lián)查詢的條件的返回結(jié)果,更加高效。推薦用QueryTemplate返回類(lèi)型函數(shù)代替之前的List返回類(lèi)型函數(shù)。
函數(shù)編寫(xiě)模板:
QueryTemplate template1 = QueryTemplate.AND( ["name":Operator.LIKE("測(cè)試")], ["field_g7Zeh__c":Operator.LTE("測(cè)試單行文本")] ) QueryTemplate template2 = QueryTemplate.AND( ["owner":Operator.LIKE("1000")], ["record_type":Operator.EQ("default__c")] ) QueryTemplate template3 = QueryTemplate.OR(template1,template2) return template3