一、问题来源:
在Apex的开发文档中提到这么一句话,如下图。
大致意思是说用户不能在一次访问过程中同时操作系统表(如User表、GroupMenber表等)和自定义表,如果项目开发中遇到这种需求,文档中提到了两种解决办法:
第一、在页面上分别创建两个按钮,将对两种表的操作分成两个独立的过程进行。
第二、将其中一个对表的操作放在@future标识的函数中进行,即实现异步操作。
然而这两种方式都有它的弊端:
第一种方式,破坏了项目原有的设计,即增加按钮(增加用户的操作,降低了用户体验)。
第二种,由于@future标识的函数是异步执行的,按照开发文档的讲述,即该函数里的操作只有在系统有空闲资源时才执行,也就是说具体什么时候执行不得而知,不可控性太大。
二、自己的做法
经过分析,改进了文档里的第一种方法。采用后台自动产生两次访问的做法,将对两张表的操作独立开来。都是程序猿,咱们看图和代码即可,如下图
今天亲测该方式可以实现预期的效果,如有问题欢迎交流!