国产精品,日韩av,hdsexvideos中国少妇,xxxxx性bbbbb欧美熟妇,波多野结衣乳巨码无在线,国产成人亚洲精品乱码

APL函數(shù)代碼開放場景-范圍規(guī)則Groovy代碼示例

2024-12-31 17:14:20 351 本站

一、返回類型為QueryTemplate

QueryTemplate作為關聯(lián)查詢的條件的返回結果,更加高效。

除非QueryTemplate的查詢方式不能滿足需求,否則優(yōu)先推薦用使用QueryTemplate返回類型函數(shù),用此方法返回的范圍數(shù)據(jù)沒有上限,并且執(zhí)行效率高。

#1.1 函數(shù)編寫模板:

Groovy:

QueryTemplate template1 = QueryTemplate.AND(
["name":Operator.LIKE("測試")],
["field_g7Zeh__c":Operator.LTE("測試單行文本")]
)

QueryTemplate template2 = QueryTemplate.AND(
["owner":Operator.LIKE("1000")],
["record_type":Operator.EQ("default__c")]
)

//QueryTemplate使用OR條件需要單獨開通,請聯(lián)系銷售人員下訂單開通產(chǎn)品:【對象列表篩選支持或者】
QueryTemplate template3 = QueryTemplate.OR(template1,template2)

return template3

//查詢條件支持
// product_id 為查找關聯(lián)字段,查詢模版支持篩選查找關聯(lián)對象下的name字段符合某種條件的結果
QueryTemplate template = QueryTemplate.AND(
["product_id.name":Operator.EQ("測試")]
)

return template

Java:

import java.util.List;
import java.util.Map;

public class RangeTemplate implements IQueryTemplateAction {

/**
* 范圍規(guī)則函數(shù)(QueryTemplate)的運行方法
  */
  @Override
  public QueryTemplate execute(FunctionContext context, Mapargs) {
  //構造查詢條件
  QueryTemplate template1 = QueryTemplate.AND(
  Maps.of("name", QueryOperator.EQ("測試")),
  Maps.of("field_g7Zeh__c", QueryOperator.EQ("測試單行文本"))
  );

    QueryTemplate template2 = QueryTemplate.AND(
      Maps.of("owner", QueryOperator.LIKE("1000")),
      Maps.of("record_type", QueryOperator.EQ("default__c"))
    );

    //QueryTemplate使用OR條件需要單獨開通,請聯(lián)系銷售人員下訂單開通產(chǎn)品:【對象列表篩選支持或者】
    QueryTemplate template3 = QueryTemplate.OR(template1,template2);

    return template3;
}
}

二、返回類型為集合(List)

不推薦使用List返回類型函數(shù),用此方法返回的數(shù)據(jù)有上限500條,并且查詢和使用id作為返回值的執(zhí)行效率較低。

2.1 函數(shù)編寫模板:

//定義id List
List objectIds = []
...
//寫函數(shù)邏輯,并將可選擇數(shù)據(jù)Id添加到objectIds里
objectIds.add()

//最后返回的數(shù)據(jù)結果為 List<String>  里面包含滿足條件的數(shù)據(jù)id
return objectIds

實際場景:報價單明細按產(chǎn)品分類限制可選擇產(chǎn)品范圍,不同業(yè)務類型的報價單明細選擇不同分類的產(chǎn)品數(shù)據(jù)。

根據(jù)以上實際場景的模板案例:

Groovy:

//獲取當前操作對象實例的字段值
String product = context.data.field_wPnHu__c
//根據(jù)條件查找數(shù)據(jù),根據(jù)需要的業(yè)務邏輯查詢出需要的數(shù)據(jù)
def ret = Fx.object.find("查找關聯(lián)字段所對應的對象ApiName",[["field_1tG48__c":product]],100,0)
//如果查詢錯誤直接return返回
if( ret[0] ){
Fx.log.info("查詢異常")
return []
}
//定義id List
List objectIds = []
QueryResult result = ret[1] as QueryResult
//遍歷查詢結果,將所有Id添加到objectIds中
result.dataList.each{ item ->
Map map = item as Map
objectIds.add(map._id)
}
//最后返回objectIds
return objectIds

Java:

import java.util.List;
import java.util.Map;

public class RangeList implements IQueryListAction {

/**
* 范圍規(guī)則函數(shù)(List)的運行方法
  */
  @Override
  public List execute(FunctionContext context, Map<String, Object> args) {
  //獲取當前操作對象實例的字段值
  String name = context.getData().get("name").toString();
  Fx.log.info(name);

    List<Object> list = Lists.newArrayList();
    list.add(Maps.of("name", QueryOperator.EQ(name)));

    //根據(jù)條件查找數(shù)據(jù),根據(jù)需要的業(yè)務邏輯查詢出需要的數(shù)據(jù)
    APIResult ret = Fx.object.find("AccountObj",list,100,0);
        QueryResult result = (QueryResult)ret.getData();
    List dataList = (List) result.getDataList();
    if(dataList==null) {
      Fx.log.info("查詢異常");
    }

    List idList = Lists.newArrayList();
//遍歷查詢結果,將所有Id添加到objectIds中
for (int i=0;i<dataList.size();i++) {
Map map =(Map<String, Object>)(dataList.get(i));
Fx.log.info(map.get("name").toString());
idList.add(map.get("_id").toString());
}
Fx.log.info(idList);


    //返回id
    return idList;
}


/**
* 函數(shù)的調試方法
* @param context 函數(shù)上下文
* @param args 函數(shù)參數(shù)
  */
  public void debug(FunctionContext context, Map<String, Object> args) {
  execute(context, args);
  }
  }

#三、返回類型為RangeRule

選擇和新建查找關聯(lián)字段時指定默認業(yè)務類型。

#3.1 函數(shù)編寫模板:

Groovy:

QueryTemplate template = QueryTemplate.AND(
["name":Operator.LIKE("測試")]
)
RangeRule rangeRule = RangeRule.builder()
.queryTemplate(template)
.recordType("record_cbxZ8__c") // 查找關聯(lián)新建時默認用該業(yè)務類型
.build()
return rangeRule

Java:

import java.util.List;
import java.util.Map;

public class RangeRuleCode implements IRangeRuleAction {

/**

* 范圍規(guī)則函數(shù)(rangeRule)函數(shù)的運行方法
  */
  @Override
  public RangeRule execute(FunctionContext context, Map<String, Object> args) {
  //構造QueryTemplate
  QueryTemplate template1 = QueryTemplate.AND(
  Maps.of("name", QueryOperator.EQ("測試")),
  Maps.of("field_g7Zeh__c", QueryOperator.EQ("測試單行文本"))
  );
  //構造RangeRule
  RangeRule rangeRule = RangeRule.builder()
  .queryTemplate(template1)
  .recordType("record_cbxZ8__c") // 查找關聯(lián)新建時默認用該業(yè)務類型
  .build();
  return rangeRule;
  }
  }

部分內(nèi)容來源于互聯(lián)網(wǎng),如有侵權,請聯(lián)系客服刪除處理。
在線咨詢 撥打電話