SalesForce中共享地定义对象发出的消息

在sf项目,需要一种应用,即当车有故障的时候,我们希望能发出消息出来,让所有的相关人员通过chatter都能看到这个信息,比如A车有故障,然后司机和朋友等都可以看到这条消息。

事项这种应用有两种方式:一种是车自己发出该消息;另外一种是该车所属的人(如司机发出);如何其他相关人通过follow的方式共享这些消息。

对于人,比如司机发出的消息比较容易,就当车有故障的时候,通过查找该车对应的所有人的chatter账户,然后发出一条消息就可以。这种也比较容易实现,但不是很好,比如如果该车有很多司机,那么用谁的账户发出去呢?或者该司机有很多辆车,我们怎么知道是那辆车发出来的呢?当然这个可以在消息里明确指出车名,但总觉得不是很好。

第二种方式:以车的名义发出
这样有两个实现方式:一种是给该车注册一个chatter账户,然后通过该chatter发出,另外一种是通过对象发出。即车自己发出,而不是通过chatter账户;

对于一种方式,会有个不好的,就是那必须要为每部车都申请一个chatter账户,加入有几十上百万辆车,那是不可了理解的,还有就是chatter账户是需要收费(超过一定的数额后)。所以这种方式显然不是很好。

所以就有了第二种方案,通过车对象自己发出来,因为在SF里,我们可以自己定义一个custom object来表示车,这样一个车的实例就是一个对象的实例,也就是一条记录。这样以车的名义发出去,就好理解多了。A车发出的,就是A车的,B车发出的就是B车的,别人一看就很明白。

但是这个在SF里有个限制,默认情况下,只有该custom object对象的所有者能看到这些车对象发出的消息,而其他用户是无法看到的。比如这些custom对象都是在张三账户下创建的,那么就只有张三一个人能看见了,哪怕李四follow了张三也不行。
如下:Tester 用户 follow了 advisor(Operator)用户,而car Object是在advisor账户下创建的。
Advisor可以看到车(Audi A8)发出的消息


Tester已经follow了Advisor,可以看到Advisor发出的消息但看不到车(Audi A8)发出的消息


要想实现他们能互相看到,真没处理呢:
1、首先,要想看到自定义对象发出的消息,其他用户(如tester)必须要购买salesforce的license(而且必须 salesforce的license)。
2、然后要授权该用户访问自定义对象
3、然后要follow自定义对象所属的用户或者直接follow该自定义对象。
     如果只follow对应的用户,则在默认的chatter界面是无法看到自定义对象发出的消息的,必须到all chatter界面才能看到。
4、如果要想直接看到,那就必须直接follow到自定义对象的记录上。

具体过程如下:
如果没有follow对方之前,那肯定谁也看不了彼此的信息了,所以必须要follow:
advisor没有follow任何人之前,只能看到自己名下的自定义对象发出的消息


tester没有follow任何对象之前,什么也看不到


Tester和advisor之间尽力follow关系后,可以互相看到彼此发出的消息,但tester无法看到车(A8等)发出的消息:




配置他们能互相看到car发出的消息步骤:用系统管理员账户登录(Enterprise edition为例):
1、修改Tester的license。到帐账户记录并编辑进入编辑页面:


2、编辑账户信息(Edit),修改license:free chatter为salesforce,并选择自定义的标准用户:


3、授权该用户能访问自定义对象,否则也是无法访问的。点击‘Custom:Standard User’连接(这里没有修改(Chatter Free User),修改后会变为这个(Custom:Standard User)):


找到Custom Object Permissions 区域,设置该类型的用户能访问的自定义对象,以及相应的权限(根据需要定义),如Cars 自定义对象:


4、通过以上配置,tester就能看到地定义对象发出的消息了,但在默认的chatter里看不到,必须是在all chatter里才能看到:


5、要想在默认的chatter里看到,Tester必要要直接follow到相应的车实例上。如下图:你想follow那部车就直接follow了,没有follow的车跟第4步一样。


6、在到tester的chatter界面就能看到相关消息了


至此,配置完毕。





猜你喜欢

转载自xieyanhua.iteye.com/blog/1420426