在CRM中,我们有一个项目列表,并且在网络驱动器上有与这些项目相关的文件。不想设置我们过去遇到的Sharepoint到期问题。
无论如何,我们要在每个项目记录中添加该项目文件的网络URI,以便用户可以单击CRM记录中的链接并直接转到该记录。类似于X:\Projects\contoso
。
请通过以下建议实现此目的:
http://blog.zealots.solar/?p=54
基本上包括制作一个HTML页面并将其作为Web资源插入表单中,这使其成为iframe。
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a id="doclink" style="border: 0px currentColor;" href="http://www.example.com" target="_blank">
<img style="border: 0px currentColor;" src="stsr_folders_icon.png">
</a>
<script language="javascript" type="text/javascript">
var linkval = window.parent.Xrm.Page.data.entity.attributes.get("stsr_documents").getValue();
var a = document.getElementById('doclink');
a.href = "file:"+linkval;
</script>
</body>
</html>
当然要更新window.parent.Xrm.Page.data.entity.attributes.get("stsr_documents")
和<img src=
。它从stsr_documents
字段中获取URI值,并将其附加到图像中。
它确实完成了添加并生成正确的file:///X:/Projects/contoso
。您可以在浏览器中输入该URL,它将打开目录。
但是,仅单击它会导致以下错误:
Not allowed to load local resource: file:///X:/Projects/contoso
在
Chrome 73.0 file:X:/Projects/contoso
),但什么也不做file:///X:/Projects/contoso
要明确:我不是在问错误为什么会出现或为什么不起作用。从大量关于它的安全性问题中可以很明显地看出来。几乎所有现代浏览器都不会加载本地资源。我知道了。
我想知道的是,有什么解决方法。有些人建议设置一个Web服务器,但是由于我无法访问CRM Web服务器,因此我不确定该如何工作。
还有什么其他解决方案?
答案 0 :(得分:1)
使用UNC资源与诸如Dynamics 365之类的跨浏览器Web平台的性质相反。除了Windows用户的笨拙体验(显然仍然无法正常工作)之外,请考虑Mac和移动用户在使用它们时的体验。尝试在他们的浏览器中打开UNC路径。
SharePoint将是显而易见的选择,但是如果您不愿使用它,则可能要考虑在托管文件的服务器上实现WebDAV。
这些天,我怀疑许多人会认为WebDAV是D365文件集成的“现代”或流行解决方案。
在SharePoint之外,Azure Blob storage是可行且流行的基于云的选项。