【问题标题】:CRM web resource attachment retrieve with C#使用 C# 检索 CRM Web 资源附件
【发布时间】:2019-01-15 03:30:22
【问题描述】:

客户目前要求我在 CRM 中创建一个功能,允许他们将附件上传到记录。然后将附件上传到 SFTP。

我想知道如何从我为上传附件而创建的 html 网络资源中检索附件。下面是我上传按钮的 html 脚本。

<html><head>  
<style>  
.button {  
    background-color: 00bfff;  
    border: none;  
    color: white;  
    text-align: center;  
    text-decoration: none;  
    display: inline-block;  
    font-size: 10px;  
    cursor: pointer;  
    border-radius: 6px;  
}  
</style>  
<script>  
function Addattachment()  
{  
var entityETC=10086; 
var entityID =window.parent.Xrm.Page.data.entity.getId();  
parent.Mscrm.RibbonActions.addFileToRecord(1, entityID)  
}  
</script>  
<meta charset="utf-8"><meta><style type="text/css">P { margin: 0; }</style><meta><style type="text/css">P { margin: 0; }</style></head>  
<body onfocusout="parent.setEmailRange();" style="overflow-wrap: break-word;">  
<button class="button" onclick="Addattachment()">Attach</button>  
</body></html>

仅供参考。这个问题可能会延伸到其他问题。提前致谢!

【问题讨论】:

标签: html dynamics-crm


【解决方案1】:

我觉得你在关注this article。 正如作者所指出的,addFileToRecord 方法不受支持。 另请注意,自定义实体的实体类型代码 (ETC) 可能因系统而异,因此如果您将此代码从 DEV 组织迁移到 PROD 组织,您可能需要更新代码中的 ETC。

Dynamics 365 将用户附件存储在注释实体(也称为“注释”)上。正如@jasonscript 指出的那样,您需要检索刚刚附加的注释。但是retrieveRecord API 方法要求您知道要检索的记录的 ID。除非addFileToRecord 方法返回附加注释的ID(它似乎没有),否则您需要使用retrieveMultipleRecords,并带有适当的过滤器。

Jason Lattimer 的 CRMRESTBuilder 可以帮助您构建过滤器。

检索附件后,您应该能够使用 JavaScript 将附件发布到 SFTP。 (虽然我从未在 D365 网络资源中执行过 SFTP,但我认为没有什么能阻止你。)

但是,回到问题的标题,您表示您希望通过 C# 上传附件。如果您的系统是内部部署的,您可以在沙箱之外注册您的插件 - 即没有协议限制。如果它在线,您的插件将在sandbox 中注册,这将它们的外部访问协议限制为 HTTP 和 HTTPS。

【讨论】:

  • 是的,我正在尝试使用那篇文章中的脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 2015-12-08
相关资源
最近更新 更多