纷享集成API函数注意点

https://www.fxiaoke.com/mob/guide/crmdoc/src/8-4-2object.html
1.context

获取绑定对象的明细数据

返回值类型:Map

context.details

但是明细不止一条,我们应该如何获得所有的明细条数后再进行每个条数遍历

Map map = context.details as Map //这里获取明细为Map类型且为 {XXX=[数据1,数据2,数据3]}
List list = map.QuoteLinesObj as List //这里的map.XXX对应的就是Map里面的key的值

list.each{it->

Map map1 = it as Map

String XXXX=map1.XXXXX as String

}

2.Fx.object

Fx.object:和对象操作有关的API

1.1、创建业务对象-create

def(Boolean error,Map data,String errorMessage) = Fx.object.create("AccountObj",["name":"客户"])
注意事项:预设对象不推荐使用这个API创建,可以使用下面一个创建的API;
此函数不会触发新建对象业务逻辑(判断权限、触发审批流工作流等)。
Map create_map=[:]
create_map = [
"字段一":XXX1,//别忘了逗号
"字段二":XXX2,//别忘了逗号
]
def(Boolean error,Map data,String errorMessage) = Fx.object.create("AccountObj",create_map)
1.2.对象创建同时新建从对象:Fx.object.create(<String apiName>,<Map<String,Map> objectData>,<Map details>,
<boolean withBizLogic>)
 def(Boolean error,Map data,String errorMessage) = Fx.object.create("object_2fJ1o__c",
["name":"主从同时新建主1"],["object_Ssm46__c":[["name":"张三1"]]],true)
这里面的<String apiName>是主对象的APIname <Map<String,Map> objectData>是主对象的字段和值
<Map details>为[从对象的APIName :[["字段1":"XXX1"],["字段2":"XXX2"]]]
从对象可以传空值也就是没有创建从对象直接传[:]
注意事项:创建的对象必填字段我梦在create的时候可以赋值为null
def(Boolean error,Map data,String errorMessage) = Fx.object.create("object_2fJ1o__c",
["name":"主从同时新建主1","XXX":null],null,true)


1.3、更新业务对象-update

def (Boolean error,Map data,String errorMessage) =  Fx.object.update("AccountObj","id123456",
["name":"纷享销客"],true)
//这里的
["name":"纷享销客"]也可以使用create_map格式。 true可写可不写,不写默认为触发工作流

1.6、批量按业务对象Id查询业务对象数据-findByIds

Fx.object.findByIds(<String apiName>,<List objectDataIds>)
这里面注意点
def (Boolean error,List data,String errorMessage) =  
Fx.object.findByIds("AccountObj",["e6a338ae8a944cdfb2bae737db1aa12f",
"4cd5a9f902af4f66a34df35a53630237"])
注意:返回的是list类型,而且虽然可以查到所有值,但只能最多显示一百条

1.7、按查询条件查询业务对象-find

  • 普通查询:Fx.object.find(<String apiName>,<List<Map> criteria>,<BigDecimal limit>,<BigDecimal skip>) 
  • def (Boolean error,QueryResult data,String errorMessage) =  
  • Fx.object.find("AccountObj",[["name":"纷享销客"],["create_time": Operator.GT(1602325440000)]],
  • 10,0);
    注意:返回的
    QueryResult为[size=X,total=X,dataList=[]]
    这里面的total可以大于100,表示所有的,但是返回最多只显示100条数据,所以需要我们做分页
  • 分页链接   分页
    def(Boolean targetFindError, QueryResult targetFindDatas, String targetFindErrorMessage) = Fx.object.find("LeadsObj", [["field_d3dMC__c": companyCode]], 100, 0);
      if( targetFindError ){
        reBoolean = true;
        reMap.put("error",  reBoolean);
        reMap.put("errorMessage",  "查询统一社会信用代码相同的线索的数量失败!");
        return reMap;
      }
      Integer totalNum = targetFindDatas.total as Integer
      log.info("总数量为:"+totalNum)
      //计算分页页数
      Integer page = totalNum/100 as Integer
      Range range = Ranges.of(0,page)
    
    
1.7.2、
  • 查询并排序:Fx.object.find(<String apiName>,<List<Map> criteria>,<Map orderBy>,
    <BigDecimal limit>,<BigDecimal skip>) 参数说明:
def (Boolean error,QueryResult data,String errorMessage) =  Fx.object.find("AccountObj",
[["name":"分享逍客"],["create_time": Operator.GT(1602325440000)]],["name":1],10,0);
注意:
["create_time": Operator.GT(1602325440000)]并不仅仅限于时间戳,其他的字段也可以进行判空等操作

1.8.1、作废业务对象(批量作废没写,在这里补充)
ActionAttribute attribute = ActionAttribute.build{
//跳过审批流(这个参数为true,批量作废是异步的 不管有没有配置审批流)
triggerApprovalFlow = false
//跳过工作流
triggerWorkflow = false
//跳过前后动作函数
skipFunctionAction = true
}

List objectIds = [
"5f461674d1838e0001a43937",
"5f461673d1838e0001a4386d"
]

def ret = Fx.object.bulkRemove("object_oMTq9__c",objectIds,attribute)
if( ret[0] ){
Fx.log.info("批量作废异常原因为:" + ret[2])
}

1.9、更换负责人-changeOwner

  • 定义:Fx.object.changeOwner(<String ObjectAPIName>,<String ObjectDataId>,<String OwnerId>)
def (Boolean error,Map data,String errorMessage) = 
Fx.object.changeOwner("AccountObj","ed47841898054749a2ec9be9e6e5d728","1001")
注意:这里面的更换负责人字段必须使用changeOwner;但是在创建create的时候可以直接赋值
注意2:"1011"这是字符串,所以有必要把[1011]通过String user_id=list.get(0) as String

1.15、获取单选/多选业务名称/选项名称-getOptionName

Fx.object.getOptionName(<String objectAPIName>,<String filedAPIName>,<String value>)

def (Boolean error,String data,String errorMessage) = Fx.object.getOptionName("AccountObj",
"lock_status","0")//对象API 字段API 对应的string
注意:这里的意思是通过某个多选/单选字段对应的字段名,其下面有好多中文对应的字符串,我们可以获得此字符串
对应的中文名字

Fx.org

      Fx.org:和系统用户操作有关的API

1、按用户ID查询用户信息-findUserById

     定义:Fx.org.findUserById(String userId)

     data返回值类型:Map

     例:

def(Boolean error,Map data,String errorMessage) = Fx.org.findUserById("1001")

2、按用户Id列表查询若干用户信息-findByUserIds

     定义:Fx.org.findByUserIds(List userIdList)

     data返回值类型:Map

     例:

def (Boolean error,Map data,String errorMessage) = Fx.org.findByUserIds(["1001","1002"])
 
Fx.json.parse(s)
log.info(data.content);
log.info("!!!!")
Object mReturnData = data.content as Object;
log.info(mReturnData.class)
String s = mReturnData as String
def res = Fx.json.parse(s)
log.info("@@@@@")
log.info(res)
Map m = res as Map
log.info(m.code)
String sCodeData = m["code"] as String;
String sMessage = m["message"] as String;



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/almm/p/14548376.html