Извлечение вложения веб-ресурса CRM с помощью C # - PullRequest
0 голосов
/ 15 января 2019

В настоящее время клиент просит меня создать функцию в 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>

только для справки. этот вопрос может распространяться и на другие вопросы. Заранее спасибо!

1 Ответ

0 голосов
/ 15 января 2019

У меня сложилось впечатление, что вы читаете эту статью . Как отмечает автор, метод addFileToRecord не поддерживается. Также обратите внимание, что код типа объекта (ETC) пользовательских объектов может отличаться в разных системах, поэтому, если вы перенесете этот код, скажем, из организации DEV в организацию PROD, вам может потребоваться обновить ETC в коде.

Dynamics 365 сохраняет пользовательские вложения в сущности аннотации (a.k.a. «заметки»). Как указывает @jasonscript, вам нужно получить только что прикрепленную заметку. Однако метод API retrieveRecord требует, чтобы вы знали идентификатор записи, которую вы хотите получить. Если только метод addFileToRecord не возвращает идентификатор прикрепленной аннотации (к которой он не относится), вам потребуется использовать retrieveMultipleRecords с соответствующим фильтром.

Джейсон Латтимер CRMRESTBuilder может помочь вам построить этот фильтр.

После получения вложения вы сможете использовать JavaScript для публикации вложения в SFTP. (Хотя я никогда не делал SFTP из веб-ресурса D365, я не верю, что вас что-то останавливает.)

Однако, возвращаясь к названию вашего вопроса, вы указываете, что хотите загрузить вложение через C #. Если ваша система локальна, вы можете зарегистрировать свой плагин вне песочницы - то есть без ограничений протокола. Если он подключен к сети, ваши плагины будут зарегистрированы в «песочнице» 1020 *, что ограничивает их внешние протоколы доступа HTTP и HTTPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...