Использование SP2013.На моем сайте есть библиотека документов из файлов Excel.У меня есть доступ на стороне клиента для изменения сайта через Sharepoint Designer 2013, нет доступа на стороне сервера.Я хотел бы настроить событие, которое будет запускаться при регистрации документа, чтобы я мог извлечь из документа некоторое содержимое и обновить его метаданные.Примерный алгоритм работы моего кода:
Пользователь нажимает кнопку «Регистрация» на странице Sharepoint или в извлеченной книге Excel.
Выполняется операция регистрации.
Рабочая книга считывается на компьютере пользователя с использованием js-xlsx
.
Метаданные обновляютсясо значением, использующим API REST validateupdatelistitem
.
Я пытаюсь выяснить, как настроить эту последовательность ответов, используя только код на стороне клиента.Я смотрел на приемники событий, но их можно создавать только с помощью серверного кода, и они полезны только для настройки веб-хуков на удаленно размещенные сервисы.Поскольку мне нужно, чтобы это решение выполнялось локально (нецелесообразно настраивать другой веб-сервер для обработки запросов обработчика событий), я думаю, может быть, было бы хорошо, чтобы обработчик событий (возможно, рабочий процесс?) Загружал страницу насайт Sharepoint, который выполняет шаги (3) и (4) выше и передает ему URL документа в виде запроса GET.Страница, загружаемая обработчиком событий, будет выглядеть примерно так:
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.7.7/xlsx.core.min.js"></script>
<script>
function getValue(){
var reader=new FileReader();
reader.onload=function(e){
var data=e.target.result;
var workbook=XLSX.read(data,{type:'binary'});
//do some stuff to get data from workbook and update doc library
//using REST API
updateSharepointSiteWithWorkbookValue(workbook);
}
//get file url from the GET request that loaded this page
inputFileUrl=parseQueryString(window.location.search);
reader.readAsArrayBuffer(inputFileUrl);
}
</script>
ссылка на Sharepoint.SE вопрос