专栏首页JAVA人生/面试技巧纷享开发注意事项:

纷享开发注意事项:

1.所有写好的代码不要运行。

原因:例如更新删除等操作会直接同步到数据库。所以不要进行测试。可以打log测试

2.报价单一般是按钮类型。

3.所有的_id都为唯一标记,但是人员唯一标记为userid;

例如客户有唯一 标识_id,客户下可以根据_id和销售订单对应的name根据find查找到 4.UIEvent一般需要在之前获取当前信息,set("field_Kxuan__c":zc)里面的:不要写成了中文的 //获取主对象字段 String zc=context.data.field_XuzFy__c as String log.info(zc) UIEvent event=UIEvent.build(context){ //获取从对象的字段并赋值 editDetail "object_7l627__c" set("field_Kxuan__c":zc) } return event

5.自定义字段区别 单行文本:适用于填写简短的文字,如姓名 多行文本:适用于填写大段的的文字, 单选/多选:适用于几个选项里选一个/多个 数字:适用于填写文字,如年龄、订购数量 金额:带千分位 日期:yyyy-MM-dd 时间: HH:mm 日期时间:yyyy-MM-dd HH:mm 手机:用于输入手机密码 图片:适用于上传图片 附件:上传文件 邮箱:用于输入邮箱地址 查找关联:用于将当前对象与其他对象建立关联关系 主从关系:支持定义一种特殊的主从关联关系,从对象的数据授权受主对象 6.动态关联的字段都是id关联。不必对应相关的显示的中文类型(重要) 例如计划任务: //符合条件的数据ids ,因为可能不止一个,需要我们进行遍历,这块用ids遍历比文档好,因为文档有数据条数限制 List ids = context.objectIds as List ids.each{item-> //获取当前id String id=item as String //根据当前对象id,过滤查找所有对象的上级客户parent_account_id,这里上级客户是动态关联对象 def (Boolean error,QueryResult data,String errorMessage) = Fx.object.find("AccountObj",[["parent_account_id":id]],100,0); if( error ){ log.info("查询上级客户出现错误:"+errorMessage) } log.info(data)//QueryResult(size=0, total=0, dataList=[]) List list=data.dataList as List log.info(list) //判断如果当前不为空有下级客户 if(list!=null&&list.size()>0){ log.info("当前客户有下级客户") } if(list.size()==0){ log.info("作废当前客户"+id) def (Boolean error1,Map data1,String errorMessage1) = Fx.object.remove("AccountObj",id) if( error1 ){ log.info("作废当前客户出现错误!"+errorMessage1) } } } 7.锁定状态不可编译不可作废 8.考虑字段为空的情景

9.对于CRM配置的对象管理-->自定义对象管理等,可以在定制开发平台--> 对象及字段API 里面看到

10.主对象有个字段是查找关联字段,我们根据查找关联字段然后使用findById或者find方法对从对象查找,那么对应的字段应该为 _id 。查找关联字段主对象前端显示的字段一般对应的是从对象左上角显示的内容。但是还是通过 _id 关联

11.find函数:需要对函数的返回结果进行判空处理

12.null as long强制转换之前进行判空处理

13.聚和函数or find 函数:null的条件一般会被忽略

14.前验证函数使用时,页面上不可见字段一般都不要用。(会出现空指的情况)所谓的页面不可见字段就是被后端在前端显示的时候隐藏了。

管理-->对象管理-->自定义对象-->点击某个对象-->布局-->点击某个字段-->进到布局配置界面后点某个字段,可以看到右上一个小眼睛。点击隐藏即可

15.CRM--客户--左上角跟进状态--创建销售记录

16.绑定的流程后动作等需要审批能执行自定义函数

17.我们在对象管理的预设对象和自定义对象这里可以查看每一个字段的类型,因为在对象字段API里面有时查找不到对应的字段类型

18.前验证需要设置命名空间为按钮,我们设置返回值为Map

Boolean reBoolean = false
Map reMap = ["error": reBoolean,"errorMessage": ""]
reBoolean = true;
    reMap.put("error",  reBoolean)
    reMap.put("errorMessage",  "查询客户失败,请重试或联系管理员!")
    return reMap

19.更新负责人需要用Fx.object.changeOwner(<String ObjectAPIName>,<String ObjectDataId>,<String OwnerId>)

20.根据英文标识获取中文的函数

def (Boolean error,String data,String errorMessage) = Fx.object.getOptionName("PartnerObj","field_k48sh__c","0wi184Mr0") if( error ){ log.info(errorMessage) } log.info(data)

21.查找关联字段和引用字段

查找关联字段可以使用查找关联到具体对象,但是不会刷新

引用字段存储的也是另一个对象的_id,并且新建后可以自动刷新这个字段。但是他底层会走计算服务,也即是我们更改了关联的

对象的值之后需要把他能带过来吗还是需要带过来吗?

22、如果使用按钮后动作,这个后动作必须执行完审批流程后才执行这个动作,会有问题人员List多选时案例

23、审批流通过后先执行工作流

24.UI事件更新可以阻断当前页面从对象的新建,不能阻断对主对象更改

UI校验事件弹出框不能阻断,红字提醒可以阻断,点击保存无效,弹出框不能阻断

25 Map map={"XXX" : "!!!"}

String XXX=map[XXX]//获取XXX的key的value值,XXX不要加双引号

26.有时候我们获取的json是字符串,只是看起来像Map

json转Map字符串-parse

  • 定义:Fx.json.parse(<String jsonstr>)
  • 返回值类型:Map
  • 举例: Fx.json.parse("{\"a\":1,\"b\":2}") //返回:{"a":1,"b":2} 例如: 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;

27.create可以创建多个从对象,格式为:

 def(Boolean error,Map data,String errorMessage) = 
Fx.object.create("object_2fJ1o__c",["name":"主从同时新建主1"],
["object_Ssm46__c":[
["name":"张三1"],
["name":"张三2"]

] ],true)

28.自定义对象:新建,编译,复制没有按钮后动作

29.新建,编译最新版本走的是UI按钮,一般用来和ui组件,外部链接开发

新建保存,编译保存走的是内部业务逻辑。

30.主从对象,从对象不能绑定UI事件,我们可以绑定主对象里面的对从对象修改。

31.计算字段走的计算服务,不能直接更改update

32.客户退回公海,线索退回线索池.都需要我们进行在公海管理里面找到,然后在里面配置并写函数

33.企业ID在CRM客户详情里,可能在代理通客户对象

34.客户的归属部门为负责人的一级部门

35.[271] as List 不要这样搞,要271 as String 之后再这样list.add(271 as String)

36.获取map里面的值 直接String XXX=map["key"] as String

37.create创建的数据为key-value值 。这里的<data:"map">所以我们要取的话必须取到Map map = map1.data as Map

38.按钮后动作先执行审批流才会执行他,工作流也是

39.Map map = ["admin":123] map.put("admin",123) Integer sum=0 log.info(map) map.each { String key,value -> log.info(value) sum=sum+value log.info(sum) }

先给map赋值才能计算,否则报错

40.context.outTenantId 获取外部企业ID(只有按钮函数适用)只有下游到上游才能获得好像

41.业务流测试需要重新走流程,比如新加了一个逻辑,之前已有数据已经走逻辑了。测试是不生效的

42.find查找的时候不能以日期为条件吗NIN,不可以,时间戳,看似是日期字段,其实是时间戳到毫秒级,不能nin

43.批量update不允许预设对象,只允许自定义对象

44.降序的时候是为null的先查到,然后才是不为空的降序

45.管理----》回收站可以看到作废的数据。但是直接在主对象编辑的时候删除从对象点击保存后不会到回收站

46. Fx.object.update("AccountObj","id123456",["name":"纷享销客"],false);一定要填写true

47.按钮不能够在循环里面返回Map,可以设置一个flag

48.给list赋值不能为null,应该为[]

49.预设对象【库存】不允许通过函数更改

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 开发注意事项

      能通过参数表或者配置文件实现的尽可能不要去写Hard Code,可减少后面代码的修改。

    _一级菜鸟
  • JavaScript开发注意事项

    DOM加载之前执行: > (function() { > alert(“DOM还没加载哦!”); > ...

    城市中的游牧民族
  • Javaweb开发注意事项

    静谧星空TEL
  • Spring Cloud开发注意事项

    如果provider中需要引入其他feign client的接口,需在 provider的启动类添加注解 @EnableFeignClients(basePac...

    lyb-geek
  • 团队开发注意事项

    因为是多人同时开发一个项目,每个人有自己的模块,但是对于一些公共文件的修改很有可能出现冲突。

    小闫同学啊
  • Flutter开发-发布时注意事项

    Flutter 应用在 Android 端上启动时会有一段很明显的白屏现象,白屏的时长由设备的性能决定,设备性能越差,白屏时间越长. 然后这个白屏是可以控制的,...

    剑行者
  • 小程序开发注意事项

    薛定喵君
  • 【iOS开发】发布 Widget App 注意事项

    在被 App Store Review 拒绝了一次之后,我的一款 Today Widget App 上线了,把过程中遇到的坑分享出来。

    KyXu
  • electron开发客户端注意事项

    electron分主进程和渲染进程,渲染进程又分主窗口的渲染进程和子窗口的渲染进程

    liulun
  • 【iOS 开发】集成 Weex 注意事项

    撰写本文时,Weex 还没有完全开源,这是官方的文档中心,这是 Weex 团队放在 Github 上的一些文章,你可以上官网申请访问 Weex 的 Github...

    KyXu
  • 电商系统开发注意事项

    对于开发电商系统平台的技术有PHP、Java、JSP、ASP.NET、等语言,说句老实话,JSP、ASO.NET、属于比较老的技术语言了,慢慢地被PHP、Jav...

    Laike.Vic
  • 纷享集成API函数注意点

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

    阮键
  • go写并发注意事项

    写go语言并发需要注意的几点: 1. golang 1.2版本 goroutine的runtime.GOMAXPROCS 如果没有被定义,默认是1,从1.5之后...

    李海彬
  • go写并发注意事项

    写go语言并发需要注意的几点: 1. golang 1.2版本 goroutine的runtime.GOMAXPROCS 如果没有被定义,默认是1,从1.5之后...

    李海彬
  • 开发板EVB_MX+入门上手注意事项

    首先肯定是感谢腾讯云所举办的这次IoT应用创新大赛;很荣幸的给了我这个入围的机会,要不也不能有这篇文章。好了还是直接奔主题,这届大赛...

    谭广健
  • 【Mybatis】-- Mapper动态代理开发注意事项

    Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Da...

    梅花
  • Vue.js注意事项

    1.父组件给子组件传递类名的时候,IE浏览器的object元素外面不能有其它元素作为其父元素,否则传递的css类名会绑定到父元素上面。

    城市中的游牧民族
  • TypeScript 注意事项

    情况二: 如果后台返回的对象为{name: ‘1’}或者{id: ‘1’, name: ‘1’}是可以的,因为id是可选项。 如果为以下数据结构,则{nam...

    城市中的游牧民族
  • JAVA注意事项

    1、关于add(int index, E element)方法,如果add(1,"test"),并不会替换掉1的元素,只会把元素在1的原始往下压。

    信铁寒胜

扫码关注云+社区

领取腾讯云代金券