我开发了客户端JavaScript函数,并使用推荐的步骤将它们作为Web资源添加到了Dynamics 365客户服务解决方案中。 当我以“角色”作为“系统定制器”和“系统管理员”登录到实例时,这些功能已经过测试并可以按要求运行。但是,如果登录时没有像CSR管理器那样具有这两个角色的用户,则JavaScript函数没有响应。在对IE11,Chrome和Firefox中的客户端开发人员工具进行的进一步调查中,我已经验证了JavaScript实际上并未为这些用户下载到客户端浏览器。
如果我向用户授予系统管理员角色,则功能可以正常工作,并且可以在浏览器中使用客户端调试器。取消角色并重新加载浏览器后,我设置的调试点将不会暂停并且JavaScript Web资源也不会下载。
我不确定发生了什么,因为没有社区论坛或Microsoft文档文章提到任何其他保护Web资源或允许非管理员用户查看与管理员用户的要求。
答案 0 :(得分:0)
仅对于某些安全角色,不能呈现/控制CRM Web资源(JS)。对所有人开放。
但是,当您针对不同的安全角色使用不同的表单时,则可能会丢失该特定表单中已注册的js库和函数。
在任何文档/论坛中都找不到像这样的东西,因为这可能是一些管理员/开发人员错误。
如果为Sys.Admin或CSR角色启用了多个表单,则表单切换器将出现在记录中,并且您可以测试这两种行为。
答案 1 :(得分:0)
我在这里看到几个有关安全角色和形式的答案。如果只有一种形式的jScript,它将无法用于其他形式。因此,您需要将该JS(无论是Web资源还是您在文本编辑器中输入的代码)链接到希望在其上运行JSCRIPT的每个表单(在“表单属性”中)。对于您和SysAdmin角色的其他用户来说,听起来好像您正在运行它并且可以正常工作。您在所有表格中都尝试过吗?
要检查的第二件事是您的JScript代码完全在做什么。它是否仅关注一个实体(您将JS注入到的表单的实体)?它是更新,删除还是在记录中添加某些内容?
如上所述,JScript和Web资源无法通过安全性锁定(据我所知),但是,如果用户没有适当的权限来写入实体,您可能会看到此行为。
更新:对不起,我撒了谎。 Web资源可通过安全角色来控制。 。它位于“自定义”选项卡中,一直位于列表的底部(但位于“杂项”的上方)。您可以对此实体设置CREATE,READ,WRITE,DELETE权限。
您可能希望检查非SysAdmins至少对Web资源实体具有READ的安全角色。
答案 2 :(得分:0)
感谢您的所有回复。问题毕竟是与“启用安全角色”有关。
我不确定默认情况下是否仅通过自定义表单的安全性才对系统管理员和系统定制者角色启用安全性,还是我的团队成员之一限制了对这两个角色的访问。
但是,在仔细阅读这些内容并启用其他角色的表单后,JS脚本开始为非管理员用户下载。
汲取的教训并不假定,尤其是在团队环境中,请务必进行检查和再次检查。