У меня есть кнопка, на которую пользователь нажимает, javascript отправляет запрос GET к внешнему API для создания файла Excel. Я хочу, чтобы этот файл Excel был прикреплен к записи заметки и отображался на временной шкале. Хотя я создал запрос через JavaScript и создается файл Excel, я не знаю, как «получить» этот файл и прикрепить его в CRM.
function sendQuoteWithAPI(quoteId, selectedItems) {
var sendQuoteProcess = [];
var tokenId = 'tokenid';
ISV_abs_CloseDialog('ok');
var confirmStrings = {
text: "Excel file is being created. \n The file will be uploaded to timeline. \n\n\n Click Cancel if you don't want to proceed.",
title: "Export to Excel Confirmation!", confirmButtonLabel: "OK"
};
var confirmOptions = { height: 200, width: 400 };
//let test = "Excel file is being created. \n The file will be uploaded to timeline";
//window.parent.Xrm.Navigation.openAlertDialog({ text: test }, { height: 200, width: 300 });
var endpointURL = 'https://dynamics365-excelexport-dev.azurewebsites.net/api/export-quote?quoteId='+quoteId+'&customer='+selectedItems;
var requestOptions = {
method: 'GET',
headers: {
'Token': tokenId
}};
fetch(endpointURL, requestOptions)
.then(response => response.blob())
.then(result => console.info(result))
.catch(error => console.info('error:', error));
}
Сначала вам нужно содержимое файла в виде строки в кодировке Base64.
В этой сути приведен пример того, как это сделать: https://gist.github.com/n1ru4l/dc99062577b746e0783410b1298ab897
Если у вас есть строка в кодировке Base64, которая является вашим файлом, вам необходимо создать запись annotation
со следующей структурой:
Пожалуйста, поделитесь некоторыми подробностями об этом «внешнем API», покажите свой код и т. д.