У меня сложилось впечатление, что вы читаете эту статью .
Как отмечает автор, метод addFileToRecord
не поддерживается.
Также обратите внимание, что код типа объекта (ETC) пользовательских объектов может отличаться в разных системах, поэтому, если вы перенесете этот код, скажем, из организации DEV в организацию PROD, вам может потребоваться обновить ETC в коде.
Dynamics 365 сохраняет пользовательские вложения в сущности аннотации (a.k.a. «заметки»). Как указывает @jasonscript, вам нужно получить только что прикрепленную заметку. Однако метод API retrieveRecord
требует, чтобы вы знали идентификатор записи, которую вы хотите получить. Если только метод addFileToRecord
не возвращает идентификатор прикрепленной аннотации (к которой он не относится), вам потребуется использовать retrieveMultipleRecords
с соответствующим фильтром.
Джейсон Латтимер CRMRESTBuilder может помочь вам построить этот фильтр.
После получения вложения вы сможете использовать JavaScript для публикации вложения в SFTP. (Хотя я никогда не делал SFTP из веб-ресурса D365, я не верю, что вас что-то останавливает.)
Однако, возвращаясь к названию вашего вопроса, вы указываете, что хотите загрузить вложение через C #. Если ваша система локальна, вы можете зарегистрировать свой плагин вне песочницы - то есть без ограничений протокола. Если он подключен к сети, ваши плагины будут зарегистрированы в «песочнице» 1020 *, что ограничивает их внешние протоколы доступа HTTP и HTTPS.