Fx.object:和对象操作有关的API
1、创建业务对象-create
普通新建:Fx.object.create(<String apiName>,<Map objectData>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectData | 对象数据即字段值 |
data返回值类型:Map
举例:
def(Boolean error,Map data,String errorMessage) = Fx.object.create("CustomObject__c",["name":"测试"])
注意:
预设对象禁止使用本API创建,请使用<对象创建同时新建从对象>API创建预设对象。
此函数不会触发新建对象业务逻辑(判断权限、触发审批流工作流等)。
对象创建同时新建从对象:Fx.object.create(<String apiName>,<Map<String,Map> objectData>,<Map details>,<boolean withBizLogic>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectData | 主对象数据即字段值 |
details | 从对象数据 |
withBizLogic | 是否执行业务逻辑,默认为true(该属性已经废除,无法生效。如果需要执行业务逻辑,请使用ActionAttribute参数) |
data返回值类型:Map
举例:
def(Boolean error,Map data,String errorMessage) = Fx.object.create("object_2fJ1o__c",["name":"主从同时新建主1"],["object_Ssm46__c":[["name":"张三1"]]],true)
注意:
主对象创建同时新建从对象,从对象可以传空值。
此函数不会触发新建对象业务逻辑(withBizLogic参数已废弃无效)。
对象创建同时新建从对象(ActionAttribute):Fx.object.create(<String apiName>,<Map<String,Map> objectData>,<Map details>,<ActionAttribute attribute>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectData | 主对象数据即字段值 |
details | 从对象数据 |
attribute | triggerApprovalFlow:是否触发审批流 triggerWorkflow:是否触发工作流 skipFunctionAction:是否跳过前后动作函数,这个参数设置为true,前后动作的函数都会跳过 specifyCreatedBy:默认的创建人是系统,通过参数指定在objectData中设置指定的key:<created_by:List<String>>传入人员的id可以设置创建人 specifyTime:指定创建时间,默认的创建时间是当前时间,通过指定参数可以在objectData中设置指定的key:create_time,可以设置创建时间,时间的格式是毫秒时间戳 使用方法详见下方示例 |
data返回值类型:Map
举例:
ActionAttribute attribute = ActionAttribute.build { triggerApprovalFlow = false triggerWorkflow = false skipFunctionAction = true specifyCreatedBy = true specifyTime = true } def ret = Fx.object.create("AccountObj",["name":"1234",created_by:["1000"],create_time:1600414877000],null,attribute) Fx.log.info(ret)
注意:
主对象创建同时新建从对象,从对象可以传空值。
2、批量新建-batchCreate
批量新建:
Fx.object.batchCreate(<String apiName>,<List<Map> objectData>)
Fx.object.batchCreate(<String apiName>,<List<Map> objectData>,<boolean triggerWorkflow>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectData | 对象数据即字段值 |
triggerWorkflow | 是否触发工作流,默认为false |
data返回值类型:List
举例:
def(Boolean error,List data,String errorMessage) = Fx.object.batchCreate("AccountObj",[["name":"客户1"],["name":"客户2"]],true)
注意:
预设对象不推荐使用这个API批量创建。
batch类函数不会不会触发某些对象业务逻辑(判断权限、触发审批流等),是否触发工作流由参数控制。
3、更新业务对象-update
定义:
Fx.object.update(<String apiName>,<String objectDataId>,<Map objectData>)
Fx.object.update(<String apiName>,<String objectDataId>,<Map objectData>, <boolean triggerWorkflow>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectDataId | 对象实例的ID |
objectData | 对象数据即字段值 |
triggerWorkflow | 是否触发工作流,默认为true |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.update("AccountObj","id123456",["name":"纷享销客"],false)
注意:此函数不会触发部分更新对象业务逻辑(判断权限、触发审批流等),是否触发工作流由参数控制。
4、批量更新业务对象-batchUpdate
定义:Fx.object.batchUpdate(<String apiName>,<Map<String,Map> objectData>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectData | 对象数据即字段值(key值为对象ID) |
data返回值类型:List
举例:
def (Boolean error,List data,String errorMessage) = object.batchUpdate("AccountObj",["e6a338ae8a944cdfb2bae737db1aa12f":["name":"客户1"],"4cd5a9f902af4f66a34df35a53630237":["name":"客户2"]])
注:batch类函数不会不会触发对象业务逻辑(判断权限、触发审批流工作流等)。
5、按业务对象Id查询业务对象数据象-findById
定义:Fx.object.findById(<String apiName>,<String objectDataId>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectDataId | 对象实例的ID |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.findById("AccountObj","e6a338ae8a944cdfb2bae737db1aa12f")
6、批量按业务对象Id查询业务对象数据-findByIds
定义:Fx.object.findByIds(<String apiName>,<List objectDataIds>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectDataIds | 对象实例的ID的List |
data返回值类型:List
举例:
def (Boolean error,List data,String errorMessage) = Fx.object.findByIds("AccountObj",["e6a338ae8a944cdfb2bae737db1aa12f","4cd5a9f902af4f66a34df35a53630237"])
7、按查询条件查询业务对象-find
普通查询:Fx.object.find(<String apiName>,<List<Map> criteria>,<BigDecimal limit>,<BigDecimal skip>) 参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
criteria | 查询条件 |
limit | 限制查询条数,最大100条,如超过返回100条,使用skip参数分批查询 |
skip | 跳过多少数据 |
data返回值类型:QueryResult
举例:
def (Boolean error,QueryResult data,String errorMessage) = Fx.object.find("AccountObj",[["name":"纷享销客"],["create_time": Operator.GT(1602325440000)]],10,0);
查询并排序:Fx.object.find(<String apiName>,<List<Map> criteria>,<Map orderBy>,<BigDecimal limit>,<BigDecimal skip>) 参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
criteria | 查询条件 |
limit | 限制查询条数,最大100条,如超过返回100条,使用skip参数分批查询 |
orderBy | 排序规则 key:按哪个字段排序,字段名称 ;value:1 - 升序,-1 - 降序 |
skip | 跳过多少数据 |
data返回值类型:QueryResult
举例:
def (Boolean error,QueryResult data,String errorMessage) = Fx.object.find("AccountObj",[["name":"分享逍客"],["create_time": Operator.GT(1602325440000)]],["name":1],10,0);
使用用户身份查询数据:Fx.object.find(<String apiName>,<List<Map> criteria>,<Map orderBy>,<BigDecimal limit>,<BigDecimal skip>,<Boolean useCurrentIdentity>) 参数说明:
参数 |说明 -|- apiName | 对象的api名称 criteria | 查询条件 limit | 限制查询条数,最大100条,如超过返回100条,使用skip参数分批查询 orderBy | 排序规则 key:按哪个字段排序,字段名称 ;value:1 - 升序,-1 - 降序 skip | 跳过多少数据 useCurrentIdentity | 是否使用用户身份。注意流程后动作执行的函数,用户的身份依旧是系统。其他函数使用场景,例如按钮点击,可以获取用户的身份。
data返回值类型:QueryResult
举例:
def (Boolean error,QueryResult data,String errorMessage) = Fx.object.find("AccountObj",[["name":"分享逍客"],["create_time": Operator.GT(1602325440000)]],["name":1],10,0,true);
Fx.object.find方法中的条件语句(使用Operator.调用,如 Operator.GT(1602325440000))如下:
说明 | 代码格式 |
---|---|
判断相等 | EQ(<Object str>) 文本查询条件区分大小写 |
判断不相等 | NE(<Object str>) |
判断大于 | GT(<Object str>) |
判断小于 | LT(<Object str>) |
判断大于等于 | GTE(<Object str>) |
判断小于等于 | LTE(<Object str>) |
判断是否包含 | LIKE(<String str>) 文本查询条件不区分大小写 |
判断不包含 | NLIKE(<String str>) |
判断属于其中一个 | IN(<List str>) |
判断不属于其中 | NIN(<List list>) |
判断字段是否有值 | EXISTS(<boolean ex>) |
注意
条件中的日期格式使用毫秒时间戳
8、作废业务对象-remove
定义:Fx.object.remove(<String apiName>,<String objectDataId>)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的api名称 |
objectDataId | 对象实例的ID |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.remove("AccountObj","ed47841898054749a2ec9be9e6e5d728")
9、更换负责人-changeOwner
定义:Fx.object.changeOwner(<String objectAPIName>,<String ObjectDataId>,<String OwnerId>)
参数说明:
参数 | 说明 |
---|---|
objectAPIName | 对象的api名称 |
objectDataId | 对象实例的ID |
owner | 要变更的负责人的用户ID |
无返回值
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.changeOwner("AccountObj","ed47841898054749a2ec9be9e6e5d728","1001")
定义(ActionAttribute参数):Fx.object.changeOwner(<String objectAPIName>,<String objectDataId>,<String ownerId>,<ActionAttribute attribute>)
参数说明:
参数 | 说明 |
---|---|
objectAPIName | 对象的api名称 |
objectDataId | 对象实例的ID |
ownerId | 要变更的负责人的用户ID |
attribute | 控制触发行为 |
ActionAttribute attribute = ActionAttribute.build{ //跳过审批流 triggerApprovalFlow = false //跳过工作流 triggerWorkflow = false //跳过前后动作函数 skipFunctionAction = true } Fx.object.changeOwner("APIName","objectId","ownerId",attribute)
10、添加团队成员-addTeamMember
定义:Fx.object.addTeamMember(<String ObjectAPIName>,<String ObjectDataId>,<List UserIdList>,<Integer Role>,<Integer Permission>)
参数说明:
参数 | 说明 |
---|---|
ObjectAPIName | 对象的api名称 |
ObjectDataId | 对象实例的ID |
UserIdList | 添加的团队成员的用户ID的List |
Role | 添加的团队成员的角色:1-负责人,2-联合跟进人,3-售后服务人员,4-普通成员 |
Permission | 添加的团队成员的权限:1-只读,2-读写 |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.addTeamMember("AccountObj","83cf73d957924284a96e9c44ebb333ec",["1001"],4,1)
注:不能添加负责人;如果添加的成员包括负责人,则不会修改负责人数据;如果添加的成员在原系统中有重复的则更新该成员
11、删除团队成员-deleteTeamMember
定义:Fx.object.deleteTeamMember(<String ObjectAPIName>,<String ObjectDataId>,<List UserIdList>)
参数说明:
参数 | 说明 |
---|---|
ObjectAPIName | 对象的api名称 |
ObjectDataId | 对象实例的ID |
UserIdList | 删除的团队成员的用户ID的List |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.deleteTeamMember("AccountObj","83cf73d957924284a96e9c44ebb333ec",["1001"])
12、编辑团队成员-editTeamMember
定义:Fx.object.editTeamMember(<String ObjectAPIName>,<String ObjectDataId>,<List<Map> TeamMemberList>)
参数说明:
参数 | 说明 |
---|---|
ObjectAPIName | 对象的api名称 |
ObjectDataId | 对象实例的ID |
TeamMemberList | 要编辑团队成员的信息的List(key值包括:userID:用户ID;role:用户角色;permisson:用户权限,具体参考7) |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.editTeamMember("AccountObj","36fd270a986842529445bf3d252cca9b",[["userId":"1058","role":4,"permission":1],["userId":"1057","role":3,"permission":2]])
13、获取团队成员-getTeamMember
定义:Fx.object.getTeamMember(<String objectAPIName>,<String objectId>)
参数说明:
参数 | 说明 |
---|---|
objectAPIName | 对象的api名称 |
objectId | 对象实例的ID |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.getTeamMember("AccountObj","83cf73d957924284a96e9c44ebb333ec")
14、添加外部团队成员-addOutTeamMember
定义:Fx.object.addOutTeamMember(String apiName,String objectId,int permission,List<Map> employee)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的apiname |
objectId | 对象实例的ID |
permission | 外部团队成员权限 1:只读 2:读写 |
employee | 员工信息,其中Map包括【 userId:员工Id ; outTenantId:外部企业id】 |
data返回值类型:String
举例:
def (Boolean error,String data,String errorMessage) = Fx.object.addOutTeamMember('AccountObj',id,1,[['userId':'1001','outTenantId':'590057']])
15、获取单选/多选业务名称/选项名称-getOptionName
定义:Fx.object.getOptionName(<String objectAPIName>,<String filedAPIName>,<String value>)
参数说明:
参数 | 说明 |
---|---|
objectAPIName | 对象的api名称 |
filedAPIName | 字段的api名称 |
value | 单选/多选的值 |
data返回值类型:Map
举例:
def (Boolean error,String data,String errorMessage) = Fx.object.getOptionName("AccountObj","lock_status","0")
16、根据映射规则创建数据-copyByRule
根据映射规则新建(不能添加额外的字段):Fx.object.copyByRule(<String sourceApiName>,<String sourceId>,<String ruleApiName>)
参数说明:
参数 | 说明 |
---|---|
sourceApiName | 被映射的对象Api Name |
sourceId | 被映射的对象实例的ID |
ruleApiName | 映射规则API Name |
data返回值类型:Map
举例:
def (Boolean error,Map data,String errorMessage) = Fx.object.copyByRule('object_ejyW2__c','5d308dc0b5a2bf0001b0bfc2','map_btp50__c')
根据映射规则直新建(同时新建从对象):Fx.object.copyByRule(<String sourceApiName>,<String sourceId>,<String ruleApiName>,<Map plus>, <Map detailPlus>)
参数说明:
参数 | 说明 |
---|---|
sourceApiName | 被映射的对象Api Name |
sourceId | 被映射的对象实例的ID |
ruleApiName | 映射规则API Name |
plus | 主对象数据参数 |
detailPlus | 从对象数据参数 |
data返回值类型:Map
举例:
Map plus = ["field_ZszsOc": "18800154471"]; Map detailValues1 = ["field_z5AI0c": "data1填充内容"]; Map detailValues2 = ["field_z5AI0c": "data2填充内容"]; List detailFillValueList= []; detailFillValueList.add( detailValues1); detailFillValueList.add( detailValues2); Map detailPlus = ["object_6hN1ic": detailFillValueList] def (Boolean error,Map data,String errorMessage) = Fx.object.copyByRule('object_ob2G0__c','5cedf0137cfed9b33b75ddaa','map_797K4__c',plus,detailPlus)
17、数据锁定/解锁-lock/unlock
数据锁定:Fx.object.lock(String apiName , String objectId , boolean cascadeDetail)
数据解锁:Fx.object.unlock(String apiName , String objectId , boolean cascadeDetail)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的apiname |
objectId | 对象实例id |
cascadeDetail | 是否锁定/解锁从对象 |
data返回值类型:null
举例:
def (Boolean error,data,String errorMessage) =Fx.object.lock('AccountObj' , 'e6a338ae8a944cdfb2bae737db1aa12f' , true)
18、聚合计算-aggregate
定义:Fx.object.aggregate(String apiName,Aggregate type,int decimalScale,List criteria)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的apiname |
Aggregate | 计算类型 |
decimalScale | 小数位数 |
criteria | 查询条件(和find查询条件使用一样) |
其中计算类型:
Aggregate.SUM(String fieldApiName) 求和
Aggregate.COUNT() 计算数量
Aggregate.MAX(String fieldApiName) 最大值
Aggregate.MIN(String fieldApiName) 最小值
Aggregate.AVG(String fieldApiName) 平均值
data返回值类型:String
举例:
def (Boolean error,String data,String errorMessage) =Fx.object.aggregate("object_rqa45__c",Aggregate.AVG("field_VE1by__c"),2,[["name":Operator.LIKE("name")])
19、查询包括作废数据的API - findIncludeInvalided
定义:Fx.object.findIncludeInvalided(String apiName, List criteria, int limit, int skip); Fx.object.findIncludeInvalided(String apiName,List criteria,Map orderBy ,int limit ,int skip); 传参、返回值和调用方法参考find函数。
20、单多选/业务类型查询 - getOptionInfo
定义:Fx.object.getOptionInfo(String apiName,String fieldAPIName);
参数说明:
参数 | 说明 |
---|---|
apiName | 对象的apiname |
fieldAPIName | 单多选/业务类型的API名称 |
data返回值类型:map(label -> value , value -> label 的双向映射)
举例:
def(boolean error,Map result,String errorMessage) = Fx.object.getOptionInfo("object_i66LR__c","record_type")
21、批量锁定/解锁- batchLock/batchUnlock
锁定:Fx.object.batchLock(String apiName,List objectIds,boolean cascadeDetail);
解锁:Fx.object.batchUnlock(String apiName,List objectIds,boolean cascadeDetail);
参数说明:
参数 | 说明 |
---|---|
apiName | 对象APIName |
objectIds | 数据id |
cascadeDetail | 是否递归锁定从对象数据 |
data返回值类型:无
举例:
def (Boolean error,data,String errorMessage) =Fx.object.batchLock('AccountObj' , ["e6a338ae8a944cdfb2bae737db1aa12f"] , true) def (Boolean error,data,String errorMessage) =Fx.object.batchUnlock('AccountObj' , ["e6a338ae8a944cdfb2bae737db1aa12f"] , true)
22、批量作废- bulkRemove
定义
Fx.object.bulkRemove(String apiName,List<String> objectIds)
Fx.object.bulkRemove(String apiName,List<String> objectIds, ActionAttribute attribute)
参数说明:
参数 | 说明 |
---|---|
apiName | 对象APIName |
objectIds | 数据id |
ActionAttribute | triggerApprovalFlow:是否触发审批流(这个参数true才有效,因为批量作废是异步的,不管有没有配置审批流都不会触发审批流) triggerWorkflow:是否触发工作流 skipFunctionAction:是否跳过前后动作函数,这个参数设置为true,前后动作的函数都会跳过 使用方法详见下方示例 |
data返回值类型:Map,包含objectDataList,里面是删除的对象数据
举例:
ActionAttribute attribute = ActionAttribute.build{ triggerApprovalFlow = false triggerWorkflow = false skipFunctionAction = true } def ret = Fx.object.bulkRemove("object_oMTq9__c",objectIds,attribute) Fx.log.info(ret)object.batchUnlock('AccountObj' , ["e6a338ae8a944cdfb2bae737db1aa12f"] , true)
23、批量更换负责人-batchChangeOwner
定义:Fx.object.batchChangeOwner(<String objectAPIName>,<List<Map> datas>,<ActionAttribute attribute>)
参数说明:
参数 | 说明 |
---|---|
objectAPIName | 对象的api名称 |
datas | 要变更的负责人的数据ID和用户ID |
attribute | 控制触发行为 |
无返回值
举例:
``` Map changeData1 = [ "objectId":"5f86b47b1bdac00001f2c300", "ownerId":["-10000"] ] Map changeData2 = [ "objectId":"5f86b4a71bdac00001f2d232", "ownerId":["-10000"] ] List arg = [changeData1,changeData2] def ret = Fx.object.batchChangeOwner("object_i66LR__c",arg, attribute) Fx.log.info(ret) ```